ico X-tention boards enables massive IO

On each icoBoard up to three ico X-tention boards allows the connection of various additional hardware.

Additionally there are 40 connections available at two 2*16 100mil connectors on the icoBoard.

Currently available is the ico X-tention board PMOD  for 4 additional PMOD modules as seen in the picture.


The following ico X-tention boards to connect other sensors and actuators are currently planned.

ico X-tention board UEXT  to connect to UEXT boards

ico X-tention board Groove to connet to several Groove sensors

ico X-tention board RaspiComm to connect up to four RaspiComm Modules

ico X-tention board Click to connect to Click Boards
ico X-tention board Tinker to connect to Tinker Bricklets

Additionally an interface board from dual PMOD to 32*32 LED panel is planned.


The icoBoard_Beta is pin compatible with the RaspberryPI 2B and RaspberryPi B+.

The icoBoard is not pin compatible with the original first RaspberryPi or the RaspberryPI Zero.

40 working boards have been manufactured in house, integrating the learnings for the icoBOARD_alpha. We currently use Altium, but hope to convert the design files soon to KiCAD files.

10 boards have been handed out at 32C3 in Hamburg. 22 boards have been sent out to those having indicated their interest by giving us their email address at 32C3 or having sent us an email. The rest of the boards has been given out at FOSDEM 2016 end of January 2016. All 40 icoBoard_Beta are gone, 50 additional boards have been manufactured and have been available since June 2016.

this is a Link to the schematic of the board.

The pinouts (thanks to Chris L.)

The pinout of P1 and P2

The pinout of P3 and P4


Risc-V is a free instruction set for CPUs. Find more info here.

Clifford Wolf did implement MCU class Risc-V core and integrated it into the SoC icoSoC which does run on the icoBoard. So you can use the icoBoard as Risc-V MCU developer kit.

Currently Contiki OS is available as operating system running on iocSoC on the icoBoard.

Others did port NuttX to the Risc-V, but it was not yet tested on icoBoard.

We hope in the future to have available microPython on the icoSoC.

What They Said


“EDA desperately in need of an Open Source SystemVerilog front-end.”

Open Source KiCad has taken over EDA for me and some of my collaborators. Plaintext save files is the killer feature for me.

Russel from nandland.com:
“First of all, Clifford thanks so much for the great tools. With a brand-new install of Ubuntu, I performed exactly the instructions that you outlined on the Project Icestorm website and I was able to build and program my FPGA dev board (The Nandland Go Board) surprisingly easily! This was easier and less work than the official Lattice programmer for Linux. I got hung up in package dependency hell with the Lattice tools.”

Dirk Hohndel from Intel:

“Linux Kernel development proceeds at an insane and still increasing pace”

Laurent Desseignes, Microcontroller Ecosystem Marketing Manager of STMicroelectronics:

“The Linux community is known to attract creative free-thinkers who are adept at sharing ideas and solving challenges efficiently” Link

Yann LeCun: inventor of convolutional neural networks:

“But perhaps more interesting is the idea that FPGAs are the reconfigurable device that might next on the neural network agenda for processing the larger nets (while GPUs remain the high performance training mechanism). In a very interesting admission, LeCun told The Platform that Google is rumored to be building custom hardware to run its neural networks and that this hardware is said to be based on FPGAs.”  Link

Bastien Nocera

The biggest hurdle was getting the WiFi driver to work. The tablet used a Realtek chip and he was able to get a “code drop” driver from the company. The driver included all sorts of generic USB code that was unneeded. Eventually, I cut out all of the excess code—reducing the size of the driver by a factor of 20.


Chung from Microsoft:

The idea is to use FPGAs, field-programmable gate arrays, chips that can be reconfigured to implement any design and that can be very power-efficient. Microsoft began using FPGAs to power parts of its Bing search engine last year.

Using FPGAs does come with drawbacks, for example the work that has to be done to program them to do the work at hand.  Link



Xilinx and IMO Altera are buggy as hell. In Altera land I have recently been burned by the Qsys to Eclipse monstrosity. I wish these tools targeted a lower level. Qsys and Eclipse are way too automatic and high level for the ridiculous amount of bugs they seem to have. Sure the ref designs work but add something slightly more complex and it creates HW problems in opaque and frustrating ways. Link


Pat says:

“If you look at Xilinx’s tools, for instance, they look nicely integrated, they look like they do a good job synthesizing/implementing things, and modern FPGAs are *so big* that honestly, what the tools do looks like magic.

But then go and open the FPGA editor, and look at the design carefully – and in a *lot* of cases, the tool is just monumentally stupid for what you’re trying to do: because *there’s no way to tell it* what you’re trying to do. There aren’t any attributes, or constraints, or macros available to pass that information along.

You can actually *still fix this* yourself, by implementing the FPGA directly in the editor as a hard macro, and using that hard macro. But Xilinx’s FPGA editor hasn’t been updated in forever – it’s ungodly buggy, and it takes a ton of time to do even simple things. It can’t even handle the fact that the FPGA has symmetry – so you have to build “left-hand side” macros, and “right-hand side” macros, even though you’re trying to say “use the thing closest to this other thing.” Link

Lip-Bu Tan, CEO of Cadence:
“We also need to have more startups because they provide a lot of the breakthroughs and innovation in design. And we need more engineers in this industry. We need new blood, new ideas, and we need to think differently to address new opportunities.” Link

Tim Edwards: What are your LEAST favorite software tools that you use?

“I reserve most of my vitriol for Cadence, though. It started life as a cobbled-together mess of incompatible tools, and it’s still a cobbled-together mess of incompatible tools. Nobody in their right mind should pay so much for a tool with so many bugs that crashes so often, whose visual interface is unappealing if not outright damaging to the eyes, and whose user interface is laughable. Unfortunately, corporate interests do not follow rational rules of mind, so Cadence keeps getting paid and has no incentive to fix all the problems with their software. I don’t mean to pick out Cadence specifically, other than the fact that it makes the tool I’m forced to use at work for MultiGiG, because most of the other big commercial EDA players like Mentor Graphics and Synopsys are just the same.” Link


Why is it so hard to get a good, all-encompassing tool for FPGA development? When I want to develop firmware on MSP430s, I just download Code Composer Studio from TI and I don’t need to do ANYTHING ELSE; just start debugging. This seemingly obfuscated environment surrounding FPGAs is a major reason people only approach the subject and never embrace it.  Link

PMOD modules



Analog Devices




Saanlima PS2 and NES interfaces

Trenz electronic Shop

TE Electronic barometer

TE Electronic magnetic encoder

TE Electronic humidity

numato (Attention, they make mechanically incompatible dual-PMOD boards)!

Radio sender

Radio receiver

Other compatible hardware modules

The following HW modules can be attached by an interface board:

UEXT modules ( use interface PMOD from thoseboards )

Grove modules (use interface PMOD from XESS )

Learning Material

Introduction to open source Verilog

Check out the Presentation Here!

What is Verilog?

3 hour introduction into Verilog:

Video part 1

Video part 2

Video part 3

Video about programming Verilog on Ice40:

Complete UCLA University Digital Design and Verilog course:

List of videos on youtube

Video intro into CMOS, Verilog and FPGA programming:

Intro: How CMOS Works

Intro: from CMOS to FPGA

Part 1: learning Verilog

Part 2: Flip Flops

Part 3: finally programming the FPGA



A Risc-V Processor with additional peripherals is implemented on the icoBoard, is running a simulation software written in C and does display the results on a LED framebuffer.

Clifford’s presentation of the toolchain at 32C3

The following video shows a possible use for FPGAs

The production of the icoBoard_Beta


A replacement for commerical FPGA design suites?

The current open source FPGA tools are in no way a replacement for commercial offerings like

in the year 2000, Linux was in no way a replacement for Solaris from Sun Microsystems.

Open Source gives any interested developer the possibility to look under the hood and tailor the current offering to his own needs. So the open source FPGA toolchain is able to fill some needs currently not addressed by commercial tools.

As Python as a tool was a boost to the accessibility and ease of programming, we need progress in the FPGA field towards easier and more powerful tools, so that not only Electronics engineers, but software developers and even researchers them self can build FPGA solutions.