Reverse Engineering ST-Link/V2 Firmware

reverse-engineering-stlink-v2

The chip seen just above the center of this image is an ARM Cortex-M3. It provides the ability to interface and program the main chip on the STM32F3 Discovery board. The protocol used is the ST-Link/V2 which has become the standard for ST Microelectronics development boards. The thing is, that big ARM chip near the bottom of the image has multiple UARTs and bridging a couple of solder points will connect it to the ST-Link hardware. [Taylor Killian] wanted to figure out if there is built-in firmware support to make this a USB-to-serial converter and his path to the solution involved reverse engineering the ST-Link/V2 firmware.

The first part of the challenge was to get his hands on a firmware image. When you download the firmware update package the image is not included as a discrete file. Instead he had to sniff the USB traffic during a firmware update. He managed to isolate the file and chase down the encryption technique which is being used. It’s a fun read to see how he did this, and we’re looking forward to learning what he can accomplish now that’s got the goods he was after.

Google Talk Used For Home Automation Communications Via Android

home-automation-using-instant-messaging

To call [Carnivore’s] home automation project impressive would be an understatement. He’s pulled together a system that is fast, well presented, and easy to use. To interface with items in his home he’s using X10 modules, and this example simply switches some table lamps. But the underlying setup seems incredibly polished and should be a snap to extend for just about any purpose.

The guide linked above has all the gritty details, but the best overview is provided in the video after the break. [Carnivore] shows off the Windows 8 machine that acts as the server. It has am X10 transceiver connected to communicate with the appliances. He can control the system from the screen seen above, but everything can also be accessed from his Android phone. Communication between the two is handled by Google Talk, an instant messaging application — but the commands are home screen shortcuts and don’t need to be typed into the Google Talk app. He modified the source code of a program called TweetMyPC to use the Google Talk API which looks for keywords in received messages. The lag on an instant message is far lower compared to SMS or Email so commands are received very close to real-time. Feedback is sent from the server to the phone using a text message.

Continue reading “Google Talk Used For Home Automation Communications Via Android”

Versatile Motion Dolly For Time Lapse Photography

time-lapse-motion-system

This beautiful build is a motion dolly for making time-lapse videos. It is at a point where you could consider it complete. After all, the segments featured in the video after the break look marvelous. But [Scottpotamas] has a few additions planned and it sounds like it won’t belong before he accomplishes his goals.

The build is a linear rail on which the camera rides. In the image above you can see the stepper motor which moves the camera mounted at the far end of the rig. This is controlled by an Arduino. Currently the camera is responsible for timing the capture of the images, but [Scottpotamas] says the firmware is nearly ready to hand this responsiblity over to the Arduino. The system is modular, with a simple setting for the length of the track. This way he can swap out for a longer or shorter rail which only takes about five minutes. He also included support for a panning mount for the camera. It allows the control box can be programmed to keep the subject centered in the frame as the camera slides along the track.

Continue reading “Versatile Motion Dolly For Time Lapse Photography”

Bubble Wrap Cure For Nexus 7 Speaker Distortion

nexus-7-bubble-wrap-fix

[Home Brand Cola] is quite happy with his Nexus 7 with the exception of the built-in speaker. It produces fairly good audio quality until he reaches about 50% volume level. Anything above that produces distortion. He figured out how to fix it using a small piece of bubble wrap.

The eureka moment came when he was using his Nexus 7 and discovered he could fix the distortion by gripping the top and bottom parts of the case strongly between his finger and thumb. This led him to realize that the speaker unit is a bit loose and the unwanted noise is produced when it vibrates against the case. The video after the break shows the fix, which places a strip of bubble wrap (looks to be about 1″ by 3″) on top of that speaker unit. When the case is snapped back together the packing material helps hold everything in place and now he can use his tablet at full volume without any problems. One of the comments on the Reddit thread asks about heat problems with the addition of this plastic. He’s been using it for a few weeks and so far no issues there.

Continue reading “Bubble Wrap Cure For Nexus 7 Speaker Distortion”

Signing Your 3D Prints

print

For all the 3D models out on the Internet, including the STL files on Thingiverse that are copied by other makers every day, there hasn’t been a good way to put your John Hancock on a three-dimensional piece of plastic you’ve designed. [Chris] has been thinking about the fact that an STL file released on the Internet is completely out of the creator’s hands for a while now, and he finally came up with a good solution to signing 3D prints.

[Chris] had been looking into ‘stamping’ a maker’s mark on the first few layers of a print, but this wasn’t always practical. Sometimes the bottom of a print needs to be a smooth surface, so [Chris] moved his initials up a few layers into the main body of the print.

By subtracting a 1.0 mm-thick version of his initials from the interior of a print, [Chris] is able to put his maker’s mark on the inside of a 3D object, visible only for a short time during the production process.

The signature isn’t impossible to remove, but it does give a little bit of credit to the original designer, all without some strange DRM scheme or metadata attached to an STL file.

You can check out [Chris]’ printer laying down a few layers of his logo after the break.

Continue reading “Signing Your 3D Prints”

Reading Piano Rolls Without A Player Piano

detection-example

A while back, [Jacob] played around with a player piano. After feeding a roll into the machine and trying to figure out how a fifty year old machine using hundred year old technology can replicate a skilled pianist, he decided to take a crack at decoding piano rolls for himself. He came up with a clever way of doing it over Christmas break, using a camera and a few bits of OpenCV.

The old-school mechanics of a player piano use a bellows and valve system to suck air through dozens of holes, making the action hit a string whenever a hole is present in the piano roll. To bring this mechanism into the modern age, [Jacob] pointed a video camera at the active part of the piano roll and used OpenCV to translate holes in a piece of paper to a MIDI file.

The synthesized version sounds just as good as the original paper scroll-based version, as seen in the video after the break. There are a few sync issues in the video and the resulting MIDI file isn’t in the right key, but that’s easily fixed by anyone willing to replicate this project.

Continue reading “Reading Piano Rolls Without A Player Piano”

Building A New Motherboard For A TRS-80

Trash80

The TRS-80 Model 100 was an amazing piece of kit when it was released. Able to run for a week with just four AA batteries and smaller than some laptops today, this portable version of the TRS-80 saw action with war correspondents covering the Falklands invasion. A pedigree a MacBook Pro will never be able to live up to, it seems.

[Hudson] picked up a non-functioning Model 100 with the express goal of replacing the 30-year-old electronics inside with an updated motherboard – and also pull up our retro site in the process. Armed with a Teensy++, [Hudson] pried open his ancient computer and set to work interfacing the display and keyboard to his AVR dev board.

The LCD display in the Model 100 has a resolution of 240×64, driven by ten Hitachi HD44102 display drivers. Each of these display drivers are responsible for the pixels in a 50×32 rectangle on the screen and are interfaced with a 30-bit wide bus consisting of chip select lines, and 8-bit data bus, and a few other random control lines. [Hudson] plugged this 30 pin header into his Teensy++ and after a bit of ingenuity regarding the strange electrical requirements of the LCD, was able to control every pixel on this 30-year-old display.

The next order of business was interfacing the keyboard with a modern microcontroller. The keyboard is laid out in a normal matrix, but with a few oddities: characters like ~, |, and curly brackets aren’t present on the Model 100. After working these problems out, [Hudson] set to work on a VT100 terminal emulator. This allowed him to run vi and lynx, enabling him to pull up the Hackaday retro site in a wonderful forty-column text mode.

Future improvements to this redesign include designing a proper PCB to replace the current protoboard design. The original Model 100 included a text editor and programming language, and adding a Forth implementation isn’t out of [Hudson]’s grasp. It’s an awesome build, and an excellent improvement that will allow [Hudson]’s Trash-80 to see another 30 years of use.