|Description|| A tiny ARM microprocessor which hides *inside* your USB port.
Has a BOM of $10 in individual quantities when ordered off Digikey, constructable by hobbyists! Designed for 2factor authentication or anything else you can think of.
|Persons working on|
|Tags||hardware, arm, security, 2factor, authentication, usb, yubikey, fido|
|Located at assembly||RIAT Crypto Lab, Fail0verflow|
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.
Lots more details in Mithro's 33C3 Lightning Talk on Tomu.
These are currently the top items which need to be done related to the Tomu. If you help out, [@mithro](https://twitter.com/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 of the Tomu, we need a good USB stack which is compatible with the EFM32HG.
There are a couple of possible options;
- Porting LUFA - Someone seems to have already started the EFM32 series, just not the EFM32HG.
- Other 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 if the FIDO protocol.
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 come 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.
- Announcement mailing list - Low traffic list for announcements.
- Discussion mailing list - List for discussing development / new features / etc.
- IRC Channel - irc://irc.freenode.net/#tomu - IRC channel for discussing anything related to the project.
Built out of a 3d printed part + 2 layer "thin" PCB (0.4mm, 0.6mm or 0.8mm thick).
Both boards have;
- 6mil traces
- 6mil clearance
- 0.3mm drill / 0.6mm vias
All Tomu boards have;
- At least 2 different color LEDs
- At least 2 touch buttons
- Status: Hardware complete, simple flashing firmware working. Needs proper firmware.
- GitHub Repository
- Uses a Silicon Labs Happy Gecko EFM32HG309
- 25MHz ARM Cortex-M0+
- 8kb^ RAM
- 64kb^ Flash
- USB 2.0
- Literally 12 Parts
- BOM ~$10 USD from Digikey (in individual quantities)
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;
- (Tested) Hackvana
- (Undergoing testing) DirtyPCB
- (Undergoing testing) Seeed Studio
- (Yet to be ordered) OHS Park - 2 Layer 2oz 0.8mm Service
The Tomu hardware is under your choice of;
- the "Creative Commons Attribution-ShareAlike 4.0 International License" (CC BY-SA 4.0) full text of this license is included in the LICENSE file and a copy can also be found at http://creativecommons.org/licenses/by-sa/4.0/
- the "TAPR Open Hardware License" full text of this license is included in the LICENSE file and a copy can also be found at http://www.tapr.org/OHL
Software for Tomu is under various licenses, please consult the license included with the code.