BB3-CM4 - importing and combining boards from Eagle
At the start of 2023. NLnet decided to sponsor the development of BB3-CM4.
Check more details here:
https://nlnet.nl/project/BB3-CM4
Combining two different designs in Eagle 6
Sometimes you have two different designs in KiCad that you want to combine and have completely "synced" schematics and board files. We need exactly that for our BB3-CM4 project. We want to combine the Envox MCU board with the Envox backplane board and we also want to have schematics connected. We are doing this as we want to replace STM32 MCU with connectors that will be compatible with Raspberry Pi CM4. As CM4 has PCIe possibility we want to add one PCIe slot to the Envox backplane board. PCIe probably won't work over current connectors, so we have decided to make one board that will hold everything. But for that importing from Eagle and combining needs to be done.
Converting Eagle projects to KiCad
Import each project independently you can do that in KiCad by opening New Project then in the File menu selecting Import Non-KiCad project >> EAGLE Project
Point the browser to the Schematic or Board file and click on Open
KiCad will now ask you where to save KiCad files - you can create a KiCad folder first
Get into a newly created folder and click Open to save into it
PCB editor will ask you to map PCB layers, most of the time you can just do Auto-Match Layers
Now re-check if the layers are correctly matchedNow re-check on the right side is layers are corectly matched
Starting to work with KiCad files
And now you have your board and schematics imported in KiCad - next we will run DRC
Clearing DRC errors
That will bring a lot of errors and warnings - most of them are just design rules errors
You can go to File menu >> Board Setup and change the rules
Or if you already have the same layers setup board you can import all or partial settings from that board
You will now notice that the board and other settings are changed
So let's re-run DRC - seems most errors are now cleared or switched to warnings
With a little check, you will clear all errors
There are still a lot of parity warnings that we want to clear
Switching to Schematics View
In schematics view you will need to clear all errors or bad connections as imports can look messy
Electrical rules checker could help you in clearing errors
Once you are satisfied you need to save schematics - you will need to save all sheets ...
Sync Schematics with PCB
Now go back to PCB view - and from the Tools menu select Update Schematics from PCB
I am using these settings to Re-link footprints and update Values and Footprint assignments
I still see some errors - on this board, they are just some logos, so I can first remove logos and then run Update
Cool, now half of the warnings are gone, and the board and schematics should be "synced"
Now do the same for other board
Some needed changes on the second board
Both board's Schematics will need to be in sheets format - like this
Once you have a second board ready check if part references are the same as on the first board, if so you will need to reset existing annotations. I have selected that I just want to multiply all references with 100
After annotation it should look like this, now just save every sheet...
Remember to check the board set up on the second board
Check if layers match if not make them match on both boards
You can also import settings from the first board
Combining designs
Once you have both boards cleared open a new project, copy both designs files into the new project directory
Open new project schematics and insert both project schematics
Go to Preferences >> Manage Symbol Libraries
Add both board symbol libraries
Open PCB editor as you can only append boards if it is not open from the project
Import first PCB with append
Append the second board and save it to the combined PCB file
All done!
Open combined project, you can also check DRC and if the board and schematics are synced!
And that is it! You have combined two eagle designs into one! If you know an easier way to do it please let me know.
By: Goran Mahovlić
This project is funded by NLnet https://nlnet.nl/project/BB3-CM4/