USB-C Programmable Power Supply For Any Project

USB-C Power Delivery 3.0 (PD3.0) introduces a new Programmable Power Supply (PPS) mode, which allows a device to negotiate any supply of 3.3-21 V in 20 mV steps, and up to 5 A of current in 50 mA steps. To make use of this new standard, [Ryan Ma] create the PD Micro, an Arduino-compatible development board, and a self-contained software library to allow easy integration of PD3.0 and the older PD2.0 into projects.

The dev board is built around an ATMega32U4 microcontroller and FUSB302 USB-C PHY. The four-layer PCB is densely packed on both sides to fit in the Arduino Pro Micro Form factor. The board can deliver up to 100W (20 V at 5 A) from an appropriate power source and shows visual feedback on the PD status through a set of LEDs.

The primary goal of the project is actually in the software. [Ryan] found that existing software libraries for PD take up a lot of memory, and are difficult to integrate into small projects. Working from the PD specifications and PD PHY chip data sheet, he created a lighter weight and self-contained software library which consumes less than 8 K of flash and 1 K of RAM. This is less than half the Flash and RAM available on the ATmega32U4.

[Ryan] is running a Crowd Supply campaign (video after the break) to get some of these powerful boards out in the wild, and has released all the source code and schematics on GitHub. The PCB design files will be released during the last week of the campaign, around 25 January 2021.

USB-C and power delivery are not simple standards, but the ability to add a high-speed data interface and a programmable power supply into almost any project has real potential.

Continue reading “USB-C Programmable Power Supply For Any Project”

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.

Rhythm Game Controller Can’t Be Beat

There’s this whole class of vertically scrolling rhythm games that take both hands and look really fun to play, albeit hard on the joints. You can buy specialized controllers for them, but they’re ridiculously expensive for what they are — just a handful of switches and two knobs. It’s exactly the kind of thing you should build to your taste for far less money.

Inspired by a pocket version of the Voltex controller that is also pretty darned expensive, [OmniSaiRen] set out to make their own on the cheap by building an awesome little macro keyboard that’s smaller and easier to use than the specialized controller. Inside there’s an Arduino Pro Micro taking input from eight Cherry MX switches and two optical encoders. The game treats the encoders as vertical and horizontal mouse movements, so [OmniSaiRen]’s code scans the encoders for their positions.

[OmniSaiRen] wrote their own matrix code and says it’s ugly, but it works well enough to play the game. What more can you ask for? A cool sticker to go on the top? Done. It’s too cold outside to paint, anyway. If it’s a one-handed game pad you need, check out this sweet little thing.

Via r/duino

A Tubular Fairy Tale You Control With Your Phone

At first glance, this might appear to be a Rube Goldberg machine made of toys. The truth isn’t far off — it’s a remote-control animatronic story machine driven by its spectators and their phones. [Niklas Roy] and a team of volunteers built it in just two weeks for Phaenomenale, a festival centered around art and digital culture that takes place every other year.

A view of the tubes without the toys.

A red ball travels through a network of clear acrylic tubes using 3D printed Venturi air movers, gravity, and toys to help it travel. Spectators can change the ball’s path with their phones via a local website with a big picture of the installation. The ball triggers animations along its path using break beam detection and weaves a different story each time depending on the toys it interacts with.

Here’s how it works: a Raspberry Pi 4 is responsible for releasing the ball at the beginning of the track and for controlling the track switches. The Pi also hosts a server for smartphones and the 25 Arduino Nanos that control the LEDs and servos of the animatronics. As a bonus animatronic, there’s a giant whiteboard that rotates and switches between displaying the kids’ drawings and the team’s plans and schematics. Take a brief but up-close tour after the break.

This awesome art project was a huge collaborative effort that involved the people of Wolfsburg, Germany — families in the community donated their used and abandoned toys, groups of elementary school kids were brought in to create stories for the toys, and several high school kids and other collaborators realized these drawings with animatronics.

Toys can teach valuable lessons, too. Take this body-positive sushi-snarfing Barbie for example, or this dollhouse of horrors designed to burn fire safety into children’s brains.

Continue reading “A Tubular Fairy Tale You Control With Your Phone”

An Arduino And A CD-ROM Drive Makes A CD Player

In an age of streaming media it’s easy to forget the audio CD, but they still remain as a physical format from the days when the “Play” button was not yet the “Pay” button. A CD player may no longer be the prized possession it once was, but it’s still possible to dabble in the world of 120 mm polycarbonate discs if you have a fancy for it. It’s something [Daniel1111] has done with his Arduino CD player, which uses the little microcontroller board to control a CD-ROM drive via its IDE bus.

The project draws heavily from the work of previous experimenters, notably ATAPIDUINO, but it extends them by taking its audio from the drive’s S/PDIF output. A port expander drives the IDE interface, while a Cirrus Logic WM8805 S/PDIF transceiver handles the digital audio and converts it to an I2S stream. That in turn is fed to a Texas Instruments PCM5102 DAC, which provides a line-level audio output. All the code and schematic can be found in a GitHub repository.

To anyone who worked in the CD-ROM business back in the 1990s this project presses quite a few buttons, though perhaps not enough to dig out all those CDs again. It would be interesting to see whether the I2S stream could be lifted from inside the drive directly, or even if the audio data could be received via the IDE bus. If you’d like to know a bit more about I2S , we have an article for you.

Ambience Lamp Ripples Like Water

After the year humanity has endured, we could all use a little more relaxation in our lives. This atmosphere lamp is just the thing to set a relaxing ambience for work, studying, or hanging out. Just touch the surface and the light ripples to life, resembling the concentric circles that form on the surface of still water when it is touched. When the light settles, it looks like an inviting pool that’s ready for a nighttime swim.

There aren’t really any surprises inside — the lamp is operated via capsense by touching the center of the top. Three NeoPixel rings and an RGB LED strip provide the lighting, and an Arduino UNO runs the show. [Qttting_F] used an inexpensive ceramic bowl with a piece of acrylic for a lid, but this could just as easily be printed in white PLA or something. Check it out in action after the break.

Ambience is nice, but sometimes you need something more functional. Those types of lamps can be printed, too.

Continue reading “Ambience Lamp Ripples Like Water”