"Looking for a ultra tiny development board? Tomu is an ARM Cortex M0+ device that fits inside your USB port. We’ve seen these in person, and they’re tiny."
Tomu is a programmable computer that fits inside a USB port. It is user-programmable, has two buttons and two LEDs, and can be used for everything from a hobbyist device to a U2F security token.
Tomu is simple. It hides out in a USB port of your computer and waits for you to use it. It has two LEDs to let you know what’s going on, and two buttons for interaction. There’s no fancy setup or complex user interface.
Tomu is open. You can download the hardware schematics, make your own circuit board, and inspect how all the pieces work together. You can download the software source code and trace programs as they run. You can even load your own programs onto Tomu and have it do exactly what you want.
Tomu is flexible. Maybe you want volume buttons on the side of your laptop. You can load software onto Tomu that uses the two buttons for Volume Up and Volume Down. Or maybe you want to be able to put your computer to sleep or wake it up from a USB hub. With Tomu, you can turn any USB port into an input device simply by uploading new software to it.
Tomu is easy. It can be used as something called a Universal 2nd Factor (U2F) token. Many sites support two-factor authentication (2FA) to ensure you’re you, even if your password gets stolen. Two-factor authentication options range from sending you an SMS to requiring you use a one-time-password authenticator. U2F simplifies this process by simply requiring you press a button on a specialized device. With U2F software loaded, Tomu can act as that token.
Tomu fits entirely inside a standard USB Type-A slot, except for a small area that pokes out to give you access to two buttons and two status LEDs. It contains an ARM Cortex-M0+ CPU running at 25 MHz, which can be reprogrammed without specialized hardware.
There are many U2F tokens available, each focusing on its own selection of features. Most come with one button and one LED.
|Tomu||YubiKey NEO||YubiKey Nano||VASCO SecureClick||Feitian ePass|
|Fits in USB port||Yes||No||Yes||No||No||No|
|Number of Buttons||2||1||1||1||1||1|
|Number of LEDs||2||1||1||1||1||1|
The Tomu project is developed in the open and driven by its community. Check out these resources if you’re interested in contributing or being part of the discussion:
We designed Tomu to be as open as possible. So, even if Tomu doesn’t quite do what you’d like out of the box, it’s possible to modify it to meet your needs:
Tomu is an open project, and we couldn’t have done it without community support. In particuar, we would like to thank the following people for their help in bringing Tomu to life:
Without the help from these people and countless others in the community, Tomu would not be possible at all. Thank you to everyone who has helped out so far.
Kosagi will manufacture Tomu in China.
We have already run several boards through the process to ensure the factory is able to produce boards.
We will start by sending them Gerber files generated by KiCad, along with a Bill of Materials that lists all twelve of the components needed for Tomu. Some of these components, like resistors and capacitors, are "jellybean" components and can be easily replaced by cheap, locally-sourced equivalents. Others, such as the EFM32HG309 CPU, must come from a reliable source. The factory will gather these components, as well as place an order with a separate factory that makes PCBs. All of these pieces will come together in the factory’s warehouse.
Next, the factory will "run SMT," in which solder paste is applied to the PCB, components placed on the board, the entire PCB assembly (PCBA) is run through a hot oven to melt the solder, a factory test is run on the finished product, and the boards are finally packaged for shipping. If all of the pieces are ready, this process should be relatively quick.
The overall design is very small, which means the design benefits from panelization — a technique where a small PCB design is duplicated several times to produce a bigger PCB that is easier to run through an assembly line. Every factory has their own preferred PCB size, so we’ll let the factory do the panelization. They will program the machines to put components on the panels, and will break off individual pieces (called depanelization) as part of the manufacturing process, prior to programming and testing.
The printed circuit board itself is two layers, which is relatively simple to manufacture. However, things get a little bit tricky because it needs to fit in a USB slot. Most standard PCBs are 1.6 mm thick. The main CPU on Tomu is an additional 0.8 mm thick, which means the overall thickness is at least 2.4 mm. The maximum size of a USB connector is 2.5 mm, but that includes retention pins. Plus, we don’t want the metal housing to short against the PCB. The solution is to make the PCB thinner and use a molded case of some sort.
We will manufacture the PCB to be 0.6 mm thick, leaving an extra 1 mm of space to play with. This works well, because most case manufacturing technologies work with tolerances of 1 mm. One downside to thin PCBs is they don’t have as much mass, and are prone to bouncing right off the assembly line when the components are placed on them at high speeds. To get around this problem, we use PCB carriers.
PCB carriers are CNC-milled pieces of dense plastic custom-fitted to the panelized layout. They prevent the PCB from sliding around as it goes through the conveyor belt that ties the assembly line machines together. The PCB carrier must also be able to withstand the heat of the reflow oven at the end of the line that melts the solder and causes all the components to stick together. This carrier can be reused, so after it is sent down the factory line it is brought back to the start to be reused.
We have produced test boards at 0.6 mm thickness and verified the process works. We have produced 3D-printed cases that can be used with these boards, so we know the mechanical aspect works as well.
Orders will be produced in China and then sent to the US to be distributed to backers using Crowd Supply’s fulfillment services, located in Portland, Oregon. For more information, see Crowd Supply’s article on Ordering, Paying, Shipping: The Details.
|Digi-Key Part #||Manufacturer||Manufacturer Part #||Reference||Quantity||Description|
|311-15LRCT-ND||YAGEO (VA)||RC0402FR-0715RL||R3 R4||2||RES SMD 15 OHM 1% 1/16W 0402|
|336-3896-ND||SILICON LABORATORIES INC||EFM32HG309F64G-B-QFN24||U1||1||IC MCU 32BIT 64KB FLASH 24QFN|
|478-4596-1-ND||AVX CORPORATION (VA)||0402ZD105KAT2A||C1 C2||2||CAP CER 1UF 10V X5R 0402|
|490-5915-1-ND||MURATA ELECTRONICS (VA)||GRM155R60J475ME47D||C3||1||CAP CER 4.7UF 6.3V X5R 0402|
|754-1815-1-ND||KINGBRIGHT COMPANY LLC (VA)||APG1005VGC-T-5MAV||D1||1||LED GREEN CLEAR 0402 SMD|
|YAG3180CT-ND||YAGEO (VA)||RC0402FR-0752R3L||R1 R2||2||RES SMD 52.3 OHM 1% 1/16W 0402|
|LNJ247W82RACT-ND||PANASONIC ELECTRONIC COMPONENTS (VA)||LNJ247W82RA||D2||1||LED RED 0402 SMD|
Tomu fits entirely enside your USB port. Most USB products either use a USB connector from a manufacturer, or make the PCB thick enough that they don’t need a connector. Tomu can’t take either of these approaches, because the components must all go on the side of the circuit board opposite the USB contacts, and things like chips and capacitors and resistors tend to be different heights.
Early Tomu units were developed by wedging some paper in between the CPU of Tomu and the USB port to keep good contact between the computer and Tomu. Next, a small rectangular piece was developed that can be 3D-printed and wedged in between the CPU of Tomu and the USB port. This was more reliable, but still not permanent.
The production version of Tomu ships with a snug-fitting plastic case. The case is transparent, to allow you to see the LEDs. It sits on top of the Tomu board, and has a peg that will be used both for alignment and for securing the board.
An MCU + eFPGA dev kit with 100% vendor-supported open source tools that fits inside your USB port
A small, portable, USB-connected electronics lab-on-a-board that includes an oscilloscope, waveform generator, power supply, logic analyzer, and multimeter.
An FPGA board that fits inside your USB port