66% or better

What’s Inside a USB Isolator?

Coil Die

 

In this acid powered teardown, [Lindsay] decapped a USB isolator to take a look at how the isolation worked. The decapped part is an Analog Devices ADUM4160. Analog Devices explains that the device uses their iCoupler technology, which consists of on chip transformers.

[Lindsay] followed [Ben Krasnow]‘s video tutorial on how to decap chips, but replaced the nitric acid with concentrated sulphuric acid, which is a bit easier to obtain. The process involves heating the chip while applying an acid. Over time, the packaging material is dissolved leaving just the silicon. Sure enough, one of the three dies consisted of five coils that make up the isolation transformers. Each transformer has 15 windings, and the traces are only 4μm thick.

After the break, you can watch a time lapse video of the chip being eaten by hot acid. For further reading, Analog Devices has a paper on how iCoupler works [PDF warning].

[Thanks to Chris for the tip!]

[Read more...]

Tearing Down a Cheap External USB Battery

[cpldcpu] recently received an external USB battery as a promotional gift and thought it would be a good idea to tear it down to see its insides. At first glance, he could see that the device included a USB micro-b socket used as a 5V input (for charging), a USB-A socket for 5V output, a blue LED to indicate active power out and a red one to indicate charging.

Opening the case revealed that most space was taken up by a 2600mAH ICR18650 Li-Ion battery, connected to a tiny PCB. A close inspection and a little googling allowed [cpldcpu] to identify the main components of the latter: a battery mangement IC, a 2A boost converter, a 3A Schottky diode, a few 2A N-Mosfets, a 300mA 2.5V LDO and an unknown 6-pin IC. It is very interesting to learn that every last one of these components seems to be sourced from China, which may explain why this USB battery is given for free. Do you think they designed it in-house and outsourced the manufacturing, or is this a product Digi-Key simply bought and put their name on?

Editorial Note: Digi-Key is an advertiser on Hackaday but this post is not part of that sponsorship. Hackaday does not post sponsored content.

[Read more...]

Bitbanging USB On Low Power ARMs

M0

With the Adafruit Trinket, the Digispark, and some very clever work with the smallest microcontroller Atmel offers, it looks like the ‘in’ thing to do for embedded software developers is to bitbang the USB protocol on hardware that shouldn’t support it. There are a lot of very small ARM chips out there without USB support, so it was only a matter of time before someone was able to bitbang USB on the ARM Cortex M0+.

The board above is based on an Energy Micro EFM32ZG, a very small 24-pin QFN device with up to 32 kB of Flash and 17 GPIOs. As with all the bitbanged USB hacks, the differential data lines are attached directly to the microcontroller. A 24 MHz crystal is needed, but the team behind the project is working on using the internal RC oscillator instead.

The code is portable with minimal changes between other manufacturer’s Cortex M0+ chips, and with a little work, this could become a very, very cheap USB-programmable ARM dev board, something the community could certainly use.

Don’t Just Go Sticking That Anywhere: Protect the Precious With a USB Wrapper

Oooh, look, a public charging station. Should you trust it? You might get juice jacked. Oh wait, you’ve got a USB Wrapper designed by [Scasagrande] to deny access to your datas.

This project was inspired by the USB Condom, but the problem with those is that they completely cut out the data lines and limit the charge rate to USB 2.0 (500mA). The data lines are used to communicate information about the charger’s power sourcing capabilities to the device. Many manufacturers short D+ and D- together, but Apple applies specific voltages to those lines.

[Scasagrande]‘s USB Wrapper gives you options. You can set it to Dedicated Charging Port, Sony, Open Circuit, or Apple. The super-cool part of this hack is for you Apple fanboys. The bottom slider lets you emulate any Apple charger and use any USB cube (including one you may have made) as long as you have that funny cable in your messenger bag.  The hardware is open source and available at [Scasagrande]‘s repo.

Make the jump to see [Scasagrande]‘s nicely detailed video about the project.

[Read more...]

USB On The ATtiny10

tiny10

Atmel’s ATtiny10 is their smallest microcontroller in terms of physical size – it’s an SOT-23-6 package, or about the same size as surface mount transistors. The hardware inside this extremely bare-bones; three I/O lines, 1kB of Flash, 32 bytes of RAM, and a reduced AVR core with 16 registers instead of 32. With such a minimal feature set, you would think the only thing this micro would be good for is blinking a LED. You’d be right, but [cpldcpu] can blink a LED with the ‘tiny10 over USB.

The V-USB interface usually requires about 1.5kB of Flash in its most minimal implementation, and uses 50 bytes of RAM. This just wouldn’t do for the ‘tiny10, and although [cpldcpu] is working on a smaller, interrupt-free V-USB, there were still some hurdles to overcome.

The biggest issue with putting code on the ‘tiny10 is its reduced AVR core – on the ‘big’ 32-register core, direct memory access is two words. On the ’10, it’s only one word. AVR-GCC doesn’t know this, and no one at Atmel seems to care. [cpldcpu] worked around this problem using defines, and further reduced the code size by completely gutting V-USB and putting it in the main loop.

It’s not much, but now [cpldcpu] can blink an LED with a ‘tiny10 over USB. If you’re wondering, 96.4% of the Flash and 93.8% of the SRAM was used for this project.

USB-ify your Old Cell Phone Chargers

phoneChargerUSBd

If you’re like us, you probably have a box (or more) of wall warts lurking in a closet or on a shelf somewhere. Depending on how long you’ve been collecting cell phones, that box is likely overflowing with 5V chargers: all with different connectors. Bring them back to life by doing what [Martin Melchior] did: chop off the ends and solder on a bunch of USB jacks.

You’ll want to use chargers rated for at least 500mA (if not 1A) for this project, or you may be wasting your time considering how much current devices pull these days. Get your polarity right, solder on a USB jack, and you’re finished. Sure, it’s a no-brainer kind of project, but it can clean out some of your closet and give you a charging station for every room of your home and the office. [Martin] glued the USB jack directly onto the adapters, so there are no tangled cords to worry about. iPhone users will need to do the usual kungfu if you want your Apple device to charge.

Interrupt Free V-USB

resync

[Tim's] new version of Micronucleus, Micronucleus 2.0, improves upon V-USB by removing the need for interrupts. The original Micronucleus was a very small implementation of V-USB that took up only 2KB. Removing the need for interrupts is a big leap forward for V-USB.

For those of you that do not know, “V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.” One tricky aspect of using V-USB is that the bootloader requires interrupts, which can lead to messy problems within the user program. By removing the need for interrupts, Micronucleus 2.0 reduces the complexity of the bootloader by removing the need to patch the interrupt vector for the user program.

With the added benefit of  speeding up the V-USB data transmission, Micronucleus 2.0 is very exciting for those minimal embedded platforms based on V-USB. Go ahead and try out Micronucleus 2.0! Leave a comment and let us know what you think.