Let's Make Robots! | RobotShop

Custom images on silkscreen layer for gEDA PCB

First off I have found no way to get gEDA and PCB to work properly in Windows. RobotGrrl used/uses it on her Apple machine.

Some years back I ran across a youtube video by sonodrome that explains how to add a custom silkscreen image to the top of a pcb in PCB (gEDA). It consists of using inkscape to generate a vector image and then convert it to pcb format with pstoedit. The problem with this workflow is you can only use the image on the top, not to mention I didn't have much luck generating images that had encircled whitespace. After way too many hours of fighting with generating an image I thought I would share my workflow.

I still made use of pstoedit, but, instead of inkscape, I am using a program called potrace. Like pstoedit it is a command line program.

With potrace you can convert images like bmp images to eps(default). The command is very simple.

potrace -o silkicon.eps -H .3 -W .4 silkicon.bmp (Example)

The previous example will generate an (-o) output file named silkicon.eps with a height of 300px x 400px from the file in the same directory called silkicon.bmp.

The eps file is fed in to pstoedit to generate the pcb file that we need.

pstoedit -f pcbfill silkicon.eps silkicon.pcb -ssp (Example)

This command will make a silkscreen layer pcb file from the silkicon.eps. I found the -ssp flag on a forum post. The -ssp flag attempts to clear up issues with isles of white surrounded by black oceans. Put another way it is meant to generate the proper code to leave the white areas white.

With the above commands we will have a silkscreen image that is on the top layer. Opening the generated pcb file will show your image in the lower left corner. Click on Select in the menu, then Select all visible objects. Move your image to the top left. Save your file, if you don't want the image on the back side.

For an image on the back side silkscreen, you can hit Tab (flip board top to bottom or Shift-Tab (flip board left to right). You still have your image selected, right? With your image selected and while you are looking at the bottom, click Select, then, Move selected to current layer. Congrats, your image should now be on on the silkscreen layer on the bottom. Save your layout.

Open your image.pcb with a text editor. scroll way down. Keep going. You will see Layer(9 "silk") TOP or Layer(9 "signal9") BOTTOM. Now it is a simple matter of pasting the whole of Layer 9 into the .pcb file of your current project.

Honestly, I felt the need to get this down, so I could look back on it whenever I need to look at it.

Questions? Suggestions? Complaints? :)

I forgot to mention. I used potrace and pstoedit to generate 2d dxf files a number of years back.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

You mentioned that it is a problem that the image is only on top— just curious, when do you need the same image on the top and bottom silkscreen layers?


potrace looks interesting, never knew this existed! (Of course, now i'm curious as to how it actually works :D) It's neat how you were able to use it to bypass Inkscape.


Something else that helped a lot with the RoboBrrd Brain Board artwork was to have the image as a footprint .fp file. This way you can add it to the main .pcb file, and it is easier to position or delete if you need to access the traces again. It depends on the artwork though, since for this case it took up the entire board.


Thanks for sharing this information! What are you making?


If you have any tips on smoothed artwork on the solder pads (and mask) layer, would be really interested! Was able to make a design using square pads, but really want to make curved shapes— similar to how its working on the silkscreen layer.

As the video I linked to explained, PCB doesn't like polygons on the silkscreen layer. I couldn't even convert the image to a footprint. The error was always a footprint must contain lines, pins, or vias. The image isn't exactly made of lines.

Re: smoothed artwork on other layers.

Once you have a pcb file of your image, you can select it all. Click Select and then Move to current layer. I would select the layer you want before moving to current layer though. :)

** I forgot to answer your "what are you making?" question. :) I am playing around with the idea of laying out a board that uses a DRV8835 (12 pin MOSFET h-bridge), some passives, and a few transistors to make a pin compatible board to replace/upgrade an L293 or SN754410. The DRV8835 can handle lower voltages for the motor (2v) as well as up to 1.5A continuous for each motor.

By the way, the DRV8835 only has 4 inputs, 4 outputs, logic voltage, ground, motor voltage, and a Mode select pin. The transistors and a couple passives "should" make the Enable pins function, to some extent. I don't have a schematic, but, here is the image of the top of the board:

And a link to the pdf file that showed me how enables might work.