Custom "MESA 7c81 Clone" PCB featuring a Raspberry Pi Compute Module 5

More
04 Mar 2025 16:03 #323151 by Niklas
Hello,
I made a custom version of the MESA Electronics 7c81 FPGA Card that I thought some of you might find interesting. 
I've attached images of the progress I've made so far. 





I haven't ordered the PCB yet, as I wanted to ask first, if any of you guys on here can find anything wrong with it. As I'm a student with limit budget I'd like to be a little more reassured that I'm not missing anything.
I used the  7c81 Schematics  found in this forum post and the schematics of the official  RPi CM5 IO-Board  to create my own schematics.

This browser does not support PDFs. Please download the PDF to view it: Download PDF


This browser does not support PDFs. Please download the PDF to view it: Download PDF





I have a few questions I haven't found a good answer for and I'd be happy to recieve constructive criticism on any part of the design.
  • The SPI0 Bus of the RPi (SDA0, SCL0) is shared by the Serial Flash for the FPGA and one of the MIPI DSI/CSI-2 FPC connectors. Will this cause conflicts?
  • I wasn't able to avoid routing traces under the FPGA, will this be likely to cause problems or will I be able to get away with it?
  • Is it a good idea to ground pour the top and bottom signal layers of the 4 layer stackup, if I'm already using the two inner layers as ground planes?
Thank you in advance!
Niklas
 
Attachments:
The following user(s) said Thank You: besriworld

Please Log in or Create an account to join the conversation.

More
04 Mar 2025 16:11 #323153 by andypugh
I can't advise on your PCB design, but I think this looks like a nice idea.

I have occasionally thought that there should be a niche for a similar board, but with on-board stepper drivers (Trinamic or some other serially-controlled driver)
That would, of course, need a dedicated HAL driver, but those can be surprisingly straightforward.
The following user(s) said Thank You: Niklas

Please Log in or Create an account to join the conversation.

  • unknown
  • Away
  • Elite Member
  • Elite Member
More
04 Mar 2025 17:54 #323164 by unknown
I would have brought the JTAG signals out for initial programming of the FPGA and not shared the serial flash signals.
May sound cumbersome but programming only needs to be done once via JTAG, after that mesa flash does the job fine.
I've thought along the lines of Andy that it would be an interesting project.
From my 7c81 clone experience I think there is the possibility of being able to bring out an extra 17 pin port, for a total of 68 io. Tho this would require firmware changes, new custom board name and and such. Also I made some changes to mesa flash and the driver to suit.
One thing I have noted with the RPi5 is that it's more forgiving in relation the SPI cable length and "messiness", IE it will tolerate longer DuPont cables that an RPi4 would. I thought I would just mention this.
Apart from not having the skill to design a board to suit, nor anyone to help during the process is that I like having the boards seperate, just in case my butter fingers cause one the voltage translation chips to blow a smoke valve and damage the PCB. Honestly this is likely to be a rare event.
On the whole good luck and keep us informed. If you have any questions regarding the Linuxcnc image I'm happy to help.
The following user(s) said Thank You: Niklas

Please Log in or Create an account to join the conversation.

More
04 Mar 2025 19:23 #323171 by PCW
Normally on a 4 layer card you do not need top or bottom fills
unless for heat sinking or shielding. You do need to be a bit careful 
about the 3.3V/1.2V plane cut/bypass capacitors/supply inductance,
and some under FPGA filling of the VCC plane can help here.

The SPI clock will be the fussiest signal so if you are routing it
a long distance, it may need parallel termination at the end of the trace
(series termination does not work with two endpoints)
The following user(s) said Thank You: besriworld, cakeslob, DSS, Niklas

Please Log in or Create an account to join the conversation.

More
08 Mar 2025 04:23 #323492 by cakeslob
I am liking the look of this board. Did you do this in easyeda?

Suggestion, add the rpi 40pin header. Aside from being able to add stuff rpi side, I find it valuable for debugging the MCU/FPGA side of the board using a regular rpi without having to keep removing a cm module and you can use it as a backup incase you damage the 100pin hirose connectors or theres another RPi/chip shortage
The following user(s) said Thank You: Niklas

Please Log in or Create an account to join the conversation.

  • unknown
  • Away
  • Elite Member
  • Elite Member
More
08 Mar 2025 05:02 #323494 by unknown
Was thinking about this today.......Very interested

Please Log in or Create an account to join the conversation.

More
09 Mar 2025 10:00 #323557 by jst
I'm also designed a mesa clone for a Raspberry Pi, currently in the process of testing everything.
Except for the reversed Sserial Pinout it looks like I got everything right.
You can take a look at my schematic for reference: github.com/jstjst/stmbl-fpga-master/blob...tmbl-fpga-master.pdf
Be careful the SPI In Out labels in the 7c81 schematic are reversed compared to the ucf file. Luckily I could fix that in the ucf file.
I routed some signals under the fpga, I see no problem with it. But try to have no completely hidden tracks so you can fix them if you got some connections wrong. In my opinion one of the more important things is the placement of the decoupling caps.

There are some pitfalls with the whole (fpga) programming (especially when using the Ethernet host interface). But with some reading through the forum I got everything pieced together, including recompiling mesaflash and linuxcnc. So it is totally doable (for reference, this is my first deep dive into linuxcnc and mesa/hostmot2, only used the RPi GPIO interface before, didn't use/own a mesa card).

Big thanks to Peter for providing the schematics and all the information that is on the forum!
The following user(s) said Thank You: DSS, Niklas

Please Log in or Create an account to join the conversation.

More
09 Mar 2025 11:47 - 09 Mar 2025 12:00 #323559 by Niklas
Thank you guys for the interest and the suggestions! I will try to respond to a few of them here:

"I have occasionally thought that there should be a niche for a similar board, but with on-board stepper drivers (Trinamic or some other serially-controlled driver)
That would, of course, need a dedicated HAL driver, but those can be surprisingly straightforward."


I was actually planing on designing a seperate IO Board featuring the Trinamic 5160 Drivers, as they would allow me to run high current stepper motors. They come with UART and SPI interface functionality but I haven't really seen an advantage in interfacing them serially. Maybe someone has a good argument as to why it would be worth it to go through the integration troubles?

"I like having the boards seperate, just in case my butter fingers cause one the voltage translation chips to blow a smoke valve and damage the PCB."


That was my thought process as well. I'm a little hesitant to put everything on one big PCB, as i feel like that would make errors more catastrophic. I also like the modularity of having seperate PCBs, especially in these early prototyping stages. I did actually bring the JTAG out, but realize that better labeling was neccesary, which I've since added.

"I am liking the look of this board. Did you do this in easyeda?
Suggestion, add the rpi 40pin header. Aside from being able to add stuff rpi side, I find it valuable for debugging the MCU/FPGA side of the board using a regular rpi without having to keep removing a cm module and you can use it as a backup incase you damage the 100pin hirose connectors or theres another RPi/chip shortage"


Yes, I did do this in EasyEDA. I started the project with EasyEDA becuase I foud the integration with the JLCPCB services appealing.
Including the 40pin Header is a great idea, which I will definitly add. Unfortunatly that will require major rerouting. Before rerouting everything I will continue collecting and thinking about additions/optimizations. That way I'll hopefully save money on design itereations.


I'd love to here if you guys have any other sugestions. The design philosophy behind this board is to make it the Compute Module 5 version of the Mesa Electronics 7c81, and I will probably finish this project making exactly that but I'm also open to brainstorming other ideas for potential future projects.

Thank you everybody!
Attachments:
Last edit: 09 Mar 2025 12:00 by Niklas. Reason: Quotation troubles

Please Log in or Create an account to join the conversation.

More
09 Mar 2025 15:59 #323562 by cakeslob
The serial steppers are nice because they are easy to setup and they are also very quiet. I dont know if there is an fpga firmware for it thought. The SPI ones, someone has done a custom firmware to work with those.

What is W13 doing? Is it just for swapping between the usb or the green connector?
Consider adding a jumper that can disconnect power to the FPGA or separate the 5v rail between FPGA and RPi5. I found it convenient having a separate jumper for that, incase you needed to either separate the power between the 2, or if you need to reset the MCU/FPGA, you dont need to turn off the RPi

When you are done will you post the design on that easyeda website so I can clone it to modify it? Im also hesitant about a 1 board thing, but I wanted to make something with a swappable MCU/FPGA , and the formfactor looks pretty decent sized.
The following user(s) said Thank You: Niklas

Please Log in or Create an account to join the conversation.

  • unknown
  • Away
  • Elite Member
  • Elite Member
More
10 Mar 2025 00:54 #323583 by unknown
Funny thing is, the Mesa 7c81 and a stacked RPi look like a more compact solution.

NVME would be nice, the RPi5 with a NVME drive is blazingly fast.


Did you stick with the Mesa fpga pin to 7c81 layout ? Or did you change it to make routing easier ?

If you change things around, especially the clock signal, the SPI_CLK for comms is a little tricky to work out to begin with.

Sorry don't mean to add feature creep, man I wish I could design a simple board for the KSZ8851 Ethernet chip for my mesa clone thingy. So hats off to you Old Chap.

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.142 seconds
Powered by Kunena Forum