Tomu: A Microcontroller for Your USB Port

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.

There’s a few commercial devices in this form factor on the market. For example, the Yubikey Nano emulates a keyboard to provide codes for two-factor authentication. The Yubikey’s tiny hardware does this job well, but the closed-source device isn’t something you can modify.

Tomu is a new device for your USB port. It sports a Silicon Labs EFM32 microcontroller, two buttons, and two LEDs. This particular microcontroller is well suited to the task. It can talk USB without a crystal for timing, and has an internal regulator to generate the core voltage from a 5 V USB supply. Since it supports DFU firmware updates, it can be reprogrammed without any special tools.

Unfortunately, the EFM32 device lacks secure storage options, so the Tomu might not be the best device to keep your secrets on. That being said, it will be interesting to see what applications people come up with. The creators have suggested using the device for media buttons, sleeping and waking a computer, and as a U2F key.

The project is currently available on CrowdSupply, and all design files and source is available on their Github. If you like soldering tiny things, the twelve-part bill of materials should be fairly easy to assemble at home.

46 thoughts on “Tomu: A Microcontroller for Your USB Port

  1. > Unfortunately, the EFM32 device lacks secure storage options, so the Tomu might not be the best device to keep your secrets on.

    64kb flash – thats a lot of passwords…. (even with a keyboard emu)

      1. Although honestly, the dongle is small enough to keep on your key chain. And if you lose your physical keys, you’re hosed, because they’re not encrypted. So you might as well double down, right? :)

        Seriously — I keep all my passwords on a device that has them unencrypted in eeprom. I’m just not worried about the attack scenario where a technically sophisticated criminal comes into my office with an eeprom reader.

        1. Then roll your own and sell it. If you think they can make a profit at a lower price point, then you can too, and take all of the customer base because you’ve undercut their price point. What’s stopping you?

      1. But if the chip is sold for $1 then the manufacturer already is out of the picture and this $25+ ‘development cost’ is for what and whom exactly? Even the PCB is probably based on the manufacturers sample circuit and is already designed.

    1. Right, that chip is silicon, which is just sand, as is half the pcb, and then the packaging is just plastic, which is really a couple of drops of oil, then the traces are a tiny amount of copper, and maybe some more oil for the energy required to make the whole thing.
      So basically a spoonful of sand, oil and copper ore, for $20? Sheeesh.

    2. Scoffing at twenty bucks for a little computer that fits in the negative space INSIDE a USB port? Not a dongle mind you, but totally inside the socket. Do you have any idea what kind of dumbass things you’ve spent twenty bucks on in your life? Be honest now.

      1. And what exactly is so great about being able to stick it completely inside the USB port? We’ve had wireless mouse plugs almost that small already for years, and the real reason they have the head is to be able to remove it from the USB port and have the antenna out so it can actually communicate.

        Unless you are making the mentioned keylogger or other such device, this is pretty much a really dumb thing to waste money on. And i agree, it costs over 10 times of what i’d pay for one.

        But hey, it’s your money. Come tell us what useful thing you made with one and prove me wrong.

        1. having it flush with the laptop housing makes me a lot less nervous about packing it away in a hurry. I’ve got the Logitech universal receiver in a tough book and it’s annoying as it has to come off before it goes in it’s pelican case. Even though it only sticks out 5mm, it’s enough.

    3. In qty >2, price drops to $15, >= 5 it is $10-ish. I think it is fairly reasonable if you compare it to other U2F dongles on the market.

      Get a grouped order started with friend, you’ll save in logistics and shipping ;)

    4. The lower volume of production requires a higher price to keep the developer in coffee. They are up to $27000 that is half of when an engineer can expect to earn in a year, and a good one can get more. Also possible they are not manufacturing them. If they are paying someone else to make them for ( a guess) $10 each then $30 is the norm, 3x the production costs. Allows a margin for re sellers to also make some money as well as other added costs. Adafruit did a long set of videos on the subject. They lay it all out in the open, if you’re going to look at doing something like this, this is a MUST watch. Will also give you some insight why things cost what they do.

      Also, the files are on github, so go make it yourself!

    5. Like most things, it’s being sold at a profit. The idea is that if it’s functions are worth the price, you’re glad to buy it. You could make your own, if your own effort is worth less than the price.

      That said, I can’t think why I’d need 2 tiny buttons sticking out of a USB port.

  2. They want to use a 3D printed USB enclosure to substitute for a metal USB encosure, that just won’t work. It would simply break apart inside the USB connector. Pull it out at a slight angle and the enclosure will split. Unless the enclosure is made from metal, this thing will be a once use only thing.

    1. And that sort of blanket statement is usually categorically wrong. I’ve printed plenty of thin parts and they don’t ‘simply break apart’. ABS is flexible. Use the right materials and a decent printer, and don’t just claim that “3d printed parts are shit”.

      Also, even when it does wear out, you can just print another one.

    2. I’ve seen plastic thumb drives before, (the actual port was made of plastic) they seem to hold up ok, I know nothing about 3d printers. I’d imagine there must be some cheap way of doing it safely.

        1. You are mistaking extruded plastic (solid) with layered one in 3d print.
          PS. Either it was my luck, or something – but my USB devices with plastic shell did not live long, or were not working reliably. Not sure if it was EMI, static discharge (and if you live in cold climate, in winter it is VERY big problem) or overheating.

    3. If a 3D printed part will work or not depends a lot on it the print itself. It could work. But looking at the numbers already ordered, 3D printing isn’t the proper solution. A few k of the same prints of the same quality, that’s generally not going to work.

      1. I don’t think they’re touch-sensitive, I think it’s like the buttons on a watch. The middle contact would have a strip of springy metal attached to it. Pushing the metal against the outer 2 contacts makes the buttons.

        Where’s the USB connector on the bloody thing?

  3. If these had wireless connectivity, you could jam one into a usb charger socket and you’d have a tiny tiny server that nobody would notice if you left plugged in somewhere. Could be interesting.

    1. The closes you can get right now is something called a Zsun. It’s a “Wifi Card Reader” meant for smartphone use. But it’s self contained and can have OpenWRT installed. It doesn’t fit in a port but it doesn’t look much like a complete device.

    1. Wonder if it could be possible to do some cutting and sanding. Put it over or in place of the usb connector on a usb pen drive.

      If you’re going to make a keylogger or deployment of something thing, I’d at least be tempted to put a tiny bit of neodymium magnet in the eyelet. Super fast covert removal. It looks a little fiddly to hook out with a trusty paperclip.

  4. CNLohr made a USB HID keyboard with WiFi that fits inside a USB port.

    I’ve contacted 6 different makerspaces (including Seeed) to ask if someone can actually manufacture one for me, but so far I’ve had no luck.

    Please can someone guide me as to how to do manufacturing? The KiCAD design files are already on CNLohr’s github, I just need someone to build it for me.

  5. I got one of these at the last eevblog meetup, unfortunately it lasted about 5 insertions into a USB port before becoming unresponsive. Was really keen to have a play with it (as Tomu gave me one), and give feedback.

    I found the size was just a little too small and was easy to twist during insertion possibly shorting the pins.

    Tomu had some other very impressive hardware on show as well.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s