Program an ARM Cortex M4F with the Arduino IDE via USBDesigned by Tlera Corp, Ships from United States of America
See here for a quick start guide. And check out Tom Dunnigan's alpha testing results here. What is it? This is Dragonfly, a small (0.7 in. x 1.4 in.) development board for ST's latest high-performa...Read More…
See here for a quick start guide.
And check out Tom Dunnigan's alpha testing results here.
This is Dragonfly, a small (0.7 in. x 1.4 in.) development board for ST's latest high-performance, ultra-low-power line of 32-bit microcontrollers: the STM32L4X6 family. Dragonfly uses either the STM32L476RE with 512 kB of high-speed flash memory and 128 kB SRAM, or the STM32L496RG with 1024 kByte of flash and 320 kB of SRAM, both in an LQFP 64-pin package running at up to 80 MHz with a single-precision floating point unit. Make sure to specify which variant meets your application needs when you order.
The power is provided either by the micro-B USB cable or a one-cell LiPo battery and regulated to 3.3V on the board with a NCP8170 150 mA LDO voltage regulator with a quiescent current of just 500 nAmps. There are low-speed (32.768 kHz) and high-speed (16 MHz) crystals on the board, a Taiyo Yuden PAS3225 2.6 V, 14 mF supercap as RTC backup (STM32L476RE variant only, STM32L496RG variant exposes RTC_BAT at the top edge of the board), a solder jumper to disable the power-on led for low power operation, a user-controllable Lumex LX0404 RGB led for indication, and a Reset button and a combination BOOT/User button on the board.
There is also 128 Mbit of Macronix MX25L12835F NOR flash memory on the fast QSPI port. This external flash has a deep-power down mode that uses just 2 μAmps of current. The flash can be used for data logging or to hold user programming. The QSPI protocol allows the flash to be mapped as STM32L4 system memory and the fast (40 Mbits/s) QSPI data transfer pipeline effectively provides up to an additional 16 MB of available flash for the MCU!
The really cool thing about this 16 MB flash on board is that when you plug in the USB cable, the flash appears as a removable disk volume on your computer (select serial + mass storage and QSPI flash in the tools tab of the Arduino IDE). Just drag and drop files, images, pdfs, whatever. Log data remotely, then just drag the files from the removable disk onto your laptop. Easy Peasy! Note: When you first flash a program on the Dragonfly, it will blink red and green until the on-board SerialFlash is installed. Just let it blink until it is finished and the Removable Drive (16 Mbyte QSPI flash) pops up on your computer screen. This only has to happen once.
The Dragonfly is an ultra-low-power device. The STM32L4 has several low power run modes including Standby (420 nA with RTC), Stop 2 (1.4 μA with RTC and a 4 ns wakeup), low-power mode Range 2 (1 - 24 MHz) and Range 1 (16 - 80 MHz) with normal run mode @100 μA/MHz. Even the full Range 1 80 MHz performance only costs ~10 mA of current: I have measured 5.5/4.9 mA (led on/led off) required for a simple led blink program running at 72 MHz on Dragonfly, compared to 36.5/33.3 mA (led on/led off) required for the same program running on Teensy 3.2 at 72 MHz. Almost a factor of seven less power for an equivalent task.
We have all low power modes working; running a blink program at 24 MHz costs 2.2 mA, and only 1.1 mA at 8 MHz (no USB). Range 1 (full power) is from 32 MHz to 80 MHz, range 2 is from 16 MHz to 24 MHz, and LowPowerRun is 1 to 8 MHz. When the USB is connected the minimum CPU speed is 16 MHz. Use STM32.stop(); at the end of the main loop for ~2 uA state-preserving sleep mode. Here is one of my projects on Hackaday.io that makes good use of the low power modes of the STM32L4.
Typical low power strategy is to put the L4 into a low power mode (i.e., sleep) most of the time and waken it periodically to handle sensor management, serial communications, etc and then put it back to sleep. The shorter the duty cycle at full power the less average power is required. With the 500 nA Iq of the LDO and the 2 μA power-down mode of the QSPI flash, the Dragonfly should be able to last for hundreds of hours on a small 110 mAH LiPo battery. That's ultra-low power!
We have broken out the RTC_OUT pin (PC_13) which is also connected to the user button. So the user has to configure this pin by use of a solder jumper on the back. Either use this pin as a button input (default) or use the RTC_OUT as an external alarm interrupt from the RTC. The RTC embedded in the STM32L4 is capable of superb accuracy (< 1 ppm) after calibration and the alarm output on RTC_OUT can wake or trigger actions from external devices. In the very lowest power modes a pulse is output on RTC_OUT upon wakeup so there is a solder jumper to detach the RTC_OUT from the boot pin, both connected by default to the user button.
Lastly, we are designing small add-on boards that can be solder-mounted to the Dragonfly to provide additional functionality if desired. The first of these has an MPU9250 9 DoF motion sensor and a BME280 combination pressure, humidity, and temperature sensor. Combined with the 128 Mbit QSPI flash, this add-on turns the Dragonfly into an ultra-low-power environmental data logger. Other add-on boards with a similar tiny form factor will be made available as we expand the Dragonfly ecosystem. Other add-on boards available include an SDIO Card Reader add-on and a CAM M8Q GPS + USFS add-on. Many of the add-on boards designed to work with the Teensy also will work without modification on the Dragonfly too.
We have exposed all of the GPIO pins and most of the peripheral functions of the STM32L4 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 pins are 5 V tolerant except for pin 8 as well as pins A0, and A1 (the two DACs). Please refer to the pin map above.
Even though we expect most users will use an Arduino IDE to program the board via the USB connection, we have kept the SWD port for more traditional programming and debugging with your favorite non-Arduino tool chain.
Make sure to add "https://grumpyoldpizza.github.io/arduino-STM32L4/package_STM32L4_boards_index.json" to the Additional Boards Manager URLs in the File/Preferences/Settings page of your Arduino 1.6.8 (or later) IDE.
I love the Teensy!
In fact, I love it so much I wanted to make the Teensy experience even better by taking advantage of ST's wonderful variety of 32-bit microcontrollers.
ST Microelectronics makes high-performance, peripheral-rich 32-bit microcontrollers but very few, sadly, are usable by beginners, hobbyists and other non-experts who might not know or have the patience to learn how to use Eclipse/gcc, Keil or IAR toolchains to program these useful devices. There are a few solutions available for STM32 processors that allow the Arduino IDE to be used, but the choice is limited and does not include the STM32L4.
The STM32L4 is interesting because it offers a nice balance of high-performance (80 MHz with an FPU) and ultra-low power usage (300 nA or less in standby) with a large array of useful peripherals including the standard serial functions as well as an accurate real-time clock, comparators, op amps, DACs and ADCs, two independent serial engines which can be used for sophisticated sound processing, a CAN bus, SD card driver, LCD driver and fast quad SPI.
The Dragonfly concept is to make these state-of-the-art, 32-bit microcontrollers from ST accessible to more people with an easy-to-program interface in a small, portable, battery-powered package.
This is a small, high-performance, low-power general purpose microcontroller that couples the ease of use and simple programmability of an Arduino with the power of a 32-bit ARM Cortex M4F processor. It can be programmed in much the same way as the Teensy using the Arduino IDE and flashing programs and reading serial output via USB. In fact, it is a complement to the Teensy, offering a similar experience but better performance with a single-precision floating point engine, three SPI ports, three I2C ports, more memory, an integrated RTC, etc.
The 0.7 in x 1.4 in. form factor is a direct copy of the Teensy (imitation is the sincerest form of flattery), and the Dragonfly pinout is similar in many ways; so much so that many of the sensor and motor control add-ons I designed for the Teensy can be used on the Dragonfly too!
Order Dragonfly pc boards from OSH Park and assemble one of your own, or buy the fully assembled and tested Dragonfly from us and see what floating-point performance with ultra-low power usage can do for your project!
Alberto | March 8, 2019
Neal | July 9, 2018
Mark | March 25, 2018
Arthur | March 6, 2018
Markus Ti. | Feb. 1, 2017
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
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!