Hardware Vs Software: Fight!

It’s one of the great cliches in the hacker world: the hardware type and the software type. You can tell which of these two you are quite easily. When a project is actually 20% done, but you think it’s 90% done, and you say to yourself “And the rest is a simple matter of software”, you’re a hardware type. Ask anyone who has read my code, and they’ll tell you, I’m a hardware type.

Along with my blindness to the difficulties of getting the code right, I’ve also admittedly got an underappreciation of what powers lie in the dark typing arts. But I am not too proud to tip my hat when I see an awesome application of the soft stuff. Case in point: this Go board sequencer that we ran last week. An overhead webcam parses players’ moves as they put black and white stones down while playing the game of Go, and turns this into music.

The pure software type will be saying “but there’s a webcam and a Go board”. And indeed, that’s true. There are physical elements to this project that anchor it in the shared reality of the two people playing. But a hardware project this isn’t; it’s OpenCV and Max/MSP that make it work.

For comparison, look at the complexity of this similar physical sequencer. It’s got a 16 x 16 array of LEDs and switches and a CNC milled, primed, and painted surface that’s the size of a twin bed. Sawdust and hand-soldering: that’s a hardware project.

What I love about the Go sequencer is that it uses software just right. The piece is still physical. It could have just as easily been a VR world, where the two people would interact with each other only inside their goggles. But somehow that’s not quite as human as putting stones on a wooden board, sitting across from, and maybe even looking at, your opponent. The players aren’t forced to think about the software. They don’t feel like they’re playing a video game.

But at the same time, the software side of things makes all of the horrible hardware problems go away. Nobody is soldering a rat’s nest of 169 switches. There’s a webcam plugged into the USB port of a laptop. There’s a deep simplicity there.

Should you always trade out arcade buttons for OpenCV? Absolutely not! But is it worth considering the soft side when doing it in hardware is just too, well, hard? I’m open.

Greeking Out With Arduinos

Learning a new language is hard work, but they say that the best way to learn something is to teach it. [Angeliki Beyko] is learning Greek, and what better way to teach than to build a vocabulary flash-card game from Arduinos, color screens, 1602 text screens, and arcade buttons? After the break, we have a video from the creator talking about how to play, the hardware she chose, and what to expect in the next version.

Pegboard holds most of the hardware except the color screens, which are finicky when it comes to their power source. The project is like someone raided our collective junk drawers and picked out the coolest bits to make a game. Around the perimeter are over one hundred NeoPixels to display the game progress and draw people like a midway game. Once invested, you select a category on the four colored arcade buttons by looking at the adjacent LCD screens’ titles. An onboard MP3 shield reads a pseudo-random Greek word and displays it on the top-right 1602 screen in English phonetics. After that, it is multiple choice with your options displaying in full-color on four TFT monitors. A correct choice awards you a point and moves to the next word, but any excuse to mash on arcade buttons is good enough for us.

[Angeliki] does something we see more often than before, she’s covering what she learned, struggled with, would do differently, and how she wants to improve. We think this is a vital sign that the hacker community is showcasing what we already knew; hackers love to share their knowledge and improve themselves.

Typing Greek with a modern keyboard will have you reaching for an alt-code table unless you make a shortcut keyboard, and if you learn Greek, maybe you can figure out what armor they wore to battle.

Continue reading “Greeking Out With Arduinos”

DIY Relay Module Saves Time

As any programmer could tell you, there’s significant value in automating a process that is performed often enough. The more times that process is used, the more it makes sense to automate it or at least improve its efficiency. This rule isn’t limited to software though; improvements to hardware design can also see improvements in efficiency as well. For that reason, [Hulk] designed a simple relay module in order to cut the amount of time he spends implementing this solution in his various other projects.

While driving a relay with a transistor is something fundamental, this project isn’t really about that per se. It’s about recognizing something that you do too much, and then designing that drudgery out of your projects. [Hulk] was able to design a PCB with 12 modules on it, presumably saving fabrication costs. He can then easily populate them with specific components as soon as he needs one. Another benefit of designing something like this yourself, rather than an off-the-shelf relay module, is that you can do away with any useless features you’ll never need (or add ones that aren’t available in commercial devices).

We can appreciate the efficiency gains this would make for our next project that needs a simple driver for a light, garage door opener, or any other binary electronic device. It can be a hassle to go find the correct transistor and relay, solder it all on the project board, and hope it all works. A pre-made solution solves all these issues, but we do wish the schematics were available to keep us from having to design our own. Driver boards are a pretty common project for all the different types of relays we see around here, so there is probably one available out there.

Live Map Of London Tube Created In PCB And Lights

If you’re a frequent traveler on a public transit system, it can be helpful to know when the trains or buses are arriving and if there are any delays. We might reach for a tablet to mount on the wall, but that relies on keeping the OS, the software, and its library dependancies up to date. For true reliability you’ll need to build directly in hardware, which is exactly what this map of the London tube system uses.

The base map is printed directly on PCB, with LEDs along each of the major routes to indicate the current location of the trains. A few small chips handle the WiFi connection — it appears to our eye to be an ESP8266 — and pulling the information about the trains from the London Underground API (it would be virtually impossible to build everything for this project in hardware). The hardware can be easily reprogrammed, and with the PCB layout this could be adapted for other public transit fairly easily.

Even apart from the philosophical differences on design between hardware and software approaches, we still appreciate the aesthetic of LEDs on PCB. In fact, we’ve seen a whole host of artwork on PCBs ever since the price came down dramatically in the past two decades.

Thanks to [Al] for the tip!

Classic 8-Bit Computing The Atari Way

In the classic gaming world, even before the NES arrived on the scene, there was no name more ubiquitous than Atari. Their famous 2600 console sold almost as many units as the Nintendo 64, but was released nearly 20 years prior. In many ways, despite making mistakes that led to the video game crash of the early 80s, Atari was the first to make a path in the video game industry. If you want to explore what the era of 8-bit computing was like in the Atari age, a new resource is compiling all kinds of Atari-based projects.

This site has everything, from assembling Atari 8-bit computers based on the 6502 chip, to programming them in BASIC and assembly, to running official and homebrew games on the hardware itself. This was put together by [Jason H. Moore] who grew up around Atari systems and later, their home computers. He even puts his biomedical experience to use here by designing a game for the 2600 called Gene Medic which can be found at the site as well.

If you grew up in the 70s and 80s and are looking for a bit of Atari nostalgia this site is the place to go. It’s even worth a visit from younger folks as well since the 8-bit world is a lot easier to get immersed in and learn the fundamentals of computer science. Of course, if you want to take it the other direction, it’s possible to modify the old Atari to add a few modern conveniences.

Photo via Evan-Amos

Modular Mouse Packs Features

Not only do console gamers complain about the use of a mouse, but PC users themselves often don’t have kind words to say even about some of the higher-end options. Granted, their gripes aren’t about game experience or balance, they’re usually about comfort, features, or longevity of the mice themselves. So far we haven’t seen many people try to solve these problems, but [benw] recently stepped on the scene with a modular mouse that can fit virtually any need.

Called the RX-Modulus, this mouse has been designed from the ground up to be completely open source from hardware to software. Most of the components can be 3D printed to suit an individual’s particular grip style by making adjustments. The electronics can be custom fitted as well. Users can swap out mouse buttons and wheels in any number of positions, and replace them when they wear out. To that end, one of the goals of this project is also to avoid any planned obsolescence that typically goes along with any current consumer-level product.

While [benw] currently only has a few prototypes under his belt, he’s far enough along with the project that he’s willing to show it off to the community. His hopes are that there are others that see a need for this type of mouse and can contribute to the final design. After all, there are all kinds of other custom mice out there that would have been much easier builds with [benw]’s designs at hand.

The High Seas Are Open Source

One of the biggest problems of owning an older boat (besides being a money pit – that is common to all boats regardless of age) is the lack of parts and equipment, and the lack of support for those parts if you can find them at all. Like most things, this is an area that can benefit greatly from some open source solutions, which the Open Boat Projects in Germany has been able to show. (Google Translate from German)

This group has solutions for equipment problems of all kinds for essentially any sized boat. At their most recent expo, many people were interested in open source solutions for situations where there is currently only an expensive proprietary option, such as support for various plotting devices. This isn’t the only part of this project, though. It includes many separate projects, like their solutions for autopilot and navigation. There are even complete hardware packages available, all fully documented.

Open source solutions for large, expensive things like this are often few and far between for a number of reasons. There are limited options for other modes of open source transportation too, as it seems like most large companies are not willing to give up their secrets easily. Communities like this, however, give us hope that people will have other options for repairing their vehicles without having to shell out too much money.

Thanks to [mip] for the tip!