1 of 44

I'm Tomu

tomu.im

Fitting an ARM microprocessor in your USB port...

2 of 44

I'm Tim

I have too many projects!

j.mp/timtoomany-riscv(New Nov 2018 version!)

3 of 44

I'm have�a LOT

of projects

I'm Tim

I have too many projects!

j.mp/timtoomany-riscv(New Nov 2018 version!)

4 of 44

So sometimes do smaller projects

This is the �story of one...

I'm Tim

I have too many projects!

j.mp/timtoomany-riscv(New Nov 2018 version!)

5 of 44

  • Minimal parts

  • Little processor

  • Literally has �<$10 USD in parts

  • Closed source

6 of 44

Silicon Labs - Happy Gecko

  • 25MHz ARM M0+
  • 8kb^ RAM
  • 64kb^ Flash
  • USB 2.0
  • Regulator

^kilobytes

7 of 44

Silicon Labs - Happy Gecko

~$2.15 USDon Digikey in individual quantities

8 of 44

Created a schematic

9 of 44

Created PCB

Rules

  • 2 layer
  • 6mil traces
  • 6mil clearance
  • 0.3mm drill
  • 0.6mm vias
  • 0.8mm PCB

10 of 44

Put one together by hand!

11 of 44

The hardware works!

12 of 44

Hardware!

  • <$10 USD in parts�individual quantities
  • Fits inside USB port
  • Hand solderable
  • Makeable by hobbyists

13 of 44

Hardware!

Tested with:

  • DirtyPCB
  • SeedStudios
  • OSH Park

Very�makeable by hobbyists

14 of 44

The elephant?

15 of 44

The soft elephant?

16 of 44

The soft elephant?

Still need U2F firmware

17 of 44

The soft elephant?

Still need U2F firmware

smaller projects

18 of 44

Open Hardware Certified

AU000001

I'm Tomu

https://tomu.im

Send pull request →

Get hardware!

An MCU inside a USB port

19 of 44

I made 100, then 100 more!

20 of 44

The soft elephant?

U2F firmware!

(Thanks Sergei!)

It worked!

21 of 44

But I made 100, then 100 more!

22 of 44

The soft elephant?

U2F firmware!

(Thanks Sergei!)

It worked well...

23 of 44

People

wanted

Tomu!

24 of 44

smaller

projects

25 of 44

smaller

projects

26 of 44

Crowdfunding is not smaller

projects

27 of 44

The

sucker…

28 of 44

Partner…

29 of 44

Lots of Tomus!

30 of 44

But there's more!

31 of 44

32 of 44

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

33 of 44

Tomu FPGA

  • Lattice iCE40UP5K
  • 5k LUTs + DSP tiles
  • 128kb^ RAM
  • 1024kb^ Flash (QIO, XIP)

  • 1 x RGB LED
  • 2 x touch buttons�
  • Still fits inside your USB port
  • Not hand solderable

^kilobytes

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

34 of 44

Tomu FPGA

Luke Valenty�TinyFPGA.comPrototyping

Sean 'xobs' Cross�Kosagi�Campaign�Production

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

35 of 44

Tomu FPGA

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

36 of 44

The hardware works!

Tomu FPGA

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

37 of 44

Tomu FPGA

  • Lattice iCE40UP5K
  • 5k LUTs + DSP tiles
  • 128kb^ RAM
  • 1024kb^ Flash (QIO, XIP)

  • 1 x RGB LED
  • 2 x touch buttons�
  • Still fits inside your USB port
  • Not hand solderable

^kilobytes

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

38 of 44

Tomu FPGA

CPU SoC�~3.5K LUTs

Leaving ~30%!

5K LUTs? DSP tiles?

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

39 of 44

Tomu FPGA

Tools

Could use it just as

  • Development toolchain;
    • (upstream) GCC
    • Bare Metal C
    • Zephyr RTOS
    • (maybe?) UF2 + DFU

CPU!

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

40 of 44

Tomu FPGA

Tools

Lattice iCE40UP5K

Make CPU smaller!

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

41 of 44

Tomu FPGA

Tools

Fully

open source

toolchain

�Verilog → Bitstream

Lattice iCE40UP5K

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

42 of 44

Tomu FPGA

Tools

Lattice iCE40UP5K

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

43 of 44

Tomu FPGA

Tools

FµPy support!

fupy.github.io

Lattice iCE40UP5K

I'm Tomu

j.mp/fomu-cs

Send pull request →

get hardware!

An MCU inside a USB port

44 of 44

Tomu FPGA

Tomu