RoboGlyphs are pieces of pcb artwork that are interesting to look at, and can be functional in some form! This is the Plasma RoboGlyph! It’s just a fun little project that I figured I would try out. I ordered these boards along with the RoboBrrd Brain Boards, since the shipping is quite a bit.
Here are the pics of the board!
Check out the timelapse of the making of the board!
It was interesting to make this, a lot of the programs kept crashing so it required so much patience! I started off with this plasma image. It was just some random CC image I found on flickr that was really good.
This was then transformed using StippleGen 2.02 from Evil Mad Science! The parameters we ended up using were:
- 8,268 stipples
- 0.50 min. dot size
- 10.00 dot size range
Here’s a screenshot of it in paused mode:
After using StippleGen, I opened it with Inkscape and made it so that the stipples were filled, and had no outline. Sometimes Inkscape would crash, but eventually it worked. I resized the image down, and exported it as a png. Pretty sure it was with 300 dpi. This png was then transferred into my handy Processing footprint sketch! From there, placed onto the board. It was important to make sure that the blobby part of the art didn’t touch anything major!
Some interesting things had to happen to make the pins/pads layer show up just how I imagined (thanks everyone who helped me with this!). In order for the art to appear with the gold, you have to make sure that the soldermask isn’t covering it, and have a copper fill behind it! This is what it looks like with the soldermask layer on:
With the .pcb file, it’s just a bunch of text, so it is easy to modify a huge amount of things that way. It was fun to see TextEdit struggling with replacing 62,919 items!
The pretty colours of the gerbers are always funky to look at!
My goal for releasing this open source is: to inspire people to do random cool scripty things with gEDA and make interesting art! Hopefully they will post up a pic up online of their creation too!
StippleGen 2.02 was used to transform the plasma image. We used 8,268 stipples, 0.50 min. dot size, and 10.00 dot size range. StippleGen is made by Evil Mad Science! And you can play with StippleGen yourself here: http://evilmadscientist.com/go/stipple2
The first few prototypes of the Plasma RoboGlyph were fabbed at the OSH Park! Their boards are purple and gold, and it’s a great service. Check it out here: http://www.oshpark.com
The medium sized OSHW logo on the board is from the gEDA format of logos that Windell Oskay made. You can find all the logos here: http://oshwlogo.com/
Finally, credit to the whole maker community for being fun, cool, and helpful with answering questions & learning more!
Well, maybe this will inspire more random and interesting pcb’s to be made It’s important to try and make sure they are functional in some way too, charlieplexed LEDs are good for that! Also speaking about functional… I don’t have these boards yet, so have no idea if they work or not!
PS: No, the website on the board doesn’t work yet. Still debating what to do with all these RoboGlyph experiments that I want to make!
Since redesigning RoboBrrd went so well, the base was eliminated. This meant that the previous version of the RoboBrrd Brain Board was way too gigantic! Luckily, an Arduino does fit into the back of RoboBrrd. It’s a tight squeeze for all directions with all the items I wanted to put on the board.
Making all of the footprints and such was quite tedious and time consuming. Hopefully there will be no mistakes. Slowly getting better at designing boards, but it is still very challenging! Here’s a timelapse video of making the board… it was a lot of work.
These images were actually rendered from the gerber files on OSH Park, it’s pretty fancy!
When I receive the boards from OSH Park, I will be desoldering some Arduino derivatives, using their parts in this one, and see if it works! They are going out to the fab on Friday, so perhaps I will receive them before August 10th!
To design the RoboBrrd Brain Board, I used the gEDA suite of tools. For creating the schematic, I used gschem. For creating the board from the schematic, gsch2pcb. For modifying the board, pcb. Finally, for viewing the gerbers, gerbv.
It is quite a delightful set of tools that can do basically whatever your imagination wants to (more on this in a later post ). Very scriptable, open source too.
There is one thing that happened to me with gEDA, but not directly gEDA’s fault. I believe a Dropbox mismatch happened, something was corrupted, which lead to this ‘Abort trap: 6′. Also, couldn’t find any backups.
Luckily that version did not have too much work done already. Here’s an image with everything as a work-in-progress:
As you have seen with the above final board, there are curved routes on it. The trick that I have found with curved routes is to use diagonal lines first, all of the same size (so it is better to copy and paste the same line). Afterwords, you can go through and replace the diagonal lines with an arc. This way the routing will still be tidy.
It is a good idea to keep an eye out on how ‘tidy’ your routes are, especially if you have to use vias. Since vias usually extend beyond the width of the route, there may not be enough space for them.
Also, on the topic of vias, make sure the soldermask is over them (thanks EMSL for pointing that out on Twitter!)
Another thing to look out for are drill sizes. Although the pins may all look to be roughly the same sizes, they may not be. This trickery can happen when using many different footprint files, so watch out! Having many drill holes can increase the cost that it takes to make your board. The drill hole info was generated when exporting the board as a postscript (ps) file, but you can also see it when exporting to a gerber.
In order to reduce the number of different drill holes in the RoboBrrd Brain Board v2, I grouped some together that should be the same size. Then opened the .pcb file in TextEdit (made a backup first as well), found the pads that needed fixing by searching for the name of the footprint or name of the element, and replaced the Pad information.
In the previous RoboBrrd Brain Board, I placed the artwork directly on the pcb. This time I created the artwork as a footprint, and placed the footprint on the pcb. This makes it much easier to delete it and replace it very quickly.
Here is a screenshot of the gerber view. Looking at the gerbers is always rewarding as it is brightly coloured!
Actually, there are a few changes from the screenshots to the final version, namely the fills and the edges. Gave the edges of the board a nice big arc so they will be smooth!
Hope that these lessons learned while designing this board will help some people thinking about making their own boards! It’s an interesting way of making things, and definitely recommend trying it at least once!
In the next RoboBrrd Brain Board v2 post, I’ll discuss why I placed components where they are! In the post after that, it will be about if they actually work! The post after that one will be about where to download all the filez!
Basically, in gEDA it’s pretty fantastically easy to put pictures on the silk layer using pstoedit. However, for the pins/pads layer this can’t be done because there is no support for polygons in the footprint files.
You could draw the picture yourself using lines, but if there are a lot of curves that could take a long time. Since it’s gEDA and everything is open, it’s pretty straight forward that you can make whatever you want to do whatever you want.
Pad [x1 y1 x2 y2 thickness clearance mask name pad_number flags]
With this info, we could make tiny ‘pixel pads’ for the black pixels that we see in the image!
I created a Processing sketch that reads in the image, looks for non-white pixels, then creates a square line segment pad with a given width and clearance. You can grab the sketch on Github here!
Here are some additional commentary on some parts in the code.
int x1 =0;
int y1 =0;
These are our coordinate variables that are used when looping through the image. Essentially, each pixel pad is just x1 x x1, or y1 x y1. The width is what gives it how wide it is, and then the coordinates are incremented based on that width. It’s odd, but was quick to write it this way.
int t =200;// thickness of line segment (aka pixel) 100
int c = t/4;// 2000
These are two fun variables.
t is the thickness of the pixel pad. The smaller it is, then essentially the more “resolution” you would get in your output footprint picture. Larger, the more pixely and big it will look.
c is the clearance on the solder mask layer. I’m not sure if you can get away with this being 0, but I guess it would depend on your board house. If you have it as t/4, it works out pretty well as it is a very tiny outline.
More on the c now. If the value is large (eg, 2000), it might look a little goofy:
If it is a small value, or say t/4, then it looks decent:
This is what makes up each pixel pad. It’s the start point, end point, thickness, and clearance. This is added to the footprint file for every non-white pixel that the sketch sees. You can check out the document linked to above for more information on the Pad structure details.
output.flush();// Write the remaining data
output.close();// Finish the file
Well, that was pretty easy, wasn’t it?!
It only took about 20 mins to write the sketch, which was pretty cool. It was pretty exciting when it worked first try!
So hopefully this will help people make their boards with more creativity. I was inspired by the SpikenzieLabs boards where sometimes they have their logo on the pins/pads layer (but they use Eagle).
What do I plan to do with it? I want to make an Arduino derivative that has lots of stars on it. I dunno why, it just sounds cool! It would look really good as a black board with silver solder. … or just good purple and gold from OSH Park