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
|