K�fir (Kit Educativo con FPGA, Inclusivo y Reciclable => Inclusive and Recyclable Educational FPGA Kit)
is an economic development kit based on the Lattice iCE40HX4K-TQ144 FPGA.
What is K�fir?:
K�fir is a project to create educational development kits based on FPGAs. The project is based on the following objetives:
- Inclusive: low cost, to make it accessible, at least one version must be
constructed using simple soldering technologies.
- Recyclable: the kit, and the configuration cable, must be reusable for
purposes other than FPGA development.
The first result of this project is the Kéfir I board. This board is based on the
Lattice iCE40HX4K-TQ144 FPGA. The main features of this FPGA family are purposes
here.
To reduce the manufacturing costs, and the PCB complexity, we developed a simple
board, reducing the BOM as much as possible. At the same time we moved the configuration
functionality (and part of the power source) to a separated board. This board can be used
to configure other FPGAs, do AVR and ARM debugging and similar tasks. The board containing
this functionality is named MILK.
To allow Kéfir I functionality expansions, reusing existing boards, we included Arduino
compatible and PMOD connectors. This feature not only allows reusing Arduino shields,
but also opens an interesting possibility: reuse Kéfir I as an Arduino compatible board.
For more information visit: Lattuino.
Technical features:
- FPGA:
- Lattice iCE40HX4K-TQ144 (3520 LUT4s, FFs and carry; 2 PLLs; 80 kib SRAM; 107 GPIOs)
- Configuration memory: Winbond W25X40CL (SPI, 4 Mib, almost 3 Mib free)
- Clock: DIP-8/14 socket for oscillator. (avoiding the need to use 1 PLL for most applications)
- PCB: (FR4 1,6 mm)
- Layers: 2
- Minimum clearance: 8 mils
- Track width: 10 mils
- Vias diameter: 40 mils
- Vias hole: 0,51 mm
- Note I: The FPGA pitch is 0.5 mm
- Note II: all the components can be easily soldered (no QFN, no BGA, etc.)
- Connectors: (GPIO 3,3 V)
- The board has the ChipKit, similar to Arduino UNO, but with the double I/Os.
42 GPIOs.
- 2 PMOD 12 pins (8 I/Os + 2 GND + 2 Vcc each)
- 2 x 20 pins connectors for configuration and PC communication. These connectors are
designed to match the MILK connectors.
- User interface:
- Buttons: none physical, but 4 CapSense.
- LEDs: 4 general purpose LEDs (+ power + DONE).
- Analog inputs: (MCP3008)
- 8 x 10 bits channels
- Maximum sample rate: 100 ks/s
- USB:
- Type B connector
- TUSB1106 driver (LS/FS)
- Additionally MILK provides communication with a PC (SPI, I2C, RS-232, etc.)
- Power:
- Through the USB from MILK
- Optionally can be powered using 3.3 V

Comparison with similar boards:
The following table summarises the main differences between Kéfir I and other similar projects, highlighting the advantages and disadvantages:
Board |
Ice Blink |
Alhambra I |
K�fir I |
Alhambra II |
CIAA EDU-FPGA |
Published |
2012 |
2016 |
2017 |
2018 |
2020 |
Free |
No |
Yes |
Yes |
Yes |
Yes |
Free EDA (KiCad) |
No (Not available) |
Yes (3) |
Yes |
No (Altium) |
Yes |
FPGA |
Model |
HX1K |
HX1K |
HX4K |
HX4K |
HX4K |
LUTs/FF |
1280 |
1280 |
7680 |
7680 |
7680 |
BRAM |
64K |
64K |
128K |
128K |
128K |
PLLs |
1 |
1 |
2 |
2 |
2 |
Reloj |
333 kHz
3,33 Mhz
33,33 MHz |
12 MHz |
24 MHz Interchangeable (6) |
12 MHz |
12 MHz |
Configuration |
Detachable circuit |
No |
No |
Yes |
No |
No |
Standard (5) |
No |
Yes |
Yes |
Yes |
Yes |
Chip |
AT90USB2 |
FT2232H |
FT2232H |
FT2232H |
FT2232H |
Other uses |
No |
No |
ARM and AVR (Arduino) debug.
RS-232, JTAG and SPI cable.
Xilinx config. |
No |
No |
Flash |
M25P10 |
N25Q032A |
W25X40CL |
N25Q032A |
W25X40CL |
Capacity |
1M |
32M |
4M |
32M |
4M |
PCB |
Layers |
4 |
4 |
2 |
4 |
2 |
Smallest passive |
0402 |
0402 |
0603 |
0402 |
0805 |
QFN/BGA components |
Yes |
Yes |
No |
Yes |
No (1) |
Arduino connectors |
IOL |
Yes |
Yes |
Yes |
Yes |
Yes |
IOH |
Yes |
Yes |
Yes |
Yes |
Yes |
Power |
Yes |
Yes |
Yes |
Yes |
Yes |
AD |
Digital only |
Digital only |
Yes |
Digital only |
No |
ICSP |
No |
No |
Yes |
No |
No |
5 V tolerant I/O |
No |
Yes (20 I/Os) |
No |
Yes (20 I/Os) |
No |
Chipkit UNO32 connectors |
IOL UNO32 |
Yes |
No |
Yes |
No |
Yes |
IOH UNO32 |
Yes |
No |
Yes |
No |
Yes |
AD UNO32 |
Yes |
No |
Yes |
No |
Yes |
Other connectors |
PMOD |
3 (2) |
- |
2 |
- |
2 |
Otros |
1 SPI and 1 Power
(similar to Arduino Power) |
4xAnalog In, 8 I/Os |
16 I/Os and 1 SPI |
4xAnalog In, 8 I/Os |
- |
Total dig. I/O |
68 |
30 |
52+20 (4) |
30 |
48 |
Analog inputs |
Channels |
- |
4 |
8 |
4 |
- |
Resolution |
- |
12 bits |
10 bits |
12 bits |
- |
S.R. |
- |
100 ks/s |
100 ks/s |
100 ks/s |
- |
Interface |
- |
I2C |
SPI |
I2C |
- |
Human Interface |
Buttons |
4 Capsense |
2 |
4 Capsense |
2 |
4 |
LEDs |
4 |
8 |
4 |
8 |
4 |
Other interfaces |
Direct USB |
No |
No |
Yes |
No |
No |
Maximum PC to FPGA transfer |
- |
12 Mb/s (UART) |
>320 Mb/s (async FIFO) |
12 Mb/s (UART) |
30 Mb/s (MPSSE) |
Notas:
- The crystal has 4 pads similar to QFN packages.
- One shared with the AD UNO32 connector.
- The KiCad version was migrated from an original Altium one.
- 20 lines connects Milk to Kéfir I, removing Milk you get the additional lines.
- It means the configuration is done using standard tools (free and proprietary) and not using tools specific for this board.
- The oscillator is mounted on a socket allowing the use of another for the desired frequency.
Is it verified?:
The Kéfir I was manufactured in Argentina and manually soldered (using a PACE soldering station and a videoscope). The following hardware descriptions were tested:
- LED blinking at 1 Hz from a 24 MHz clock (46 cells)
- The 4 CapSense signaling in the LEDs (39/50 cells)
- A/D acquisition at 55 ks/s showing the 4 LSB/MSB using the LEDs (45 cells)
- AVR ATtiny22 compatible CPU sending "Hello world!" using RS-232 at 115200 b/s (1012 cells)
- USB device reported as a joystick, the CapSense are the joystick buttons, Low Speed (978 cells)
- USB device reported as a joystick, the CapSense are the joystick buttons, Full Speed (970 cells)
- USB device that allows reading the CapSense and controlling the LEDs, using WISHBONE, Full Speed (1046 cells)
- Arduino UNO compatible application using a TFT and touchscreen shield (see Lattuino)
All the implementations worked perfectly. We detected unusual noise levels in the
applications using the CapSenses. For this reason we created a revised version
without this problem (r1.14).
Where can I get K�fir I?:
Kéfir I is an open hardware project, all its design information can be downloaded from this site. Currently no supplier offers Kéfir I boards. We want to encourage its fabrication because we understand that asking every user to do it is not efficient. We encourage potential manufacturers to contact us. Is completely legal for a Universidad, or group of enthusiasts, to join efforts to manufacture a small lot of boards, reducing the cost. We invite people to coordinate such efforts using the lista de correo de K�fir. En el caso de voluntarios que puedan comprometerse a colaborar con el proyecto tenemos algunos circuitos impresos y/o componentes disponibles para que puedan armar su propia placa. En el caso de estudiantes universitarios que deban realizar su PPS (Pr�ctica Profesional Supervisada) es posible realizarla en el INTI trabajando en este proyecto. En cualquiera de estos casos por favor contactarse con nosotros.
Allowed I/O levels:
Is very important to understand that the I/O pins use 3.3 V and aren't 5 V tolerant. We left the pins protection outside the board, because the king and degree of protection depends on the use. If you plan to use the board in a hostile environment we recommend using a 3.3 V Arduino shield including suitable protections. The design of such a shield is very simple.
Licence:
Kéfir I is an open hardware project, all its design information can be downloaded from this site. The current licence for this project is Licencia Creative Commons Attribution - Share Alike 4.0 Internacional. This allows commercial use, but if you make changes you must share them under the same license.
Circuit:
Kéfir I was designed using KiCad.
KiCad:
KiCad is a free software EDA tool. The schematics and PCBs for MILK were designed using KiCad "4.0.5+dfsg1-4", this is the version shipped with Debian GNU/Linux 9. The manufactured revision (1.12) was made using KiCad "Build: (22-Jun-2014 BZR 4027)-stable", this is the version shipped with Debian GNU/Linux 8.
Which software can be used?:
You have at least two possible tool-chains:
- The free (but privative) manufacturer tools, they support VHDL and Verilog
(For more information)
- Free software tools, they support Verilog and a graphical design environment
(For more information)
Kéfir I is supported by both tool-chains.
Usage examples:
This section contains examples on how to use the board features:
- Capacitive buttons: this example shows how to use them in VHDL and
Verilog. The examples shows the use of various tools (iCEcube2/Diamond Programmer, IceStorm,
Xil Tools, APIO, APIO IDE and icestudio). You can navigate them on-line
or download.
Related documents:
The following papers are related to K�fir:
Contact:
For general questions tou can use the MILK's mailing list. For specific questions you can contact Salvador E. Tropea.
Supporting institutions:
The following institutions support this project:
- Universidad Tecnol�gica Nacional - Facultad Regional Haedo
- Universidad Tecnol�gica Nacional - Facultad Regional C�rdoba
- Universidad Nacional de Tierra del Fuego
- Universidad Nacional de Catamarca
|