Purchasing and Setting up Hardware

Before making any purchases, please note that there is only support for Linux and MacOS operating systems at this time.

This page provides a guide to an inexpensive way to conduct evolvable hardware research. First, we will provide a list of the required hardware and lists where it can be acquired. Second, we will provide a step by step set of directions to configure the hardware. Finally, we will direct you to the code to run our open source software.


0. Acquire components - MCU, FPGA, Jumper Wires, Breadboard

ItemCostWhere to Purchase
Microcontroller (MCU) ~$10 Arduino Nano
Icestick (FPGA) ~$50 ICE40
Headers (requires soldering) ~$10 Header to solder onto FPGA
Jumper Wires ~$5 Jumper Wires
Breadboard ~$10 Breadboard
Total ~$85

1. Unbox purchased components - MCU, FPGA, Jumper Wires, Breadboard

Make sure that you have all the required components and they are undamaged.


2. Solder Header pins (or use solderless male hammer headers) to FPGA

This is needed to allow us to connect to and read from the MCU.

3. Place MCU into breadboard (pressing pins all the way into breadboard)

Line up as shown in the images above.


4. Connect USB cable to MCU

Should slide in easily and can only be done one way.


5. Connect USB cable to USB hub or directly to computer.

It is shown being plugged into a hub which later needs to be connected to a computer, but you can connect it directly as well


6. Connect FPGA to USB hub or directly to computer.

Same as before, we should plugging into a hub, but you can plug directly into your computer.


7. Place one end of male-to-male jumper wire on Arduino pin A0 and the other on D2.

Somewhat hard to see visually, but if you read the pins it should be clear.


8. Place male end of male-to-female jumper wire on Arduino pin A0 and the other to FPGA pin 10

Somewhat hard to see visually, but if you read the pins it should be clear.


Your hardware is all set. Now on to the software

Head over to our Open Source GitHub code repository:

github.com/evolvablehardware/BitstreamEvolution