Sometimes It’s The Little Things

I had one of those why-didn’t-I-think-of-it moments this week, reading this article about multiplexing I2C on the ESP32 microcontroller. The idea is so good, and so simple, that it’s almost silly that it’s not standard hacker practice. And above all, it actually helps solve a problem that I’ve got. This is why I read Hackaday every day.

I2C is great in that it lets you connect up multiple devices to a pair of wires using a very bus architecture. Every device has its own address, the host calls them out, and hopefully all other devices keep quiet while just the right one responds. But what happens when you want to use a few of the same sensors, where each IC has the same address? The usual solution is to buy a multiplexer chip.

But many modern microcontrollers, like the ESP32, have an internal multiplexer setup that lets you map the pins with the dedicated hardware peripherals, usually at initialization time. Indeed, I’ve been doing it as an “init” task so long, I never thought to do it otherwise. But that’s exactly the idea behind [BastelBaus]’s hack – if you dynamically reassign the pins, you can do the I2C multiplexing with the chip you’ve got. This should probably work for any other chips that have multiple assignable pins for hardware peripherals as well.

Cool idea, but really simple. Why hadn’t I ever thought of it? I think it’s because I’ve always had this init / mainloop schema in my mind, which for instance the Arduino inherited and formalized in its setup() and loop() functions. Pin mappings go in the init section, right?

So what this hack really amounts to, for me, is a rethinking of what’s static and what’s dynamic. It’s always worth questioning your assumptions, especially when you’re facing a problem that requires a creative solution. Sometimes limitations are only in your mind. Have you had your mind opened recently by a tiny little hack?

Designing A USB-C Upgrade PCB For The MX Ergo Mouse

As the world of electronic gadgetry made the switch from micro USB to USB-C as the charging port of choice, many of us kept both of the required cables handy. But it’s fair to say that these days a micro USB port has become a pretty rare sight, and the once ubiquitous cable can be a bit elusive in the event that you encounter an older device that requires it.

[Solderking] has a high-end Logitech cordless mouse with just this problem, and so he replaced its micro USB socket with a USB-C port. That makes the task sound deceptively simple, because in fact he had to reverse engineer one of the device’s PCBs in its entirety, making a new board with the same outline and components, but sporting the new connector.

Instead of attempting to replicate the complex shape with geometry he started with a scan of the board and had Fusion 360 trace its outline before 3D printing a version of it to check fit in the Logitech case. Then it was a case of tracing the circuit, designing the replacement, and hand transferring the parts from board to board.

The result is a USB-C chargeable mouse, and while all the design files don’t appear to be online, it’s possible to download the Gerbers from a PCBWay page. On top of that there’s a YouTube video of the process which we’ve placed below the break.

This isn’t the first time we’ve seen somebody spin up a new board to add USB-C to an older device — this drop-in replacement for Sony’s DualShock 4 comes to mind. If you’ve got enough free space inside your particular gadget, you might be able to pull of a USB-C conversion with nothing more exotic than a hacked up Adafruit breakout board.

Continue reading “Designing A USB-C Upgrade PCB For The MX Ergo Mouse”

On The Merits Of A Solid-State Dehumidifier Filament Dry Box

How good are ion membrane dehumidifiers for keeping FDM filament dry and ready for printing? This is the question which [Stefan] at CNC Kitchen sought to answer in a recent video. Like many of us, he was inspired by a video which [Big Clive] made a while ago in which said dehumidifiers were demonstrated for keeping an enclosure free from moisture. Yet would they be able to tackle the much bigger drying job of one or more spools of filament? Thanks to some free samples sent by Rosahl, [Stefan] was able to start answering this question.

Performance of desiccants and dehumidifier element. (Credit CNC Kitchen)
Performance of desiccants and dehumidifier element. (Credit CNC Kitchen)

In the experiments, he used the smaller RS1 (€36.25 a piece) for a single spool container, and the larger MDL-3 (€169) with a Bambu Lab AMS multi-spool unit. Normally such an AMS has three big containers with silica desiccant in it that have to be regularly swapped out, but he modified one AMS to only have the big MDL-3 membrane to dehumidify. A second AMS was left with older silica in its containers, and a third got fresh silica, allowing for some benchmarking between the three units.

The results say a lot, with the initial empty AMS test showing the older silica desiccants topping out quickly and leaving the fresh silica and the membrane dehumidifier to go neck to neck. This is not the usual scenario in which you’d use these dehumidification methods of course, and the small-scale test with the RS1 showed that with a full filament spool in the box, humidity inside the container would only drop very gradually as more and more moisture replaced what was removed from the air. In particular the cardboard element of the spool being used was suspected of being one of the biggest sources of moisture.

Continue reading “On The Merits Of A Solid-State Dehumidifier Filament Dry Box”

Bluetooth Wearable Becomes Rad Synth Controller

Once upon a time, a watch was just a watch. These days, though, smartwatches have all kinds of tricks built in, from heartrate sensors, to accelerometers, gyros, and tons of networking capability. Take advantage of just some of that hardware, and you have yourself a pretty nifty controller. And that’s precisely what [Simon Brem] did.

The project is based around the capable PineTime smartwatch, which [Simon] has been using with the InfiniTime firmware. On this platform, he created an app that sends out Bluetooth MIDI commands straight from the watch. It can be used as a motion controller, where waving and angling the watch can be used to control MIDI parameters, or it can be used to sync BPM to the wearer’s heartrate. [Simon] demonstrates an example use case in a demo video, where the watch is used to control filters in pleasant ways.

We’ve seen a lot of neat watch hacks lately, as it turns out! To say nothing of the brilliant MIDI controllers that have come through these doors, as well. Video after the break.

Continue reading “Bluetooth Wearable Becomes Rad Synth Controller”

An illustration of jellyfish swimming in the ocean by Rebecca Konte. The jellyfish are wearing cones on their "heads" to streamline their swimming that contain some sort of electronics inside.

The Six Million Dollar Jellyfish

What if you could rebuild a jellyfish: better, stronger, faster than it was before? Caltech now has the technology to build bionic jellyfish.

Studying the ocean given its influence on the rest of the climate is an important scientific task, but the wild pressure differences as you descend into the eternal darkness make it a non-trivial engineering problem. While we’ve sent people to the the deepest parts of the ocean, submersibles are much too expensive and risky to use for widespread data acquisition.

The researchers found in previous work that making a cyborg jellyfish was more effective than biomimetic jellyfish robots, and have now given the “biohybrid robotic jellyfish” a 3D-printed, neutrally buoyant, swimming cap. In combination with the previously-developed “pacemaker,” these cyborg jellyfish can explore the ocean (in a straight line) at 4.5x the speed of a conventional moon jelly while carrying a scientific payload. Future work hopes to make them steerable like the well-known robo-cockroaches.

If you’re interested in some other attempts to explore Earth’s oceans, how about drift buoys, an Open CTD, or an Open ROV? Just don’t forget to keep the noise down!

Continue reading “The Six Million Dollar Jellyfish”

A USB3SUN adapter, connected to a SPARCstation on one end and to a keyboard on another, with the OLED screen showing status icons

An Open SPARCstation USB Keyboard&Mouse Adapter

Got a SPARCstation? You might have had to deal with the proprietary DIN port used for keyboard and mouse input. However, you need not look for outdated hardware anymore – we’ve recently found an adapter project called [usb3sun], which lets you use a regular USB keyboard and mouse instead! Designed by [delan] from [the funny computer museum], the usb3sun adapter is featureful, open-source, and even comes with four blog posts describing its inner workings and development process!

Based on a Pi Pico board, this adapter has a ton of quality of life features – an OLED screen for status display, extra USB port and headers for debugging, a buzzer to emulate bell and click functions, power LEDs, and all the ports you would expect. The OLED screen is needed just because of how many features this adapter’s firmware has, and you’re bound to get more – the [usb3sun] firmware is being actively updated to this day. It’s as if this adapter aims to do all it possibly could help you with – for instance, one of the firmware updates has added idprom reprogramming features, which, as [delan] tells us, lets you boot your workstation with a dead NVRAM battery.

You can order the adapter PCBs yourself, you can breadboard it by following detailed instructions from [delan], or you can get a fully assembled and tested [usb3sun] adapter on Tindie! This adapter will seriously help you in your SPARCstation forays, and, if you don’t happen to own a SPARCstation, you can always emulate SunOS.

Educational Arduino Clock Uses Analog Meters For Display

When it comes to educational electronic projects, it’s hard to go past building a clock. You learn tons about everything from circuit concepts and assembly skills to insights about the very nature of time itself. And you get a clock at the end of it! [hamblin.joe] wanted to do a simple project for kids along these lines, so whipped up a neat design using analog meters to display the time.

The build relies on that old stalwart, the Arduino Uno, to run the show. It’s hooked up to a DS3231 real-time clock module so it can keep accurate time for long periods, as is befitting a clock. Displaying the time is done via the use of two analog meters, each fitted with a custom backing card. One displays hours, the other, minutes. The analog meters are simply driven by the PWM outputs of the Arduino.

It’s not a hugely complex project, but it teaches so much. It provides an opportunity to educate the builders about real-time clocks, microcontroller programming, and even the concepts behind pulse width modulation. To say nothing of the physical skills, like learning to solder or how to assemble the laser-cut enclosure. Ultimately, it looks like a really great way for [hamblin.joe] and his students to dive into the world of modern electronics.