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!]

Continue reading “What’s Inside A USB Isolator?”

Sublime Text As An Arduino IDE

If you’ve played with an Arduino, you’ve probably been frustrated by the IDE. It works, but it’s not the best editor. It’s especially painful for bigger files and larger projects. The Stino plugin for Sublime Text aims to solve this issue by bringing the full functionality of the Arduino IDE to the Sublime Text editor.

Sublime Text is a powerful text editor with support for most programming languages. What it’s missing is support for compiling and uploading code to an Arduino. Stino bridges that gap. Sublime is a commercial product, and retails for $70 USD. However Sublime does have an indefinite trial period, so Stino can be evaluated for free. Stino itself is an open source plugin written in Python, and you can contribute to the project on Github.

After installing Sublime and Stino, you point the plugin at an Arduino install folder. It then allows you to build and flash directly from the editor. For anyone who’s been frustrated with the Arduino IDE, this looks like a slick solution.

[Thanks to Matt for the tip!]

Sniffing the Multidrop Bus

Sniffing Vending Machine Buses

We’ve talked about a variety of protocols and how to deal with them in the past. Today, [Dan] is working on sniffing vending machine Multidrop Bus. The Multidrop Bus (MDB) protocol is a standard used in vending machines to connect devices such as currency collectors to the host controller.

To connect to the bus, interface hardware is required. [Dan] worked out compliant hardware and connected it to an Arduino. With the device on the bus, [Dan] got to work on an Arduino sketch to parse the MDB data into a human-readable format. With that working, the bus can easily be sniffed over the Arduino’s serial console.

This is just the start of a more involved project. Since this protocol is used to communicate with a vending machine’s currency collector or card reader, being able to communicate it would allow him to implement his own payment methods. The plan is to augment the vending machine he operates at Vancouver Hack Space to accept Bitcoin. We’re looking forward to seeing that project unfold.

Raspberry Pi Remote Audio Link

Hardware for remote audio link

 

In broadcast, lots of people are still using dedicated analog lines to connect remote sites. These operate like old telephone systems: you call up the operator and request to be patched through to a specific site. They’re also rather expensive.

For a hospital radio station, [Marc] wanted to replace the old system with something less costly. The result is his Raspberry Pi STL in a Box. Inside the box is a Raspberry Pi, PiFace display, a pair of meters, and some analog hardware for the audio.

On the software side, the system uses LiquidSoap to manage the stream. LiquidSoap uses a language to configure streams, and [Marc] has a write-up on how to configure LiquidSoap for this application. On the hardware side, SSM2142 ICs convert the signal from single-ended to balanced. The meters use the LM3915 bar drivers to control the meters.

The Python script that controls the box is provided, and could be helpful for anyone needing to build their own low-cost audio link.

 

The Hacklet #1

Hacklet Newsletter Issue 1

With the launch of hackaday.io, our project hosting site, we’ve seen quite a bit of interesting hacks flowing in. While we feature some of our favorite projects on the blog, we’ve decided it’s time to start a regular recap of what’s going on in the Hackaday Projects community. We call it The Hacklet, and the first issue is now available.

This installment starts off with information on our Sci-fi Contest and improvements to the Hackaday Projects site. We talk a bit about the various projects relating to the Mooltipass password manager being developed on Hackaday. The Mooltipass has its own project page, but there’s also separate projects for the low level firmware being developed. Next we look at a pair of NFC rings for unlocking Android devices, and finish off with advice on soldering tiny packages.

Check it out and let us know what you think. Our goal is to summarize some of the neat things going on in the community, and we’re always happy to get constructive feedback from the community itself. Or you can flame us… whichever you prefer.

Transcribing Piano Rolls With Python

Piano Roll

 

Perforated rolls of paper, called piano rolls, are used to input songs into player pianos. The image above was taken from a YouTube video showing a player piano playing a Gershwin tune called Limehouse Nights. There’s no published sheet music for the song, so [Zulko] decided to use Python to transcribe it.

First off the video was downloaded from YouTube. This video was processed with MoviePy library to create a single image plotting the notes. Using a Fourier Transform, the horizontal spacing between notes was found. This allowed the image to be reduced so that one pixel corresponded with one key.

With that done, each column could be assigned to a specific note on the piano. That takes care of the pitches, but the note duration requires more processing. The Fourier Transform is applied again to determine the length of a quarter note. With this known, the notes can be quantized, and a note duration can be applied to each.

Once the duration and notes are known, it’s time to export sheet music. LilyPond, an open source language for music notation, was used. This converts ASCII text into a sheet music PDF. The final result is a playable score of the piece, which you can watch after the break.

Continue reading “Transcribing Piano Rolls With Python”

Google Releases Project Ara MDK

Ara Modules

 

It’s been a little while since we’ve heard about modular smartphones, but Google has just released the Module Developers Kit (MDK) for Project Ara. The development kit gives an overview of the inner workings of the project, and provides templates for building your own modules.

Once you’ve agreed to the license agreement and downloaded the MDK, you’ll find a large specification document. It explains how a phone will comprise of many modules loaded into an endoskeleton, giving mechanical support and electrical connections. An interface block provides each module with power and data over LVDS. Modules are held in place by an electro-permanent magnet which can be toggled by software.

When you’re finished with the specification document, you can dive into the reference designs. These include templates and actual modules for WiFi, thermal imaging, a battery pack, and more. Mechanical CAD is provided as STEP files and drawings, and electrical design files are provided as Altium projects and PDF schematics.

We discussed both Project Ara and Phonebloks on Hackaday in the past, but now we’re starting to see real details. Google’s Project Ara Developer Conference takes place on April 15th and 16th, and you can register to take part remotely for free. Is this the start of an open, modular phone? Let us know what you think.

[Thanks to Adam for the tip]