Home Built PCB Mill Reportedly Doesn’t Suck

It’s 2017, and getting a PCB professionally made is cheaper and easier than ever. However, unless you’re lucky enough to be in Shenzhen, you might find it difficult to get them quickly, due to the vagaries of international shipping. Whether you want to iterate quickly on designs, or just have the convenience of speed, it can be useful to be able to make your own PCBs at home. [Timo Birnschein] had just such a desire and set about building a PCB mill that doesn’t suck.

It might sound obvious, but it bears thinking about — if you know you’re incapable of building a good PCB mill in a reasonable period of time, you might save yourself a lot of pain and lost weekends by just ordering PCBs elsewhere. [Timo] was fairly confident however that the build would be able to churn out some usable boards, however, and got to work.

The build is meant to be accessible to the average hacker who wants one. The laser cut & 3D printed parts are readily available these days thanks to online services that can manufacture for those who don’t have the machines at home. [Timo] uses a rotary multitool for a spindle, a common choice for a budget CNC build.

With the hardware complete, [Timo] has spent time working on optimising the software side of things. Through careful optimisation of the G-Code, [Timo] has been able to improve performance and reduce stress on the tooling. It’s not enough to just build a good mill — you’ve got to have your G-Code squared away as well.

Overall, the results speak for themselves. The boards don’t suck; the mill can do traces down to 8 mil, and even drill the holes. We’d love to have one on the workbench when busting out some quick prototypes. For another take on the home-built PCB mill, why not check out this snap-together version?

Robot Draws Using Robust CNC

While initially developed for use in large factory processes, computer numeric control (CNC) machines have slowly made their way out of the factory and into the hands of virtually anyone who wants one. The versatility that these machines have in automating and manipulating a wide range of tools while at the same time maintaining a high degree of accuracy and repeatability is invaluable in any setting. As an illustration of how accessible CNC has become, [Arnab]’s drawing robot uses widely available tools and a CNC implementation virtually anyone could build on their own.

Based on an Arudino UNO and a special CNC-oriented shield, the drawing robot is able to execute G code for its artistic creations. The robot is capable of drawing on most flat surfaces, and can use almost any writing implement that will fit on the arm, from pencils to pens to brushes. Since the software and hardware are both open source, this makes for an ideal platform on which to build any other CNC machines as well.

In fact, CNC is used extensively in almost everything now, and are so common that it’s not unheard of to see things like 3D printers converted to CNC machines or CNC machines turned into 3D printers. The standards used are very well-known and adopted, so there’s almost no reason not to have a CNC machine of some sort lying around in a shop or hackerspace. There are even some art-based machines like this one that go much further beyond CNC itself, too.

Continue reading “Robot Draws Using Robust CNC”

Saving A Part-Way-Through Failed 3D Print

This will be an experience shared by all 3D printer owners; a long print is mostly done, and something goes wrong. Result: most of the print and a heap of plastic vermicelli, or worse still, a print with an obviously offset layer in it.

[Simon Merrett] had a large part running on his printer, and 2.5 hours in to a 3 hour print the nozzle caught the edge of what he had already done, and as a result he was extruding into thin air (He told us in his tip email that his machine build was the likely culprit). Being fortunate enough to see it happening, he was able to hit the stop button in his Repetier software and bring the calamity to a swift halt.

How he rescued the situation is an interesting tale which he’s recorded in the screen capture video we’ve placed below the break, it involved using a spreadsheet to analyse the G-Code and remove the lines for the part he had already printed before inserting a new set of Z-axis dimensions to start the remaining section of print from the bed upwards. A few further fixes, and he was able to print the rest of his part, which he could then glue to the unfinished top of the section he had already printed. He points out in his YouTube description that he emailed the Repetier folks, and they told him a quicker way to deal with the Z-axis: using the G92 command to reset it.

You might ask why if he was prepared to spend this amount of time he didn’t simply reprint the entire part. But he points out, in that event the print could well have failed again at exactly the same point.

Continue reading “Saving A Part-Way-Through Failed 3D Print”

3D Printering: Non-Planar Layer FDM

Non-planar layer Fused Deposition Modeling (FDM) is any form of fused deposition modeling where the 3D printed layers aren’t flat or of uniform thickness. For example, if you’re using mesh bed leveling on your 3D printer, you are already using non-planar layer FDM. But why stop at compensating for curved build plates? Non-planar layer FDM has more applications and there are quite a few projects out there exploring the possibilities. In this article, we are going to have a look at what the trick yields for us.

Continue reading “3D Printering: Non-Planar Layer FDM”

3D Printering: G-Code Post Processing With Perl

Most of our beloved tools, such as Slic3r, Cura or KISSlicer, offer scripting interfaces that help a great deal if your existing 3D printing toolchain has yet to learn how to produce decent results with a five headed thermoplastic spitting hydra. Using scripts, it’s possible to tweak the little bits it takes to get great results, inserting wipe or prime towers and purge moves on the fly, and if your setup requires it, also control additional servos and solenoids for the flamethrowers.

This article gives you a short introduction in how to post-process G-code using Perl and Slic3r. Perl Ninja skills are not required. Slic3r plays well with pretty much any scripting language that produces executables, so if you’re reluctant to use Perl, you’ll probably be able to replicate most of the steps in your favorite language.

Continue reading “3D Printering: G-Code Post Processing With Perl”

Pen-Plotter Firmware Written Completely in Ada

[Fabian Chouteau] built a plotter out of CD-ROM parts. Yawn, you say? Besides being a beautiful physical build, this one has a twist. He wrote the software and firmware for the entire project himself, in Ada.

Ada is currently number two on our list of oddball programming languages that should be useful for embedded programming. It’s vaguely Pascal-y, but with some modern object-oriented twists. It was developed for safety-critical, real-time embedded systems (by the US Department of Defense), and is used in things like airplanes, rockets, and the French TGV trains. If that sounds like overkill for your projects, [Fabian]’s project shows that it’s still very tractable.

In his GitHub, he re-implements the GRBL G-code generator and then writes a GUI front-end for it. In his writeup, he mentions that the firmware and its simulator for the front-end use exactly the same code which is quite a nice trick, and guarantees no (firmware) surprises when moving from the modelled device to the real thing.

We looked quickly around for Ada resources and came up with: GNAT, the GNU Ada compiler, and its derivatives: GNAT for ARM (STM32-flavor), ARM-Ada (LPC21xx flavor), AVR-Ada, and MSP430-Ada.

Any of you out there use Ada in embedded work? We’d love to hear your thoughts.

Continue reading “Pen-Plotter Firmware Written Completely in Ada”

Converting Kids’ Hand-Drawings to G-Code

[Martin Raynsford] wrote a program that converts a black-and-white 2D image to G-code so that his laser printer could then etch the image. Not satisfied with just that, he used his laser printer to make a scanner that consists of a stand for his webcam and a tray below it for positioning the paper just right. The result was something he took to a recent Maker Faire where many kids drew pictures on paper which his system then scanned and laser etched.

Screenshot of Martin's scanning and G-code maker program
Martin’s scanning and G-code maker program

[Martin’s] program, written in C#, does the work of taking the image from the webcam using OpenGL and scanning it line by line looking for pixels that surpass a contrast threshold. For each suitable pixel the program then produces G-code that moves the laser to the corresponding coordinate and burns a hole. Looking at the source code (downloadable from his webpage) it’s clear from commented-out code that he did plenty of experimenting, including varying the laser burn time based on the pixel’s brightness.

While it’s a lot of fun writing this code as [Martin] did, after the break we talk about some off-the-shelf ways of accomplishing the same thing.

Continue reading “Converting Kids’ Hand-Drawings to G-Code”