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
- 232