Posts with «arduino hacks» label

Snap-Together Macropad Does It Without Solder

Maybe we’re biased, but we think everyone has a use for a macropad. It’s just a matter of time before a highly personalized set of speed controls starts to sound like a great time-saving device to have around.

Trouble is, macropads are usually kind of expensive to buy outright, and not everyone feels comfortable building keyboards. Okay, so what if you didn’t even have to solder anything? That’s the idea behind [Jan Lunge]’s hand-wired macropad.

You will still want to open a window for ventilation if you build this one, because this macropad requires a lot of 3D printing. What it doesn’t require is glue or screws, because everything snaps together.

Of course, the star of this build is [Jan]’s hot swap socket design. We especially love the little clip that holds the column wires in place while also providing a spacer between those and the row wires. Everything is connected up to a Pro Micro with non-insulated wire and held in place with bends at the ends and the magic of tension. Be sure to check out the build video after the break.

Thirsty for more than a six pack of switches? This design is easy to scale up until you run out of microcontroller inputs. At that point, you might want to add screens to keep track of all your macros.

Thanks for the tip, [BaldPower]!

Arduino Drives Faux Spirograph

The holidays always remind us of our favorite toys from when we were kids. Johnny Astro, an Erector set, and — of course — a Spirograph. [CraftDiaries] has an Arduino machine that isn’t quite a Spirograph, but it sure reminds us of one. The Arduino drives two stepper motors that connect to a pen that can create some interesting patterns.

The build uses a few parts that were laser cut, but they don’t look like they’d be hard to fabricate using conventional means or even 3D printing. The author even mentions you could make them out of cardboard or foamboard if you wanted to.

The electronics are straightforward with two stepper drivers. We couldn’t help but think that some of the old 3D printer motherboards we have laying around here could handle this very easily. However, in this project, the CPU is an ordinary UNO with a CNC shield to drive the motors.

Of course, the real trick is the software. Apparently, the different patterns come from the relationship between the delay between steps of the right motor and that of the left motor. There’s got to be some math behind that, but the patterns are certainly pretty.

If you prefer something that looks more like an actual Spirograph, grab a bag of Lego. Or try the Art-O-Matic.

Hackvent Calendar Will Open the Door and Get Your Kids Soldering

Who says it’s too early to get in the holiday spirit? We say it’s not. After all, people need time to get in the spirit before it comes and goes. And what better way to count down the days until Christmas than an electronic Advent calendar?

[Tom Goff]’s kids had some pretty cool ideas for building a decoration, like a musical, lighted sleigh complete with robotic Santa Claus. While that’s a little much to pull off for this year, they did salvage the music and lights part for their Hackvent calendar.

There are 24 small LEDs for December 1st through the 24th, and a big white star for December 25th. Each day, the kids just push the button and the day’s LED lights up. On the big day, all the small lights cascade off and the white one lights up, then it plays Jingle Bells through a sound playback module.

Each LED is connected directly to an input on an Arduino Mega. While there are several ways of lighting up 25 LEDs, this one is pretty kid-friendly. We think the coolest part of this build is that [Tom] and the kids did it old school, with nails hammered into the laser-cut plywood and used as connection terminals. Be sure to check it out in action after the break.

The more time you have, the more you can put into your Advent calendar build. Like chocolates, for instance.

Ham Radio Gets Brain Transplant

Old radios didn’t have much in the way of smarts. But as digital synthesis became more common, radios often had as much digital electronics in them as RF circuits. The problem is that digital electronics get better and better every year, so what looked like high-tech one year is quaint the next. [IMSAI Guy] had an Icom IC-245 and decided to replace the digital electronics inside with — among other things — an Arduino.

He spends a good bit of the first part of the video that you can see below explaining what the design needs to do. An Arduino Nano fits and he uses a few additional parts to get shift registers, a 0-1V digital to analog converter, and an interface to an OLED display.

Unless you have this exact radio, you probably won’t be able to directly apply this project. Still, it is great to look over someone’s shoulder while they design something like this, especially when they explain their reasoning as they go.

The PCB, of course, has to be exactly the same size as the board it replaces, including mounting holes and interface connectors. It looks like he got it right the first time which isn’t always easy. Does it work? We don’t know by the end of the first video. You’ll have to watch the next one (also below) where he actually populates the PCB and tests everything out.

Hack a Day 27 Nov 18:01

Bluetooth Record Player Puts a New Spin On Vinyl

You know, we were just discussing weird and/or obsolete audio formats in the writers’ dungeon the other day. (By the way, have you ever bought anything on DAT or MiniDisc?) While vinyl is hardly weird or (nowadays) obsolete, the fact that this Bluetooth record player by [JGJMatt] is so modern makes it all the more fantastic.

Not since the Audio-Technica Sound Burger, or Crosley’s semi-recent imitation, have we seen such a portable unit. But that’s not even the most notable part — this thing runs inversely to normal record players. Translation: the record stands still while the the player spins, and it sends the audio over Bluetooth to headphones or a speaker.

Inside this portable player is an Arduino Nano driving a 5 VDC motor with a worm gear box. There really isn’t too much more to this build — mostly power, a needle cartridge, and a Bluetooth audio transmitter. There’s a TTP223 touch module on the lid that allows [JGJMatt] to turn it off with the wave of a hand.

[JGJMatt] says this is a prototype/work-in-progress, and welcomes input from the community. Right now the drive system is good and the Bluetooth is stable and able, but the tone arm has some room for improvement — in tests, it only played a small section of the record and skidded and skittered across the innermost and outermost parts. Now, [JGJMatt] is trying two-part arm approach where the first bit extends and locks into position, and then a second arm extending from there and moves around freely.

Commercial record players can do more than just play records. If you’ve got an old one that isn’t even good enough for a thrift store copy of a Starship record, you could turn it into a pottery wheel or a guitar tremolo.

Arduino + Ham Radio = Texting

Over on the Spectrum web site, [Dale] — a relatively new ham radio operator — talks about his system for sending text messaging over VHF radios called HamMessenger. Of course, hams send messages all the time using a variety of protocols, but [Dale] wanted a self-contained and portable unit with a keyboard, screen, and a GPS receiver. So he built one. You can find his work on GitHub.

At the heart of the project is MicroAPRS, an Arduino firmware for packet radio. Instead of using a bigger computer, he decided to dedicate another Arduino to do everything but the modem function.

You can probably figure out the rest. A $10 GPS, a battery pack, a charge controller, and a few user interface parts like an OLED screen and a keyboard. In addition, there’s an SD card to store messages.

Of course, we couldn’t help but notice that our cell phone has a keyboard, screen, GPS, and storage. We might have been tempted to work out a way to connect the radio to it by Bluetooth. But we have to admit the little HamMessenger setup is cool-looking and probably lasts longer on a charge than our phone, too.

Binaural Hearing Modeled with an Arduino

You don’t have two ears by accident. [Stoppi] has a great post about this, along with a video you can see below. (The text is in German, but that’s what translation is for.) The point to having two ears is that you receive audio information from slightly different angles and distances in each ear and your amazing brain can deduce a lot of spatial information from that data.

For the Arduino demonstration, cheap microphone boards take the place of your ears. A servo motor points to the direction of sound. This would be a good gimmick for a Halloween prop or a noise-sensitive security camera.

Math-wise, if you know the speed of sound, the distance between the sensors, and a few other pieces of data, you wind up with a fairly simple trigonometry problem. In non-math terms, it is easy to get a feel for why this works. If the sound hits both microphones at once, it must be coming from straight ahead. If it hits the left microphone first, it must be closer to that microphone and vice versa. If the sound were right in line with both microphones but closer to the left, the time delay would be exactly due to the speed of sound over the distance between the sensors. If the time is less than that, the sound must be somewhere in between.

The microphone modules have both analog outputs and digital outputs. The digital output triggers if the sound level exceeds a limit set by a potentiometer. By using these modules, the circuit is trivial. Just an Arudino, the two modules, and the servo motor.

Now imagine that you wanted all this spatial detail to come through your headphones. Recording binaural audio is a thing. You can 3D print a virtual head if you are interested. We’ve seen projects for this several times.

Machine Learning Shushes Stressed Dogs

If there’s one demographic that has benefited from people being stuck at home during Covid lockdowns, it would be dogs. Having their humans around 24/7 meant more belly rubs, more table scraps, and more attention. Of course, for many dogs, especially those who found their homes during quarantine, this has led to attachment issues as their human counterparts have begin to return to work and school.

[Clairette] has had a particularly difficult time adapting to her friends leaving every day, but thankfully her human [Nathaniel Felleke] was able to come up with a clever solution. He trained a TinyML neural net to detect when she barked and used and Arduino to play a sound byte to sooth her. The sound bytes in question are recordings of [Nathaniel]’s mom either praising or scolding [Clairette], and as you can see from the video below, they seem to work quite well. To train the network, [Nathaniel] worked with several datasets to avoid overfitting, including one he created himself using actual recordings of barks and ambient sounds within his own house. He used Eon Tuner, a tool by Edge Impulse, to help find the best model to use and perform the training. He uploaded the trained network to an Arduino Nano 33 BLE Sense running Mbed OS, and a second Arduino handled playing sound bytes via an Adafruit Music Maker Featherwing.

While machine learning may sound like a bit of an extreme solution to curb your dog’s barking, it’s certainly innovative, and even appears to have been successful. Paired with this web-connected treat dispenser, you could keep a dog entertained for hours.

Low-Cost Computer Gesture Control with an I2C Sensor

Controlling your computer with a wave of the hand seems like something from science fiction, and for good reason. From Minority Report to Iron Man, we’ve seen plenty of famous actors controlling their high-tech computer systems by wildly gesticulating in the air. Meanwhile, we’re all stuck using keyboards and mice like a bunch of chumps.

But it doesn’t have to be that way. As [Norbert Zare] demonstrates in his latest project, you can actually achieve some fairly impressive gesture control on your computer using a $10 USD PAJ7620U2 sensor. Well not just the sensor, of course. You need some way to convert the output from the I2C-enabled sensor into something your computer will understand, which is where the microcontroller comes in.

Looking through the provided source code, you can see just how easy it is to talk to the PAJ7620U2. With nothing more exotic than a switch case statement, [Norbert] is able to pick up on the gesture flags coming from the sensor. From there, it’s just a matter of using the Arduino Keyboard library to fire off the appropriate keycodes. If you’re looking to recreate this we’d go with a microcontroller that supports native USB, but technically this could be done on pretty much any Arduino. In fact, in this case he’s actually using the ATtiny85-based Digispark.

This actually isn’t the first time we’ve seen somebody use a similar sensor to pull off low-cost gesture control, but so far, none of these projects have really taken off. It seems like it works well enough in the video after the break, but looks can be deceiving. Have any Hackaday readers actually tried to use one of these modules for their day-to-day futuristic computing?

Adafruit AVRProg Grows UPDI Interface Support

Making a small number of things with an embedded application is pretty straightforward, you usually simply plug in a programmer or debugger dongle (such as an AVRISP2) into your board with an appropriate adaptor cable, load your code into whatever IDE tool is appropriate for the device and hit the program button. But when you scale up a bit to hundreds or thousands of units, this way of working just won’t cut it. Add in any functional or defect-oriented testing you need, and you’re going to need a custom programming rig.

Adafruit have a fair bit of experience with building embedded boards and dealing with the appropriate testing and programming, and now they’ve updated their AVR Programming library to support the latest devices which have moved to the UPDI (Unified Programming and Debug Interface) programming interface. UPDI is a single-wire bidirectional asynchronous serial interface which enables programming and debugging of embedded applications on slew of the new AVR branded devices from Microchip. An example would be the AVR128DAxx which this scribe has been tinkering with lately because it is cheap, has excellent capacitive touch support, and is available in a prototype-friendly 28-pin SOIC package, making it easy peasy to solder.

The library is intended for use with the Arduino platform, so it should run on a vast array of hardware, without any special requirements, so making a custom programming jig out of hardware lots of us have lying around is not a huge hassle.

Adafruit provide a few application examples in the project GitHub to get you going, such as this ATTiny817 example that wipes the flash memory, sets appropriate fuses and drops in a bootloader.

The UPDI code was taken from the [brandanlane’s] portaprog which is hosted on the TTGO T-Display ESP32 board from Chinese outfit LilyGo, which is also worth checking out.

A little while ago we saw how the AVR Multitool, the AVRGPP learned to speak UPDI, and since we’re on programming interfaces, its possible to get the cheap-as-chips USBasp to speak TPI as well.

 

Hack a Day 08 Nov 16:30