Tomu @ LCA2017
There are ~100 @ LCA2017. Submit a pull request to get one!
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.
- All Tomu boards have been loaded with a USB bootloader.
- To get the USB bootloader to come up, you must connect the C pin to Vcc.
- For further steps refer to this Getting Started Guide
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:
- Porting LUFA - Someone seems to have already started the EFM32 series, just not the EFM32HG.
- Port ChibiOS
- 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 with 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 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.
- 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
- Status: First prototypes in construction.
- GitHub Repository
- Uses a Freescale Semiconductor / NXP Kinetis KL27 (MKL27Z256VFM4)
- 48MHz ARM Cortex-M0+
- 32kb^ RAM
- 256kb^ Flash
- USB 2.0
- Optional Atmel ATECC508A Hardware Crypto Chip
- BOM ~$15 USD from Digikey (in individual quantities)
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.