Picture of Adding Custom Graphics to EAGLE PCB Layouts
The objective of this instructable is to show you how to add custom graphics to a PCB using EAGLE Layout Editor. You might want to add a logo or your website address to an electronics PCB that you have created. I found out that the process of adding images to a PCB was not trivial or obvious. In order to save everyone some time, I have listed out the process.

This is Hans Scharler, I am a web designer at ioBridge. I wanted to touch up a few PCBs that we were prototyping for fun. As with most people just starting out with using EAGLE PCB, I learned by following the "Beginning Embedded Electronics" tutorials over at SparkFun. One of the example projects shows you how to make an FT232RL USB-to-Serial Breakout PCB. I followed the tutorials and eventually learned my way around EAGLE to layout PCBs.

For this instructable you will need an installed copy of EAGLE and a PCB Layout that you want to add some graphics to. I am using SparkFun's FT232RL USB-to-Serial Breakout PCB (EAGLE Files) for example purposes.

Step 1: Create Graphics for your PCB Layout

Picture of Create Graphics for your PCB Layout
The hard part might be creating the graphics that you want to use on your PCB silkscreen. The bulk of my time trying to figure this out was trying to find the right combination of sizes and colors of the bitmap for my graphics. I searched around forums and websites trying to find some right answers. Hopefully it will be easier for you.

Most PCBs are small. The graphics will look much bigger on your computer screen than they will look on your PCB. Most PCB silkscreen is white. On your computer screen you want the artwork color to be black.

Create a large size bitmap (BMP) with a size of 2000x2000 at least. 

Add your artwork by either pasting it in or creating it new on the canvas. Make sure the color mode is set to grayscale or monotone. If you have some existing artwork, just overlay the artwork with black. That's what I did with our logo. In EAGLE we will be only importing one color.

To gauge the appropriate size, use 175 pt font on the artwork. When this gets added to the actual silkscreen the size will be around a 1/4" high. You can experiment with the size depending on how much room your logo or artwork needs to take up vs. the size allotment on your PCB. From my experience, every 175 pt high font is about 1/4" on the printed circuit board.

Remember if it looks big on your computer screen, then you are probably doing things right so far. On my attached screenshot, I am zoomed out to 33% and it still looks big.

Save the final design as a bitmap (BMP) at 8-bits at the most.
FourthDr3 months ago

How about an update for eagle 7.2? This method does not work on small PCB's (1 square inch or less), I can't get this to work for PCB's sent to OSHpark. Something about the resolution being too high. How would I place a small logo of my own similar to the Sparkfun flame on a small PCB and have it work? So far no method I have tried works on small PCB's.

TomekW5 months ago

Thanks, great job !!

n0th1n67 months ago

since you are using the "scaled" option, just calculate the scale factor so that you will always get the accurate size you needed. First, measure the available space in your pcb. Say for example you have 10mm x 10mm and your bitmap is 2000px X 2000px. Divide 10mm by 2000px, you'll get .005 scale factor.

ted99tw made it!9 months ago

Thanks for the great tutorial!!

螢幕快照 2014-11-17 下午8.19.31.png
Ugifer10 months ago

Thanks very much for this - I know it's now quite old but I found this yesterday and it worked excellently - along with the tip to use only 200dpi. I'm sending my board to iteadstudio rather than OSHpark but I wanted to be sure it would work so I used 200dpi for them too. Hopefully the resulting board will feature in an 'ible soon. I'll post a link if so.

One additional tip - you don't need to put your graphics in layer 21. Just import it into layer 200 as proposed (so you can select it and manipulate it easily but turning off other layers). Then, when you load your CAM job to produce your gerber files, add layer 200 to the layers used for the top (or bottom) silk screen.

I added a bmp to layer 200 and wanted it in the same place on the top and bottom silks, so I included it in both layers in the CAM job. It will be mirrored in the bottom layer but that didn't matter in this case.

Thanks again.


hpb1 year ago
Awesome tutorial! Thanks! :) Just a quick note - some PCB manufacturers such as the popular OSH Park use a 200 dpi printer for silkscreens. Make sure when you run the bitmap import ULP, select DPI and then enter 200. The image size is usually calculated this way - calculcate the size of the logo you'd want. Since you know the exact dimensions of the board anyway this is easy. Multiply that number by 200 (since the printing resolution is 200 dpi) and that should give you the image size in pixels.
Qtechknow2 years ago
I have a bitmap file on a Mac (used ToyViewer to create), and it is just black and white. When I use the import bitmap script, however, it gives me an odd choice of 256 colors, and it goes off of the screen. Any help???
jeeep2 years ago
Has anyone had any luck using this method then successfully uploading it to OSH Park? I have had no luck getting a bmp to turn into a silkscreen layer; their site seems to ignore the bmp (placed on correct layer).
liudr2 years ago
Thank you so much! I had some Japanese texts for silk screen and had to export into graphics and then used your tutorial to get everything in EAGLE. I can't read Japanese but everything looks the same as the source!
joerice012 years ago
This works great for me up until moving and rotating the graphic. It seems like when i go to move it only the individual lines are moved. Is there away to group the whole image together and then move it or is there something i'm doing wrong?

Suggestions for a easy import:
1) Import to layer 200 or so (somewhere empty).
2) use the layers button to turn off all other layers
3) use the group tool to select the whole image
4) now you can select the move tool, right click on the image and click move group
5) then you can turn on the other layers, and it will still be the active group, so you can right click to move it around.
6) select the change tool to change to tsilk or wherever you want it to end.
7) right click on the image and change:group. It'll still remember what the group is.
8) Win!
jeff-o3 years ago
Two quick tips that I learned the hard way:

1. Make absolutely sure that the image you're working with is actually black, and there is nothing in the background. Otherwise, Eagle gets confused and things don't render properly.

2. Eagle will place the logo right at the origin, and will draw it on top of the board. This makes it very hard to pick up and place where you want it! Before running the script, move your entire board up or over from the origin. Eagle will draw the logo in blank space, making it easy to group-select and move where you want.

This works well for one-offs, but I do recommend making a library of your graphics instead. This makes it much easier to move logos and stuff around just by grabbing their origin, rather than constantly group-selecting the logo (and everything beneath it!)
bigthump3 years ago
So I tried this and it worked great, but I had a lot of issues separating the logo bits out from the other layer 21 stuff (like some others have voiced).

At one point I tried putting it on layer 200 and just moving it as a group to layer 21 after I had it positioned, but that was a pain too.

So what I did is to create a library in Eagle, import the graphic into some packages (I have one each for .5, .75 and 1 scaling). Then I created a "created by..." (or blank probably works) schematic symbol and created devices for each logo size.

Now I can simply add the logo directly to the board from the library and move it around as a group from a single origin. Super easy!

Thanks for this instructable!
gentry4 years ago
No matter how small I make my image, I keep getting the message:
  /Users/gentry/koko5.bmp: Too many pixels y direction
  Anzahl der Pixel in Y zu gross

My bitmap is only 160 x 120 at this point.  (I first tried with a 2000 x 2000 image).

Any idea what's going on?


mwilhelm gentry4 years ago
hi, did you find a solution to this?
i have the same problem!!
After saving a BMP file using Pixelmator on OS X, I also had this issue. I finally solved it by downloading another application 'ToyViewer' and simply re-saving the bitmap file.
Excellent, that (ToyViewer) worked for me too. I had also tried 8-bit BMP, but that didn't seem to help.
iobridge (author)  gentry4 years ago
When you are saving the bitmap are you selecting an 8-bit BMP?
duncan_a4 years ago
It worked, I have a nice graphic imported and it's down in the bottom left hand corner of the PCB...

Unfortunately it is on the top of other items on layer 21, across a mounting hole and will be beneath components when the board is populated.

It absolutely refuses to be moved (or deleted)...

I'm fairly sure I followed the instructions 'to the letter' but I am new to Eagle. As I spent almost three days routing this board, I'm hoping somebody knows a simple solution to the problem.

irelandmc4 years ago
I have been trying to find some information on how to do this for weeks! Thank you for the great instructable! Worked like a charm!
rmdorsey4 years ago
Marvelous job IOBridge. I got it working the first time through!
iobridge (author)  rmdorsey4 years ago
CODIY5 years ago
Thank you for putting this instructable up. I messed with several different ways of getting logos onto boards, and usually ended up drawing them (for QR codes, anyway) in Eagle. This is much, much simpler!
profpat5 years ago
thanks, will try out this one on my newer board designs....
Nice tutorial. I would recommend creating a new package for the logo. That way you can add it to your PCB layout without having to repeat this process every time.
Spydamonky5 years ago
this may seen like a stupid question to you pros out there, but how do you set the outline of the board??
ansc Spydamonky5 years ago
You draw a wire of width "0" to the layer 20 (dimension) for your desired board outline. Or you move the existing outline-wires to your desired outline.
Spydamonky ansc5 years ago
Ahhhh thnx man
amando965 years ago
I usually just edit the pdf, but i rarely add logos
iobridge (author)  amando965 years ago
Do you make your own PCBs? If not, where do you get them made?
Yes, very easy to make, and unlike what it's been said, it's NOT more expensive that getting them made by batch PCB, olimex, etc. I'm setting up a tutorial soon, very detailed.
rhoaste5 years ago
The import of graphics is clumsy and unfriendly (by design) in my opinion. It's a pity Cadsoft haven't got a more flexible way to manipulate fonts and graphics. It's the one thing I think would be a considerable improvement for Eagle.
jeff-o5 years ago
Thanks for this. I figured there was an easy way to add graphics, but I didn't realize it was this easy!
E_MAN5 years ago
Cool!! I will try to add graphics to my PCB designs today. Thanks :D