-
Faster rendering and more stable site
11/03/2019 at 22:29 • 0 commentsIt's been a while since I've updated this project, but I finally got around to moving the site to cheaper and faster hosting. It should now be more stable, render faster, and hopefully cost me less money.
I also added a new option to simplify gerber regions - in some files I've received from people regions were used for very high-resolution rounded rectangles, which made rendering take quite long. The "simplify regions" option can now be used to create a bounding box around regions, which is much faster, but might have some unintended consequences if your software uses regions for some other use. If anyone tries this out and finds issues with it, let me know/!
-
Fixing errors, allowing new apertures and abandoning trigonometry.
03/11/2016 at 15:31 • 0 commentsThanks to https://github.com/mancausoft I figured out that the whole wide aperture code I added yesterday wasn't correct - I replaced the logic used to thicken lines into rectangles which now works for circular and rectangular apertures (still making circular ones into rectangles though).
I also fixed a few bugs causing division by zero errors for circles with tiny areas and zero-length elements.
The main lesson here is to never use trigonometry for something that can be solved with vectors.
-
Support for thick lines
03/10/2016 at 23:18 • 0 commentsGerber is a weird format, and I'm fixing things as I discover problems - today it was the fact that eagle sometimes exports rounded rectangles as lines drawn with a thick circular aperture.
Without any special handling, that meant the resulting holes in the stencil were too small because the line thickness was being ignored. Now, shapes drawn with thick apertures should be supported properly - though the edges still aren't rounded. This seems like a decent compromise, as 3D printers add rounded edges anyway and it's a lot easier to implement, but it might be that at some point someone wants to draw very large obround shapes by using a line with a big aperture, which won't work.
I also had to fix a bug in the underlying gerber library while I was at it - it didn't assign units for apertures, resulting in using inch values interpreted as cm.
-
Support for obround shapes and better polygon handling
02/11/2016 at 22:27 • 0 commentsI had someone else approach me with a file that didn't work today, this time because it was using obround shapes. Implementing them I found that the way I was handling polygons wasn't robust enough to properly deal with lots of intersecting polygons, so I changed that hole logic.
It's quite likely this logic will still break, but it seems to at least be more robust than before. There are still several gerber primitives that I haven't added support for yet, hopefully I'll get around to them on the weekend.
-
First real board is working
02/10/2016 at 22:15 • 0 commentsAfter a few tests with no components, I've finished the first working board using a printed stencil. In absolute terms it's not a complicated board, but it allowed me to figure out two things: accuracy isn't as important as I thought, and if you can live with a bit of hand-reworking even boards with pads too small for the printer can be used.
I used a stencil that didn't print very well to see how good a print really needs to be - this one had multiple issues: the bed wasn't quite level, the USB pins are too small to allow printing the pads separately and the ESP8266 pins are just far enough apart that the printer can't fill in the gaps between them perfectly.
In spite of all that, the finished part works perfectly, there was just one bridge on the USB port that I needed to fix. For production purposes this wouldn't do - but compared to hand-soldering it's brilliant.
Paste all distributed - much more wasteful than a real solder stencil, but for small numbers of boards this just a few pence worth.
Paste on the pads - again you can see this is using more paste than necessary. In this case it's partly because I didn't hold down the stencil very well (because it's round, it's quite difficult. I might add an option to make the ledge go all the way around to make this easier) and partly due to the issues with the print.
Unless you're using really, really small parts though, all this does is use slightly more paste than needed, the soldering should work just fine.
Parts placed. High accuracy isn't terribly important here, unless you're working at much smaller scales than this.
All soldered up. The whole process took about 20 minutes, including pasting up the board, positioning parts and soldering on a hot-plate.
As was to be expected I had to fix some bridging in the USB port (where the pads were so small that the printer couldn't print the pads separately), but this takes just a minute to fix with some desoldering wick.
Board connects to WiFi, test LED blinks, success! For this kind of prototype board I'm super happy with how the process works.
It turns out the printer doesn't need to be particularly accurate, having pads that can't be separated can still be used just fine (just possibly requiring a bit of clean-up).
If I already knew the board was working and I was going to make 20 of them, I'd probably get a laser-cut stencil done to save on paste and avoid manual reworking, but for 1-5ish boards of the same type, it's saving me a lot of headache.
-
Support for circles and non-convex boards
02/09/2016 at 21:46 • 0 commentsAfter the first rounds of feedback from people, it turned out that there is a point to supporting circle shapes in gerber files after all - that's now added and circles should work fine, I hope.
The script also deals better with non-convex board shapes now, creating a convex hull of the outline for the stencil shape.