| The Pico Gets Zephyr And Rust Support | 
| Written by Harry Fairhead | |||
| Thursday, 30 October 2025 | |||
| Zephyr, a real time operating system and Rust, a memory safe language, are both hot topics at the moment and Raspberry Pi has decided they are hot enough to support in its extension for VS Code. If you use the latest version of the VS Code extension you will discover that there are two new Raspberry Pi Pico project types: 
 The Rust Project option assumes that you have Rust and a C compiler already installed - this is fiddly, but not impossible. Given both are installed you should be rewarded with a new Rust project, but despite spending a lot of time on the configuration I failed to get it to work, even after a complete clean reinstall of everything and careful following of the instructions. If I had managed to get it working, I would have been faced with the task not only of learning Rust, something I am doing at the moment anyway, but yet another way to access the Pico's hardware. At the moment this means coming to terms with Rust's hal files and a fairly complicated way of dealing with the hardware so as to make the whole thing slightly platform-independent. If you are a MicroPython programmer stay away - here be dragons. If you are a C programmer the dragons are still there, but they might seem a little smaller. To be serious, this is a nice learning opportunity, but there is no way I would attempt to use this for a project that mattered. 
 Zephyr project creation worked perfectly first time and it does make working with an RTOS on the Pico much easier. However, there are still some issues to take into account. The first is that Zephyr isn't just an RTOS, it also has a device tree implementation that provides another way to control and use peripherals. If you are going to make full use of Zephyr, you are going to have to give up what you already know about the Pico SDK and learn another way of doing the job. So now we have three ways to program the Pico's hardware. The supposed advantage of Zephyr's approach is that, in principle, you should be able to take a program and run it on another platform with no or minimal changes. Sounds great, but in practice it doesn't work out so well as what you find is that the driver support is very patchy and you often end up having to port the driver. You also have new WiFI and bluetooth stacks and a new socket library to work with. At this time the Pico's PIO isn't supported natively, though you can get it to work. It uses mbedTLS for cryptography but it has its own TCP/IP stack. Overall, despite Zephyr being backed by many chip manufacturers, it is a very big project and as such there is a lot of churn with drivers being a constant problem. So now we have two additional ways of accessing the Pico's hardware - did we really need them? Personally, I'd have prefered Raspberry Pi to put some effort into packaging Free RTOS, lwIP and mbedTLS, a triumvirate which allows you to create IoT programs using the well-designed and well-implemented Pico SDK, rather than a trendy move to Zephyr that throws so much away. Then there is the issue of documentation. Raspberry Pi hasn't provided anything new and simply directs you to the Zephyr or Rust site to read lots of information that isn't specific to the Pico - this is a very negative move. At the very least, it should put some work into customizing the documentation to make it relevant to the Pico. Raspberry Pi is supporting Zephyr, but that basically means they will take advantage of them. The majority of the work is being done by open source programmers on the respective projects. It is about time Raspberry Pi took the software side of its products more seriously and supplied, or funded, dedicated Pico software engineers to the open source projects they depend upon. Compared to Espressif or Arduino it simply does not seem to see software as its problem and, with even more open source projects on board, it doesn't even seem to think that documentation is its problem either. So some good news and some bad. You now have an attractive alternative to FreeRTOS and the Pico SDK. Let's hope that it stands the test of time and isn't just the shiny new thing. 
 
 More InformationDevelop embedded firmware for Pico using Rust or Zephyr with pico-vscode Related ArticlesRaspberry Pi Fixes Bug In RP2350 Pico 2 Fix Slow Roll Out Pico RP2350 Security Bounty Won The Pico/W In C: Erratum E9 Pull Down Problems Pico 2W Announced But There Is A Surprise! Raspberry Pi Beaten To It With Pico Plus 2 Pico 2 Faster With More Memory And RISCier To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin. 
 
 
 Comments
 or email your comment to: comments@i-programmer.info <ASIN:B0FP9RJJ7Z> <ASIN:B0FDYDPQ54> <ASIN:B0FJYJF77Q> 
 | |||
| Last Updated ( Thursday, 30 October 2025 ) | 




