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

Made with Slides.com