View on GitHub

Tomu @ LCA2017

There are ~100 @ LCA2017. Submit a pull request to get one!

Tomu, I’m

I’m Tomu, a tiny ARM microprocessor which fits in your USB port. I have two buttons and two LEDs!

I’m fully open source, have a BOM of ~$10 (in individual quantities) and am constructable by hobbyists! Designed for 2-factor authentication or anything else you can think of.

Getting Started!

Help us!

These are currently the top items which need to be done related to the Tomu. If you help out, @mithro will probably send you a Tomu device!

Creating (or porting) a FOSS USB stack to EFM32HG

To make it easy for people to develop new applications for the Tomu, we need a good USB stack which is compatible with the EFM32HG.

There are a couple of possible options:

Creating (or porting) U2F / FIDO compatible firmware

The ultimate goal of the Tomu is to be used as a 2nd factor authentication device. For this to work someone needs to write firmware compatible with the FIDO protocol.

There are already a bunch of things which could make this easier: micro-ecc, Nitrokey, u2f-zero and stm32-u2f.

QEmu Emulation of the EFM32HG

We would like to have good emulation of the features in the EFM32HG309 processor so that people can write software for the board without having to have the hardware.

The biggest part of this is the emulation of the USB stack.

Creation of Tomu bootloader programming rig

The EFM32HG comes with a bootloader which doesn’t work without an external crystal. We thus need to replace the bootloader with a version that does. It would be good to have a standard rig which allows programming of multiple Tomu boards (a whole panel) at once.


Tomu Hardware

Built out of a 3d printed part + 2 layer “thin” PCB (0.4mm, 0.6mm or 0.8mm thick).

Both boards have:

All Tomu boards have:




The important thing to note is that you need a PCB that is 0.8mm thickness or less. The default thickness is normally 1.0mm and 1.0mm is too thick.

These gerbers should be possible with the following manufacturers:




The Tomu hardware is under your choice of:

Software for Tomu is under various licenses, please consult the license included with the code.

Open Source Hardware Certification AU0000001