Radiona.org / Zagreb Makerspace
FPGA Boards
KiCad
Funding ended on Apr 14, 2020 at 04:59 PM PDT.
ULX3S is a fully open source, compact, robust, and affordable FPGA dev board equipped with a balanced selection of additional components and expansions. Although it was designed primarily as a teaching tool for mastering the principles of digital circuit design, ULX3S incorporates a wide array of features and interfaces that allow it to serve as a broadly useful module for installation in complex devices.
Built around a powerful Lattice Semiconductor ECP5-series FPGA chip and supported by the latest open-source toolchains, ULX3S is one of the most powerful and desirable platforms available for FPGA enthusiasts. It comes equipped with onboard Wi-Fi, display, buttons, LEDs, and storage. Flash it with an over-the-air (OTA) update using the Wi-Fi connection or take advantage of the onboard OLED display and buttons to browse the contents of an SD card and select a bitstream.
Due to its battery-backed RTC, ULX3S can power down completely and wake up only in response to certain events. This feature makes it perfect for use in low-power applications such as battery-powered remote sensor nodes.
And if you’re not the low-power type, on-board peripherals like SDRAM, USB, digital video out, FM/ASK antenna, ADC, and DAC make it an audio/video powerhouse for signal processing and synthesis, motor control, and SDR use cases. It can emulate arcade machines and retro computers like the Minimig (Amiga) or modern systems like the F32C (MIPS/RISCV). It has 56 GPIO pins, all routed as differential pairs, and a PMOD compatible pinout, which opens it up to a wide range of expansion options.
Finally, if you are just starting out with FPGAs, you can use the Arduino IDE to program ULX3S in seconds.
Software engineers, embedded developers, and programmers learning Verilog will enjoy having a built-in ESP32 that can work cooperatively with or independently of the FPGA. Program the ESP32 natively using C/C++ with the Arduino IDE, the Visual Micro extension for Visual Studio, or the Espressif IDF commandline toolchain. You can also configure the ESP32 for use with MicroPython, Espruino, the JavaScript SDK, NodeMCU, LUA, mruby, .Net C# nanoFramework, and more!
ULX3S has been actively developed since 2016 and is the result of a collaboration between Radiona.org / Zagreb Makerspace and FER – the Faculty of Electrical Engineering and Computing – at the University of Zagreb in Croatia.
Our PCB design was authored by Electronic Mechanic Aerodynamic Research & Development (EMARD).
ULX3S | Lattice ECP5 Evaluation Board | Lattice ECP5 Versa | TinyFPGA EX | FleaFPGA 'Ohm' | KONDOR AX | TrellisBoard | |
---|---|---|---|---|---|---|---|
Model | ECP5 12F, 45F, or 85F | ECP5 85F | ECP5 45F | ECP5 12F, 45F, or 85F | ECP5 25F | ECP5 85F | ECP5-5G 85F |
License | OSHW | Proprietary | Proprietary | OSHW | OSHW | Proprietary | OSHW (MIT) |
Price Range | $99 - $155 | $100 | $250 | Unreleased | $45 | $1500 - $2000? | $500 - $1000 |
Schematics Published? | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Design Files Published? | Yes | No | No | Yes | No | No | Yes |
Physical Dimensions | 94 × 51 mm | 180 × 100 mm | 165 × 110 mm | 61 × 18 mm | 65 × 30 mm | 180 × 130 mm | 200 x 112 mm |
FPGA | |||||||
LUT Capacity | 12 K – 84 K | 84 K | 44 K | 12 K – 84 K | 24 K | 84 K | 84 K |
Embeded Memory (Kbits) | 3744 (on 85F) | 3744 | 1944 | 3744 (on 85F) | 1008 | 3744 | 3744 |
Peripherals | |||||||
USB-Serial JTAG | FT231X | FT2232H | FT2232 | None | FT230X | FT2232 | FT2232H |
Programming Over... | USB-JTAG, EXT-JTAG, Wi-Fi-ESP32-JTAG, SD-ESP32-JTAG | USB-JTAG, EXT-JTAG | USB-JTAG, EXT-JTAG | USB-bootloader, EXT-JTAG | USB-JTAG, EXT-JTAG | USB-JTAG, EXT-JTAG | USB-JTAG |
Direct USB to FPGA | Yes | No | No | Yes | Yes | No | via EHCI |
User IOs | 56 | 178 | Up to 29 | 42 | 29 | 365 | 104 |
Differential Pairs | 28 | 9 | Unknown | No | 12 | Unknown | 36 |
Single-Ended | 5 | 178 | Unknown | 42 | 29 | Unknown | 22 |
SERDES | 0 | 9 | 1 | 0, 2 (only EX85-5G variant) | 0 | 4 | 4 (PCIe x2 and m.2 x2) |
PMOD Connector Placeholders | 4 | 1 | No | No | No | No | 2 |
User Buttons | 7 | 3 | 2 | 1 | No | 2 | 4 |
DIP Switches | 4 | 8 | 8 | No | No | 10 | 8 |
User LED | 8 | 8 | 8 | 1 | 1 | 8 | 12 |
Indicator LED | 3 | 9 | 10 | 1 | No | 6 | 13 |
Onboard Clock | 25 MHz | 12 MHz, 50 MHz, 200 MHz | 100 MHz | 48 MHz, 200MHz | 25 MHz | 100 MHz | 12 MHz, 100 MHz, programmable |
Flash | 32–128 Mbit QSPI | 128 Mbit QSPI | 128 Mbit QSPI | 64 Mbit QSPI | 8 Mbit SPI | 64 Mbit QSPI | 128 Mbit |
Onboard RAM | 32 MB SDRAM | No | 1024 MB DDR3 | up to 16 MB HyperRAM | 32 MB SDRAM | 512 MB DDR3 | 1 GB |
Video Out | Digital (GPDI), Analog Composite PAL/NTSC (3.5 mm jack) | No | No | No | Digital (GPDI) | Digital (HDMI) | DVI via TFP410 |
Audio Out | Digital S/PDIF (3.5 mm jack), Digital (GPDI), Analog stereo (3.5 mm jack) | No | No | No | Digital (GPDI) | Digital (HDMI) | No |
ADC | MAX11125 | No | No | No | Sigma-Delta | No | No |
Storage | Micro-SD | No | No | Micro-SD | Micro-SD | Micro-SD, 8 GB eMMC | Micro-SD |
Ethernet | Via ESP32, USB | No | Yes | No | No | Yes | Gigabit (RGMII) |
Display | Placeholder for 0.96" SPI color OLED SSD1331 | No | 14-segment LED | No | No | No | No |
Antenna | 27, 88–108, 144, 433 MHz FM/ASK onboard | No | No | No | No | No | No |
RTC (Real-time Clock) | MCP7940N, Low Power Sleep, Wakeup | No | No | No | No | No | No |
Power | |||||||
Power Input | USB 5 V | 12 V | 12 V | USB 5 V | USB 5 V | 12 V | USB-C 5 V, barrel jack 12 V |
GPIO Bank Voltage Levels | 3.3 V, 2.5 V (jumper selectable) | 3.3 V | 3.3 V | 3.3 V | 3.3 V | 3.3 V | 3.3 V, 2.5 V, 1.8 V |
Power Reserve to Drive External Circuits | 3.3 V at 1 A, 2.5 V at 1.5 A | Unknown | Unknown | Unknown | Unknown | Unknown | 3.3 V, 2.5 V, 1.8 V at 2 A |
Software | |||||||
Open Source Toolchain | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Arduino Support (FPGArduino) | Yes | Not yet | Not yet | Not yet | Yes | Yes | No |
Confirmed Working Retro Games Consoles | Yes | No | No | No | Yes | No | No |
You will find setup and configuration guides, tutorials, and sample code in our FPGA Odysseus repository on GitHub. Additional resources are available in our Community Projects repository, or you can also reach out to other ULX3S developers through our Gitter community.
We are currently looking at four different production companies, all of which are more than capable of manufacturing ULX3S. We will likely wait until we have a better sense of the initial batch quantity before we settle on a provider, but we are confident in the reliability of all four options, and we do not forsee any surprises when it comes time to fabricate and assemble your ULX3S boards.
Once we have tested and verified all units, the entire batch will be sent to the US for distribution to backers via Crowd Supply’s fulfillment services.
Delivery within the US is included in the listed price, while delivery outside the US will incur the international surcharge specified for the relevant pledge level. Deliveries to EU countries, Switzerland, Australia, and Canada will have VAT and customs duties paid in advance, so backers in these countries will have no need to deal with Customs.
See Crowd Supply’s article on Ordering, Paying, Shipping: The Details for more information on delivery, VAT payments, etc.
As mentioned above, we are working with well-respected vendors and production facilities, and we have identified alternative providers, just in case. Shipping comes with its own set of risks, of course: component shortages, damaged boards, and shipping delays, to name just a few. We intend to manage quality control in-house, however, we’ve given ourselves enough of a buffer to feel confident in our delivery estimates.
Naturally, we will keep backers appraised through project updates should any setbacks occur during manufacturing or fulfillment.
"This is a really awesome dev board option that a newer FPGA developer can definitely grow into, and more experienced developers can really do some amazing things with."
Produced by Radiona.org / Zagreb Makerspace in Zagreb, Croatia.
Sold and shipped by Crowd Supply.
ULX3S development board with a Lattice ECP5 (LFE5U-12F-6BG381C) FPGA. 12k LUTs and a whole lot more.
Want to buy this item? Check the current project page for the latest information.
ULX3S development board with a Lattice ECP5 (LFE5U-12F-6BG381C) FPGA. 12k LUTs and a whole lot more.
Want to buy this item? Check the current project page for the latest information.
ULX3S development board with a Lattice ECP5 (LFE5U-45F-6BG381C) FPGA. 45k LUTs and a whole lot more.
Want to buy this item? Check the current project page for the latest information.
ULX3S development board with a Lattice ECP5 (LFE5U-85F-6BG381C) FPGA. 84k LUTs and a whole lot more.
Want to buy this item? Check the current project page for the latest information.
Ten ULX3S development boards with Lattice ECP5 (LFE5U-12F-6BG381C) FPGAs. 12k LUTs apiece. Outfit the team for a large project, deploy your creation within a business, or stock up for that engineering curriculum.
Want to buy this item? Check the current project page for the latest information.
A set of three expansion boards for ULX3S: one dual-USB board with support for IR send and receive, one Digital Video board for GPDI input or as a second GPDI output, and one OV7670 camera connector.
Want to buy this item? Check the current project page for the latest information.
Unpopulated ULX3S PCB
Want to buy this item? Check the current project page for the latest information.
Help fund future work by Radiona. (Thank you!)
Want to buy this item? Check the current project page for the latest information.
ULX3S development board with a Lattice ECP5 (LFE5U-85F-6BG381C) FPGA. 84k LUTs and a whole lot more.
Want to buy this item? Check the current project page for the latest information.
Radiona.org / Zagreb Makerspace works to enhance the visibility of makers' open source culture and sustainable production, as well as to help connect all possible fields of Science, Technology, Engineering, Art, and Mathematics (STEAM).