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.