From ULX3S to modular ULX4M
About me
Goran
Repair technician of informatics equipment
Repair technician of banking equipment
SW/HW design engineer (LoRa, NB-IoT, FPGA...)
Member of Radiona.org – Zagreb Makerspace
Meetups, lectures, workshops, exibitions...
CEO and co-founder of Intergalaktik d.o.o.
About RadionaOrg
Radiona.org is a non-profit organisation and citizen lab consisting of makerspace/hackerspace, media art lab, Repair Café and residence program founded in 2011. The organisation is dealing with DIY (do-it-yourself), DIWO (do-it-with-others) and DITO (do-it-together) cultures, STEAM concepts, interdisciplinary and intergenerational non-formal education and hybrid activities.
Repair cafe
What is FPGA
Field Programmable Gate Arrays (FPGAs) are semiconductor devices that are based around a matrix of configurable logic blocks (CLBs) connected via programmable interconnects. FPGAs can be reprogrammed to desired application or functionality requirements after manufacturing.
Warren’s Crazy Small CPU
(c) 2017 Warren Toomey, GPL3
ULX3S
Davor Jadrijević joined Marko in 2014. on the F32C (soft-core CPU) and FPGArduino projects, which by their size have expanded ULX2S capacities, after which they move to development and creation of new ULX3S board.
In 2016. EMARD started to work on the board.
2017. we had first working prototypes.
CrowdSupply campaign started in 2020.
In 2021. ULX3S was delivered to users from more then 50 countries all around the world.
PCB design is authored by Electronic Mechanic Aerodynamic Research & Development (EMARD).
ULX2S
The first version of ULX2S was designed in 2011. by Marko Zec.
It was designed on Faculty of Electrical Engineering and Computing (FER) in Zagreb to cover the requirements of the
Digital Logic Course.
Lattice ECP5 FPGA
Lattice ECP5 FPGA
Up to 64Mb SDRAM
Lattice ECP5 FPGA
Up to 64Mb SDRAM
2 micro USB
Lattice ECP5 FPGA
Up to 64Mb SDRAM
JTAG - OLED
2 micro USB
Lattice ECP5 FPGA
Up to 64Mb SDRAM
Micro-SD slot
JTAG - OLED
2 micro USB
Lattice ECP5 FPGA
Up to 64Mb SDRAM
8 LEDs
Micro-SD slot
JTAG - OLED
2 micro USB
Lattice ECP5 FPGA
Up to 64Mb SDRAM
8 LEDs
Micro-SD slot
GPDI
JTAG - OLED
2 micro USB
Max 1920x1080 @30Hz without oveclocking
Lattice ECP5 FPGA
Up to 64Mb SDRAM
8 LEDs
Micro-SD slot
3.5 mm jack
GPDI
JTAG - OLED
2 micro USB
Lattice ECP5 FPGA
Up to 64Mb SDRAM
8 LEDs
7 buttons
Micro-SD slot
3.5 mm jack
GPDI
JTAG - OLED
2 micro USB
Lattice ECP5 FPGA
Up to 64Mb SDRAM
8 LEDs
7 buttons
4 DIP SW
Micro-SD slot
3.5 mm jack
GPDI
JTAG - OLED
2 micro USB
Lattice ECP5 FPGA
Up to 64Mb SDRAM
8 LEDs
7 buttons
4 DIP SW
Micro-SD slot
ADC
3.5 mm jack
GPDI
JTAG - OLED
2 micro USB
3x Power Supply
3.3V
2.5V
1.1V/1.2V
ULX3S back
3x Power Supply
FTDI
ULX3S back
Quad-SPI Flash
3x Power Supply
FTDI
ULX3S back
Quad-SPI Flash
3x Power Supply
RTC
FTDI
ULX3S back
Quad-SPI Flash
3x Power Supply
RTC
ESP32
FTDI
ULX3S back
ULX3S v3.1.7.
ULX3S is a fully open source, compact, robust and affordable FPGA board equipped with a balanced spectrum of extra components and expansions
ULX3S top side
ULX3S bottom side
ULX3S CrowdSupply campaign
https://www.crowdsupply.com/radiona/ulx3s
ULX3S CrowdSupply campaign video
Open Source Toolchain
Big thanks to YosysHQ team!
Intergalaktik d.o.o.
Founded in 2020.
Organize crowdfunding campaign for ULX3S
Taking care of ULX3S production
ULX3S distribution
ULX3S support gitter/discord/mail
Focused on opensource HW/SW solutions
Currently working on multiple open projects
(SynthoGame, FireFly, ULX4M, ULX3S extension boards, STM32-ULX3S, Megaphone, ULX3S-BB3)
https://intergalaktik.eu/
https://twitter.com/intergalaktikEU
FireFly
https://github.com/intergalaktik/firefly
MegaPhone
https://github.com/MEGA65/megaphone-r4-pcb
Testing ULX3S batches
First batches where tested with scripts done by Dobrica Pavlinušić
Testing ULX3S batches
Production companies are preferring GUI testing so Envox helped us to with designing batch testing with EEZ flow
Envox EEZ Studio
https://github.com/eez-open
Envox EEZ Studio
https://github.com/eez-open
ULX3S examples
https://ulx3s.github.io/
ULX3S examples
https://github.com/emard/ulx3s-misc/tree/master/examples
ULX3S extension boards
https://github.com/goran-mahovlic/ulx3s-extensions
USB
GPDI IN/OUT
OV7670
All fully open, check for more here:
Buying ULX3S and extension boards
New batch is arriving at Mouser in August
Limited quantities are available at Envox store
You can always contact us
In collaboration with Envox d.o.o.
The main objective of the project was to introduce FPGA technology in the existing open source EEZ DIB concept for modular T&M (Test & Measurement) solutions, and EEZ BB3, its first practical implementation whose master (control) module uses a 32-bit general purpose microcontroller (MCU).
https://www.envox.eu/eez-bb3/
BB3 ULX3S integration
We have successfully confirmed that combining BB3 and ULX3S is possible, but it was not easy to mix two HW projects
ULX3S was designed in KiCad and BB3 was designed in Eagle
Luckily KiCad provides import of Eagle board, but once imported Eagle design cannot progress.
BB3 ULX3S conclusions
BB3 ULX3S
While working on integrations and in talk with EMARD, Envox, Paul (MegaPhone project) and few other people from industry, we got to conclusion that modular FPGA board SoM ( System on module) would be solution for better and faster integration of FPGA into existing or any new project.
We applied for NLnet grant as we wanted to create multiple opensource SoM boards with same pinout that will eventually cover multiple FPGA vendors.
As grant was approved we have started to work on ULX4M
First board on our list was lattice ECP5 board with SDRAM ULX4M-LS (LS suffix stands for Lattice SDRAM)
As a part of NLnet grant we also had opportunity to experiment with blender.
ULX3S goes modular
import / .stl /.obj / .wrl
KiCad
FreeCAD
Imported wrl. file to Blender - the best option we tried / it gives us all materials, coper layer, silk layer and holes connected as one layer. Only components are disassembled to the faces.
First thing we needed to select was connectors.
We have tested a range of connectors, and some of them were quite expensive or to big.
After connectors review we have selected the same connectors as Raspberry Pi CM4 module is using.
They are cheap, available and already proven that they can support high speed.
After selecting those connectors we just got to conclusion that making board CM4 IO compatible would make it even more popular and we would already have wide range of base boards we could use.
ULX4M Pinout
ULX4M-LS SDRAM version
ULX4M-LD v001
ULX4M-LD v002
2 lane MIPI CSI camera port CAM0 and CAM1
2 lane MIPI DSI display port DISP0 (fake differential)
SerDes pair connected to second DSI connector DISP1
SerDes pair (TX/RX) connected to 2.0 header (radio experiments)
True differential GPDI video output
Fake differential GPDI video output
SD card connection - shared with HAT pins
SerDes connected to PCIe 1x
2x SerDes pairs connected over capacitors to connector
GPIOs
2 Buttons
4 LEDs
ULX4M-LD - DDR3 version
2 lane MIPI CSI camera port CAM0 and CAM1
2 lane MIPI DSI display port DISP0 (fake differential)
SerDes pair connected to second DSI connector DISP1
SerDes pair (TX/RX) connected to 2.0 header (radio experiments)
True differential GPDI video output
Fake differential GPDI video output
SD card connection - shared with HAT pins
SerDes connected to PCIe 1x
2x SerDes pairs connected over capacitors to connector
GPIOs
3 Buttons
2 DIP SW
8 LEDs
ULX4M-LD KiCad Layers
CM4 IO base boards
CM4 IO base boards
Open Source CM4 IO tablet
Balthazar Foundation
https://github.com/balthazar-space
Down to last transistor open Linux boot
With DDR3 version we can also run X
And yes, you can also run DOOM
Thank you!
https://nlnet.nl/project/ULX3M/
https://github.com/intergalaktik/ulx4m
https://gitter.im/ulx3s/Lobby
https://discord.gg/qwMUk6W
From ULX3S to modular ULX4M
By Goran Mahovlić
From ULX3S to modular ULX4M
ULX3S and ULX4M presentation
- 168