Skip to content
Gustavo Segura edited this page Nov 30, 2017 · 201 revisions

ICEZUM Alhambra board

OpenFPGA development made easy. If your are interested in getting one board, please go to AlhambraBits

Features

  • FPGA development board (iCE40HX1K-TQ144 from lattice)
  • Open hardware
  • Compatible with the opensource icestorm toolchain, by Clifford Wolf
  • Multiplatform: Linux / Mac / Windows
  • Arduino like board: similar pinout than Arduino one / BQ zum.
  • You can Reuse most of available Arduino / Zum shields
  • Control your robots / printbots from an FPGA
  • 12 MHZ MEMS oscillator
  • ON/OFF switch (turn off your mobile robot easily)
  • Input power voltage: 6 - 17v
  • Max input current: 3A (Perfect for powering your robots)
  • 20 Input/output 5v pins
  • 8 Input/Output 3.3V pins
  • USB micro-B connector for programming the FPGA from the PC (same than zum board)
  • FTDI 2232H USB device allows FPGA programming and UART interface to a PC
  • Reset pushbutton
  • 8 general purpose leds (user leds)
  • 2 general purpose pushbuttons
  • TX/RX leds
  • Configuration in process led
  • 4 analogue inputs though I2C bus
  • Hardware protection against short-circuits, reverse polarity and so on

Introduction

This board is about exploring the opensource side of the FPGAs. We know that there are more powerful FPGAs. We know that the are very very very amazing software tools that can do a lot of stuff... but they are not opensource. So, if you like the freedom too, this board is for you

Pictures

Image Description
First prototype built
First prototype
Easy connection of sensors/actuators. Example: a servo, a led, a pushbutton and a buzzer
Connecting a 3D printed servo gripper
IceZUM Alhambra controlling a path follower robot
Render 3D view
Render Top view
Render Bottom view

Videos

Examples of use of the IceZUM Alhambra board. All of them are hardware: there is no cpu, no software, no libraries, just plain hardware on the FPGA :-)

Image Description
Click to see the youtube video Playing the imperial march :-) (VIDEO)
Click to see the youtube video Opening and closing a 3D printer gripper with a pushbutton (VIDEO)
Click to see the youtube video Testing an IR sensor (VIDEO)
Click to see the youtube video A 3D-printed robot following a black path (VIDEO)
Click to see the youtube video Locomotion of a 3D-printed caterpillar-like robot (VIDEO)
Click to see the youtube video Verilog-to-Bitstream Flow for iCE40 FPGAs in an ubuntu phone (VIDEO)
Click to see the youtube video Rasty! 8 3D-printable Alhambra-led boards connected to the Icezum Alhambra V1.1 (VIDEO)

Shields and Peripherals

Alhambra-led Board

  • Alhambra-led Github Repo
  • Description: Board with a led for connecting directly to the male 3-pins headers. The PCB is 3D printed
Image Description
The Alhambra-led board
One Alhambra-led connected to the Icezum Alhambra
Rasty: 8 Alhambra-leds connected to the board :-)

Pinout

Design source files

All the design files are locate in the github repo: schematics, PCB, BOM and GERBER files for manufacturing

Footprints and 3D models

All the 3D models have been designed using the opensource tool Freecad. In this table you can see the 3D components, the step files and their sources in Freecad. All the sources are located in the Freecad Parts library

3D component Footprint Step Freecad Description
C_0402.step C_0402.fcstd SMD capacitor
C_0603.step C_0603.fcstd SMD capacitor
C_1206.step C_1206.fcstd SMD capacitor
SOD-323.step SOD-323.fcstd SMD Diode
LED_0603.step LED_0603.fcstd SMD Led
DO-214AC.step.step DO-214AC.fcstd Protection, Bidirectional Transient suppression Diode
SOT23-3.step SOT23-3.fcstd Mosfet
F1812-505k.step f1812-505k.fcstd PTC Resettable Fuse
SOT-563.step.step SOT-563.fcstd Protection, USB ESD
USB-micro-B.step USB-micro-B.fcstd Connector, USB Micro B
1x6-pin-header.step 1x6-pin-header.fcstd 1x6 pin Header 2.54mm
1x6-socket-h.step 1x6-socket-h.fcstd 6 pin Socket Header 2.54mm
1x10-socket-h.step 1x10-socket-h.fcstd Connector, 10 pin Socket Header
1x8-socket-h.step 1x8-socket-h.fcstd 8 pin Socket Header 2.54mm
1x8-pin-header.step 1x8-pin-header.fcstd 1x8 pin Header 2.54mm
1x4-pin-header.step 1x4-pin-header.fcstd Connector, 1x4 pin Header 2.54mm
jack-2.1mm.step jack-2.1.fcstd Connector, Power, DC Power Jack
2x4-pin-header.step 2x4-pin-header.fcstd Connector, 8 pin Dual Header 2.54mm
1x3-pin-header.step 1x3-pin-header.fcstd Connector, Jumper,3 pin Male Header 2.54mm
L_0805.step L_0805.fcstd Inductor SMD
L_0603.step L_0603.fcstd Inductor SMD
L_4040.step L_4040.fcstd Inductor SMD
DFN2523-6.step DFN-2523-6.fcstd P-Channel MOSFET, 6 pin
R_0402.step R_0402.fcstd Resistor, SMD
R_Array_4x0603.step R_Array4x0603.fcstd Array of 4xResistors, SMD
sw_smd_6.0x3.8.step sw_smd_6x3.8.fcstd Micro miniature pushbutton Surface Switch
slide-sw-spdt.step slide-sw-spdt.fcstd SPDT Switch, Right Angle
sw-vert-tht.step sw-vert-tht.fcstd Micro miniature pushbutton Surface Switch
TQFP-144-iCE40.step TQFP-144-IPC.fcstd iCE40 HX1K Series FPGA
DFN-8-6x5mm.step DFN-8-6x5mm.fcstd NOR Flash Memory, serial
FTDI_QFN-64.step FTDI-QFN-64.fcstd Dual High Speed USB to Multipurpose UART/FIFO IC
Xtal-3_2x2_5.step xtal-3_2x2_5.fcstd Oscillator, Low-Power CMOS
MSOP-8_3x3mm.step MSOP-8.fcstd EEPROM, 2K Microwire Compatible Serial
PVQFN16.step PVQFN16.fcstd Voltage Translator, Hex
QFN16.step QFN16.fcstd ADC Converter, 12-Bit, 4-Ch, I2C
PVQFN20.step PVQFN20.fcstd Voltage Level Translator
DFN_3030-8.step DFN_3030-8.fcstd LDO Regulator, 8 pin
WSON-6.step WSON-6.fcstd LDO Regulator, 6 pin

FAQs

  • I am new to FPGAs. Is this board ok for me?
    Absolutely. This board is intended for people that never has designed a digital circuit and want to learn the basics. Learn how to create simple combinational circuits for controlling robots. Learn how the counters, pwm units, uarts and other devices works, using easy to plug sensors and actuators. Learn to think in a "hardware way" instead of software way. Synthesize your own small processors. This board is about learning digital electronics easily, using only opensource tools.

  • Why are you using Lattice ICE40 FPGA instead of the very well known ones from Xilinx or Altera?
    Because the ICE40 family from Lattice is (currently) the only one that has a fully opensource toolchain. Have a look at the Icestorm project by Clifford Wolf. We really believe that this project is going to change everything. This is like the gcc toolchain for the hardware world

  • Why are you using the horrible arduino pinout?
    Just for reusing some already made shields. This board is about learning, not creating a new "standard". There are hundreds of already working arduino shields. Why not reusing them? Designing hardware for using these shields would be fun. In addition, the IceZUM Alhambra has three-pin connectors to attach directly servos or sensors easily, without having to plug shields.

  • Where are the rest of the FPGA I/O pins?
    They are gone. For teaching digital electronics and learning with small projects we think that 20 I/O pins are more than enough

  • I know nothing about HDL languages. Is there any software I can use for uploading hardware into the board?
    Yes. We are working on the Icestudio tool. It is an opensource multiplatform tool (releases under the GPL license). Currently is very limited but we are improving it so that people can learn the basis of digital design. And the community can modify it.

  • I want to develop some cores, but using HDL languages. Is it possible? Of course. You can directly write your programs in Verilog and use the Icestorm toolchain for synthesizing and uploading the hardware. If you are not a beginner, you can choose the tools you want

  • I know VHDL language and do not want to use Verilog
    Currently, the Icestorm toolchain only supports verilog. But as these is an opensource project, we are sure that the community will support it in the future

  • But for learning and making simple circuits is better to use an CPLD. Why using an FPGA?
    Because we do not know of any CPLD with an fully opensource toolchain. For educational purposes, we think that the software should be opensource

  • Why should I prefer the IceZUM board instead of Papilio, that is much more powerful? Because the Papilio boards are based on Xilinx FPGAs, that do NOT have opensource tools for generating the bitstreams. You need the propietary tools from Xilinx. IceZUM board is about freedom

News

  • 2016/09/26: The Icezum Alhambra v1.1 design is sent to Surtel (Located in Jaen, Spain) for manufacturing a batch of 110 boards!. The boards should be ready (pcb + smd mounting) by Nov-11th.

  • 2016/09/24: Talk about Opensource FPGAs at the Madrid Mini maker faire (in spanish). The icezum Alhambra v1.1-RC1 is shown (More information) (Pictures)

  • 2016/09/23: The Icezum Alhambra v1.1-RC1 is shown for the first time in Granada University. Demos are performed during the talk: "FPGAs libres"(in spanish) (More information) (Pictures)

  • 2016/09/22: Three Icezum Alhambra V1.1-RC1 are hand mounted and tested. They work ok!

([Large image](https://github.com/FPGAwars/icezum/raw/v1.1-altium/wiki/v1.1-RC1/PCB-Icezum-Alhambra-v1.1-RC1-Three-prototypes-hand-mounted.jpg)) ([More images](https://goo.gl/photos/LNhoHUZJssGUk7si8))
  • 2016/09/14: The 10 PCBs (V1.1-RC1) from PCBway has arrived to Pinos del valle (Granada, Spain)!
([Large image](https://github.com/FPGAwars/icezum/raw/v1.1-altium/wiki/v1.1-RC1/PCB-Icezum-Alhambra-v1.1-RC1-top.jpg)) ([More images](https://github.com/FPGAwars/icezum/tree/v1.1-altium/wiki/v1.1-RC1))
  • 2016/09/02: V1.1-RC1 is ready. It is sent to pcbway for manufactoring 10 PCBs for testing

  • 2016/07/28: Icezum V10K is Released! Technological Heritage Edition. This version belongs to our Technological Heritage. Anyone in the world can study this board, modify it and create derived work. The board has been created from the scratch using only Opensource tools:

    • PCB, esquematics: Migrated to Kicad (4.0.2)
    • 3D Models: Freecad (0.16)
    • Pinout: Inkscape (0.91)
    • BOM: LibreOffice (5.1.4.2)
  • 2016/05/30: Icezum schematic migrated to Kicad! (Folder)
    (Large image)

  • 2016/05/18: Icezum pinout migrated to SVG, so that anyone can open / edit / modify it using inkscape (only opensource tools) (Repo folder)

    (Large image)

  • 2016/05/04: Alberto Piganti has made a wonderful pinout ¡Thanks!
    (Large image)

  • 2016/03/08: The first 5 prototypes are ready! :-)

    (Large image)

  • 2016/03/07: First bitstream downloaded into the IceZUM Alhambra from GNU/Linux Ubuntu 15.10. Using platformio-fpga and the Icestorm toolchain

  • 2016/03/05: First bitstream downloaded into the IceZUM Alhambra! The test has been done with the iceprog cross-compiled for windows

  • 2016/03/04: Soldering and initial tests

  • 2016/03/03: ¡The first PCBs have arrived! :-) (Image)

  • 2016/02/28: This flavour of icezum will be called Icezum Alhambra. The name was suggested by Sebastián Gallardo in this post in the FPGA-war spanish google group. The Author (Eladio Delagado) is from a small town in Granada, called Pinos del Valle

  • 2016/02/27: The PCBs have been already manufactured by pcbway and they are sending them. The estimated delivery date is March 03 2016. Can't wait to have then in our hands!

  • 2016/02/22: Components from Farnell has arrived!

  • 2016/02/19: Initial components for mounting the prototypes has arrived! :-)

Image Description
Lattice ice40HX1K FPGAs
Components in their bags
  • 2016/02/18: PCB Initial version (rev 1.0-1607) is sent for manufactoring. 5 units for testing. Manufacturer: pcbway

History of the project

Icezum Alhambra releases and EDA tools used over time

V1.0

  • 2015-12-20: The icezum board was conceived in the BQlabs, the robotics and innovation department at BQ. The idea was to have a very easy to use FPGA board, fully openhardware, similar to Arduino/ZUM boards, so that anyone can connect sensors and create robots or small projects using an FPGA instead of a processor. We wanted to extend the educational approach of BQ to the digital circuits design. At that time, Juan Gonzalez (Obijuan) was the head of the department. Eladio Delgado, a very-skilled senior external engineer was assigned the task of designing the board. He was already involve in other projects with BQ

  • 2016-02-18: The icezum board bqlabs repo at github is created and all the V1.0 files released

  • 2016-02-29: The board was renamed to Icezum Alhambra because Eladio lives in a small town in Granada. The name was suggested by Sebastián Gallardo in this post in the FPGAwars community (In Spanish)

  • 2016-03-05: The first prototype is built and a bitstream is successfully upload into the board! Images 10 PCBs were manufactured in total. 5 Prototypes were mounted (by hand) by Eladio and his sister María. 5 more were mounted one mounth later

  • 2016-04-14: BQlabs was disolved and this proyect was stopped. Many thanks to BQ for all its help during this period. Thanks for sponsoring the Icezum board

V1.0K

  • 2016-04-20: The project is continued by the FPGAwars community, lead by Obijuan. The FPGAwars github organization) is created and all the repositories related to openfpgas are moved there

  • 2016-05-01: A Small local crowdfunding is organized in the FPGAwars community (Original message, in spanish). Only 100 V1.1 boards will be manufactured if an amount of 6500€ is raised

  • 2016/05/18: After two weeks, we already have the commitment of the people for paying the money for building the boards (Board funded!)

  • 2016/05/30: The icezum Alhambra is being migrated to Kicad by Juan Gonzalez (Obijuan). Also the 3D models were designed with FreeCAD, so that the Icezum Alhambra is not only an openhardware board, but also a board designed with opensource tools. This way, anyone in the world can easily have access to all the designs, to study them, modify them and creating new boards from them. This version will be called V1.0K (K stands for kicad). It is not going to be manufactured, but rather a starting point for the future versions

  • 2016/07/03: All the money (6500€ in total) is received from the backers! Thanks a lot!!! (Backers list)

  • 2016/07/28: V1.0K is released!

V1.1

  • 2016/04/20: In paralell with the V1.0K version, Eladio started to work on the V1.1, which is the one that will be manufactured for the backers. As there were still no Kicad version when Eladio started, It is being designed in Altium and will be migrated later to Kicad as the V1.1K version

  • 2016/09/22: Three Icezum Alhambra V1.1-RC1 are hand mounted and tested. They work ok!. The PCBs were manufactured in pcbway. The design is validated

  • 2016/010/03: Icezum Alhambra v1.1-RC1 is released

V1.1K

TODO

Authors

  • V1.0: Eladio Delgado Mingorance, from Pinos del Valle, Granada, Spain. Sponsored by BQ
  • V1.0K: Migrated to Kicad by Juan González (Obijuan). 3D models designed with FreeCAD. Everything is generated using only opensource tools (schematics, pcb, 3D models, pinout, BOM...). This version belongs to our Technological Heritage
  • V1.1: Eladio Delgado Mingorance, from Pinos del Valle, Granada, Spain

Credits

  • BQ. Thanks for funding this project from 2015-12-20 to 2016-04-14. During this period, the icezum V1.0 was born and 10 prototypes were manufactured.
  • María Delgado Mingorance, for helping in the manufacturing and design of the V1.0
  • V1.0 was derived from the Arduino Uno board
  • V1.0 was derived from the zum core board by BQ
  • V1.0 was derived from the Icestick by Lattice
  • V1.0K was derived from Icezum Alhambra V1.0 by BQ
  • V1.1 was derived from Icezum Alhambra V1.0 by BQ
  • Icestorm project, by Clifford Wolf and Mathias Lasser
  • Icezum Pinout, by Alberto Piganti
  • Jairo Zerberos. Migration of the FT2232H schematic symbol from altium to kicad. Thanks!
  • altium2kicad. Tool used for the migration from Altium to Kicad. Many thanks to the developers!
  • Kicadstepup. Tool for exporting the board to FreeCAD
  • Juan González (Obijuan): V1.0 specifications. Migration to Kicad (V1.0K)
  • Alhambra festival picture, by Cristina Urdiales. Thanks for this beautiful paiting!

Acknowledges

  • Many thanks to BQ, for funding the initial prototype V1.0, during the period 2015-12-20 to 2016-04-14. Thanks a lot for increasing our technological heritage by sponsoring openhardware boards.

License

Licensed under Creative Commons Attribution-ShareAlike 4.0 International License