Modded Robot Vacuum Can Whistle While It Works

While repairing his Neato Botvac D85, [elad] noticed the little fellow was packing a real speaker and not just a piezo buzzer. Thinking this was a bit overkill just for the occasional beep and bloop, he decided to round things out with a Bluetooth receiver and a second speaker so the bot can spin some stereo tunes while it gets down and dirty.

It wasn’t a very expensive modification. Between the VHM-314 Bluetooth receiver, the 3 watt PAM8403 amplifier, and a matching speaker, [elad] says he was only a few bucks out of pocket. Truly a small price to pay for a robotic vacuum that plays its own theme music as it travels around the house. A small demonstration of the Neato’s new musical talents can be heard in the video after the break.

Perhaps unsurprisingly, the audio hardware puts enough of a drain on the robot’s batteries at max volume that there’s a noticeable reduction in runtime. He’s not too worried about it right now, but [elad] mentions that if it ends up keeping the vacuum from being able to complete it’s whole cleaning cycle, that he might look into adding a dedicated power source to keep the music going.

Despite some early encouragement from iRobot, we haven’t seen quite as much robot vacuum hacking as you might think. It’s always interesting to get a glimpse inside of these automated housekeepers, especially when it’s a custom built machine.

Continue reading “Modded Robot Vacuum Can Whistle While It Works”

3D Printed Gesture-Controlled Robot Arm Is A Ton Of Tutorials

Ever wanted your own gesture-controlled robot arm? [EbenKouao]’s DIY Arduino Robot Arm project covers all the bases involved, but even if a robot arm isn’t your jam, his project has plenty to learn from. Every part is carefully explained, complete with source code and a list of required hardware. This approach to documenting a project is great because it not only makes it easy to replicate the results, but it makes it simple to remix, modify, and reuse separate pieces as a reference for other work.

[EbenKouao] uses a 3D-printable robotic gripper, base, and arm design as the foundation of his build. Hobby servos and a single NEMA 17 stepper take care of the moving, and the wiring and motor driving is all carefully explained. Gesture control is done by wearing an articulated glove upon which is mounted flex sensors and MPU6050 accelerometers. These sensors detect the wearer’s movements and turn them into motion commands, which in turn get sent wirelessly from the glove to the robotic arm with HC-05 Bluetooth modules. We really dig [EbenKouao]’s idea of mounting the glove sensors to this slick 3D-printed articulated gauntlet frame, but using a regular glove would work, too. The latest version of the Arduino code can be found on the project’s GitHub repository.

Most of the parts can be 3D printed, how every part works together is carefully explained, and all of the hardware is easily sourced online, making this a very accessible project. Check out the full tutorial video and demonstration, embedded below.

Continue reading “3D Printed Gesture-Controlled Robot Arm Is A Ton Of Tutorials”

Remote Control Robot Deals Dominoes

Oh, dominoes — the fun of knocking them down is inversely proportional to the pain of setting them all up again. [DIY Machines] is saving loads of time by automating the boring part with a remote control domino-laying machine. If only it could pick them back up.

This machine can be driven directly over Bluetooth like an R/C car, or programmed to follow a predetermined path via Arduino code. Here’s how it works: an Arduino Uno drives two servos and one motor. The 1:90 geared motor drives the robot around using a 180° servo to steer. A continuous servo turns the carousel, which holds nearly 140 dominoes. We love that the carousel is designed to be hot-swappable, so you can keep a spare ready to go.

[DIY Machines] really thought of everything. Every dozen or so dominoes, the machine leaves a gap in case one of the dominoes is tipped prematurely. There are also a couple of accessories for it, like a speedy domino loading stick and a fun little staircase bridge to add to your domino creations. Though all the machine files are freely available, [DIY Machines] requests a small donation for the accessories files. Check out the complete build video after the break, followed by a bonus video that focuses on upgrading the machine with an HM10 Bluetooth module for controlling it directly with a phone.

This certainly isn’t the first domino-laying device we’ve seen, though it might be the most accessorized. [Matthias Wandel]’s version uses only one motor to move and deal the dominoes.

Continue reading “Remote Control Robot Deals Dominoes”

Learning To Speak Peloton

Recently [Imran Haque]’s family bought the quite popular Peloton bike. After his initial skepticism melted to a quiet enthusiasm, [Imran] felt his hacker curiosity begin to probe the head unit on the bike. Which despite being a lightly skinned android tablet, has a reputation for being rather locked down. The Peloton bike will happily collect data such as heart rate from other devices but is rather reticent to broadcast any data it generates such as cadence and power. [Imran] set out to decode and liberate the Peleton’s data by creating a device he has dubbed PeloMon. He credits the inspiration for his journey to another hacker who connected a Raspberry Pi to their bricked exercise bike.

As a first step, [Imran] step began with decoding the TRRS connector that connects the bike to the head unit. With the help of a multi-meter and a logic analyzer, two 19200bps 8N1 RS-232 channels (TX and RX) were identified. Once the basic transport layer was established, he next set to work decoding the packets. By plotting the bytes in the packets and applying deductive reasoning, a rough spec was defined. The head unit requested updates every 100ms and the bike responded with cadence, power, and resistance data depending on the request type (the head unit did a round-robin through the three data types).

Once the protocol was decoded, the next step for [Imran] was to code up an emulator. It seems a strange decision to write an emulator for a device with a simple protocol, but the reasoning is quite sound. It avoids a 20-minute bike ride every time a code change needs to be tested. [Imran] wrote both an event-driven and a timing-accurate emulator. The former runs on the same board as the PeloMon and the latter runs on a separate board (an Arduino).

The hardware chosen for the PeloMon was an Adafruit Feather 32u4 Bluefruit LE. It was chosen for supporting Bluetooth LE as well as having onboard EEPROM. A level shifter allows the microcontroller to talk directly to the RS-323 on the bike. After a few pull requests to the Adafruit Bluetooth libraries and a fair bit of head-banging, [Imran] has code that advertises two Bluetooth services, one for speed and another for power. A Bluetooth serial console is also included for debugging without having to pull the circuit out.

The code, schematics, emulators, and research notes are all available on GitHub.

Racing The Old Clock

[Keenan Rebera] recently found himself with an old racing clock (a chronoix cc3000) left behind by a roommate. How the roommate obtained such a clock seems murky at best, but undeterred [Keenan] set to work bringing the clock to life with Bluetooth functionality. The mechanical nature of the digits provided a satisfying auditory click, making it a good candidate for some upgrading. The new brain transplant is the venerable ESP32 with an RTC for good measure. He created a custom PCB with QWIC connectors to daisy chain together the driver boards together. Each PCB has four TBD62083 for driving the digits, two MCP expanders to increase the address space. This allows the ESP32 to address all the various segments over I2C. By soldering different pads together, he can change the address of each MCP, giving a maximum of 16 digits (9 possible MCP’s each driving 2 digits).

A handsomely designed app accompanies the clock, making updating the RTC and setting the timezone a breeze. Currently, it is displaying a count down to the time when 2020 is officially over. While 2020 will certainly go down in the books as a tumultuous year, it was a great year for DIY clocks at Hackaday. Just in the past few weeks, we’ve seen big LED workshop clocks, esoteric domino clocks, and beautiful clocks that double as works of art. Come 2021, we’re quite confident that [Keenan] will still have a gorgeous clock on his wall ticking and clicking away.
Continue reading “Racing The Old Clock”

Sit Up Straight!: Open Source Bluetooth Posture Sensing

As more and more people spend their working hours behind a computer, bad posture and the accompanying back pain and back problems become a growing epidemic. To combat this in his own daily life, [ImageryEel] made PosturePack, a wearable Bluetooth-enabled posture sensor.

The PosturePack is designed to fit into a small pocket sewn into the pack of an undershirt, between the shoulder blades. It consists of a custom PCB with an ATmega32U4, BNO055 IMU, Bluetooth module,  small LiPo and power circuitry. Based on the orientation data from the IMU, a notification is sent over Bluetooth to a smartphone whenever the user hunches forward.

[ImageryEel] says although the mobile notifications worked, haptic feedback integrated into the unit would be a better option. This could also be used to remind the user to stand up and take a break now and then, and provide an alternative to a smartwatch for activity monitoring without sending every movement to someone else’s servers. Software will always be the hardest part for projects like these, especially as the device become “smarter”. Learning to recognize activity and postures is actually a good place for tiny machine learning models.

Compared The posture sensors we covered before had to be installed and set up at a specific workstation, like an ultrasound-based version attached to a chair, and a webcam-based version.

ESP32 Spectrum Analyzer Taps Into Both Cores

We probably don’t need to tell the average Hackaday reader that the ESP32 is a powerful and extremely flexible microcontroller. We’ve seen some incredible projects using this affordable chip over the last few years, and by the looks of it, the best is yet to come. That’s because it always takes some time before the community can really figure out how to get the most out of a piece of hardware.

Take for example the Bluetooth audio player that [squix] was recently working on. Getting the music going was no problem with the esp32-a2dp library, but when he wanted to add some visualizations the audio quality took a serious hit. Realizing that his Fast Fourier transform (FFT) code was eating up too much processor power, it seemed like a great time for him to explore using the ESP32’s second core.

[squix] had avoided poking around with the dual-core nature of the ESP32 in the past, believing that the second core was busy handling the WiFi communication. But by using the FreeRTOS queue system, he wrote some code that collects audio data with one core and runs the actual FFT magic on the other. By balancing the workload like this, he’s able to drive the array of 64 WS2812B LEDs on the front of the Icon64 seen in the video after the break.

Even if you’re not terribly interested in running your own microcontroller disco, this project may be just the example you’ve been waiting for to help get your mind wrapped around multitasking on the ESP32. If you want to master a device with this many tricks up its sleeve, you’ll need all the help you can get.

Continue reading “ESP32 Spectrum Analyzer Taps Into Both Cores”