Une carte MicroPython / C++ board with dual core Raspberry-Pi RP2040 MCU at PYBStick standard form factor
The PYBStick board is a common project of Garatronic and MCHobby. We wanted to create an affordable MicroPython, easy to use and properly documented in French (and english) to be included in any project without getting worried by the price. We do it with the PYBStick standard (STM32 based) and reconduct the experiment with this PYBStick RP2040!
In 2021, electronic components sourcing is a real issue (and STM32 get up to crazy extensive price) and we do need to consider other options. This is the RP2040 MCU propeling the Raspberry-Pi Pico. It can run MicroPython et C++... still for affordable price and we did purchase a lot of them!
This product is the PYBStick RP2040 26 - equivalent of PYBStick Standard 26 - propeled by the an RP2040 MCU at 133 MHz, a very powerful dual core MCI with 1024 Ko of external flash and 264 Ko of RAM. RP2040 is the same Microcontroler than Raspberry-Pi Pico board.
The MicroPython support is at the best since it has been ported with the help of Damien Georges (MicroPython & Pyboard creator).
The PYBStick RP2040 is PIN COMPATIBLE with the PYBStick Standard 26 where functions and buses (of RP2040) have been mapped -at the best- to same location of original PYBStick Standard.
What do we have?
- 17x GPIOs
- 3x analog input (ADC 12 bits)
- 17x PWM output
- 1x serial port (UART)
- 2x I2C
- 1x SPI bus
- compact form factor
- 4 LEDs (red, green, blue, yellow)
On MicroPython side, the board is fitted with the USB connector (type A) and can be directly plug into a computer to get programmed. This product looks like an USB key exposing a serial over USB (VCP, Virtual Com Port) to interact with the MicroPython command prompt (REPL) and to update/edit python scripts stored into the MicroPython file system.
Contrariwise of STM32 MCU, the USB interface of RP2040 do not exppose mass storage device (exposing the internal MicroPython filesystem as flash drive). So you will need to use tools like Ampy, RShell or Thonny IDE to modify files on the RP2040.
The MicroPython command prompt (REPL) will allow:
- To see messages printed by the MicroPython scripts,
- Interact this the running scripts (stop the script, inspect script variables, etc)
- Test the script under developpement (just import it on the fly).
- Interactively key-in python code to check plateform feature.
On C++ side, just plug the board on your computer, activate the firmware update mode (with the boot0 button).
Using the board with C++ is described on Raspberry-Pi foundation website (see the Pico).
Affordable and multi-usage
The PYBStick was designed with several key targes.
- Oriented towards the Makers
- Oriented towards learning and school
- Don't forget the possibilty to include into a product
The price should be lower enough for you to avoids thinking to buy a new one or disassemble an existing project still in use. If the price is low enough then you can have several PYBStick to fulfil all your projects and ideas.
It is possible to have PYBStick with USB not soldered to integrate them into minimal size projects.
This PYBStick is also engineered with a microUSB footprint... there are some possibilities to replace the USB-A with micro-B.
The GPIO connectors does have a 2.54mm standard spacing. Makers and teachers would love it because it fits onto breadboard and perfboard. As the board make 13 pins longs, we stay under the size of a memory stick.
User interface included
The board do have 4 color LEDs, a user button and a Boot0 button (it activates DFU mode to update the PYBStick MicroPython/C++ firmware).
Pressing the user button for 4 seconds will activates the reset signal.
Everything is documented on the MCHobby's GitHub (see the tutorial section).
Also for professionals
The space between the two rows of connectors corresponds to the DIL dimension of the old EEPROMs. So, you can develop your own boards by providing an already standardized connector. It only remains to connect your PYBStick to it.
The board can be obtained with a non-soldered USB Type-A connector, more suitable for the professional world or the advanced makers ... here which allows to have a very powerful and very compact solution but remaining easy to implement
Why USB Type-A?
It is true that it seems strange but there are several good reasons for this.
- Powerbanks have standard USB. So the project can easily be powered by plugging it into a PowerBank.
- USB A allows direct use of the PYBStick as a USB 'mass storage' device, HID device (keyboard, mouse) or serial device (virtual serial port).
Just put it on the PC or a USB HUB and let's go.
There is a copy/paste example in the book "MicroPython et Pyboard" as well as on the GitHub PYBStick-project.
- The USB-A is mechanically very robust, ideal for education/learning where the first manipulations are sometimes rougher.
- Because it is possible to obtain the PYBStick without the welded connector, the user thus conforms to the choice of connector desired for experienced makers.
For each order, you will receive the PybStick RP2040 with an USB Type A soldered on the board. The board is shipped with 2 female connectors (they can be soldered on the board as you need.
- Size: 28x35mm (without USB), 28x50.5mm (with USB)
- Tickness: 6mm (without USB), 7mm (with USB)
- 3.3V regulator - 300mA
- 350mA max, 580mA over-current shutdown
- VIN max 18v
- ME6215C33 datasheet (voltage regulator)
- RP2040 datasheet
- PYBStick-RP2040 MicroPython doc (MCHobby GitHub, English / French)
Pinout, schematic and all needed information to use your PYBStick-RP2040 under MicroPython.
- RP2040 Doc (Raspberry-Pi.org, English)
All the informatins on the PICO and the RP2040 MCU can be applied to the PYBStick-RP2040