The Pyboard D-series' ace-in-the-hole is its efficiency, with the board running MicroPython, a version of the Python 3.4 customized to run on low-power microcontrollers.
A tiny new, low-power board has been released that offers a new way for developers to control homemade hardware and DIY gadgets
The Pyboard D-series‘ ace-in-the-hole is its efficiency, with the board running MicroPython, a version of the Python 3.4 programming language customized to run on low-power microcontrollers with as little as 16KB of RAM.
Performance is further bolstered by not running a Linux-based OS, with MicroPython instead running bare-metal on the Pyboard, described by the board's makers as “like having a Python operating system”.
However, while the Pyboard D-series may have trimmed performance overheads, the hardware is relatively modest, offering a 216MHz CPU and ~256KB RAM, as part of the Pyboard D-series' STM32F722 microcontroller.
The Pyboard D-Series is smaller than both the Raspberry Pi Zero and PocketBeagle and is different from both of these boards in that it is based around a microcontroller and can't be used as a computer running a full Linux OS.
SEE: More Raspberry Pi coverage (TechRepublic Flipboard magazine)
Instead the Pyboard's focus is on controlling and interacting with attached electronic hardware via the wide range of interfaces on the board. The underside of the board has a WBUS header, a compact 40+40-pin mezzanine bus connector offering access to all power and IO ports.
The Pyboard offers 46 independent GPIO (general purpose input-output) pins, with 24 available via through holes, and an additional 11 GPIO pins shared with SD card, USB, USR button, Bluetooth audio.
There's built-in support for wireless connectivity, via 802.11n Wi-Fi and Bluetooth 4.1 and an SD card reader to expand the existing ~2MB flash storage.
Controlling the Pyboard is relatively straightforward but requires a separate computer. The board connects to a PC via the board's microUSB port, allowing the user to connect to the board using any serial program, which will give them a Python REPL command-line prompt. From that prompt, users can type and execute Python commands on the board as they would when running Python on the PC.
It's also possible to send Python scripts to the board to be executed immediately, to copy a Python script to an SD card to be run when the board starts, or even to compile an application to run as part of the board's firmware — which will further reduce MicroPython's already low RAM consumption and boost start-up time but which is described as an “advanced feature”.
The downside of the new board is its price, which at £43.80 (~$58), is considerably more than the$10 Raspberry Pi Zero W and $25 PocketBeagle. Despite this cost difference and the Pyboard's CPU's relatively low clock speed, there's debate over whether the optimizations on the Pyboard mean it's capable of running embedded applications more rapidly than the 1GHz CPU found on the Pi Zero.
Another possible drawback is that certain hardware features on the Pyboard are not yet available in software, with support due to be added later, the most notable of which is support for the board's onboard Wi-Fi and Bluetooth.
- STM32F722IEK microcontroller
- 216 MHz Cortex M7 CPU with single-precision hardware floating point
- 512KiB internal flash ROM and 256KiB internal RAM
- 2MiB external QSPI flash with execute capabilities to extend internal flash
- Additional 2MiB external QSPI flash for user filesystem and storage
- Integrated, high-performance WiFi and Bluetooth 4.1 (classic and BLE) via Murata 1DX module (with CYW4343)
- TCP/IP and Bluetooth stacks run on the main microcontroller, fully customisable
- On-board fractal chip antenna for WiFi and Bluetooth
- uFL connector for attaching external antenna, selectable via RF switch
- Micro USB connector for power and serial communication
- Micro SD card slot, supporting standard and high capacity SD cards
- Real time clock with highly accurate pre-calibrated external oscillator
- Physical electrical connectivity via 24 through holes, and a 40+40 pin mezzanine bus connector
- 46 independent GPIO, with 24 available via through holes
- Additional 11 GPIO shared with SD card, USB, USR button, BT audio
- 2x I2Cs, 4x UARTs, 3x SPIs, 1x CAN interfaces
- 3x 12-bit analog to digital converters (ADC), available on 16 independent pins
- 2x 12-bit digital to analog converters (DAC), available on 2 independent pins
- 1x 3-colour RGB LED
- 1 reset and 1 user button
- On-board 3.3V LDO voltage regulator to supply main microcontroller
- Additional, user switchable, on-board 3.3V LDO voltage regulator to power SD card and external components
- Dimensions: 33.5mm x 23.8mm
- 2 mounting points
- Custom DFU bootloader for easy upgrading of firmware