Tomu

by Sutajio Kosagi

An ARM board that fits inside your USB connector

$50,175 raised

of $100 goal

50,175% Funded! Order Below

Product Choices

$25

Tomu

A computer in your USB port! One Tomu board with two buttons, two LEDs, and a 25 MHz CPU, all fully assembled and tested.

Details

Recent Updates


As Featured In

Hackaday

Hackaday

"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."

Hackster News

"I’ve found Tomu to be a super handy little IO extension for my laptop with the capacitive touch buttons it has just barely hanging out of the USB port."

fossBytes Logo

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.

Simple, Open, Flexible, Easy

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.

Features & Specifications

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.

  • CPU: Silicon Labs Happy Gecko EFM32HG309
  • Speed: 25 MHz ARM Cortex-M0+
  • RAM: 8 KB
  • Storage: 64 KB Flash
  • Connectivity: USB 2.0 FS
  • Buttons: 2
  • LEDs: 2 (red + green)
  • Components: Literally 12 parts + PCB

Comparisons

There are many U2F tokens available, each focusing on its own selection of features. Most come with one button and one LED.

Tomu YubiKey NEOYubiKey NanoVASCO SecureClickFeitian ePass
NFCNo Yes No No Yes No
BluetoothNo No No Yes No No
Open sourceYes No No No No Yes
Fits in USB portYes No Yes No No No
Custom SoftwareYes No No No No Yes
Number of Buttons2 1 1 1 1 1
Number of LEDs2 1 1 1 1 1

Community

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:

Special Thanks

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:

  • Josh Goes -- Constructed all the early prototypes by hand and did the early example firmware
  • Sergei Glushchenko -- Wrote the U2F firmware
  • Aleksa Sari -- Wrote the instructions on how to use 2-wire debug with openocd and a RPi for the Tomu
  • Joel Stanley and Peter Chubb -- Got the bootloader working in QEMU

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.

Manufacturing Plan

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.

Parts List

Digi-Key Part #ManufacturerManufacturer Part #ReferenceQuantityDescription
311-15LRCT-NDYAGEO (VA)RC0402FR-0715RLR3 R42RES SMD 15 OHM 1% 1/16W 0402
336-3896-NDSILICON LABORATORIES INCEFM32HG309F64G-B-QFN24U11IC MCU 32BIT 64KB FLASH 24QFN
478-4596-1-NDAVX CORPORATION (VA)0402ZD105KAT2AC1 C22CAP CER 1UF 10V X5R 0402
490-5915-1-NDMURATA ELECTRONICS (VA)GRM155R60J475ME47DC31CAP CER 4.7UF 6.3V X5R 0402
754-1815-1-NDKINGBRIGHT COMPANY LLC (VA)APG1005VGC-T-5MAVD11LED GREEN CLEAR 0402 SMD
YAG3180CT-NDYAGEO (VA)RC0402FR-0752R3LR1 R22RES SMD 52.3 OHM 1% 1/16W 0402
LNJ247W82RACT-NDPANASONIC ELECTRONIC COMPONENTS (VA)LNJ247W82RAD21LED RED 0402 SMD

Tomu Enclosure

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.


Credits

Sutajio Kosagi

Sutajio Ko-usagi supports and produces open hardware products designed by bunnie and xobs.


Tim Ansell

Designer

Sean Cross

Operations


OSH Park

Prototype PCB Manufacturer

See Also

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: