A closeup picture showing the jagged edge of the cut

Debugging Laser Cut Wobble, The Scientific Way

[PWalsh] was using his lasercutter to cut acrylic, expecting the cuts to have a pleasantly smooth edge. Alas, the edges turned out to be wobbly and sandpaper-like, not smooth in the slightnest. Bummer! Internet suggested a stepper motor swap, but not much in the way of insights – and that would’ve been a royal pain for sure. How would you approach debugging such a problem? Well, [PWalsh] didn’t want to swap crucial components willy-nilly, going the scientific way instead, and breaks it down for us.

Having compiled an extensive list of possible places to look for a fault in, he started going through fundamental assumptions. Do other lasercutters experience this issue? No, even the cheap ones can cut things properly. Is it water level causing intermittent cooling? Nope, not that. Is it the stepping settings? Tweaked, not that. Laser pulsing frequency? No dice. Continue reading “Debugging Laser Cut Wobble, The Scientific Way”

Showing a board with a Pi Pico plugged into it, a USB-A socket marked "USB host", and a character display that says "PASSED" referring to the board being the brains of a testing jig.

USB Host On RP2040 – With PIO

Folks from [Adafruit] are showing off a neat hack – USB host on RP2040, using the now-famous PIO peripheral. [Adafruit] builds a lot of RP2040 boards, and naturally, you gotta test them before you ship them to customers. They’ve been using very specific Teensies for that, and at some point, those became unobtainium. Based on the work of [sekigon-gonnoc] and with help of [Thach], they’ve made their TinyUSB library support bitbanging of USB over PIO, and successfully ported their test jig firmware to it!

The base Pico-PIO-USB repo by [sekigon-gonnoc] shows a pretty impressive state of affairs – with low-speed and full-speed USB host and full-speed USB device modes supported, and quite a few examples to get you started. [Adafruit]’s work integrates this code into their TinyUSB stack, specifically focusing on MST (mass storage) features – as this is what you need to program a RP2040. Of course, they also provide a mass storage example to boot!

Test jigs are pretty important to have when making multiple pieces of a board, and with RP2040 supporting more and more interfaces thanks to PIO, it sounds like the perfect chip for your next production testing-intended PCB. With the jig brains taken care of, you’ll want to look into building no less important mechanical part, and we’ve covered quite a few ways to sort that out – here’s an OpenSCAD script that generates lasercutting files out of KiCad boards, or a jig built out of scrap copperclad FR4, and a pretty extensive tutorial on making your own lasercuttable jigs, to boot.

Continue reading “USB Host On RP2040 – With PIO”

Showing the vintage PC, painted in 50s color scheme, matching custom-built keyboard and mouse next to it

Workbench PC With A 50s Twist

[HolGer71] had a Mini-ITX Intel Atom-powered mainboard that he found useful for its vintage interfaces like COM and LPT. On a whim, he decided to give it even more vintage of a look – transforming it into a device more akin to a 50s home appliance, complete with a fitting monitor, mouse and keyboard. The project, dubbed Legacy-PC Computer Case, imitates the sheet metal construction masterfully in its 3D-printed design. That’s not all there is to it, either – everything is open-source, and there is enough documentation that you can build your own!

[HolGer71] starts with general printing and finishing advice, and goes through every part of the setup from there. The mainboard-holding case builds around a small miniITX case frame, enclosing it and adding extensions for connectors and lightbulbs. For the monitor, he built a new frame around an old VGA-equipped 17″ desktop screen – most certainly easy to find. The keyboard‘s an inexpensive one yet equipped with mechanical switches, and the mouse‘s an old Fujitsu-Siemens, but of the kind you’d see manufactured under different labels. All in all, this combines quite generic components into a trusty and stylish device for your workshop needs.

Equipped with Windows 7 as, apparently, the earliest supported version, this machine is now on desk duty – ready to run obscure software for old programming dongles, and look absolutely fabulous while doing so. It’s rare that we see such effort put into creating designs from scratch and sharing them with the community – most of the time, we see PCs built into already existing devices, like this vintage radio, or a benchtop logic analyzer.

All About USB-C: Illegal Adapters

Let’s be clear – it’s not enough to have USB-C to USB-C cables. There’s a lot of cables that we might want to acquire for our day-to-day use, perhaps, for a transition period while we still own some amount of devices not adorned with a USB-C connector. However, the USB-C specification only accounts for a limited amount of kinds of cables, explicitly or implicitly excluding a range of cables that you might want to buy or make.

It’s my firm belief that, as a hacker, you should be able to buy any USB-C contraption that you could ever need. Hackers don’t need restrictions driven by marketing – they need understanding of how a piece of tech can or cannot be used, based on how it operates internally. I would like you to provide with such understanding, so that you can make informed decisions.

On the other hand, USB-C is designed to be used by less-than-skilled people, even if it often fails at that. (Cable labelling, anyone?) Clear definitions of what complies to a standard can help enforce it. Here’s the notorious story of a USB-C cable that killed a Chromebook, and launched a career of explaining USB-C specifics online for [Benson Leung]. There’s many such failure stories, in fact. Today, we’ll go through USB-C contraptions which might or might not fail you, depending on how you use them. Continue reading “All About USB-C: Illegal Adapters”

A collage of three images. On top is the main PCB of the headphones, with a charger IC and the main MCU. On the bottom left, it shows ACOK and EN signals going to pullup resistors near the MCU. On bottom right, it shows the charger chip with its pinout overlaying it, highlighting the pads to be probed and later cut.

One Hacker’s Battle To Slightly Improve A Sadistic Sony Headset

One thing you won’t read in reviews of pricey Sony WH-1000XM3 headphones – if you choose them, you’re going to find yourself in a one-sided abusive relationship. A button press or low-battery notification makes the headphones scream at you, ignoring the actual sound volume of what you’re currently listening to. Once they’re discharged, they suddenly emit loud noises, lecture you about how the battery is low, then shut down. Oh, and you can’t use them as they’re charging – if your voicecall lasts longer than expected, you might find yourself being shouted at and forced to fumble around with wires, silently pleading for call participants to wait while you change over to a different headset.

On-PCB footprint for the IC, with two pads carefully cut in half as mentioned in the article[MisterHW] decided to dig in and figure out how to work around at least some of the shortcomings. Naturally, the “no charge while using” limit looked like low-hanging fruit, and a hefty usability improvement too – plus, he suspected the charge cutoff to be masking noise issues already abundant on these headphones. Some painful disassembly later, he was inspecting the charger IC , the MP2625, responsible for power management. Its signals were connected to the MCU using via-in-pad – and some pads had to be cut in half to disconnect the vias.

However, the laborious pad cutting and subsequent careful soldering didn’t turn out to be fruitful. Even with external control of the output inhibition pins, the shutoff still continued – something affected the circuit, whether it was VBUS detection, some other unnoticed via-connected pins on the charger, or sensing on D+/D-. About to run out of life force for this mod, [MisterHW] added a Qi charging circuit, powering a TP4056 wired in parallel with the MP2625. The mod, dubbed HW-1000XM3, made these headphones all that more reliable and less annoying – charger and MCU none the wiser.

Now, all that’s needed to charge these headphones is to slap a magnetic charger coil onto them, and it doesn’t interfere with voicecalls as much as the screaming and forced shutoffs do. Hopefully, Sony eventually learns to test their headphones by having humans use them – it’s far from the only gripes with this lineup, after all. We also hope that the voice notifications will be conquered eventually – this summer, we’ve seen a hacker firmware mod a Bluetooth speaker to make the sounds more pleasant. If your headphones are based on a relatively popular module, repurposing them might be even easier than that!

All About USB-C: Connector Mechanics

There’s two cases when hackers have to think about USB-C connector mechanics. The first is when a USB-C connector physically breaks, and the second is when we need to put a connector on our own board. Let’s go through both of them.

Clean That Connector

What if a socket on your phone or laptop fails? First off, it could be due to dust or debris. There’s swabs you can buy to clean a USB-C connector; perhaps adding some isopropyl alcohol or other cleaning-suitable liquids, you can get to a “good enough” state. You can also reflow pins on your connector, equipped with hot air or a sharp soldering iron tip, as well as some flux – when it comes to mechanical failures, this tends to remedy them, even for a short period of time.

How could a connector fail, exactly? Well, one of the pins could break off inside the plastic, or just get too dirty to make contact. Consider a device with a USB-C charging and data socket, with USB 2.0 but without high-speed pairs – which is to say, sadly, the majority of the phones out there. Try plugging it into a USB-A charger using a USB-A to USB-C cable. Does it charge, even if slowly? Then, your VBUS pins are okay.

Plug it into a Type-C charger using a Type-C cable, and now the CC pins are involved. Does it charge in both orientations? Then both of your CC pins are okay. Does it charge in only one orientation? One of the CC pins has to be busted. Then, you can check USB 2.0 pins, used for data transfer and legacy charging. Plug the phone into a computer using a USB-A to USB-C cable. Does it enumerate as a device? Does it enumerate in both orientations? If not, you might want to clean D- and D+ pins specifically, maybe even both sets. Continue reading “All About USB-C: Connector Mechanics”

All About USB-C: Cable Types

USB-C cables and connectors: these are controversial topics, and rightfully so – I don’t want to pull any punches. I will also show you that things don’t have to be that bad for you, as long as you’re willing to apply a few tricks and adjust your expectations.

Wild West of Wiring

You might have a bunch of USB-C cables, and they all might look exactly the same, but you’ve likely experienced that they’re not the same internally, and often there’s not a label in sight. Yes, it’s pretty bad, and one could argue it’s getting worse.

I’d like to clarify that I’m only talking about USB C male – USB C male cables here. While cables like USB-A to USB-C are popular, they are quite simple; you get USB 2.0 or USB 3.0 data and 2 A of current at most, and the USB-C plug is usually hardwired as “host, will supply five volts”, which is defined by a pullup resistor. Also, while cables like “Type-C to DisplayPort” might look like cables at a glance, they are adapters with a meaningful amount of active circuitry in them.

Purely following the specification, there used to be six types of USB-C to USB-C cables out there. Then, it became eight. Now, I’m afraid, there’s twelve of them, purely following the spec, and there’s way more when counting all the out-of-spec cables. Good news is – for most of the time, majority of these cables will be suitable for simple tasks like charging and data transfer, and situations where you need a very specific cable are going to be rare enough. Still, let’s go through it, and you’ll see that they’re easier to tell apart than it might look. Continue reading “All About USB-C: Cable Types”