Extracting Power From USB Type C

For the last decade or so, we’ve been powering and charging our portable devices with USB. It’s a system that works; you charge batteries with DC, and you don’t want to have a wall wart for every device, so just grab a USB hub and charge your phone and you headphones or what have you. Now, though, we have USB Type C, with Power Delivery. Theoretically, we can pull 100 W over a USB cable. What if we could tap into that with screw terminals?

That’s the idea behind [Jakob]’s entry to the Hackaday Prize. It’s a USB 3.1 Type C to Type A adapter, but it also has the neat little bonus of adding screw terminals. Think of it as jumper cables for your laptop or phone, but don’t actually do that.

[Jakob]’s board consists of a USB Type C receptacle on one end, and a Type A plug on the other, while in between those two sockets is an STM32G0 microcontroller that handles the power negotiation and PD protocol. This gives the USB Type C port dual role port (DRP) capability, so the power connection can go both ways. Add in a screw terminal, and you can theoretically get 20 V at 5 A through a pair of wires. Have fun with that.

Right now, [Jakob] has all the files in a Gitlab with the schematic and layout available here. It’s an interesting project that has tons of applications of USB hackery, and more than enough power to do some really fun stuff.

You Don’t Need That Bulky CRT Oscilloscope Anymore

While it might be nice to use a $4,000 oscilloscope in a lab at a university or well-funded corporate environment, a good portion of us won’t have access to that kind of equipment in our own home shops. There are a few ways of getting a working oscilloscope without breaking the bank, though. One option is to find old CRT-based unit for maybe $50 on craigslist which might still have 60% of its original 1970s-era equipment still operational. A more reliable, and similarly-priced, way of getting an oscilloscope is to just convert a device you already have.

The EspoTek Labrador is an open-source way of converting a Raspberry Pi, Android device, or even a regular run-of-the-mill computer into a working oscilloscope. It’s a small USB device with about a two square inch PCB footprint that includes some other features as well like a signal generator and logic analyzer. It’s based on an ATxmega which is your standard Arduino-style AVR microcontroller but geared for low power usage. It looks as though it is pretty simple to use as well, and the only requirements are that you can install the software needed for the device on whatever computing platform you decide to use.

While the Labrador is available for sale at their website, it is definitely a bonus when companies offer products like this but also release the hardware and software as open source. That’s certainly a good way to get our attention, at least. You can build your own if you’d like, but if you’d rather save the time you have pre-built options. And it doesn’t hurt that most of the reviews of this product seem to be very favorable (although we haven’t tried one out ourselves). If you’d prefer an option without a company backing it, though, we have you covered there too.

Drag And Drop Files On Select Arduino Boards

Historically, getting files on to a microcontroller device was a fraught process. You might have found yourself placing image data manually into arrays in code, or perhaps repeatedly swapping SD cards in and out. For select Arduino boards, that’s no longer a problem – thanks to the new TinyUSB library from Adafruit (Youtube link, embedded below).

The library is available on Github, and is compatible with SAMD21 and SAMD51 boards, as well as Nordic’s NRF52840. It allows the Arduino board to appear as a USB drive, and files can simply be dragged and dropped into place. The library can set up to use SPI flash, SD cards, or even internal chip memory as the storage medium.

Potential applications include images, audio files, fonts, or even configuration files. Future plans include porting the TinyUSB library to the ESP32-S2 as well. Being able to drag a settings file straight on to a board could make getting WiFi boards online much less of a hassle.

We’ve seen other nifty USB libraries before, VUSB is a great option if you need USB on your AVR microcontroller. Video after the break.

Continue reading “Drag And Drop Files On Select Arduino Boards”

Add USB-C To Your Laptop (Almost)

It’s a very brave person who takes a Dremel or similar to the case of their svelte new laptop in the quest for a new connector, it sounds as foolhardy as that hoax from a while back in which people tried to drill a 3.5mm jack into their new iPhones. But that’s what [BogdanTheGeek] has done, in adding a USB-C port to his Acer.

Of course, the port in question isn’t a fully functioning USB-C one, it’s a power supply jack, and it replaces the extremely unreliable barrel jack the machine was shipped with. He’s incorporated one of those little “ZYPDS” USB-C power delivery modules we’ve no-doubt all seen in the usual cheap electronic sources, and in a move of breathtaking audacity he’s cut away part of the Acer mainboard  to do so. He’s relying on the laptop’s ability to accept a range of voltages, and presumably trusting his steady hand with a rotary tool. Some Kapton tape and a bit of wire completes the work, and with a carefully reshaped hole in the outer case he’s good to go.

The result is beautifully done, and a casual observer would be hard pressed to know that it hadn’t always been a USB-C port. We’re sure there will come a moment at which someone will plug in a USB-C peripheral and expect it to work, it’s that good.

If you’d like to know a little bit more about USB-C, we’d like to direct you to our in-depth look at the subject.

Ask Hackaday: Is USB Robust Enough?

Earlier this month a single person pleaded guilty to taking down some computer labs at a college in New York. This was not done by hacking into them remotely, but by plugging a USB Killer in one machine at a time. This malicious act caused around $58,000 in damage to 66 machines, using a device designed to overload the data pins on the USB ports with high-voltage. Similar damage could have been done with a ball-peen hammer (albeit much less discreetly), and we’re not here to debate the merits of the USB Killer devices. If you destroy property you don’t own you should be held accountable.

But the event did bring an interesting question to mind. How robust are USB ports? The USB Killer — which we’ve covered off and on through the years —  is billed as a “surge testing” device and operates by injecting -200 volts DC on the data lines of the USB connection. Many USB ports are not protected against this and the result is permanent damage to the computer hardware. Is protection for these levels of abuse necessary or would it needlessly add cost to our machines?

A chip like the TPD4S014 has ESD protection on the data lines that is rated up to +/- 1500 volts, clamping to ground to dissipate the energy. It’s a solution that should protect against repeated spikes on the data lines, as well as short circuits on the power lines and over/undervoltage situations.

ADUM4160 Functional Diagram

The ADuM4160 is an interesting step up from this. It’s designed to provide isolation between a USB host and the device connected to it. Rather than relying on clamping, this chip implements isolation through air core transformers. Certainly this would be overkill to install in every product, but for those of use building and testing USB devices this would save you from “Oops, wrong USB cable” moments at the work bench.

Speaking of accidents at the bench, there is certainly a demand for USB isolation outside of what’s built into our computers. Earlier this year we saw a fantastic take on a properly-designed USB power strip. Among the goals were current limiting, undervoltage protection, and a proper power disconnect switch for each port. The very need to design your own reminds us that consumer manufacturers are often lazy in their USB design. “Use a USB hub” is bad advice for protection at the workbench since quality of design varies so wildly.

We would be interested in hearing from anyone who has insight on standards applying to equipment continuing to survive over current or over voltage events and remain functional. There are standards like UL-60950 that should apply to USB. But that standard includes language about failing safe for the operator, not necessarily remaining functional:

After abnormal operation or a single fault (see 1.4.14), the equipment shall remain safe for an OPERATOR in the meaning of this standard, but it is not required that the equipment should still be in full working order. It is permitted to use fusible links, THERMAL CUT-OUTS, overcurrent  protection devices and the like to provide adequate protection.

So, we’re here to ask you, the readers of Hackaday. Are our USB devices robust enough? Do you have a go-to USB protection chip, part, or other circuit you like to use? Have you ever accidentally killed a USB host device (if so, how)? Do you have special equipment that you depend on when developing projects involving USB? Let us know what you think in the comments below.

Giving An Industrial Push Button USB, Elegantly

[Glen]’s project sounds perfectly straightforward: have a big industrial-style push button act as a one-key USB keyboard. He could have hacked something together in any number of ways, but instead he decided to create a truly elegant solution. His custom PCB mates to the factory parts perfectly, and the USB cable between the button and the computer even fits through the button enclosure’s lead hole.

It turns out that industrial push buttons have standardized components which can be assembled in an almost LEGO-like manner, with components mixed and matched to provide different switch actions, light indicators, and things of that nature. [Glen] decided to leverage this feature to make his custom PCB (the same design used in his one-key keyboard project) fit just like a factory component. With a 3D printed adapter, the PCB locks in just like any other component, and even lines up with the lead hole in the button’s enclosure for easy connecting of the USB cable.

What does [Glen] use the big button for? Currently he has two applications: one provides a simple, one-button screen lock on a Linux box running a virtual machine at his place of work. It first disengages the keyboard capture of the virtual machine, then engages the screen lock on the host. The other inserts a poop emoji into Microsoft documents. Code and PCB design files for [Glen]’s small keyboards are available on GitHub.

A USB MUXer, For All Your Programming Needs

What if there were something like a KVM switch for your micro programmer, logic analyzer, and other various tools? There was a time when KVM switches (keyboard, video, and mouse, by the way) were metal enclosures surrounding an absurdly complicated rotary switch. This fact has a few applications if you ever want to switch a whole lot of stuff; if you ever need a bazillion-pole, two-way rotary switch, don’t spend your money at Mouser or Digikey, just look at eBay for some really old KVM or parallel port switches. Modern times require modern solutions, so here’s a 16-channel, bi-directional switched bus multiplexer. It connects wires to other wires with USB control, and if you need something like this, you really need something like this.

The SensorDots Port MuxR is a crowdfunding project for a project that began as a programming jig for another project. The MappyDot is a micro LIDAR unit that’s about the size of a postage stamp and has a microcontroller. Obviously, programming those microcontrollers was a pain (and don’t get me started on buying pre-programmed microcontrollers from the manufacturer), but there was a solution: a custom programming rig with dozens of pogo pins that automated the programming of an entire panel of boards. It was a useful tool, and now it’s a good idea for a Kickstarter project.

The Port MuxR takes a set of eight pins, and sends that out to one of eight ports. Alternatively, it can take a set of four pins, and send that to sixteen ports. All of this is controlled via USB, and it works with 0-5V signaling. If you know what this means, you probably have a reason to be interested in it.

Is it a sexy project? No, not at all. It’s an 8-pole, 8-throw rotary switch, controllable over USB. It is interesting, and it’s something a lot of us are going to need eventually.