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:

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

© Intergalaktik