Main Content

buck50: Test and measurement firmware for "Blue Pill" STM32F103

buck50 is open-source firmware that turns a “Blue Pill” STM32F103 development board (widely available for approx. US$1.50) into a multi-purpose test and measurement instrument, including:

- 8 channel, 6+ MHz logic analyzer
- Approx. 5K sample buffer depth
- Samples stored only at signal edges for efficient memory usage
- Units may be ganged for increased number of channels
- Complex triggering via user-defined state machine supporting combinations of sequential (“A then B then C”) and logical-OR (“A or B or C”) conditionals
- Output to VCD and other file formats for export to waveform viewing software 1
- Live monitoring and logging of digital, analog, USART (sync/async), SPI (MOSI/MISO), and I2C (master/slave/TX/RX) data
- Simple dual-channel approx. 1 MHz digital storage oscilloscope, approx. 5K sample buffer depth (10K if single channel)
- 3 channel digital pulse train generator with user-defined frequency and per-channel duty cycle and polarity
- Bidirectional bridge/converter from USART/UART (async/synchro), SPI (master/slave), or I2C … to USB … to host terminal, UNIX socket, or UNIX pty device file
- 8-bit parallel output counter (binary or gray code)
- Host terminal ascii or binary input data to 8-bit parallel output
- Firmware written in a combination of C++ and ARM Thumb-2 assembly code, with several non-standard hacks^H^H^H^H^Htechniques of possible general interest to advanced software developers
- Python host driver program with comprehensive inline help system and usability features
- Coffee maker attachment sold separately, not included in base price 2”

Link to article