Advanced Techniques For Using Git With KiCAD

For most developers “distributed version control” probably means git. But by itself git doesn’t work very well with binary files such as images, zip files and the like because git doesn’t know how to make sense of the structure of an arbitrary blobs of bytes. So when trying to figure out how to track changes in design files created by most EDA tools git doesn’t get the nod and designers can be trapped in SVN hell. It turns out though KiCAD’s design files may not have obvious extensions like .txt, they are fundamentally text files (you might know that if you’ve ever tried to work around some of KiCAD’s limitations). And with a few tweaks from [jean-noël]’s guide you’ll be diffing and merging your .pro’s and .sch’s with aplomb.

There are a couple sections to the document (which is really meant as an on boarding to another tool, which we’ve gotten to in another post). The first chunk describes which files should be tracked by the repo and which the .gitignore can be configured to avoid. If that didn’t make any sense it’s worth the time learning how to keep a clean repo with the magic .gitignore file, which git will look for to see if there are any file types or paths it should avoid staging.

The second section describes how you can use two nifty git features, cleaning and smudging, to dynamically modify files as they are checked in and out of the repo. [jean-noël]’s observation is that certain files get touched by KiCAD even if there are no user facing changes, which can clutter patch sets with irrelevant changes. His suggested filters prevent this by stripping those changes out as files get checked in. Pretty slick.

Visual Schematic Diffs In KiCAD Help Find Changes

When writing software a key part of the development workflow is looking at changes between files. With version control systems this process can get pretty advanced, letting you see changes between arbitrary files and slices in time. Tooling exists to do this visually in the world of EDA tools but it hasn’t really trickled all the way down to the free hobbyist level yet. But thanks to open and well understood file formats [jean-noël] has written plotgitsch to do it for KiCAD.

In the high(er)-end world of EDA tools like OrCAD and Altium there is a tight integration between the version control system and the design tools, with the VCS is sold as a product to improve the design workflow. But KiCAD doesn’t try to force a version control system on the user so it doesn’t really make sense to bake VCS related tools in directly. You can manage changes in KiCAD projects with git but as [jean-noël] notes reading Git’s textual description of changed X/Y coordinates and paths to library files is much more useful for a computer than for a human. It basically sucks to use. What you really need is a diff tool that can show the user what changed between two versions instead of describe it. And that’s what plotgitsch provides.

plotgitsch’s core function is to generate images of a KiCAD project at arbitrary Git revisions. After that there are two ways to view the output. One is to generate images of each version which can be fed into a generic visual diff tool (UNIX philosophy anyone?). The documentation has an example script to help facilitate setting this up. The other way generates a color coded image in plotgitsch itself and opens it in the user’s viewer of choice. It may not be integrated into the EDA but we’ll take one click visual diffs any day!

Soldering Like It’s 205 BC

Did you ever stop to think how unlikely the discovery of soldering is? It’s hard to imagine what sequence of events led to it; after all, metals heated to just the right temperature while applying an alloy of lead and tin in the right proportions in the presence of a proper fluxing agent doesn’t seem like something that would happen by accident.

Luckily, [Chris] at Clickspring is currently in the business of recreating the tools and technologies that would have been used in ancient times, and he’s made a wonderful video on precision soft soldering the old-fashioned way. The video below is part of a side series he’s been working on while he builds a replica of the Antikythera mechanism, that curious analog astronomical computer of antiquity. Many parts in the mechanism were soldered, and [Chris] explores plausible methods using tools and materials known to have been available at the time the mechanism was constructed (reported by different historians as any time between 205 BC and 70 BC or so). His irons are forged copper blocks, his heat source is a charcoal fire, and his solder is a 60:40 mix of lead and tin, just as we use today. He vividly demonstrates how important both surface prep and flux are, and shows both active and passive fluxes. He settled on rosin for the final joints, which turned out silky smooth and perfect; we suspect it took quite a bit of practice to get the technique down, but as always, [Chris] makes it look easy.

If you’d like to dig a bit deeper into modern techniques, we’ve covered the physics of solder and fluxes in some depth. And if you need more of those sweet, sweet Clickspring videos, we’ve got you covered there as well.

Continue reading “Soldering Like It’s 205 BC”

DIY Rubber Ducky Is As Cheap As Its Namesake

The “Rubber Ducky” by Hak5 is a very powerful tool that lets the user perform rapid keystroke injection attacks, which is basically a fancy way of saying the device can type fast. Capable of entering text at over 1000 WPM, Mavis Beacon’s got nothing on this $45 gadget. Within just a few seconds of plugging it in, a properly programmed script can do all sorts of damage. Just think of all the havoc that can be caused by an attacker typing in commands on the local machine, and now image they are also the Flash.

But unless you’re a professional pentester, $45 might be a bit more than you’re looking to spend. Luckily for the budget conscious hackers out there, [Tomas C] has posted a guide on using open source software to create a DIY version of Hak5’s tool for $3 a pop. At that cost, you don’t even have to bother recovering the things when you deploy them; just hold on tight to your balaclava and make a run for it.

The hardware side of this hack is the Attiny85-based Digispark, clones of which can be had for as low as $1.50 USD depending on how long your willing to wait on the shipping from China. Even the official ones are only $8, though as of the time of this writing are not currently available. Encapsulating the thing in black shrink tubing prevents it from shorting out, and as an added bonus, gives it that legit hacker look. Of course, it wouldn’t be much of a hack if you could just buy one of these little guys and install the Rubber Ducky firmware on it.

In an effort to make it easier to use, the official Rubber Ducky runs scripts written in a BASIC-like scripting language. [Tomas C] used a tool called duck2spark by [Marcus Mengs], which lets you take a Rubber Ducky script (which have been released by Hak5 as open source) and compile it into a binary for flashing to the Digispark.

Not quite as convenient as just copying the script to the original Ducky’s microSD card, but what do you want for less than 1/10th the original’s price? Like we’ve seen in previous DIY builds inspired by Hak5 products, the trade-off is often cost for ease of use.

[Thanks to Javier for the tip.]

Behold A DIY, Kid-Friendly Table Saw

The “table saw” swaps the saw for a nibbler; here it is cutting corrugated cardboard in a manner much like the saw it replaces.

“Kid-friendly table saw” seems like either a contradiction, a fool’s errand, or a lawsuit waiting to happen; but this wooden table saw for kids actually fits the bill and shows off some incredible workmanship and attention to detail as well. The project works by using not a saw blade, but a nibbler attached to a power drill embedded inside.

Unsurprisingly, the key to making a “table saw” more kid-friendly was to remove the saw part. The nibbler will cut just about any material thinner than 3 mm, and it’s impossible for a child’s finger to fit inside it. The tool is still intended for supervised use, of course, but the best defense is defense in depth.

The workmanship on the child-sized “table saw” is beautiful, with even the cutting fence and power switch replicated. It may not contain a saw, but it works in a manner much like the real thing. The cutting action itself is done by an economical nibbler attachment, which is a small tool with a slot into which material is inserted. Inside the slot, a notched bar moves up and down, taking a small bite of any material with every stroke. Embedding this into the table allows for saw-like cutting of materials such as cardboard and thin wood.

The image gallery is embedded below and shows plenty of details about the build process and design, along with some super happy looking kids.

Continue reading “Behold A DIY, Kid-Friendly Table Saw”

Damaged Power Cord Repaired With Shop-Made Mold

We’ve likely all seen a power tool with a less-than-functional strain relief at one end of the power cord or the other. Fixing the plug end is easy, but at the tool end things are a little harder and often not worth the effort compared to the price of just replacing the tool. There’s no obsolescence like built-in obsolescence.

But in the land of Festo, that high-quality but exorbitantly priced brand of premium tools, the normal cost-benefit relationship of repairs is skewed. That’s what led [Mark Presling] to custom mold a new strain relief for a broken Festool cord. The dodgy tool is an orbital sander with Festool’s interchangeable “Plug It” type power cord, which could have been replaced for the princely sum of $65. Rather than suffer that disgrace, [Mark] built a mold for a new strain relief from two pieces of aluminum. The mold fits around the cord once it has been slathered with Sugru, a moldable adhesive compound. The video below shows the mold build, which has some interesting tips for the lathe, and the molding process itself. The Sugru was a little touchy about curing, but in the end the new strain relief looks almost like an original part.

Hats off to [Presser] for not taking the easy way out, and for showing off some techniques that could really help around the shop. We suppose the mold could have been 3D-printed rather than machined; after all, we’ve seen such molds before, and that 3D-printed dies can be robust enough to punch metal parts.

Continue reading “Damaged Power Cord Repaired With Shop-Made Mold”

Turning A Cheap Engraver Into A Decent PCB Mill

We know, we know. Getting PCBs professionally fabricated anymore is so cheap and easy that making them in-house is increasingly becoming something of a lost art. Like developing your own film. Or even using a camera that has film, for that matter. But when you’re in Brazil and it takes months for shipments to arrive like [Robson Couto] is, sometimes you’re better off sticking with the old ways.

[Robson] writes in to tell us how he decided to buy a ~$150 CNC “engraver” kit from an import site, in hopes that it would allow him to prototype his designs without having to use breadboards all the time. The kit turned out to be decent, but with a series of modifications and a bit of trial and error, he’s improved the performance significantly and is now putting out some very nice looking boards.

The primary hardware issues [Robson] ran into were in the Z axis, as some poor component selections made the stock configuration wobble a bit too much. He replaced some flimsy standoffs as well as swapping in some bushings he salvaged from dead inkjet printers, and the movement got a lot tighter.

Despite the fact that the version of Grbl flashed onto the engraver’s cloned Arduino Uno supports Z leveling, it’s not actually enabled out of the box. [Robson] just needed to add some extra wiring to use the spindle’s bit as a probe on the copper clad board. He also went ahead and updated to the latest version of Grbl, as the one which ships with the machine is fairly old.

He wraps up the post by going through his software workflow on GNU/Linux, which is useful information even if you’ve taken the completely DIY route for your PCB mill. If you’d like to know more about the ins and outs of milling your own boards, check out this excellent primer by [Adil Malik].

Continue reading “Turning A Cheap Engraver Into A Decent PCB Mill”