Skip to content

Hardware Setup

Bitstream Evolution v1 — iCEstick

Before ordering any parts, please note that the current Bitstream Evolution toolchain supports Linux and macOS host machines. The steps below mirror the original hardware tutorial and walk through a low-cost way to assemble the evaluation platform.

Bill of Materials

Item Approx. Cost Where to Purchase
Microcontroller (Arduino Nano compatible) ~$10 Arduino Nano Kit
Lattice iCEstick HX1K FPGA ~$150 Mouser iCE40HX1K-STICK-EVN
2x40 male headers (soldered to FPGA) ~$10 Hammer Header Kit
Male-to-male jumper wires ~$5 Elegoo Jumpers
Male-to-female jumper wires ~$5 Elegoo Jumpers
Full-size breadboard ~$10 MCIGICM Breadboard 2-pack

Total hardware cost: roughly $190 USD.

Assembly Steps

1. Inspect the Kit

Unboxed components

Verify that the MCU, FPGA, jumper wires, and breadboard all arrived intact before you begin.

2. Add Headers to the FPGA

Solder headers

Solder (or press-fit hammer) headers onto both sides of the FPGA so that every I/O pin is accessible from the breadboard or jumper wires.

3. Seat the MCU in the Breadboard

Arduino placement Arduino placement side view

Align the Arduino Nano so that each row of pins straddles the breadboard’s center channel and press down until the pins are fully seated.

4. Connect the MCU USB Cable

USB to MCU

Attach the mini-USB cable to the Arduino Nano. The connector only fits one way—avoid forcing it.

5. Plug the MCU into Your Computer or USB Hub

MCU to hub

Either connect through a powered USB hub (recommended when sharing ports with the FPGA) or plug the cable directly into your workstation.

6. Connect the FPGA via USB

FPGA USB

Use the supplied micro-USB cable to power and program the iCEstick. Again, a powered hub is helpful but optional.

7. Bridge Arduino Pins A0 and D2

A0 to D2 jumper

Place a male-to-male jumper between analog pin A0 and digital pin D2. This loopback lets the MCU monitor its own DAC/ADC signal path during experiments.

8. Wire the MCU to the FPGA

A0 to FPGA pin 10

Close-up wiring iCEstick pinout

Use a male-to-female jumper to connect Arduino pin A0 to FPGA pin 10 (labeled on the iCEstick silkscreen and in the pinout above). Double-check continuity before powering the boards.