microNIMO implements Nuvoton’s M032LE6AE 32-bit Arm Cortex M0 microcontroller. Boasting 256kB of flash, 32kB of SRAM, a maximum system clock frequency of 72MHz (some prehipeherals such as PWM can run even higher) and a host of perhipherals including PWM, ADC, USB, I2C and IEC-60730 amongst others, the M032LE6AE is a powerful workhorse.

Getting started

The microNIMO board itself implements everything that you need to get up and running quickly and easily. A USB-C connector is provided for power and data as well as a single cell Li-Ion charging chip and Li-Ion connector allowing the board to run independantly when required and recharge from USB when necessary.

An Orange charge LED shows when the battery is chargeing and extingueshes once full (you may see a small glow from this LED when no battery is present, this is normal).

A Blue user LED and user switch provide a user configurable UI without having to add any additional components to the board.

Finally, a reset switch and on board bootloader offer ease of use and allow the board to be programmed without any additional hardware being required.

The microNIMO board comes with a bootloader installed but no application code. In this state, when powered on the board will boot into the bootloader, initialise the USB port and flash the user LED approximately twice a second.

Before you can write and compile your first application, some prerequisites must be installed, these are:

  • Git
  • the Arm compiler
  • umake
  • bootloader client.


These instructions work for Debian based systems such as Debian and Ubuntu you may have to adjust them for your package manager if you’re using a different flavour.

sudo apt install git gcc-arm-none-eabi libusb-1.0-0-dev libudev-dev libnewlib-arm-none-eabi
wget https://github.com/nimo-labs/umake/releases/download/stable-lin/umake
chmod +x ./umake
sudo mv ./umake /usr/local/bin # This will install umake into /usr/local/bin hence root priviledges are required
wget https://github.com/nimo-labs/hid_bootloader_console_client/releases/download/stable-lin/hidBoot
chmod +x ./hidBoot
sudo mv ./hidBoot /usr/local/bin # This will install umake into /usr/local/bin hence root priviledges are required

At this point everything should be installed and ready to go, a couple of quick tests should confirm this.


At this point you should see the error message: “./umakefile not found.” This indicates that umake is installed correctly.

To test the bootloader client plug the microNIMO into a USB port, the blue user LED should start flashing about twice a second. If it flashes slowly or not at all then unplug the board and plug it in again with the user button held down. You can release the button once the blue LED starts flashing.

hidBoot d

Hidboot should then show the version number of the bootloader inside the microNIMO. If you see this then the tools have been setup successfully.

At this point checkout our microBlinky tutorial to write your first application.


In progress.