Making Dithered Silkscreens
So I've been looking at various PCB designs and seeing bloody traces when I close my eyes over the past few weeks. But the one thing that caught my attention is the amount of effort that goes into silkscreen design!
You've got boards like this
Which are perfectly functional and useful. Then you have the hotshot hacker with their nice bitmapped logo, like this
Looking pretty cool, but why not go bigger?
Now we're talking! Full size, but shame we are limited to two colours! If only there was some way to get around the stark silkscreen on soldermask contrast!
Dithering and Halftone
Take a look at this image, it's composed entirely of pure black and pure white
Neat right? Turns out if you use weighted randomness and the fact that the human eye blends light (like the impressionists used in their paintings) you can simulate gradations. This technique was abused with early games/graphics on limited hardware (and works rather well once you add various colour dimensions). For the purposes of silkscreen layers let's just assuming you're working with a single layer and dot-size is not an option (otherwise we could use halftones!).
So the first thing we need to know is what the quality of the inkjet being used for adding our silks is. Getting in contact with a representative of the fab being used should be able to give us some sort of info.
So we do some quick math, this printer can do about 170 DPI, for a 180x100mm board we should be using a source image resized to 1200x677px. So if we run off and do that, then dither our image using GIMP, Some package off github or this online tool it should be able to be imported at a scale workable for the printer (and hopefully avoid any horrid scalers along it might encounter along the way).
So this image
Becomes something like this, neato eh?
All that's left to do is whack it into KiCads bitmap importer, set the DPI to what the printer is capable of and line everything up! A word of caution, some large silks will make the 3d renderer hang. These images are best added as a last step in the design process. Also, trimming the excess that overhangs the board may be of use if memory usage starts to become a problem. One more thing, flip your image horizontally if it's going on the rear side of the board, KiCad won't translate non-text elements.
Now ship it off to fab, wait a bit, and...
Bob's your uncle!
Gergo Timeline
Figured I might as well get a timeline out for the development of this bit of kit outlined so you all know what to expect. As of writing this the date is November 19th
Nov 19-Dec 5: Receiving development boards/testing
Dec 6th: Ordering first production run PCBs
Dec 14th: Shipping First orders
Hopefully I didn't make any bonehead mistakes during laying out the board/ordering components. Assuming I got it right, the first window may be less then two weeks or possibly more. With the current status of Canada Post, I'm expecting delays in getting parcels shipped to and from me. At this point, ordering a wrong component could be the difference between a simple bodge or waiting on a rushed Digikey order.
Assuming that the design works and does not require major tweaking to be functional, I can then move on to testing and getting the QMK port working. Thankfully this is a fairly straightforward process, with the exception of getting the mouse driver in order. When in doubt, the hardware can be shipped when all the software (with the exception of the mouse handling code) is ready. I can always add that in and have it made available online.
Once I have a confirmed working prototype the first batch of black PCBs will be ordered. These will be production ready boards (with the rest being sold at discount) and any further modifications will be slight tweaks to the design. In the event of some critical failure, I will update the blog and process any refunds necessary.
My board house is backlogged and should be able to have the first run of boards in the mail to me by Friday Morning. I'll keep you posted on the blog!
Thank you once again for supporting gBoard Heavy Industries!
Nov 19-Dec 5: Receiving development boards/testing
Dec 6th: Ordering first production run PCBs
Dec 14th: Shipping First orders
Hopefully I didn't make any bonehead mistakes during laying out the board/ordering components. Assuming I got it right, the first window may be less then two weeks or possibly more. With the current status of Canada Post, I'm expecting delays in getting parcels shipped to and from me. At this point, ordering a wrong component could be the difference between a simple bodge or waiting on a rushed Digikey order.
Assuming that the design works and does not require major tweaking to be functional, I can then move on to testing and getting the QMK port working. Thankfully this is a fairly straightforward process, with the exception of getting the mouse driver in order. When in doubt, the hardware can be shipped when all the software (with the exception of the mouse handling code) is ready. I can always add that in and have it made available online.
Once I have a confirmed working prototype the first batch of black PCBs will be ordered. These will be production ready boards (with the rest being sold at discount) and any further modifications will be slight tweaks to the design. In the event of some critical failure, I will update the blog and process any refunds necessary.
My board house is backlogged and should be able to have the first run of boards in the mail to me by Friday Morning. I'll keep you posted on the blog!
Thank you once again for supporting gBoard Heavy Industries!
Gergo Keyboard Update!
Good news everyone! The first batch of PCBs and components have shipped and are on their way to my doorstep (ignoring Canada Post shenanigans of course).
I am excited to get the first batch kitted together and start writing the QMK support for the gBaller mouse. This first batch is a limited run with green PCB, no stencil either (so no beautiful hot air reflowing). The production batches will have a black PCB and cost a few bucks extra. Either way, I can't wait to test these out!
I polled g the other day and interest was shown in reworking the thumb cluster (already done for Gergo which brings it in a touch) and a larger ErgoDox! So the next build while I wait for these to come in is a MASSIVE split board.
This is the IBM Model F, with 122 keys it's classed as a 120% keyboard. To call it a monster is an understatement. Now the lovely folks have demanded more keys, so more keys we will give them. It's going to be a split ortho layout, with a connected numpad. I'm still in the design phase, but mockups will be posted here and mkg.
Stay tuned!
I am excited to get the first batch kitted together and start writing the QMK support for the gBaller mouse. This first batch is a limited run with green PCB, no stencil either (so no beautiful hot air reflowing). The production batches will have a black PCB and cost a few bucks extra. Either way, I can't wait to test these out!
I polled g the other day and interest was shown in reworking the thumb cluster (already done for Gergo which brings it in a touch) and a larger ErgoDox! So the next build while I wait for these to come in is a MASSIVE split board.
This is the IBM Model F, with 122 keys it's classed as a 120% keyboard. To call it a monster is an understatement. Now the lovely folks have demanded more keys, so more keys we will give them. It's going to be a split ortho layout, with a connected numpad. I'm still in the design phase, but mockups will be posted here and mkg.
Stay tuned!
Design Tradeoffs
If there's one thing I've learned over the years, it's that any project is about tradeoffs. Optimize one variable and a different one might suffer. With Gergo this point has been hammered into my head fairly hard. But I hope this document shows the various considerations I've taken into account here.
Cost. is the main factor many designs boil down to and Gergo aims to be a accessible keyboard first, and everything else second. To accomplish this SMD packages are used, keys were scrapped and the PCB footprint reduced. Each of these actions allows savings on the total cost to be passed down and works to minimize production costs. A caseless board can be put together with PBT caps off Aliexpress and Gateron switches for under 100$!
Accessibility. Keyboards are hard and the community fairly large, by offering assembly services users unfamiliar with PCB work can receive a mostly assembled keyboard with accessible through hole switches. Failing that, I'll build and test a board for the right price.
Size. As Gergo is meant to be portable and caseless, size consideration played largely in changing the overall footprint of the device. To fit in a bag well, the device can't have a large footprint so some sacrifices must be made. The number row was the first to go followed by the hard to reach 1u keys on the paddle, that reduced the board size, but still leaves it functional. Here I needed to be careful though, for every key you remove the user begins to rely more heavily on layers and special toggles.
Height. Coming from the ErgoDox one of the first things I noticed was how tall the entire unit is. With a case the ErgoDox is unusable for any length of time without a dedicated wrist rest, fine and dandy for at home but another item to the bag when out and about. To combat this instead of a case rubber standoffs are attached to rise the board and prevent scraping on a desk. This action alone reduces the overall height by almost a whole centimeter! This comes at a cost to aesthetics however and the silkscreen has been designed with exposed PCB in mind.
Extensibility. For a time I toyed around with replacing the Atmega32u4 with another micro to reduce cost. The problem with that is then you lose compatibility with the wonderful QMK software. For Gergo I opted to stay on the AVR platform as many makers are familar and can lend a hand with projects (Be it at a HackerSpace or online). But seeing as flashing firmware is part of the reality of DIY keyboards, it's safe to assume a technical crowd. This is why I've included pads for the ICSP and unused pins, if you choose you can integrate a little OLED display or some other external device by soldering on a few wires! Or if you botch your bootloader, force a flash using a usbASP or similar device.
Components, SMD wasn't really a choice here due to size. To keep costs down and improve durability through hole components were not a viable option. If there were SMD Cherry switches I'd probably have used those as well. The pads are all hand solderable because I'm not a sadomasochist. If you've never tried soldering these guys you'll know how to work with them by the end of your build!
Repairability. SMD is tough, and if you don't believe my try ripping off a 0805 with your hands. By having all the pads exposed swapping switches or replacing/touching up connections is less of a chore and more of something to do with a coffee on the desk. The less time I need to spend handy with a screwdriver the better!
This project has given me much to think about in regards to future designs. If there is anything you'd like to suggest please reach out to me!
Cost. is the main factor many designs boil down to and Gergo aims to be a accessible keyboard first, and everything else second. To accomplish this SMD packages are used, keys were scrapped and the PCB footprint reduced. Each of these actions allows savings on the total cost to be passed down and works to minimize production costs. A caseless board can be put together with PBT caps off Aliexpress and Gateron switches for under 100$!
Accessibility. Keyboards are hard and the community fairly large, by offering assembly services users unfamiliar with PCB work can receive a mostly assembled keyboard with accessible through hole switches. Failing that, I'll build and test a board for the right price.
Size. As Gergo is meant to be portable and caseless, size consideration played largely in changing the overall footprint of the device. To fit in a bag well, the device can't have a large footprint so some sacrifices must be made. The number row was the first to go followed by the hard to reach 1u keys on the paddle, that reduced the board size, but still leaves it functional. Here I needed to be careful though, for every key you remove the user begins to rely more heavily on layers and special toggles.
Height. Coming from the ErgoDox one of the first things I noticed was how tall the entire unit is. With a case the ErgoDox is unusable for any length of time without a dedicated wrist rest, fine and dandy for at home but another item to the bag when out and about. To combat this instead of a case rubber standoffs are attached to rise the board and prevent scraping on a desk. This action alone reduces the overall height by almost a whole centimeter! This comes at a cost to aesthetics however and the silkscreen has been designed with exposed PCB in mind.
Extensibility. For a time I toyed around with replacing the Atmega32u4 with another micro to reduce cost. The problem with that is then you lose compatibility with the wonderful QMK software. For Gergo I opted to stay on the AVR platform as many makers are familar and can lend a hand with projects (Be it at a HackerSpace or online). But seeing as flashing firmware is part of the reality of DIY keyboards, it's safe to assume a technical crowd. This is why I've included pads for the ICSP and unused pins, if you choose you can integrate a little OLED display or some other external device by soldering on a few wires! Or if you botch your bootloader, force a flash using a usbASP or similar device.
Components, SMD wasn't really a choice here due to size. To keep costs down and improve durability through hole components were not a viable option. If there were SMD Cherry switches I'd probably have used those as well. The pads are all hand solderable because I'm not a sadomasochist. If you've never tried soldering these guys you'll know how to work with them by the end of your build!
Repairability. SMD is tough, and if you don't believe my try ripping off a 0805 with your hands. By having all the pads exposed swapping switches or replacing/touching up connections is less of a chore and more of something to do with a coffee on the desk. The less time I need to spend handy with a screwdriver the better!
This project has given me much to think about in regards to future designs. If there is anything you'd like to suggest please reach out to me!