Features

another pushbutton on PA1 (also connected to BOOT0 via a solder jumper)

one (yellow) LED (on PA15)

many power options (more on this below)

unpopulated footprints for some possibilities: a ferrite bead and an extra filtering capacitor for a (cleaner) analogue supply; a high-speed external crystal (HSE) with load caps; an external pull-up on D+; 0603 footprints)

Because of the power options, this board is quite suitable for very low power applications, e.g. a battery powered sensor (especially with L052), or USB applications (especially with F072 because of the built-in DFU bootloader).

Power options

onboard ultra-low power NCV8170 3V3 150mA regulator (quiescent current 0.5uA, 2uA ground current for <= 0.5mA output), connected to the MCU's 3V3 net via a solder jumper (default connected) - so it can be completely disconnected and the board can be powered directly from an external regulated 3V3 supply, or just 2 AA batteries, or one 3V coin cell

VBUS connected to VIN through a solder jumper. When disconnected, one can mount a battery charger in between. The revision here (rev2) has the power pins arranged in the same way as Teensy 3.x, so chargers offered for Teensy should fit directly.

Programming

Well, the firmware is up to you (although I have a few examples using libopencm3 on my repo here; and there are a few precompiled test firmwares available on the documentation page). That page also has some more detail about uploading a firmware to the board.

A brief summary: when holding the "PA1" button during a reset or powerup, the MCU enters the built-in bootloader. The F072 has a DFU bootloader built-in, so no external hardware is needed to flash this one, only some software, e.g. dfu-util. The L052 only has a USART bootloader built-in, so an USB-to-Serial board is needed to use this. However I modified the BMP bootloader to act as a DFU bootloader on the L052 as well, and these L052 boards ship with this programmed in. So also the L052 boards don't need external hardware to program them (note that this one is entered by connecting PB3 and GND during reset/power-up, and the firmware needs to start at 0x8002000 instead of the usual 0x8000000, i.e. the bootloader takes up 8kB of the flash).

The SWD debug pins (SWDIO, SWCLK), along with power, are broken out along the short side opposite the USB, so they are easily accessible. So, if you have a SWD debugger ready (e.g. STlink V2, or jLink, or BMP, or a clone of these), you can flash the board this way.

Miscellaneous

The STM32L052 chip is also used in Jeenode Zero. So these can (and do!) run forth - although so far I only tried talking to it via USART (and not the USB / CDC).

The PCB itself can take any pinout-compatible STM32 MCU (in LQFP-48 package). I've tested it also with the ubiquitous STM32F103C8T6. The optional high-speed external crystal and pull-up resistor on D+ are primarily there to support chips like this, which require a crystal for USB.

If you'd like to build the board yourself, you can get the PCBs from OSH Park or pcbs.io. These are rev3, which is needed for non-Cortex M0 MCUs. i.e. no difference for the MCUs offered here. The only difference between rev2 and rev3 is that BOOT1 pin is tied to GND in rev3, which enables the built-in bootloader to be entered with the "PA1" button also on M3/M4. It's probably cheaper this way than from me because UK shipping is rather expensive.

If you'd like one of these with a different MCU than F072/L052 offered here; or have some modification done before I send the board, get in touch!

Revisions

I have one extra rev1 populated PCB with F072, offered at a discount. Rev1 has a different pinout (can be seen here) and does not have the footprint for the pull-up on D+ (this is not needed for USB on F072 anyway), and does not have the solder jumper to disconnect PA1 from the BOOT0 pin/button. The PCB is 1.6mm thick, purple (from OSH Park).

What is a Tindarian?

We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.

How does one become a Tindarian?

We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!