- 1 Documents
- 2 Hardware
- 3 Software
- 4 Projects
- 5 FAQ
GitHub repository with the hardware files
iCE40HX1K-EVB programming connector
iCE40HX1K-EVB 34-pin bus connector
Get started under Linux
To develop with iCE40HX1K-EVB you need:
iCE40HX1K-EVB OLIMEXINO-32U4 as programmer (or any other Arduino compatible board) IDC10-15cm cable to connect iCE40HX1K-EVB with OLIMEXINO-32U4 SY0605E 5V power supply adapter USB-MINI cable optional but recommended USB-ISO
Installing Icestorm FOSS tools for iCE40
First we need to install the tools necessary to build Icestorm:
sudo apt-get install build-essential clang bison flex libreadline-dev \ gawk tcl-dev libffi-dev git mercurial graphviz \ xdot pkg-config python python3 libftdi-dev
Installing the IceStorm Tools (icepack, icebox, iceprog, icetime, chip databases):
git clone https://github.com/cliffordwolf/icestorm.git icestorm cd icestorm make -j$(nproc) sudo make install
Installing Arachne-PNR (the place&route tool):
git clone https://github.com/cseed/arachne-pnr.git arachne-pnr cd arachne-pnr make -j$(nproc) sudo make install
Installing Yosys (Verilog synthesis):
git clone https://github.com/cliffordwolf/yosys.git yosys cd yosys make -j$(nproc) sudo make install
The Arachne-PNR build converts the IceStorm text chip databases into the arachne-pnr binary chip databases. Always rebuild Arachne-PNR after updating your IceStorm installation.
Notes for Archlinux: just install icestorm-git, arachne-pnr-git and yosys-git from the Arch User Repository (no need to follow the install instructions above).
Preparing OLIMEXINO-32U4 as programmer
Download latest Arduino IDE we recommend you to use the one from Arduino.cc current revision is 1.6.9.
Copy iceprog.ino sketch from GitHub/iCE40HX1K-EVB/programmer/olimexino-32u4 firmware to examples folder.
Plug the USB cable to OLIMEXINO-32U4 and start the Arduino IDE
cd arduino-1.6.9 sudo ./arduino
From Tools select 'Arduino Leonardo' as board.
From same menu select the PORT where the board is attached it will be something like: '/dev/ttyACM0 (Arduino Leonardo)' or '/dev/ttyUSB0 (Arduino Leonardo)'
Open the iceprog.ino sketch
From menu Sketch-Include library-Manage libraries check if you have SPI and SPIFlash libraries installed if not install them.
Compile and Upload the sketch.
If everything complete without error now you have OLIMEXINO-32U4 set as iCE40HX1K-EVB programmer!
Hardware connection between OLIMEXINO-32U4 and iCE40HX1K-EVB
It is a pretty straight-forward - use a 10-pin UEXT compatible cable between the two boards (like CABLE-IDC10-15cm). However, also make sure that the switching button of OLIMEXINO-32U4 is set to position 3.3V!
The signals at the PGM connector of iCE40HX1K-EVB are at 3.3V DC! If you use a 5V-only board instead of OLIMEXINO-32U4 you need to drive all SPI signals to 3.3V DC externally. Else there might be a short-circuit or the connection would be unsuccessful.
Add iceprogduino to IceStorm
Copy iceprogduino folder from GitHub programmer to icestorm and build it
cd icestorm/iceprogduino make clean make make install
Make LED blink with IceStorm
Copy from GitHub ice40hx1k-evb to icestorm/examples then
cd icestorm/examples/ice40hx1k-evb make make prog
LED1 and LED2 should start blink which means the code is successfully loaded
Get started under Windows