Hackaday Made Me Buy It!

Reading Hackaday is great! You get so many useful tips from watching other people work, it’s truly changed nearly everything about the way I hack, especially considering that I’ve been reading Hackaday for the past 15 years. Ideas, freely shared among peers, are the best of the free and open-source hardware community. But there’s a dark downside: I’m going CNC mill shopping.

It all started with [Robin]’s excellent video and website tutorial on his particular PCB DIY procedures. You see, I love making PCBs at home, because I’m unafraid of chemistry, practiced with a rolling pin and iron, and super-duper impatient. If I can get a board done today, I’m not waiting a week, even if that means an hour of work on my part.

Among other things, he’s got this great technique with a scriber pen and a cleverly designed registration base that make it easy for him to do nearly perfectly aligned two-sided boards with a resolution approaching etching. The ability to make easy double-sided boards, with holes drilled, makes milling attractive, but the low resolution of v-cutter milled boards has been the show-stopper for me. If that’s gone, maybe it’s time to take a serious look.

And heck, making PCBs is really just the tip of the iceberg for what I’d want to do with a CNC mill. Currently, I do dodgy metalworking with an x-y table and a drill press, some of which may someday land me in the hospital. But if I had a mill, I’d be doing all sorts of funny wood joinery and who knows what else. I lack experience with a mill, but coincidentally, we just had a Hack Chat on Linux for machine tools this week. You see? It’s all conspiring against me.

The only question left is what I should get. I’m looking at the ballscrew 3040 range of CNCs, and maybe upgrading the spindle. I’d like to mill up to aluminum, but don’t really need steel. What do you think?

A Reason To Code

My son is just getting to the age that puts him in the crosshairs of all of the learn-to-code toys. And admittedly, we’ve been looking at some of those Logo-like toys where you can instruct a turtle-bot to make a few moves, and then to repeat them. After all, if breaking down a problem into sub-problems and automating the repetition isn’t the essence of programming, I don’t know what is.

But here’s the deal: I think drawing ‘bots are cooler than he does. If you ask a kid “hey, do you want a car that can draw?” that’s actually pretty low on the robot list. I’m not saying he won’t get into it once he’s got a little bit more coding under his belt and he can start to make it do fun things, but by itself, drawing just isn’t all that impressive. He can draw just fine, thank-you-very-much.

Meanwhile, I was making a robot arm. Or rather, I started up on yet another never-to-be-completed robot arm. (Frankly, I don’t know what I would do with a robot arm.) But at least I started with the gripper and wrist. Now that’s pretty cool for a kid, but the programming is waaaay too complicated. So I pulled the brains out and hooked up the servos to an RC plane remote. Just wiggling the thing around, duct-taped to the table, got him hooked. And this weekend, we’re building a remote controlled cherry-picker arm to put on a pole, because cherries are in season. His idea!

So no coding. He’s a little too young anyway, IMO. But silly little projects like these, stored deep in his subconscious, will give him a reason to program in the future, will make it plainly obvious that knowing how to program is useful. Now all I need is a reason to finish up a robot arm project…

Nothing Comes From Nowhere

How do you come up with new ideas? As much as it sometimes seems like they arrive in a flash out of the blue, they don’t just come out of nowhere. Indeed, we all have well-stocked mental toolboxes that say “this thing can be used to do that” and “if you want to get there, start here”.

One incredibly fertile generator of “new” ideas is simply putting old ideas next to each other and realizing that a chain of two or three can get you to someplace new. It just happened to me while listening to Mike and myself on this week’s Hackaday Podcast.

bikelangelo

Here’s the elevator pitch. You take something like the player-pianoesque MIDI barrel piano that we featured last Thursday, and mix it together with the street-painting bicycle trailer that we featured on Friday. What do you get? A roll of paper that can be drawn on by normal kids, rolled up behind a bicycle, with a tank that they can pressurize with a bike pump, that will spray a pixelated version of their art as they roll down the sidewalk.

Now how can I make this real? One of my neighbors has a scrap bike trailer…

But see what I mean about ideas? I just took two existing ideas and rubbed them together, and in this case, they emitted sparks. And I’ve got a mental catalogue of all of the resources around me, some of which fell right into place. This role as fountain of good proto-ideas is why I started reading Hackaday fifteen years ago, and why it’s still a daily must-read for folks like us everywhere. A huge thank you to everyone who’s sharing! Read more Hackaday!

Seeing Code: The Widescreen Rant

A couple of weeks ago, Linus Torvalds laid down the law, in a particularly Linusesque sort of way. In a software community where tabs vs. spaces can start religious wars, saying that 80-character-wide code was obsolete was, to some, utter heresy. For more background on how we got here, read [Sven Gregori]’s history piece on Hackaday, and you’ll learn that sliced bread and the 80-character IBM punch card both made their debut in July, 1928. But I digress.

When I look at a codebase, I like to see its structure, and I’m not alone. That’s one of the reasons for the Linux Kernel style guide’s ridiculously wide 8-character tabs. Combined with a trend for variable names becoming more and more descriptive, which I take to be a good thing, and monitors’ aspect ratios growing seemingly without end, which I don’t, the 80-column width seems like a relic from the long-gone era of the VT-220.

Hazeltine TerminalIn Linus’ missive, we learn that he runs terminals at 100 x 50, and frequently drags them out to a screen-filling 142 x 76. (Amateur! I write this to you now on 187 x 48.) When you’re running this wide, it doesn’t make any sense to line-wrap argument lists, even if you’re using Hungarian notation.

And yet, change is painful. I’ve had to re-format code to meet 73-column restrictions for a book, only to discover that my inline comments were too verbose. Removing even an artificial restriction like the 80-column limit will have real effects. I write longer paragraphs, for instance, on a wider screen.

I see a few good things to come out of this, though. If single thoughts can be expressed on single lines, it makes the shape of the code better reflect its function. Getting rid of pointless wrapping takes up less vertical space, which is at a premium on today’s cinematic monitors. And if it makes inline comments better (I know, another holy war!) or facilitates better variable naming, it will have been worth it.

But any way you slice it, we’re no longer typing on the old 80-character Hazeltine. It’s high time for our coding style and practice to catch up.

Machine Builds Rise From The Ashes

I was enchanted by a failed project this week. [Andrew Consroe]’s CNC scroll saw doesn’t work yet, but the emphasis is on the word “yet”. Heck, even when it does work, it might not make sense, but that’s not the point anyway.

cncsaw_thumb.jpg?w=250

A scroll saw table has a vertical reciprocating blade perpendicular to a table, a lot like a band saw but with a shorter blade. You push the wood sheet to be cut into the blade, and because it’s thin, you can twist and turn all sorts of interesting jigsaw-puzzle shapes. [Andrew] automated this with an X-Y gantry and an innovative geared rotating ring, needed to keep the wood fed into the cutting edge of the blade.

It’s a crazy contraption, and a difficult and unique movement planning problem, and watching it move in the video is a joy. But it’s not working either: errors in the motion add up over a cut, and he’s ended up snapping a blade on every piece. And this is version three of the device!

But here comes the inspiration. First, the only reason he’s filming this is to keep a log of how the project looked at this phase — he’s already planning out the next one. Second, this is the soul of learning by doing. You don’t learn anything unless you’re trying something new.

And finally, [Andrew]’s project reminds me of why I love machine builds in the age of rapid prototyping. Blazing through three entirely different machines cost him essentially nothing. Tearing apart version one left him with the same stepper motors, aluminum extrusions, and electronics as when he started out. Except that he now knew so much more about his particular problem space. Now he’s ready to go again.

So if you’re at all robotically inclined, but you’re looking at the cost of motors, belts, bearings, and steel, don’t think of it as an expense for this project, but for years’ worth of iterations, and maybe even fully different machines.

Just be sure to take [Andrew]’s lead and get it down and documented before you take it apart! Heck, send it in to Hackaday and it’ll live forever.

Burning Chrome

You want a good project that combines multiple disciplines, gives you something useful in the end, and will certainly wow the muggles? Or do you simply need a custom rig with which to “jack in” to “cyberspace”? How about building your own luggable, portable, computer with some style — your own cyberdeck?

Coming to you from the fertile world that William Gibson created in “Neuromancer”, “Count Zero”, and “Mona Lisa Overdrive”, cyberdecks were the portable computers that the heroes and anti-heroes roaming the Sprawl would use to connect to what was essentially the Internet. Since we’re already living in the era where large portions of the world are controlled by vast corporations, we spend our entire lives online, and machine intelligence is poised to become sentient, you might as well get building.

We’ve seen a number of great examples of cyberdeck builds, and they’re all special in their own way, but there are common features uniting them all. First, you’ll need a screen, a portable computer brain, some batteries, and a nice keyboard. The good news is that all of the above have become eminently available, even inexpensive, in the last few years.

Discipline #1 is that of the case modder. You’re designing your ideal portable computer, after all. It’s got to look good, and we don’t mean that black, boxy ThinkPad look. If you’ve got a 3D printer, and maybe a willingness to spray paint, the world is your oyster here.

Discipline #2 is that of the keyboard builder. You’re not going to want to enter the Matrix with anything less than a pleasant typing interface. Again, 3D printing, laser-cutting, or CNC milling your own keyplate and building yourself a keyboard from scratch is a viable option, but there are tons of Bluetooth and USB keyboard options if you want to cut corners, or find one you really like.

Discipline #3 is the software hacker. Putting together exactly the right set of software, setting up the system to do what you want, and getting that sweet background screen just right are the last steps to making yourself at home in Cyberspace.

With so much latitude to introduce your own design ideas into your bespoke luggable, no two will be alike. Mine’s going to have programming ports for every microcontroller I frequently use, a decent speaker, maybe a variable power supply, and probably some reasonable amount of LED bling. What’s going to be on yours?

This article is part of the Hackaday.com newsletter, delivered every seven days for each of the last 200+ weeks. It also includes our favorite articles from the last seven days that you can see on the web version of the newsletter.

Want this type of article to hit your inbox every Friday morning? You should sign up!

DMCA Vs Hacker

This week featured a large kerfuffle over a hack that you probably read about here on Hackaday: [Neutrino] wedged an OLED screen and an ESP32 into a Casio calculator. REACT, an anti-counterfeiting organization, filed DMCA copyright takedowns on Casio’s behalf everywhere, including GitHub and YouTube, and every trace of [Neutrino]’s project was scrubbed from the Internet.

The DMCA is an interesting piece of legislation. It’s been used to prevent people from working on their tractors, from refilling printer ink cartridges, and to silence dissenting opinions, but it’s also what allows us to have the Internet that we know and love, in a sense.

In particular, the “safe harbor” provision absolves online platforms like YouTube and GitHub from liability for content they host, so long as they remove it when someone makes a copyright claim on it. So if a content owner, say Casio, issues a takedown notice for [Neutrino]’s GitHub and YouTube content, they have to comply. If he believes the request to be made in error, [Neutrino] can then file a counter-notice. After ten to fourteen days, presuming no formal legal action has been taken, the content must be reinstated. (See Section 512(g).)

cardboard cnc machineBoth the takedown notice and counter-notice are binding legal documents, sworn under oath of perjury. Notices and counter-notices can be used or abused, and copyright law is famously full of grey zones. The nice thing about GitHub is that they publish all DMCA notices and counter-notices they receive, so here it is for you to judge yourself.

Because of the perjury ramifications, we can’t say that the folks at REACT who filed the takedown knowingly submitted a bogus request in bad faith — that would be accusing them of breaking federal law — but we can certainly say that it looks like they’re far off base here. They’re certainly not coders.

The good news is that the code is back up on GitHub, but oddly enough the video describing the hack is still missing on YouTube.

But here’s how this looks for Casio and REACT: they saw something that was unflattering to a product of theirs — that it could be used for cheating in school — and they sent in the legal attack squad. If that’s the case, that’s rotten.

This article is part of the Hackaday.com newsletter, delivered every seven days for each of the last 200+ weeks. It also includes our favorite articles from the last seven days that you can see on the web version of the newsletter.

Want this type of article to hit your inbox every Friday morning? You should sign up!