DIY HID, OMG!

William English, one of the creators of the mouse back in the 60s, passed away last week. And that got me thinking of how amazing it would have been to be in the place that was inventing what would become modern computing interfaces. What a special time! Of course, they probably had no idea.

From here, it looks like the mouse changed everything, but you have to realize that they were working in a world with light-pens, where you could actually draw on the screen. In contrast, the mouse seems positively non-futuristic. They must have known they’d come up with an improvement over the status quo, but did they know they’d created a revolution?

So where has the revolutionary spirit in DIY human interface devices gone? I’d claim it’s still alive and kicking. Indeed our own Kristina Panos has a series called “Inputs of Interest” and we’ve seen a ton of DIY keyboards of late. Then there are many varieties of dial inputs. I used to have a dedicated scroll wheel made out of a hard-drive platter, and when I was reading lots of PDFs on-screen, I have to say it earned its desk-space. Heck, we’ve even seen people make their own mouse.

But what I love about the story of the development of the mouse is that they asked the question “what is the best way to locate a point on a screen” and tried to answer it. Half of their success is probably in simply asking the right question, and the other half in prototyping something half-workable. My gut says that we don’t have inputs figured out 100% on mobile yet. This sounds like a job for Hackaday. What’s the next big human-interface design need? And have you got any crazy ideas to solve it?

Hackaday Remoticon

And this week, we announced the Hackaday Remoticon, our shelter-in-place version of the Supercon. It’s going to take place in November as usual, but online instead of IRL.

The good news? It’s going to be chock full of workshops, all streamed online and recorded for posterity. And for that we need your proposals. If you’d like to teach a group of distributed hackers learning your favorite techniques and tricks, this is your chance!

The bad news is of course that we won’t get to see you all in person. That’s going to make the 2021 Hackaday Supercon seem even more super.

Stop Bad Laws Before They Start

With everything else going on this summer, you might be forgiven for not keeping abreast of new proposed regulatory frameworks, but if you’re interested in software-defined radio (SDR) or even reflashing your WiFi router, you should. Right now, there’s a proposal to essentially prevent you from flashing your own firmware/software to any product with a radio in it before the European Commission. This obviously matters to Europeans, but because manufacturers often build hardware to the strictest global requirements, it may impact everyone. What counts as radio equipment? Everything from WiFi routers to wearables, SDR dongles to shortwave radios.

The idea is to prevent rogue reconfigurable radios from talking over each other, and prevent consumers from bricking their routers and radios. Before SDR was the norm, and firmware was king, it was easy for regulators to test some hardware and make sure that it’s compliant, but now that anyone can re-flash firmware, how can they be sure that a radio is conformant? Prevent the user from running their own firmware, naturally. It’s pretty hard for Hackaday to get behind that approach.

The impact assessment sounds more like advertising copy for the proposed ruling than an honest assessment, but you should give it a read because it lets you know where the commission is coming from. Reassuring is that they mention open-source software development explicitly as a good to be preserved, but their “likely social impacts” include “increased security and safety” and they conclude that there are no negative environmental impacts. What do you do when the manufacturer no longer wants to support the device? I have plenty of gear that’s no longer supported by firmware updates that is both more secure and simply not in the landfill because of open-source firmware.

Similarly, “the increased capacity of the EU to autonomously secure its products is also likely to help the citizens to better protect their information-related rights” is from a bizarro world where you can trust Xiaomi’s home-automation firmware to not phone home, but can’t trust an open-source replacement.

Public comment is still open, and isn’t limited to European citizens. As mentioned above, it might affect you even if you’re not in the EU, so feel free to make your voice heard. You have until September, and you’ll be in some great company if you register your complaints. Indeed, reading through the public comments is quite heartening: Universities, researchers, and hackers alike have brought up reasons to steer clear of the proposed approach. We hope that the commission hears us.

The Sincerest Form Of Flattery

In the art world, it’s often wistfully said that imitation is the sincerest form of flattery. In the open-source hardware world, this flattery takes the shape of finding your open-source project mass produced in China and sold at outrageously low markups. Looking around on my lab, I’ve been the direct beneficiary of this success.

I see an AVR Transistor Tester that I picked up for a few bucks a long time ago. Lacking anything better, it’s my go-to device for measuring inductance and capacitor ESR. For $7, it is worth much more than I paid for it, due to some clever design work by a community of German hackers and the economics of mass production. They’re so cheap that we’ve seen people re-use them just for the displays and with a little modification, turned them into Tetris consoles. That’s too cool. Continue reading “The Sincerest Form Of Flattery”

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.