Modular FPGA board

Modular FPGA board

At start of the year NLnet decided to sponsor development of modular FPGA, for now we will call it ULX4M as first version should have everything that ULX3S already has. Later we want to add more peripherals, and we are specially interested in adding fast peripherals that are now missing on ULX3S. Along with that future plans are also to create modules with multiple FPGA vendors so we can do more vendor neutral coding.

We started this project with buying few versions of connectors.

We selected cheaper ones – as we want to preserve affordability if ULX3S board. Little bit better connectors are priced around $7-$10 per pc. sometimes even more, and our plan was to have 4 connectors on each side (main board / module).

Raspberry CM4 is using connector that is available from multiple sources, and should remain available on longer period…

It should also be fast enough, as on raspberry it is used for two HDMI outputs.

Main board connector we decided to use
Connector we will use on module board

Even before this grant we noticed that include artists and designers early in process of making is almost crucial for project success. We have noticed that there are amazing 3D models done by PCB Art on twitter so we decided to experiment with KiCad and Bleder skills. In Radiona we had open call for members to join Blender team. Paula answered with wish to be included in this project. She already has some experience in Blender but not in the area of 3D PCB designs – read the blender story here:

If you are doing something similar please check PCB Art blog posts:

At first we toughs that we will make connector test boards with some power supply and LEDS but after I had a talk with emard, and we concluded that connecting some LEDS and power supply will not tell us much about connectors.
So we decided to go with GPDI in out – that way we could see if we can pass higher speed signals without issues.

While Paula and me experimented with Blender, we saw that there is possibility of object tracking. To do tracking in blender we will need some tracking points. With that on our mind we decided to create some art graphics that will be printed on the PCB. Paula created images and I placed those on our sample board…

After having some blender pictures we had idea of simple movie that will show boards snapping together. Here is experimental animation from Paula

Boards arrived so it was time for assembly
Did not think I should order stencil, and I found on the hard way that it is really hard to get those connectors on the board without stencil. Bottom connectors are not so problematic.

Top connectors are much more delicate and harder to work with

With few tries I finally managed to get them, but passing signal did not work – so I checked board wiress and found that I made quite a mess with connections. Luckily differential lines are connected right. But all single ended wires are miss connected.
So I cut all single ended wires on board you can see that on top picture.
And patiently connected each single ended wire from one side of the board to the other side. Not a perfectly looking fix…

After that “small” fix I connected cables and finally got picture.

Good thing to know is that having 4 connectors did not make any problems – boards still connect nicely together. It would be even better if it was done with stencil – as connectors would be alligned better.
As this connector is used in raspberry for passing HDMI signals we already new that this should work, but it is always a pleasure to reconfirm :)

Passing HDMI signal thrue boards
Boards connected together
Two test boards with connectors

Next big thing will be decision of PCB stack-up, and connector pin-out.
We are still trying to decide if we need to go with CM4 pin-out compatibility or with our rotation concept…

Join us on discord:

Leave a Reply