In a project, repetitive tasks that break the flow of development work are incredibly tiresome and even simple automation can make a world of difference. [Simon Merrett] ran into exactly this while testing different stepper motors in a strain-wave gear project. The system that drives the motor accepts G-Code, but he got fed up with the overhead needed just to make a stepper rotate for a bit on demand. His solution? A grbl man-in-the-middle jog pendant that consists of not much more than a rotary encoder and an Arduino Nano. The unit dutifully passes through any commands received from a host controller, but if the encoder knob is turned it sends custom G-Code allowing [Simon] to dial in a bit acceleration-controlled motor rotation on demand. A brief demo video is below, which gives an idea of how much easier it is to focus on the nuts-and-bolts end of hardware when some simple motor movement is just a knob twist away.
It’s becoming abundantly clear that [Colin Merkel] doesn’t know the definition of “good enough”. Not only has he recently completed his third (and most impressive) wristwatch build, but he also managed to put together one of the most ridiculously romantic gifts ever conceived. While some of us are giving our significant others a gift card to Starbucks, he made his girlfriend a watch with a chart on the face representing the position of the stars at the time and place of their first meeting.
As per his usual style, the documentation on this build is phenomenal. If paging through his gallery of build images doesn’t make you want to get a lathe and start learning metal working, nothing will. A chunk of stainless steel rod miraculously becomes a gorgeous wrist watch over the course of a few dozen images, perfectly encapsulating that old adage of “making it look easy”.
Certainly the highlight of this build is the star chart on the face. To make it, he used PyEphem to plot the position of the brightest stars that were visible at the time and place of their first meeting. He then wrote a script to take those stars and convert their positions to G-Code the CNC could use to drill holes in the appropriate locations. The depth of the hole even corresponds to the magnitude (brightness) of each star, giving the chart a subtle 3D effect.
Unfortunately, [Colin] made a couple of mistakes during this build, to the point that he’s not exactly sure how to proceed. He mentions he might even be forced to start over from scratch. It’s hard to imagine how something that looks this good could ever end up being a failure, but the world of watch making is unkind.
To start with, he used 304 stainless instead of 303. This made machining the case much more difficult, and from his very first cut he realized it was going to be a problem. While it was an annoyance he mentions a couple times during the build log, he was at least was able to work through it.
The real problem came at the end, when he put the watch together. He originally made his designs assuming a front glass which was 0.5 mm thick, but in actuality used a piece that is 0.8 mm thick. This slight difference is just enough to cause the seconds hand to rub up on the glass, putting drag on the movement. The end result is that the battery dies extremely quickly, effectively rendering the watch useless.
We can’t imagine the heartbreak [Colin] felt when he realized what happened; we felt bad just reading about it. But given his track record, we have no doubt he’ll get the issue sorted out. It would be a shame to start over completely, but there’s some consolation in knowing it’s part of the learning process: you don’t become a master of your craft without making a couple mistakes along the way.
The predecessor to this watch was covered here at Hackaday last year, and made quite an impression. It’s interesting to see the improvements made between the two, and we’re certainly excited to see his next build.
Many of us use a 4 digit pin code to lock our phones. [David Randolph] over at Hak5 has come up a simple way to use a 3D printer to brute force these passwords. Just about every 3D printer out there speaks the same language, G-code. The same language used in CAD and CNC machines for decades.
[David] placed a numeric keypad on the bed of his printer. He then mapped out the height and positions of each key. Once he knew the absolute positions of the keys, it was easy to tell the printer to move to a key, then press and release. He even created a G-code file which would press every one of the 10,000 4 key pin combinations.
A file this large was a bit unwieldy though, so [David] also created a python script which will do the same thing — outputting the G-code and coordinates to brute force any 4 pin keypad. While a printer is quite a bit slower than Hak5’s own USB Rubber Ducky device (which acts as an automated keyboard), it will successfully brute force a password. Although most phones these days do limit the number of password attempts a user gets.
[David] admits this is probably useless in a clandestine/hacking application, but the video is still a great introduction to G-code and using 3D printers for non-printing functions.
A funny thing happened on [Marco Rep]’s way to upgrading his 3D printer. Instead of ending up with a heated bed, his $300 3D printer can now etch 0.2-mm PCB traces. And the results are pretty impressive, all the more so since so little effort and expense were involved.
The printer in question is a Cetus3D, one of the newer generation of affordable machines. The printer has nice linear bearings but not a lot of other amenities, hence [Marco]’s desire to add a heated bed. But hiding beneath the covers was a suspicious transistor wired to a spare connector on the print head; a little sleuthing and a call to the factory revealed that the pin is intended for accessory use and can be controlled from G-code. With a few mods to the cheap UV laser module [Marco] had on hand, a printed holder for the laser, and a somewhat manual software toolchain, PCBs with 0.2-mm traces were soon being etched. The video below shows that the printer isn’t perfect for the job; despite the smooth linear bearings, the low mass of the printer results in vibration that shows up as wavy traces. But the results are more than acceptable, especially for $330.
This isn’t [Marco]’s first budget laser-etching rodeo. He recently tried the same thing using a cheap CNC laser engraver with similar results. That was a $200 dedicated engraver, this is a $300 3D printer with a $30 laser. It seems hard to lose at prices like these.
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?
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.
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.