Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Tomu – An ARM microprocessor which fits in your USB port (tomu.im)
172 points by todsacerdoti on Sept 2, 2021 | hide | past | favorite | 53 comments



The Tomu is super cool! It also has a bunch of spinoffs, the most interesting of which IMO is the Fomu (https://tomu.im/fomu.html). It's an ice40up5k FPGA in your USB port, not sure if you can get them anywhere due to the parts shortage but I know I've enjoyed hacking on mine.


Quickly looked into Fomu and ran into this sweet FPGA Tomu Workshop https://workshop.fomu.im/en/latest/. Looks like you can get considerably better hardware (better connected at the very least) for half the price of a Fomu tho in the form of the UPduino (https://tinyvision.ai/products/upduino-v3-0).


I recommend the ICEBreaker if you're starting out as it's meant to be a learning platform.

https://www.crowdsupply.com/1bitsquared/icebreaker-fpga

There's a bunch of FPGA boards that are reasonably cheap and powerful.

https://github.com/kelu124/awesome-latticeFPGAs

The ICE Sugar boards look pretty sweet too.

https://muselab-tech.aliexpress.com/store/5940159



Shameless plug but you can try and build a Tomu yourself with help of the Kitspace page.

https://kitspace.org/boards/github.com/im-tomu/tomu-hardware...


The inspiration for the Somu FIDO key, albeit with a different microcontroller, I think: https://solokeys.com/products/somu-tiny-security-key-two-fac...


I just received my Somu a week ago. Really like the form factor and am mostly happy with it's functionality so far. One thing that bugs me is that the RGB light is always on. While it's position inside the USB socket is deep enough for it not to be bothersome to the eyes, I'm annoyed that the security token quite literally has a bright light on it that potentially draws the attention of bad actors. Luckily I got the "Hacker" version that allows this behavior to be modified. Anyone who gets the standard version will have locked firmware, meaning this behavior cannot be changed. FYI.


This looks like a follow-up to:

O.mg Cable - https://news.ycombinator.com/item?id=28394035 - Sept 2021 (404 comments)

One past related discussion:

Tomu, a tiny ARM microprocessor which fits in your USB port - https://news.ycombinator.com/item?id=17719848 - Aug 2018 (86 comments)


Any suggestions as to what you'd do with it? Forgive my lack of imagination.


Thanks, feels good to not be alone. I see this kind of hardware and just shrug. But I'd really love to be the kind of person who sees the possibilities and says "wow this is super nice!" (-:


Black hat shenanigans, maybe.


2FA token is the most obvious use case I can imagine. Otherwise you can do some programming practice. You are limited on IO though.


I've been wanting to learn FPGA to build hardware accelerated compression for external storage[1], Would these HW be a good start?

[1] https://needgap.com/problems/102-external-storage-with-hardw... (Disclaimer: My validation platform).


It's an excellent educational device to introduce people to embedded development.


Does anyone know of an equivalent OSH projects with type-C rather than type-A?


It's quite easy to change the design to C-type. But the reason that they chose an A-Type is that it's much larger and only needs contacts on one side => you can fit the entire board inside the USB port. With C-type, that won't fit.


I wonder if you can fit that into a mechanical keyboard's keycap.


Truly wireless keyboard where every key is connected via bluetooth


This is an extremely cursed idea, I love it.


Not Bluetooth, but tempting to give this idea a try using a sub-$1 microcontroller [0] implementing a software-defined radio with a PCB trace antenna which is powered from the kinetic energy when you actually hit the key.

[0] https://jaycarlson.net/microcontrollers/


Now pairing the A key.


Not bluetooth, but every key being wireless is great for ergonomic keyboards. You can tune the layout iteratively without soldering anything. I think there's enough kinetic energy for a short transmit each time the key is pressed, but currently the energy is now dispersed to bounce the key back up. A thick keyboard (like kinesis or dactyl) does have space for a CR1616 battery under each switch though.. That with an NFC/RFID chip for each key might actually enable a truly wireless keyboard.


Maybe RFID so you can do power in the wireless, too


NFC, key is pressed, once the chip is read


NFT, each keypress records itself on the blockchain and you retrieve it from there.


Probably, the chip itself is about 4 mm on a side. Not sure though why I would want a 104-core keyboard though.


Keep your fingertips warm in winter.


For that, just replace the LEDs with incandescents.


Put in a mini display to the key, and customise your keycaps! See my other comment about the EspUSB and trying to type other languages.

The ARM core wouldn't be ideal for that though, because it would need a separate WiFi chip. Probably better just to use an ESP (ESP8266, ESP8285, ESP32-C3) that has WiFi (sometimes also BLE) on the silicon.

For an easier challenge, I wish there's a TOMU that sits flush with the USB port, and with functioning push buttons on the side. Then I could add 2 extra keys to my keyboard!


These same people sell the Precursor[0], a RISC-V dev board in the form-factor of a feature phone!

[0] https://www.crowdsupply.com/sutajio-kosagi/precursor


Cute but $565, ouch.


Too bad that all smaller ARM microprocessors are rapidly being sold out.

Digikey has about 500 left in stock, and they are no longer being fabricated.


The ESP32 is also ARM and quite small and still actively produced.


Not ARM.


I was shocked when I found out ESP wasn't ARM. It's a weird arch you never heard of. They distribute an ancient Gcc in their SDK, and at least Debian only packages an ancient Gcc for it. Don't know if anybody packages a current-ish compiler. Don't know how big a hassle it is to build one.


They're almost up to date with LLVM: https://github.com/espressif/llvm-project/


There is reasonable GCC support for the ESP Vertex arch, and they seem to be migrating toward RISC-V, so the current ESP32-C3 uses RISC-V arch. But they still have another Vertex part in the works.


Wow, TIL.

We switched from Arduino (which is ARM) to ESP32 and all dependencies compiled and just worked, so I wrongly assumed that it'd be ARM, too. But apparently, their tooling is just really good.



The original Arduinos were AVR, but many of the modern ones and clones are indeed ARM, it's just well hidden via the IDE.


Good to know. Thanks for the correction.


Also not small.


The EspUSB is small! It fits inside a USB port and can act as a USB keyboard & mouse.

https://www.youtube.com/watch?v=FPBzOaLbWhM

There's an even smaller design on the github that I had custom-manufactured at PCBWay before. Please email espusb@gmail if you want to know more.

https://github.com/cnlohr/espusb/tree/master/hardware/usb_82...

Charles Lohr made the amazing design. I built a little on top, and made a slight modification to the firmware to allow text entry in all languages by sending Unicode codepoints.

So now I can type Chinese (or Japanese, Korean, Russian, Arabic, Thai...) on my phone's keyboard, and have the EspUSB type it into my laptop. Very convenient when the characters aren't printed on the keys.

Pity I never figured out how to do the regulatory compliance for the EspUSB, so couldn't follow through on actually getting it onto a web store (e.g. Tindie, AliExpress, eBay, TradeMe). I looked into it, but the lack of EM shielding is quite difficult to justify, and adding such shielding would make it too big.


Does the buttons cause wear on the USB port? Are they perpendicular to the plane of the usb port or parallel to it?


The "buttons" are touch-sensitive contacts, not mechanical switches.


How secure memory is implemented? Ordinary SRAM is easy to crack for someone with good tools.


This doesn't seem to be ARM, a RISC-V instead, does it?


The spec sheet says "ARM Cortex-M0+", which is Armv6-M based.


Can it run ulisp?


Yes. Anything can run Lisp.


Untrue. Lots of our chips need major porting efforts. For ulisp or qemu. qemu is even closer than ulisp.


I should install Lisp on my toaster


This seems neat!




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: