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.

Xbox Controller Mod Gets Serious About Stick Drift

Many a gamer has found that after a few years of racing around the track or sending demons back from whence they came, the analog sticks on their trusty controller can start to drift around. Many times it’s a fairly minor problem, something you might only notice if you were really keeping an eye out for it, but it can definitely be annoying. Those handy with a soldering iron might just swap out the sticks for replacements once it gets to that point, but [Taylor Burley] wondered how difficult it would be to recalibrate the ailing sticks instead.

To be clear, [Taylor] acknowledges this approach is overkill. It would be cheaper and easier to just replace the drifting stick with a new one. Even if you take into account that new sticks might not be as high quality as the originals and could give up the ghost faster, this probably isn’t worth the effort. But that doesn’t mean it’s not an interesting hack.

In the video after the break, [Taylor] starts by explaining how stick drift occurs in the first place. Each axis of the stick is physically connected to the wiper of a potentiometer, so for 10K pots, the stick’s center point should correspond to a resistance of 5K. He then goes on to measure the resistance in a bad joystick, and sure enough, the center resistance is off by several hundred Ohms.

To fix this, he comes up with a simple circuit that places additional potentiometers between the wipers. With two joysticks and two adjustment pots per axis, that makes eight little adjustment wheels that need to be fiddled with to get the center points calibrated properly. In this case [Taylor] uses a controller diagnostic tool for the Xbox to quantify the impact his adjustments are making so he can dial it in perfectly, but the idea is the same no matter who’s logo is on the box.

We’d say this is the most overkill attempt at addressing the issue of stick drift on gaming controllers we’ve ever seen, but that title has to go to [Matteo Pisani], who replaced the analog stick on his Switch Joy-Con with a custom circular touchpad.

Continue reading “Xbox Controller Mod Gets Serious About Stick Drift”

Inputs Of Interest: DecaTxt Ultra-Portable Chording Keyboard

Now here’s a stocking stuffer of a keyboard. The DecaTxt is the size of a deck of cards, and at first glance it looks like some kind of pocket Keno machine or other gambling or gaming apparatus. But that’s just because it’s so colorful. When you only have ten keys emulating a full keyboard, there’s bound to be some serious labeling going on, as there should be.

DecaTxt demonstration from IN10DID

The DecaTxt is a Bluetooth 4.0 chording keyboard that’s meant to be used with your phone or whatever you want to pair it with. It was originally called the In10did, which stands for Input Nomenclature Ten Digit Interface Device. Catchy, no? At some point in the last ten years, this little guy went wireless and got a cooler name — the DecaTxt. Continue reading “Inputs Of Interest: DecaTxt Ultra-Portable Chording Keyboard”

A Gesture Recognizing Armband

Gesture recognition usually involves some sort of optical system watching your hands, but researchers at UC Berkeley took a different approach. Instead they are monitoring the electrical signals in the forearm that control the muscles, and creating a machine learning model to recognize hand gestures.

The sensor system is a flexible PET armband with 64 electrodes screen printed onto it in silver conductive ink, attached to a standalone AI processing module.  Since everyone’s arm is slightly different, the system needs to be trained for a specific user, but that also means that the specific electrical signals don’t have to be isolated as it learns to recognize patterns.

The challenging part of this is that the patterns don’t remain constant over time, and will change depending on factors such as sweat, arm position,  and even just biological changes. To deal with this the model can update itself on the device over time as the signal changes. Another part of this research that we appreciate is that all the inferencing, training, and updating happens locally on the AI chip in the armband. There is no need to send data to an external device or the “cloud” for processing, updating, or third-party data mining. Unfortunately the research paper with all the details is behind a paywall.

Continue reading “A Gesture Recognizing Armband”

Logitech Joystick Gets A Mechanical Sidekick

The mechanical keyboard rabbit hole is a deep one, and can swallow up as much money and time as you want to spend. If you’ve become spoiled on the touch and responsiveness of a Cherry MX or other mechanical switch, you might even start putting them on other user interfaces as well, such as this Logitech joystick that now sports a few very usable mechanical keys for the touch-conscious among us.

The Logitech Extreme 3D Pro that [ErkHal] and friend [HeKeKe] modified to accept the mechanical keys originally had a set of input buttons on the side, but these were unreliable and error-prone with a very long, inconsistent push. Soldering some mechanical switches directly on the existing board was a nice improvement, but the pair decided that they could do even better and rolled out an entire custom PCB to mount the keys more ergonomically. The switches are Kailh Choc V2 Browns and seem to have done a great job of improving the responsiveness of the joystick’s side buttons. If you want to spin up your own version, they’ve made the PCBs available on their GitHub page.

While [ErkHal] notes the switches aren’t the best and were only used since they were available, they certainly appear to work much better than what the joystick shipped with originally. In fact, we recently saw similar switches used to make a custom mechanical keyboard made for the PinePhone.

900-Degree Racing Wheel Helps You Nail The Apex

There are many racing wheels on the market for the budding sim enthusiast. Unfortunately, lower end models tend to have a limited range of motion and ship with cheap plastic wheels that don’t feel good in the hand. As always, if what’s on the shelf doesn’t meet your needs, you can always build your own. [ilge]’s DIY racing wheel build is a great example of how to go about it. 

It’s a no-frills build, with an Arduino Leonardo doing the USB Human Interface Device duties in this case. It reads a standard 10K potentiometer via an analog input to determine wheel position. To enable a realistic 900 degrees of motion, unlike the standard 270 degree rotation of the potentiometer, [ilge] uses 3D printed gears of 15 and 54 degrees respectively. This also has the benefit of allowing the wheel to be mounted to a stout bearing for smooth motion. The steering wheel itself is a high quality drift wheel from MOMO, and the benefit of building your own setup is that you can choose whatever wheel you like to taste.

It’s a simple build both mechanically and electronically speaking, but one that serves as a great entry into building a DIY sim for the beginner. We’d love to see further upgrades towards force feedback, or even shift paddles added on the back. Those looking to go all out can even consider building a motion platform. Video after the break.

Continue reading “900-Degree Racing Wheel Helps You Nail The Apex”

Adaptive Macro-Pad Uses Tiny OLED Screens As Keycaps

When we first laid eyes on Keybon, the adaptive macro keyboard, we sort of wondered what the big deal was. It honestly looked like any other USB macro keyboard, with big icons for various common tasks on the chunky keys. But looks can be deceiving, and [Max Kern] worked a couple of surprises into Keybon.

First of all, each one of Keybon’s buttons is actually a tiny OLED display, making the keycaps customizable through software. Each of the nine 0.66″ displays has a resolution of 64 x 48 pixels, which is plenty for all kinds of icons, and each is mounted over an SMD pushbutton switch. He had to deal with the problem of the keycaps just wobbling around atop the switch button without depressing it; this was solved with a 3D-printed cantilever frame that forced the keycaps to pivot only in one axis, resulting in clean, satisfyingly clicky keypresses.

The other trick that Keybon has is interactivity. By itself, it boots up with a standard set of icons and sends the corresponding keystrokes over USB. But when used with its companion Windows application, the entire macro set can be switched out to accommodate whatever application is being used. This gives the users access to custom macros for a web browser, EDA suite, CAD applications, or an IDE. The app supports up to eight macro sets and can be seen in action in the video below.

We love the look and the functionality [Max.K] has built into Keybon, but we wonder if e-ink displays would be a good choice for the keycaps too. They’re available for a song as decommissioned store shelf price tags now, and they might be nice since the icon would persist without power.

Continue reading “Adaptive Macro-Pad Uses Tiny OLED Screens As Keycaps”