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.

Reverse geocache based on STM32 and GPS wristwatch

reverse_geocache

[Renaud Schleck] somehow got lucky enough to find a GPS wristwatch in the trash. It had a broken LCD screen so its wouldn’t be of much use on that next hiking trip, but he knew it still had potential. He used the GPS module and a few other parts to build this reverse geocache box.

Reverse geocache is a container that is locked, opening only in a pre-defined geographic location. We’ve seen plenty of these projects around here, like this one that talks, or this one which was given as a Christmas gift. They’re popular projects both because of the unique method of getting at the prize inside, and because it doesn’t take a whole lot of hardware to build one. Once [Renaud] had the GPS module he simply need a user interface, locking mechanism, and a microcontroller to pull it all together.

The interface uses a screen from an old cellphone and one push button. The latching system is a tiny geared motor salvaged from a Laptop optical drive. These, along with the GPS watch board are all monitored by the STM32 microcontroller which he programmed using OpenOCD and the Bus Pirate.

[via Reddit]

Hackaday Links: November 29th, 2012

EMC2 CNC keyboard labels

If you’ve got a dedicated computer running EMC2 for CNC control you may be interested in these keyboard labels. [Rich] mentions that they use the labels for their engraver at the Connecticut Hackerspace. Just print them out and glue them in the face of the keys.

Dev board seminars and freebies

[Mike] wrote in to tell us STM is giving away samples of the STM32 F3 Discovery again. But you can also get in on some free seminars. One is an online webinar for TI’s Launchpad family, the other is for the F3 Discovery board and is being held all around the US.

Replacing batteries with USB power

[Johan] didn’t want to use batteries for the light on the microscope he uses when working with SMT parts. He added a few components with let him power the device from USB instead.

MSP430 VU meter uses FFT

Here’s an MSP430 using Fast Fourier Transform for signal processing. There’s very little explanation, but apparently this collection of FFT related material was used heavily in the project. [via Reddit]

Cell Racr

If you’re looking for a new office game you might consider Cell Racr. It pits your cellphone’s vibrating motor against everyone else’s. Just place the phone on an incline and repeatedly dial its number to advance toward the finish line.

Giving Siri control of some smart bulbs

After getting his hands on the Philips Hue smart lightbulb [Brandon Evans] cracked open some of the hardware to see what is inside. He also spent time working out the software tricks necessary to use Siri to control light bulbs from iOS.

If you haven’t heard of the Hue product before it’s an LED bulb that fits in a standard medium base whose color and intensity can be controlled wirelessly. Included in each unit is Zigbee compatible hardware that lets the bulbs form their own mesh network. [Brandon] didn’t crack open the bulb since these things cost a pretty penny and disassembly requires cutting. But he did point us to this post where [Michael Herf] shows what the bulb’s case is hiding. We do get to see the other piece of the puzzle as [Brandon] exposes the internals on the base unit that bridges the mesh network to your home network via Ethernet. An STM32 chip is responsible for controlling the base unit.

Aside from a look at the guts [Brandon] hacked Siri (Apple’s voice activated virtual assistant) to control the system. You can see a demonstration of that in the clip after the break. The details are found in the second half of his post which is linked at the top. The code is found in his siriproxy-hue repository.

Continue reading “Giving Siri control of some smart bulbs”

In-depth comparison at STM32 F3 and F4 discovery boards

The STM32 F3 and F4 Discovery boards have been around for a while now. We’ve looked at both separately and they’re impressive dev boards for the price. Now can get a closer look at each from this in-depth comparison of the two Cortex-M4 development tools.

To start off, both of the boards have the same size and footprint (there are two dual-row pin headers which break out the connections to the ARM chip). Fundamentally the F3 and F4 chips have a different level of features, but the boards themselves are aimed at different applications as well. The F3 series of microcontrollers looks to be more affordable than the F4, containing less program memory, no Ethernet capability, and only one USB port. But both have hardware floating-point abilities and they’re blazing fast. The boards offer a MEMS accelerometer for prototyping. But the Discovery-F3 also contains a gyroscope while the Discovery-F4 provides audio hardware like a microphone, and DAC.

If you want to use a Linux box to develop with these tools you might find this guide helpful.

Developing with eBay-sourced ARM + LCD dev boards

eBay isn’t only about counterfeit designer handbags and boxes of all-marshmallow Lucky Charms, sometimes there’s actually something useful for sale. [Matt] found a bunch of Chinese-made ARM development boards with integrated LCD displays on the ‘bay, but without a reliable toolchain, these boards – as cool as they are – are nearly useless. Thankfully, he figured out how to do something with these boards, and neatly packaged everything into a VirtualBox image.

The boards in question usually include a 2.4″ or 3.2″ touch panel LCD, an STM32F103 ARM Cortex-M3 CPU, a microSD card connector, and sometimes a few other goodies like 16MB of Flash memory and an RS-232 port. An amazing amount of computational capability packaged into an easy-to-use form factor made even more awesome by their $40 price point.

Because these boards offer so much more than a common Arduino, a proper OS is in order. [Matt] looked over FreeRTOS and included a few demo programs for his Ubuntu-based VirtualBox image (available for download on [Matt]‘s site, it’s a dropbox, email us if you need some hosting, [Matt]) Never mind, see below.

Programming these boards can be done over a serial interface, but a JTAG programmer such as a Bus Blaster makes things very, very easy.

You can check out a few demos [Matt] put together after the break. It’s a very cool development that is much more suited for being integrated into an electronics project than a Raspberry Pi or other such high-power ARM board, and something we hope to see more of in the future.

EDIT: You know what’s really good for hosting Linux distros? Torrents. That’s [Matt]‘s distro and the HaD crew is seeding. Please seed.

Continue reading “Developing with eBay-sourced ARM + LCD dev boards”

.NET for the STM32 F4 Discovery board

Here’s a technique that will let you use the .NET framework on an STM32 Discovery board. [Singular Engineer] was happy to learn that the .NET Micro Framework had been ported for STM32 chips. It’s doesn’t look like the port has hit a stable version yet, but these instructions will be enough to get you up and running. This lets you use managed code in the C# language to program an embedded device: the STM32 F4 Discovery board.

After flashing a new bootloader to the board a driver needs to be added for Windows to communicate with it. Above you can see that the board will enumerate as ‘STM32 .Net Test’. Once the driver is installed the rest of the firmware can be loaded on the board using a GUI supplied with the NETMF for STM32 package. That takes care of prepping the hardware, the rest is a painless process of configuring Visual Studio to use the board as a target. The ‘Hello World’ application then uses C# to blink an LED.