The Hackaday Prize is a celebration of the greatest hardware put together by the greatest hackers on the planet. If you go over the entries, you’ll find user interfaces for everything. Need a wheelchair controlled by eye gaze? That won last year. A foot controlled mouse? Done. Need a device to talk to the Internet while you’re in a lucid dream? We’ve seen that.
We’ve seen a lot of really cool, really strange stuff in the Hackaday Prize. We haven’t seen anything like Pallette, a finalist for the Assistive Technologies portion of this year’s prize. It’s a tongue-computer interface. You put Pallette in your mouth, like a retainer, and you can control a computer. Telekinesis with a tongue.
At its most basic level, Pallette is a Bluetooth mouse, hidden away behind the lower jaw. Infrared sensors triangulate the position of the tongue, and a microphone detects the tongue tapping on Pallette. Everything you can do with a mouse can be done with Pallette.
At first glance, Pallette seems to be just a little bit absurd. This idea changes when you see the video the Pallette team produced for the Hackaday Prize finals. Some people can’t use their arms, and for this, Pallette is a godsend. With this, anyone can use a computer, control a Sphero, or fly a drone. It’s a completely novel device that can be used for anything, and an excellent example of what we’re looking for in the Hackaday Prize.
It uses a Raspi 3 to find [Tim]’s pictures on a giant SD card. He originally wanted to have the Pi pull pictures from Google Photos and display them randomly, but the API doesn’t work in that direction. Instead, a Python script looks at the pictures on the SD card and determines whether each is landscape or portrait-oriented. If a picture was taken in portrait-mode, the display will rotate 90 degrees. Rotation is handled with an Arduino, a stepper motor, and some 3D-printed herringbone gears. The first version was a bit noisy, so [Tim] re-printed the motor mount and the pinion gear out of flexible filament.
[Tim] designed the mount and frame himself and laser-cut the pieces out of birch plywood. We like that he accounted for the front-heaviness and that he covered the high voltage circuitry with acrylic to mitigate the risk of shock. All the code and design files are available on his project page. Make the jump to see a brief demonstration followed by a walk-through and stay for the six-minute slide show.
Shards of silicon these days, they’re systematically taking what used to be rather complicated and making it dead simple in terms of both hardware and software. Take, for instance, this IR to HID Keyboard module. Plug it into a USB port, point your remote control at it, and you’re sending keyboard commands from across the room.
To do this cheaply and with a small footprint used to be the territory of bit-banging software hacks like V-USB, but recently the low-cost lines of microcontrollers that are anything but low-end have started speaking USB in hardware. It’s a brave new world.
In this case we’re talking about the PIC18F25J50 which is going to ring in at around three bucks in single quantity. The other silicon invited to the party is an IR receiver (which demodulates the 38 kHz carrier signal used by most IR remotes) with a regulator and four passives to round out the circuit. the board is completely single-sided with one jumper (although the IR receiver is through-hole so you don’t quite get out of it without drilling). All of this is squeezed into a space small enough to be covered by a single key cap — a nice touch to finish off the project.
[Suraj] built this as a FLIRC clone — a way to control your home-built HTPC from the sofa. Although we’re still rocking our own HTPC, it hasn’t been used as a front-end for many years. This project caught our attention for a different reason. We want to lay down a challenge for anyone who is attending SuperCon (or not attending and just want to show off their chops).
This is nearly the same chip as you’ll find on the SuperCon badge. That one is a PIC18LF25K50, and the board already has an IR receiver on it. Bring your PIC programmer and port this code from MikroC over to MPLAB X for the sibling that’s on the badge and you’ll get the hacking cred you’ve long deserved.
Talking to computers is all the rage right now. We are accustomed to using voice to communicate with each other, so that makes sense. However, there’s a distinct difference between talking to a human over a phone line and conversing face-to-face. You get a lot of visual cues in person compared to talking over a phone or radio.
Today, most voice-enabled systems are like taking to a computer over the phone. It gets the job done, but you don’t always get the most benefit. To that end, [Youness] decided to marry an OLED display to his Alexa to give visual feedback about the current state of Alexa. It is a work in progress, but you can see two incarnations of the idea in the videos below.
A Raspberry Pi provides the horsepower and the display. A Python program connects to the Alexa Voice Service (AVS) to understand what to do. AVS provides several interfaces for building voice-enabled applications:
Speech Recognition/Synthesis – Understand and generate speech.
Alerts – Deal with events such as timers or a user utterance.
One can imagine a political or business conference without an interactive badge — but not a hacker conference. Does this make the case for hackers being a special breed of people, always having something creative to show for their work? Yes, I think it does.
Following the Hackaday Belgrade conference in April of this year, we met at the Supplyframe offices to discuss the badge for the Hackaday SuperConference that will happen in Pasadena on 5+6th of November. The Belgrade conference badge (which was fully documented if you’re curious) was surprisingly popular, and I was asked to design the new one as well.
I was prepared to come up with something completely new, but [Mike Szczys] suggested keeping with the same basic concept for the project: “No reason to change anything, we have a badge that works”. To which I responded: “Well, the next one will also work”. But then I realized that “works” does not stand for “being functional”. The key is that it was embraced by visitors who played with it, coded on it, and solved a crypto challenge with it.
The World Doesn’t Have Enough LEDs
Fast forward six months — here are the modifications made to the basic concept. First, the existing LED matrix, which was composed of two compact 8×8 blocks, was replaced by 128 discrete SMD LEDs. It was a much needed change to help scale down the dimensions and clunkiness, but also to avoid another painful experience of trying to purchase and have the matrix displays shipped, which seriously threatened the production of the previous badge.
It’s a long story which I discussed in my Belgrade talk — it turned out we did not manage to get enough common anode (CA) displays from all distributors in the whole world. We had a plan B, which also fizzled, leaving us with the plan C which actually included two “C”s: Common Cathode. We cleaned up all the supplies at five distributors, and managed to get 122 CA red, 340 CC red and 78 CA green displays (enough for only 270 badges) — the entire world supply. After that, you couldn’t get any 38 mm Kingbright’s display for months! The only problem was that there were two different versions of PCBs, one for CA and the other for CC displays, but luckily only one version of software, as it could autodetect the display type.
Motion and Expansion
So, what else was new in the concept? In the Belgrade version, the badge supported an accelerometer module and included an unpopulated footprint in case you decided to install it, but now the badge has the MEMS chip LIS3 as an integral part. There are nine pads (with five I/O ports, driven directly from the MCU) to which you can add a 9-pin expansion connector. There will be a number of these connectors at the Design Lab, so that anyone can expand their badge for their convenience, on the spot.
The Visual Design
The biggest change was in the visual design. What we came up with ended up being a fair bit smaller, lighter, with a more convenient shape, and less than half the thickness of the previous one. After we had scrapped quite a few ideas during the development process (including stylized skull, frog, etc), we were left with a couple of options which you can see on the image below. The wireframe drawing on the left hand side is the Belgrade badge, shown here for a size comparison. At this point the locale and date of the conference weren’t yet definitive, which is why you see San Francisco written on the images.
Design number 4 prevailed, so the PCB layout could begin. I don’t like autorouted PCBs, so I was in for quite a rough time trying to solve the routing manually having only 2 layers on the board at my disposal.
Routing a Compact LED Matrix
The LED matrix is so dense that there was virtually no room on the LED layer, so most of the tracks on the component layer had to be routed as if it was a single layer PCB. To make matters worse, the LED layer is routed as a matrix, with a bunch of horizontal and vertical tracks, otherwise a good reason to use a 4-layer PCB. To stay inside the budget, everything had to be placed on 2 layers, and that’s why the final result seems so confusing at the populated area between batteries:
[Dr.Duino] recently completed the latest piece of what he calls “Interactive Furniture” – the GoonieBox. It took over 800 hours of design and assembly work and the result is fascinating. Part clock and part puzzle box, it’s loaded with symbols, moving parts, lights, riddles, sounds, switches, and locked compartments. It practically begs visitors to take a closer look.
The concept of Interactive Furniture led [Dr.Duino] to want to create a unique piece of decor that visitors could interact with. That alone wasn’t enough — he wanted something that wouldn’t require any explanation of how it worked; something that intrinsically invited attention, inspection, and exploration. This quest led to creating The GoonieBox, named for its twin inspirations of the 1985 film The Gooniesas well as puzzles from the game “The Room“.
Embedded below are two short videos: the first demonstrates the functions of the box, and the second covers the build process. There’s laser-cut wood, plenty of 3D printed parts, and a whole lot of careful planning and testing.
We’ve all taken apart a small toy and pulled out one of those little can motors. “With this! I can do anything!” we proclaim as we hold it aloft. Ten minutes later, after we’ve made it spin a few times, it goes into the drawer never to be seen again.
It always seems like they are in everything but getting them to function usefully in a project is a fool’s errand. What the heck are they for? Where do people learn the black magic needed to make them function? It’s easy enough to pull out the specification sheet for them. Most of them are made by or are made to imitate motors from the Mabuchi Motor Corporation of Japan. That company alone is responsible for over 1.5 billion tiny motors a year.
More than Just the Specs
In the specs, you’ll find things like running speed, voltage, stall current, and stall torque. But they offer anything but a convincing application guide, or a basic set of assumptions an engineer should make before using one. This is by no means a complete list, and a skip over the electrics nearly completely as that aspect of DC motors in unreasonably well documented.
The first thing to note is that they really aren’t meant to drive anything directly. They are meant to be isolated from the actual driving by a gear train. This is for a lot of reasons. The first is that they typically spin very fast, 6,000 – 15,000 rpm is not atypical for even the tiniest motor. So even though the datasheet may throw out something impressive like it being a 3 watt motor, it’s not exactly true. Rather, it’s 3 N*m/s per 15,000 rotations per minute motor. Or a mere 1.2 milliwatt per rotation, which is an odd sort of unit that I’m just using for demonstration, but it gives you the feeling that there’s not a ton of “oomph” available. However, if you start to combine lots of rotations together using a gear train, you can start to get some real power out of it, even with the friction losses.
The only consumer items I can think of that regularly break this rule are very cheap children’s toys, which aren’t designed to last long anyway, and those powered erasers and coffee stirrers. Both of these are taking for granted that their torque needs are low and their speed needs are high, or that the motor burning out is no real loss for the world (at least in the short term).
This is because the motors derate nearly instantly. Most of these motors are hundreds of loops of very thin enameled wire wrapped around some silicon steel plates spot welded or otherwise coerced together. This means that even a small heat event of a few milliseconds could be enough to burn through the 10 micrometer thick coating insulating the coils from each other. Practically speaking, if you stall a little motor a few times in a row you might as well throw it away, because there’s no guessing what its actual performance rating is anymore. Likewise, consistently difficult start-ups, over voltage, over current, and other abuse can quickly ruin the motor. Because the energy it produces is meant to spread over lots of rotations, the motor is simply not designed (nor could it be reasonably built) to produce it all in one dramatic push.
This brings me to another small note about these tiny motors. Most of them don’t have the carbon brushes one begins to expect from the more powerful motors. Mostly they have a strip of copper that’s been stamped to have a few fingers pressing against the commutator. There’s lots of pros to these metal contacts and it’s not all cost cutting, but unless you have managed to read “Electrical Contacts” by Ragnar Holm and actually understood it, they’re hard to explain. There’s all sorts of magic. For example, just forming the right kind of oxide film on the surface of the commutator is a battle all on its own.
It’s a weird trade off. You can make the motor cheaper with the metal contacts, for one. Metal contacts also have much lower friction than carbon or graphite brushes. They’re quieter, and they also transfer less current, which may seem like a bad thing, but if you have a stalled motor with hairlike strands transferring the pixies around the last thing you’d want to do is transfer as much current as possible through them. However, a paper thin sheet of copper is not going to last very long either.
So it comes down to this, at least as I understand it: if bursts of very fast, low energy, high efficiency motion is all that’s required of the motor over its operational life then the metal strip brushes are perfect. If you need to run the motor for a long stretches at a time and noise isn’t an issue then the carbon brush version will work, just don’t stall it. It will cost a little bit more.
Take Care of Your Tiny Motors
To touch one other small mechanical consideration. They are not designed to take any axial load at all, or really even any radial load either. Most of them have a plastic or aluminum bronze bushing, press-fit into a simple stamped steel body. So if you design a gearbox for one of these be sure to put as little force as possible on the bearing surfaces. If you’ve ever taken apart a small toy you’ve likely noticed that the motor can slide back and forth a bit in its mounting. This is why.
Lastly, because most of these motors are just not intended to run anywhere near their written maximum specifications it is best to assume that their specifications are a well intentioned but complete lie. Most designs work with the bottom 25% of the max number written on the spreadsheet. Running the motor anywhere near the top is usually guaranteed to brick it over time.
These are useful and ubiquitous motors, but unlike their more powerful cousins they have their own set of challenges to work with. However, considering you can buy them by the pound for cheaper than candy, there’s a good reason to get familiar with them.