A powerful ECP5 board for open source FPGA development

The ULX3S is a fully open source, compact, robust and affordable FPGA board equipped with a balanced spectrum of extra components and expansions. Although primarily developed as a teaching tool for mastering the principles of digital circuit design 1, a wide selection of useful features and interfaces enables it to serve as a broad spectrum module for installation in complex devices.

ULX3S uses powerful Lattice Semiconductor ECP5 series FPGA chip supported by the latest open-source toolchains. This makes the ULX3S one of the most powerful and desirable platforms for FPGA enthusiasts available today. ULX3S comes equipped with onboard WiFi, display, buttons, LEDs and storage. Flash it using the WiFi connection (over-the-air update), or with one of the bitstreams stored on SD card and browsed by onboard OLED display and buttons. Due to its battery-backed RTC, it can power down completely and wake up only on certain events making it useful for low power applications such as battery-powered remote sensor nodes. And if you’re not of the low-power type, onboard peripherals such as SDRAM, USB, Digital video out, onboard FM/ASK antenna, ADC and DAC can make it audio/video powerhouse for signal processing and synthesis, motor control or SDR cases. You can emulate arcade machines or retro computers like Minimig(Amiga) or modern systems like F32C (MIPS/RISCV). It has 56 GPIO pins, all routed as differential pairs and a PMOD compatible pinout, opening it to a wide range of expansion options. If you are just starting with FPGA, you can also use the ULX3S as powerful Arduino and program it using Arduino IDE in seconds.

It has been actively developed since 2016 and is the result of collaboration between Radiona.org / Zagreb Makerspace and FER – Faculty of Electrical Engineering and Computing – University of Zagreb, Croatia.

1 ULX3S is beeing actively used in Digital Logic class at the University of Zagreb Faculty of Electrical Engineering and Computing, Croatia

   Latest tweets:


  • FPGA Lattice ECP5 LFE5U-85F-6BG381C (84K LUT)
  • USB FTDI FT231XS (500kbit JTAG and 3Mbit USB-serial)
  • GPIO 56 pins (28 differential pairs), PMOD-friendly with power out 3.3V/1A 2.5V/1.5A
  • RAM 32MB SDRAM 166 MHz
  • Flash 4–16MB Quad-SPI Flash for FPGA config and user data storage
  • Mass storage Micro-SD slot
  • LEDs 11 (8 user LEDs, 2 USB LEDs, 1 WiFi LED)
  • Buttons 7 (4 direction, 2 fire, 1 power button)
  • Audio 3.5 mm jack with 4 contacts (analog stereo + digital audio or composite video)
  • Video Digital video (GPDI General-Purpose Diferential Interface) with 3.3V-5V I2C bidirectional level shifter
  • Display placeholder for 0.96" SPI COLOR OLED SSD1331
  • WiFi+bluetooth placeholder for ESP-32 (Standalone JTAG web interface over WiFi)
  • Antenna 27, 88–108, 144, 433 MHz FM/ASK onboard
  • ADC 8 channels, 12 bit, 1 MSa/s MAX11125
  • Power 3 Switching voltage regulators: 1.1V, 2.5V, 3.3V
  • Clock 25 MHz onboard, external differential clock input
  • Low power sleep 5uA/5V standby, RTC MCP7940N clock wake-up, power button, 32768 Hz quartz with CR1225 battery backup
  • Dimensions 94 × 51 mm

Comparison chart

ULX3S Lattice ECP5™ Evaluation Board Lattice ECP5™ Versa TinyFPGA EX FleaFPGA 'Ohm' KONDOR AX
License OSHW Proprietary Proprietary OSHW OSHW Proprietary
Price Range $60–$200 $100 $250 not yet released $45 $1500–$2000?
Schematics Published? Yes Yes Yes Yes Yes Yes
Design Files Published? Yes No No Yes No No
Physical Dimensions 94 × 51 mm 180 × 100 mm 165 × 110 mm 61 × 18 mm 65 × 30 mm 180 × 130 mm
Model ECP5 12F
ECP5 25F
ECP5 45F
ECP5 85F
ECP5 85F ECP5 45F ECP5 12F
ECP5 45F
ECP5 85F
ECP5 25F ECP5 85F
LUT Capacity 12K–84K 84K 44K 12K–84K 24K 84K
Embeded Memory (Kbits) 3744 (on 85F) 3744 1944 3744 (on 85F) 1008 3744
USB-Serial JTAG FT231X FT2232H FT2232 None FT230X FT2232
Programming over USB-JTAG,
Direct USB to FPGA Yes No No Yes Yes No
User IOs 56 178 Unknown 42 29 365
PMOD connector placeholders 4 1 No No No No
User Buttons 7 3 2 1 No 2
DIP Switches 4 8 8 No No 10
User LED 8 8 8 1 1 8
Indicator LED 3 9 10 1 No 6
Onboard Clock 25MHz 12MHz
100MHz 48MHz
25MHz 100MHz
Flash 32–128 Mbit QSPI 128 Mbit QSPI 128 Mbit QSPI 64 Mbit QSPI 8 Mbit SPI 64 Mbit QSPI
Onboard RAM 32MB SDRAM No 1024MB DDR3 up to 16MB HyperRAM 32MB SDRAM 512MB DDR3
Video Out Digital (GPDI),
Analog Composite PAL/NTSC (3.5 mm jack)
No No No Digital (GPDI) Digital (HDMI)
Audio Out Digital S/PDIF (3.5mm jack),
Digital (GPDI),
Analog stereo (3.5 mm jack)
No No No Digital (GPDI) Digital (HDMI)
ADC MAX11125 No No No Sigma-Delta No
Storage Micro-SD No No Micro-SD Micro-SD Micro-SD,
Ethernet Possible over:
No Yes No No Yes
Display Placeholder for 0.96" SPI color OLED SSD1331 No 14-segment LED No No No
Antenna 27, 88–108, 144, 433 MHz FM/ASK onboard No No No No No
RTC (Real-time Clock) MCP7940N, Low Power Sleep, Wakeup No No No No No
Power Input USB 5V 12V 12V USB 5V USB 5V 12V
GPIO bank voltage levels 3.3V,
2.5V (jumper selectable)
3.3V 3.3V 3.3V 3.3V 3.3V
Power reserve to drive external circuits 3.3V/1A
? ? ? ? ?
Differential Pairs 28 9 Unknown No 12 Header
Single-ended only 5 178 Header 42 29 Header
SERDES 0 9 1 0, 2 (only EX85-5G variant) 0 4
Open Source Toolchain Yes Yes Yes Yes Yes Yes
Arduino support (FPGArduino) Yes Not yet Not yet Not yet Yes Yes
Confirmed working retro games consoles Yes No No No Yes No

Comparison chart was produced from currently available data. If you find any error in the specifications, or if you would like to see additional boards compared to ULX3S – let us know.


Retro gaming (Phoenix, Pacman, Scramble, Frogger)

Retro computing (Galaksija)

Retro computing (Minimig/Amiga)

Self-flash & Web interface

Arduino programming (FPGArduino)

Linux on ULX3S

Driving LED panel at 11.8 kHz


github ulx3s-links

Get in touch

ULX3S Campaign     E-mail

For more information about the board or specifications contact us via e-mail
or join our gitter channel.