Per Buy a Raspberry Pi Pico – Raspberry Pi the Raspberry Pi Foundation has released, just today, a new microcontroller with it’s own silicon, the RP2040.
Well if we do have itchy fingers and implement it ourselves we might end up duplicating work that’s done by the main devs.
But on another note, the CMake-based pico-sdk might be replicated in PIO with what the esp32 platform is doing with ESP-IDF – “just” call into cmake, too. Or use the ‘normal’ build path with SCons. If my board arrives and there’s not yet a PIO integration, I might have a play with it.
Note, the official docs already show how to use VSCode, Eclipse and CLion as IDEs.
Pretty much what I was thinking also… Once there’s an Arduino IDE for it… It’ll turn in Platformio shortly afterwards. It certainly made a splash though the other day… shall be an interesting board to follow, with the two programmable logic/io chips, built in boost buck regulator, etc…
I got one yesterday stuck to the cover of Hackspace Magazine.
I haven’t had a chance (been allowed) to play yet. The docs are amazing though. I think the Programmable IO is going to be big. Given there are 2banks of 4 state machines,each with 32bytes of code space, you can build DVI, SPI, UARTs etc. Also rumoured, a proper network interface!
Hi…these are two very different devices, a microcontroller and a microcomputer, intended for different purposes. Pico is a great device for dedicating to a very specific task, whereas Zero is a multipurpose device. Raspberry Pi Zero has HDMI out, a camera interface, etc; Raspberry Pi Pico does not. However, Pico has an on-board ADC as well as other peripherals not present on Raspberry Pi Zero, and consumes considerably less power; it is therefore much more suited to embedded applications than Raspberry Pi Zero.
Hi WizIO, I installed your platform, I tried bare metal, it’s working very well. Thank you for the great work.
The compiler and the upload is working. There is no usb-serial port. Not sure, what is the target of the printf()?
Do you plan to implement the swi debugger as well? (with another Pico or jlink)
I am usually working with the stm32 family in Keil, but this uC is interesting too. While the Python environment is easy to use, it’s too slow for my usual real-time projects. With a working PIO C++ solution this chip could be really great.
Debug session is working in Segger Ozone.
My debug adapter: J-Link Edu mini, v6.96 firmware
Ozone v3.22b
I added “build_flags = -g3” to .ini to get debug info in the .elf file.
In Ozone: RP2040_M0_0, SWD, 4MHz
The upload is not working in Ozone, but “attach to running program” is OK, single step, breakpoints are working, so I simply use the usb upload in PIO.
Did you test a Raspberry PI for debugging instead of picoprobe?
I tried picoprobe and an old RPI3, RPI+openocd is far more efficient.
Almost instant upload and access to the peripheral registers…
debug_tool = custom
debug_server =
executable-that-starts-gdb-server
-arg1
value1
--other-flag
; where the GDB server port will be opened -- this is the default for OpenOCD
debug_port = localhost:3333
; optional: provide path to SVD file for decoded periphal registers
debug_svd_path = C:\...
So, theoretically, if you have a build (or build it yourself with some config) of the Raspberry Pi OpenOCD version, you can tell PlatformIO to invoke that for debugging and it should work. The openocd invocation should be in some style like
(not checked if that works as I don’t have the hard or software.)
The linked repo also has a rp2040_jlink branch – so maybe JLink support is also functional?
Note that the tool debug server must start a GDB server though, not some custom other thing. PlatformIO will use the GDB executable of the toolchain to connect to it (aka arm-none-eabi-gdb here).
Once my Pico arrives I’ll play around with debugging and will try to PR into @wizio’s repo. The stm32 platform (see platform.py, debug sections in the board definition files, and main.py for using defined debugging protocols for normal upload) contains good hints on how it can be implemented.