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.

[Read more...]

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]

BeagleBone Black and FPGA Driven LED Wall

LED Wall

 

This is 6,144 RGB LEDs being controlled by a BeagleBone Black and a FPGA. This gives the display 12 bit color and a refresh rate of 200 Hz. [Glen]‘s 6 panel LED wall uses the BeagleBone Black to generate the image, and the LogiBone FPGA board for high speed IO.

[Glen] started off with a single 32 x 32 RGB LED panel, and wrote a detailed tutorial on how that build works. The LED panels used for this project have built in drivers, but they cannot do PWM. To control color, the entire panel must be updated at high speed.

The BeagleBone’s IO isn’t fast enough for this, so a Xilinx Spartan 6 LX9 FPGA takes care of the high speed signaling. The image is loaded into the FPGA’s Block RAM by the BeagleBone, and the FPGA takes care of the rest. The LogiBone maps the FPGA’s address space into the CPU’s address space, which allows for high speed transfers.

If you want to drive this many LEDs, you’ll need to look beyond the Arduino. [Glen]‘s work provides a great starting point, and all of the source is available on Github.

[Thanks to Jonathan for the tip]

Designing a Front Panel for a DIY Project

DIY Front Panel

 

When building a one-off DIY project, appearances tend to be the least of our priorities. We just want to get the device working, and crammed into some project case. For those that like to build nicer looking prototypes [JumperOne] came up with a slick method of building a custom front panel for your DIY project.

The first step is to get the dimensions correct. You CAD tool will generate these from your design. [JumperOne] took these measurements into Inkscape, an open source vector graphics tool. Once it’s in Inkscape, the panel can be designed around the controls. This gets printed out and aligned on a plastic enclosure, which allows the holes to be marked and drilled.

With the electronics in place, the front panel gets printed again on a general purpose adhesive sheet. Next up is a piece of cold laminating film, which protects the label. Finally, holes are cut for the controls. Note that the display and LEDs are left covered, which allows the film to diffuse the light. The final result looks good, and can provide all the needed instructions directly on the panel.

[Thanks to Ryan for the tip]

Dirt Cheap Dirty Boards Offers Dirt Cheap PCB Fab

Dirt Cheap PCB

 

When your project is ready to build, it’s time to find a PCB manufacturer. There are tons of them out there, but for prototype purposes cheaper is usually better. [Ian] at Dangerous Prototypes has just announced Dirt Cheap Dirty Boards, a PCB fabrication service for times where quality doesn’t matter too much. [Ian] also discussed the service on the Dangerous Prototypes forum.

The boards are definitely cheap. $12 USD gets you ten 5 cm by 5 cm boards with 100% e-test and free worldwide shipping. You can even choose from a number of solder mask colors for no additional cost. [Ian] does warn the boards aren’t of the best quality, as you can tell in the Bus Pirate picture above. The silkscreen alignment has some issues, but for $1.2 a board, it’s hard to complain. After all, the site’s motto is “No bull, just crappy PCBs.”

The main downside of this service will be shipping time. While the Chinese fab house cranks out boards in two to four days, Hong Kong Post can take up to 30 days to deliver your boards. This isn’t ideal, but the price is right.

Open Source Power Line Communication

Power Line Communication Filtering

 

Since we all have wires running throughout our houses to provide mains power, there’s a number of devices that piggyback on mains lines for communication. For his thesis project, [Haris Andrianakis] developed his own power line communication system.

The basic principle of the system is to inject a signal onto the power lines at a much higher frequency than the 50 or 60 Hz of the AC power itself. Using both active and passive filters, the signal can be separated from the AC power and decoded. This system uses frequency-shift keying to encode data. This part is done by a ST7540 modem that’s designed for power line applications. The modem is controlled over SPI by an ATmega168 microcontroller.

[Haris]‘ write up goes into detail about some of the challenges he faced, and how to protect the device from the high voltages present. The final result is a remote display for a weigh scale, which communicates over the power line. Schematics, PCB layout, and software are all available.