A tool that converts an image into multiple PCB layers:
Loads an image.
Copies it to multiple ‘sub-images’.
Runs a Threshold filter on each ‘sub-layer’ with ascending values.
Composes PCB layers using bitwise operations.
Converts the PCB layers to rectangles using a Quadtree algorithm (threaded).
Exports them into an Eagle .brd file.
As a Designer by trade I like to jump head-first into new disciplines which I know nothing about, learn to control the terminology and try to mess around in unexpected ways. I am also lucky to share studio space with Arkadi Rafalovich, A talented engineer and omni-potentialite, who inspires and guides me through learning the basics of electronics and Eagle PCB design.
While diving into the subject I was constantly visualizing and thinking about the tools that are missing for me, the tools I need for implementing my art and design.
PCB’s are usually designed functionally without any visual attention, A very boring rectangle. Sure, they have their digital charm with mazes of tracing running along the board, but as a user, I prefer my PCB’s when they're inside my products. Covered in a well designed injection-moulded shell.
I use the word ‘usually’ because sometimes you get boards like the Defcon badge - which can masterfully merge function and design to create a fun user experience.
So, what’s different in business cards and convention badges? These are where the engineer isn't working for a client, he relaxes a bit and has fun with the design tools. He’s not just a cog in the product development process. When he has no restrictions.
Sadly, even then, the board designer dare only to use the tools given. Drawing only in the ‘Silk’/’Copper’ layers or slightly shaping the board’s outline in the ‘Dimension’ layer.
4. All the layers!
Some of my past Design projects deal with layered/laminated materials and the smart use of the different layer properties:
Those were opaque materials. What intrigued me with PCB design-wise, was the ability to play with material’s opacity and the light transfer through the board. Artistically I thought I can convey a more complete message and user experience by having graphics that support and integrate with the board’s functionality.
Opened it up in Gimp. scaled it down (nearest neighbour) and duplicated it to a couple of layers.
I then run a threshold filter on the layers changing the value a bit in each one and saved the layers to separate files.
Only then have I noticed that the new versions of Eagle already have a built-in script for importing image, from colors to layers. “That’s great! This saves me a lot of time” or so I thought.
Don’t misunderstand, It's a really great tool, just not for my purposes.
You see, I need to control the cumulative combination of layer opacities in order to achieve my goal. I aim for the PCB to be facing up (showing the top layers).
For example:
Lightest - clear from traces or solder mask on both sides.
( no top + no bottom + yes tstop + yes bstop )
Light - clear from traces on both sides + solder mask only in back (bstop).
( no top + no bottom + yes tstop + no bstop )
Medium - ...
Dark - ...
Darkest - ...
We also have:
White Silkscreen - requires the top solder mask layer and the top silk layer
(... + no tstop + yes tsilk )
Copper trace - requires the top trace but without soldermask.
You might have noticed that some layers control the lack of material and must be treated as a negative. That’s a bit confusing, so here is a guide table:
( legend: x = no || ⎷ = yes || ? = doesn't matter || n = inverted )
It's basically a tool that allows you to jump back and forth between a rudimentary script and Inkscape, and then finally exporting the gerbers. Many of the boards created in it are exactly what you're talking about - art pieces first, and possibly functioning PCBs second.
Neon22- I'm aiming for a standalone app, in "java", that converts raster images to layers in Eagle .brd files. So you can see how an Inkscape extension in python is a bit out of my scope at the moment. I am however planning to integrate .svg vector files.
yeah - it would be really great if you coudl add an inkscape extension (python mostly) that did this and integrated it with Saar's work... Happy to help out with inkscape extensions - I've made a few
Check out PCBmodE.
It's basically a tool that allows you to jump back and forth between a rudimentary script and Inkscape, and then finally exporting the gerbers. Many of the boards created in it are exactly what you're talking about - art pieces first, and possibly functioning PCBs second.