You might have hit that point when your microcontroller peripheral just doesn't have exactly the features you need:

Dipsy comes to the rescue!

It's a tiny FPGA (Lattice iCE40UL1K-SWG16) on a tiny 10 x 10 mm², breadboard-friendly PCB:

With 1284 logic cells, 7 kB RAM and a few extra goodies in this tiny package, it's the perfect addition to your already breadboarded prototype, and it can also be integrated into a pcb using simple pin headers.

Learn FPGA basics with dipsy!

Learn Verilog or VHDL with dipsy. Large FPGAs can be quite daunting, like this thing:

(picture: Keld Gydum, http://www.gydum.com/, picasa link)

and usually come in huge packages you don't really want. Dipsy is more like:

You'll quickly know your way around and the probability of meeting someone you don't even know is significantly lower.

What do I get with dipsy?

Apart from 1284 logic cells and 7 kB RAM you'll get

What can it do for me?

It's the perfect addition to your project when you don't want that huge FPGA, probably in a QFP144 package, with a million logic tiles when everything you need is a custom device with a few PWM channels or something similarly simple:

How do I develop software for it?

Compile your mixed Verilog/VHDL design with Lattice's iCECube 2 software. If you want you can also use other software (like Xilinx's Vivado) to develop and simulate you code first:

Do I need anything special to program it?

Absolutely not! A binary configuration for dipsy is less than 32 kB in size, so you can include it in your arduino sketch, or store it in an external EEPROM or SD card if your microcontroller doesn't have the extra flash space. dipsy can be configured with a simple SPI interface, and we even have an arduino library for that!

What if I don't use arduino?

No problem, it's easy enough to port to other environments and languages. We have tested dipsy with

We're also working on a tool to program dipsy with USB<->Serial bridges.

The configuration is stored in

The first option is easiest for prototyping SPI slaves, and we currently recommend that - it's also what our arduino library does.

See a WS2812B test in action:

We also have very basic examples, starting with the classic blinky, to get you started with this FPGA board!

Five grains of Sand

All components (FPGA, voltage regulator and three passives) on the dipsy PCB are smaller than 2mm. We give you those five grains of sand to

Take the task!

Do it


Bill of Materials

This is all you need to build a custom System on Chip, all you need are 5 grains of Sand.

System Diagram



The hardware license is the most important one, there are many tools and utilities and IP Cores that may have different or undefined unknown license. It is not possible to document all those use cases.

As example, the set of tools that makes the open-source FPGA toolchain is a mix of MIT, GPL, Public Domain and "missing" licenses.

AVR Basic Compiler - is fully copyrighted by Antti Lukats, but has been released under several different Company names in the past, and possible will be released under some new license (currently undetermined one).