Where we started

Ever since I first learned how to use my beloved 8 MHz Arduino Pro Mini with the Arduino IDE I have pined to move up to the more powerful STM32F4 with its faster CPU clock, floating point engine, and rich peripherals. I bought STM32F4 Nucleo and Development boards and used mbed to program them but this was a very frustrating experience. mbed is sufficiently different from the simplicity of Arduino that I literally had to completely rewrite my sketches just to get them to compile. I don't know how many times I tried to use adult tool chains like Keil and gcc/eclipse to program these powerful MCUs but I never even got past the installation process getting stuck somewhere in the complicated series of steps to download and install various parts of the tool chain. I took several ST-sponsored training classes to learn how to use ST-Link and the STCubeMX system with the Keil and IAR tool chains to blink leds and read sensors. But when I tried to use the STM32 development boards at home I could never get them to work. Frustration maximized, I turned to the Teensy 3.1 for my projects and rejoiced in the ease of Arduino programming via the USB and forgot about the STM32 for a while.

When ST released the first STM32L4 MCUs my interest was rekindled. Here was offered the performance of the STM32F4 with a floating point engine plus the low power consumption demanded by many of my battery-powered wearable and remote logging projects. I immediately designed a development board for the STM32L476 and tried to program it using ST-Link and STCubeMX after taking yet another ST class on how to program the STM32L4. I couldn't make it work, but fortunately for me Thomas Roell noticed my design on the shared space at OSH Park and asked to collaborate on improving it. There and then our deal was struck: I would design and build the hardware, he would design and build an Arduino core and we would both test and use what has become one of the highest performance MCUs available to the Arduino community.

We started on Tindie with Dragonfly, an STM32L476 using the 10 mm x 10 mm LQFP64 package, with 16 MByte QSPI flash on board, a supercap for RTC battery backup, an rgb led, 16 MHz and 32.768 kHz crystals, and all GPIOs exposed to the user including the SWD port for those who might want to use a ST-Link to program the board the old-fashioned way. What a delight to have access to an 80 MHz MCU with FPU including five serial ports, three SPI ports (or two plus an I2S port), three I2C ports, one CAN port, thirteen PWM-compatible pins, and two separate DACs, all programmable through the USB using an Arduino IDE and standard Arduino APIs. It was like having a Teensy 3.1 on steroids!

Where we are now

We realized that not everybody needed the extra hardware and peripherals that were included with Dragonfly. So now we would like to extend the Dragonfly family to make use of the latest STM32L4 MCUs that come in smaller and more cost-friendly packages; Butterfly with the STM32L433 and Ladybug using the STM32L432.

Butterfly (0.7" x 1.4") and Ladybug (0.6" x 1.1") are small, low-cost development boards with simple, open-source designs that will allow just about anyone to make use of the STM32L4 in their own custom applications. They rely on a single, inexpensive 32.768 kHz crystal oscillator and don't require the ST-Link built in to the STM32 Nucleo boards. Applications can be developed using the Butterfly and Ladybug development boards which provide access to all GPIOs and peripherals of the STM32L4. When the application has been sufficiently proved out, application-specific hardware can be designed using the STM32L43X development board as a design template. The 7 mm x 7 mm QFN48 and 5 mm x 5 mm QFN32 packages of the STM32L433 (Butterfly) and STM32L432 (Ladybug), respectively, are space-efficient, low-cost but still powerful solutions to embedded computational and sensor management problems. Better still, the rich set of low-power modes allows very long battery life in remote and wearable applications.

We have designed, assembled and tested prototypes of the Butterfly and Ladybug development boards. We are working furiously to complete the Arduino core to allow access to all of the features of the STM32L4 family of MCUs. We have started pilot production of the Ladybug board to develop the process and measure yield. The idea of our kickstarter is to increase production volume to allow rock bottom pricing. If we meet our kickstarter goal we will be able to produce in volumes sufficient to offer Butterfly and Ladybug at prices competitive with the STM32 Nucleo board.

What makes Butterfly and Ladybug special?

We designed Butterfly and Ladybug for small LiPo battery operation. There is a port for a JST battery connector on the board as well as a Vin at the board edge that connects to the battery anode so peripherals like haptic motors or displays can be powered directly from the battery, or the board can be directly powered from Vin.

We chose the smallest form factors for the boards to enable use for wearable applications. Ladybug is smaller than most single-cell LiPo batteries!

We designed Butterfly and Ladybug for ultra-low-power applications. We chose the NCV8170 150 mA 3V3 LDO because it has a quiescent current of only 500 nA. We included a green power-on led so users could tell when the device was powered but added a solder jumper (on the back) to allow the trace supplying power to the led to be cut and reconnected easily. Even though the led uses a 4700 Ohm current-limiting resistor, it still draws 280 uA, which is a lot when weeks of battery life is required.

These are simple development boards to build and use, but we put a lot of thought and features into their design:

(1) Fully-functional USB programming (not indirect through a UART bridge); hence USB/CDC, USB/MSC and USB/HID are supported . USB/MSC means drag and drop files to/from any SPI flash attached to your Butterfly or Ladybug from/to your pc!

(2) No complex software setup needed to deal with ST-Link or JTAG debuggers. Simple Arduino IDE integration via USB/DFU.

(3) Logical pinmap to comply with the Arduino UNO / Arduino Zero while adding additional UART/SPI/I2C peripherals in a consistent way. (STM32L432 Nucleo exposes one UART/I2C/SPI port each to the user).

(4) RESET & BOOT buttons for ease of use with traditional tool chains.

(5) Very low power operation (not possible with Nucleo as the ST-Link is on the same PCB and without it, functionality is seriously limited)

(6) Tiny form factors, ideal for wearable applications

(7) Open Source. Simple and easy-to-build hardware designs and easy to use with any software layer (try using an Arduino Zero without an Arduino IDE!)

The only feature missing is ultra-low cost and this is where you come in! Help us meet our Kickstarter goal and we can manufacture these amazing development boards in sufficient quantities to make them very affordable for everyone!