When you think of microcontroller development, you probably picture either a breadboard with a chip or a USB-connected circuit board. But Tim Ansell pictured an ARM dev board that is almost completely hidden inside of a USB port. His talk at the 2018 Hackaday Superconference tells that story and then some. Check out the newly published video, along with more details of the talk, after the break.
Tim is the creator of Tomu, the tiny ARM Cortex M0+ board that we first covered back in January. The board has a Silicon Labs EMF32 on one side, four traces to interface with a USB port on the other, plus two LEDs and two capacitive touch buttons along one edge. This form factor comes from a 2-factor authentication device he found on Amazon — he was intrigued but balked at the price.
Knowing the components for a minuscule Universal 2nd Factor (U2F) device cost very little. He spent a single weekend laying out the circuit board, and after coping with his just-average SMD skills he ended up with some working prototypes. The problem came with actually porting some U2F firmware over to the device. Not having time to sink into that part of the project, he just began giving away as many of these Open Hardware boards as possible and eventually someone wrote the U2F code for it (it was Sergei Glushchenko, here’s the repo).
An FPGA in Your USB Port
Now Tim’s onto the next big thing. He’s adaped the Tomu form factor to an FPGA board called Fomu with an active crowd funding campaign right now. The board will ship with a RISC-V core already loaded that can be programmed using DFU (or possibly mass storage). This is a popular move right now since a lot of people want to play with RISC-V or FPGA and here’s a way to do both without actually having to haul around extra equipment with you.
Some might think: what can you do with an FPGA where it’s kind of hard to connect external circuits? You could practice adding peripherals to RISC-V and other cores, but maybe what you should be thinking is: what could I do with my laptop if I had some dedicated parallel processing available? The board carries a Lattice iCE40UP5K, 1 MB of flash, 128 kB of RAM, runs at 48 MHz, and is compatible with the open source IceStorm toolchain.
Tim’s Supercon talk is below, he’s even made slides for the talk available.
Neat! The preloaded RISC-V core is especially gool.
https://media.giphy.com/media/x5kvlARMAkxri/giphy.gif
RISC-V —▶ +101010₍₂₎
Analog devices + ‘,’?
How many people just checked their usb ports for key loggers. :D
Imagine, one of these bit banging out a radio signal, perhaps using the case ground as the antenna.
>build into “USB cable ”
>dangle behind desk
>Wires inside cable are actually the antenna
This really seems amazing idea.
Can we see any more explanation or link to projects ?
At the risk of challenging the “there are no stupid questions” theory-
Is the toolchain available for MS Windows, or only Linux?
Can you set up VMWare [or others] to use a CPU in a USB port?
Lattice’s iCEcube2 toolchain runs on Linux and Windows. http://www.latticesemi.com/Products/DesignSoftwareAndIP/FPGAandLDS/iCEcube2
The open source IceStorm also supports the iCE40-UP5K and runs on Linux, Windows, and macOS. http://www.clifford.at/icestorm/
Besides (1) Lattice’s iCEcube2 toolchain and (2) the open source IceStorm there is a third option: Lattice’s Radiant on Linux and Windows. (Think of it as a modern, diamond like iCEcube2)
oh man, now i wont be able to trust USB cables at all anymore lol , the exploitation possibilities and intrusion are limitless with this ability and for factor.
Where have you been? There are USB charging cables that have a GSM service in one end and GPS. So you insert a sim card and you can track whoever is using the cable. Looks fairly harmless at first glance.
This one looks awesome:
https://www.aliexpress.com/item/Micro-USB-Lightning-2in1-Data-Charging-Cable-GPS-Tracker-Wifi-LBS-Remote-Tracking-Voice-Monitor-for/32922148072.html
Though this country abolished GSM years ago. Bad for makers everywhere.
That page also shows a pet tracker, but it is different from the one I use, my dog has a collar tag with my phone number on it. If he bolts, there is usually a phone call a few minutes later…
I bought one of this kind a year ago.
Not only the GSM / GPS function didn’t work, the cable is so crappy that I can’t even use it as a charging cable.
Brilliant :-) I have quite a few silabs efm chips in different products and earlier cygnal 8051 series and in many development systems too, good fun. This looks like a nice extension and convenient too. I will be more busy than ever it seems once I get moving on a sixable FPGA front end array sensor project this is a great way to explore various entry points, thanks for post :-)
Now finding stuff like this (h/w and IDE) for an android Lenovo tablet with only one micro USB port is a bit more challenging, comments invited :D
It’s called EFM32 not EMF32
Aside from just hobbyist stuff what can this FPGA offer? Can it for example rival a $300 Intel chip at something? Cryptographic functions perhaps?
And will we have full control over the FPGA through the USB port? Remove the RISC5 soft core and replace it with an arbitrary circuit?
For that kind of stuff OpenCL or CUDA is a better fit since a modest GPU will kick this thing’s ass handily. This is useful mainly for embedded systems prototyping.
Fair enough, a GPU is very good at SIMD. What about MIMD?
You can replace the softcore with an arbitrary circuit. If you are interested you will find an AI-design for the used FPGA.
Trouble is how change firmware.
For example i create a OTP program on this device and EVERY computer can change my firmware. This is not secure device, no have any phisical switch to change firmware