Taking Reverse Engineering To The Skies: Cheap Drone Gets PX4 Autopilot

Sometimes bad software is all that is holding good hardware back. [Michael Melchior] wanted to scavenge some motors and propellers for another project, so he bought an inexpensive quadcopter intending to use it for parts. [Michael] was so surprised at the quality of the hardware contained in his $100 drone that he decided to reverse engineer his quadcopter and give the autopilot firmware a serious upgrade.

Upon stripping the drone down, [Michael] found that it came with a flight management unit based on the STM32F405RG, an Inertial Measurement Unit, magnetic compass, barometric pressure sensor, GPS, WiFi radio, camera with tilt, optical flow sensor, and ultrasonic distance sensor, plus batteries and charger! The flight management unit also had unpopulated headers for SWD, and—although the manufacturer’s firmware was protected from reading—write protection hadn’t been enabled, so [Michael] was free to flash his own firmware.

We highly recommend you take a look at [Michael]’s 10 part tour de force of reverse engineering which includes a man-in-the-middle attack with a Raspberry Pi to work out its WiFi communication, porting the open-source autopilot PX4 to the new airframe, and deciphering unknown serial protocols. There are even amusing shenanigans like putting batteries in the oven and freezer to help figure out which registers are used as temperature sensors. He achieves liftoff at the end, and we can’t wait to see what else he’s able to make it do in the future.

Of course, [Michael] is no stranger to hacking imported quadcopters, and if you’re interested in PX4 but want something quieter than a quadcopter, take a look at this autopilot-equipped glider.

WSPR May Hold The Key To MH370 Final Position

The disappearance of Malaysia Airlines flight MH370 after an unexplained course change sent it flying south over the Indian Ocean in March 2014 still holds the mystery of the wreck’s final location. There have been a variety of efforts to narrow down a possible search area over the years, and now we have news of a further angle from an unexpected source. It’s possible that the aircraft’s path could show up in radio scatter detectable as anomalously long-distance contacts using the amateur radio WSPR protocol.

WSPR is a low-power amateur radio mode designed to probe and record the radio propagation capabilities of the atmosphere. Transmit beacons and receiving stations run continuously, and all contacts however fleeting are recorded to an online database. This can be mined by researchers with an interest in the atmosphere, but in this case it might also provide clues to the missing airliner’s flightpath. By searching for anomalously long-distance WSPR contacts whose path crosses the expected position of MH370 it’s possible to spot moments when the aircraft formed a reflector for the radio waves. These contacts can then either confirm positions already estimated using other methods, or even provide further course points. It’s an impressive demonstration of the unexpected data that can lurk in a trove such as the WSPR logbook, and also that while messing about on the airwaves the marks we leave behind us can have more benefit than simply bragging rights over the DX we’ve worked.

If this WSPR business intrigues you, then have a read of the piece in our $50 Ham series about it.

Header: Laurent ERRERA from L’Union, France, CC BY-SA 2.0.

[via Southgate ARC]

Building A Gas-Powered Pressure Washer

While you can always buy the tools you need, there’s something to be said for the satisfaction gained when you pick up a tool you built yourself. [Workshop From Scratch] has built a following out of building his own gear, the latest of which involved putting together a gas-powered pressure washer.

The key to the build was to keep things completely self-contained. All the consumables – water, soap, and wax – are kept onboard the washer to avoid having to run hoses and so on. A small gas engine is the heart of the build, hooked up to a high-pressure water pump. It even comes complete with a starter motor, making it a certified luxury garden tool. It’s also hooked up to two tanks holding cleaning solutions for car washing purposes, which feed into the pump via an auxiliary port for mixing. It’s all assembled on a custom steel frame welded together from rectangular hollow sections.

It’s a build that demonstrates how you can use your skills to build tools that suit your workflow, rather than just putting up with whatever is available off-the-shelf. We’ve seen his work before, too – building other tools like this motorised plasma cutter. Video after the break.

Continue reading “Building A Gas-Powered Pressure Washer”

Debug ARM Virtually

With the advent of super powerful desktop computers, many developers make use of some sort of virtual or psuedo-virtual machines (VM). We run Windows in a VM and do kernel development in a VM, too. If you are emulating the same kind of computer you are on then the process is simpler, but it is possible to run, say, ARM code on an x86 (or vice versa) but with possibly slower performance than running natively. QEMU is probably the best-known program that allows a CPU to run code targeting a different CPU, but — by default — it targets desktop, laptop, and server-class machines, not tiny embedded boards. That’s where xPack QEMU Arm comes in. It allows you to run and debug embedded Cortex-M devices in an emulated environment on a host computer.

The tool supports boards like the Maple — which means it should support bluepill, along with popular boards such as the Nucleo, some discovery boards, and several from Olimex. They have plans to support several popular boards from TI, Freescale, and others, but no word on when that will happen. You can see a decidedly simple video example from [EmbeddedCraft] of blinking a virtual LED in the video below, although you might like to mute your audio before playing it.

Continue reading “Debug ARM Virtually”

Modding A Hot Wheels Car Into A Radio Controlled Drift Weapon

Hot Wheels are some of the most popular diecast toy cars worldwide. The car bodies are faithful recreations of the real thing, though the models are mere stationary playthings. That wasn’t good enough for [Jakarta Diecast Project], who set about modifying a little BMW E30 M3 into an awesome radio-controlled drift car.

The build starts by disassembling the original car, and pulling out the original wheels. The baseplate is then modified to accept a new rear suspension and axle assembly. A small DC motor is mounted to the assembly to drive the rear wheels. A set of front steering knuckles are then installed up front, with their own suspension and hooked up to a tiny servo for steering. Everything’s controlled by a compact off-the-shelf RC receiver, which even features a gyro to help keep the tiny car straight under acceleration. The bodyshell is then stripped of paint, and given a sweet bodykit, before receiving a lurid orange paint job and decals. It’s reattached to the car’s baseplate via magnets, which make taking the car apart easy when service or modifications are required.

While the build doesn’t go into the nitty gritty on some of the harder parts, like the construction of the incredibly complex front knuckles, it’s nonetheless a great guide to building such a tiny and well-presented RC car. In looks and performance, the result trounces typical commercial offerings in the same scale, as you’d expect from such a hand-crafted masterpiece. It may not be the smallest RC car we’ve featured, but it is one of the coolest. Video after the break.

Continue reading “Modding A Hot Wheels Car Into A Radio Controlled Drift Weapon”

Ooohhh, That Smell: Arduino Monitors Air Quality

According to [Dr. Tom Lehrer’s] song Pollution, “Wear a gas mask and a veil. Then you can breathe, long as you don’t inhale!” While the air quality in most of the world hasn’t gotten that bad, there is a lot of concern about long-term exposure to particulates in the air causing health problems. [Ashish Choudhary] married an Arduino with a display and a pollution sensor to give readings of the PM2.5 and PM10 levels in the air.

The sensor uses a laser diode and a photodiode to detect and count particles, while a fan moves air through the system. If you aren’t up on pollution metrics, PM2.5 is a count of very fine particles (under 2.5 microns) and PM10 is a count of particles for 10 microns. You can find a datasheet for the device online.

Continue reading “Ooohhh, That Smell: Arduino Monitors Air Quality”

Pi-Based Spectrometer Puts The Complexity In The Software

Play around with optics long enough and sooner or later you’re probably going to want a spectrometer. Optical instruments are famously expensive, though, at least for high-quality units. But a useful spectrometer, like this DIY Raspberry Pi-based instrument, doesn’t necessarily have to break the bank.

This one comes to us by way of [Les Wright], whose homebrew laser builds we’ve been admiring for a while now. [Les] managed to keep the costs to a minimum here by keeping the optics super simple. The front end of the instrument is just a handheld diffraction-grating spectroscope, of the kind used in physics classrooms to demonstrate the spectral characteristics of different light sources. Turning it from a spectroscope to a spectrometer required a Raspberry Pi and a camera; mounted to a lens and positioned to see the spectrum created by the diffraction grating, the camera sends data to the Pi, where a Python program does the business of converting the spectrum to data. [Les]’s software is simple by complete, giving a graphical representation of the spectral data it sees. The video below shows the build process and what’s involved in calibrating the spectrometer, plus some of the more interesting spectra one can easily explore.

We appreciate the simplicity and the utility of this design, as well as its adaptability. Rather than using machined aluminum, the spectroscope holder and Pi cam bracket could easily be 3D-printer, and we could also see how the software could be adapted to use a PC and webcam.

Continue reading “Pi-Based Spectrometer Puts The Complexity In The Software”