Beating Bitlocker In 43 Seconds

How long does it take to steal your Bitlocker keys? Try 43 seconds, using less than $10 in hardware. Encrypting your hard drive is good security. If you’re running Windows, the most popular system is BitLocker, which has come with Windows since Vista. We’ve known for some time that Bitlocker could be defeated with direct access to the hardware. Microsoft claims that the process requires an attacker with skill and lengthy access to the hardware. [Stacksmashing] wanted to define lengthy, so he gave it a try. The result is a shockingly fast attack.

Anyone who uses Windows has probably run into Bitlocker. Your hard drive is encrypted, and Bitlocker runs silently in the background, decrypting data on demand.  The problem is key storage. In a simplified sense, encryption keys are stored in the Trusted Platform Module (TPM). When your computer boots, it reads the key from the TPM over the LPC (low pin count) bus, which is one of the last remnants of the original ISA bus.

Continue reading “Beating Bitlocker In 43 Seconds”

Pico-Sized Ham Radio

There are plenty of hobbies around with huge price tags, and ham radio can certainly be one of them. Experienced hams might have radios that cost thousands of dollars, with huge, steerable antennas on masts that can be similarly priced. But there’s also a side to the hobby that throws all of this out of the window in favor of the simplest, lowest-cost radios and antennas that still can get the job done. Software-defined radio (SDR) turned this practice up to 11 as well, and this radio module uses almost nothing more than a microcontroller to get on the air.

The design uses the capabilities of the Raspberry Pi Pico to handle almost all of the radio’s capabilities. The RF oscillator is driven by one of the Pico’s programmable I/O (PIO) pins, which takes some load off of the processor. For AM and SSB, where amplitude needs to be controlled as well, a PWM signal is generated on another PIO which is then mixed with the RF oscillator using an analog multiplexer. The design also includes a microphone with a preamplifier which can be fed into a third PIO; alternatively it can receive audio from a computer via the USB interface. More processor resources are needed when generating phase-modulated signals like RF, but the Pico is still quite capable of doing all of these tasks without jitter larger than a clock cycle.

Of course this only outputs a signal with a few milliwatts of power, so for making any useful radio contacts with this circuit an amplifier is almost certainly needed. With the heavy lifting done by the Pico, though, the amplifier doesn’t need to be complicated or expensive. While the design is simple and low-cost, it’s not the simplest radio possible. This transmitter sends out radio waves using only a single transistor but you will be limited to Morse code only.

Continue reading “Pico-Sized Ham Radio”

RP2040 picture on left by Phiarc, CC BY-SA 4.0, via Wikimedia

Kaluma Puts JavaScript On The RP2040

With a simple firmware update, Kaluma puts a lightweight JavaScript runtime on the Raspberry Pi Pico (which uses the RP2040 microcontroller), providing handy modules for file systems, graphics, networking, and more. Code for a simple LED blink can then look like:

// index.js
const led = 25;
pinMode(led, OUTPUT);
setInterval(() => {
digitalToggle(led);
}, 1000);

Development can then be done using tools that are very familiar to JavaScript developers, such as npm and flashing new code to a USB-connected Pico with the (Node.js-based) Kaluma command-line interface. Take a look at the GitHub repository for the project, or browse some of the projects made with Kaluma.

Much like with MicroPython, there’s value to be had in putting implementations of high-level languages on microcontrollers. Each new language opens embedded programming to a whole new group of coders. But it’s not just languages making their way to the RP2040. Wonderful projects such as emulating the ZX Spectrum on an RP2040 also happen.

Thanks to [Shri Hari Ram] for the tip!

Button, Button, Who’s Got The (Pico) Button?

There is an episode of Ren and Stimpy with a big red “history eraser’ button that must not be pressed. Of course, who can resist the temptation of pressing the unpressable button? The same goes for development boards. If there is a button on there, you want to read it in your code, right? The Raspberry Pi Pico is a bit strange in that regard. The standard one lacks a reset button, but there is a big tantalizing button to reset in bootloader mode. You only use it when you power up, so why not read it in your code? Why not, indeed?

Turns out, that button isn’t what you think it is. It isn’t connected to a normal CPU pin at all. Instead, it connects to the flash memory chip. So does that mean you can’t read it at all? Not exactly. There’s good news, and then there’s bad news.

The Good News

The official Raspberry Pi examples show how to read the button (you have read all the examples, right?). You can convert the flash’s chip-select into an input temporarily and try to figure out if the pin is low, meaning that the button is pushed. Sounds easy, right?

Continue reading “Button, Button, Who’s Got The (Pico) Button?”

Hands-Free Compass Uses Haptic Feedback

If you’ve never experienced it before, getting turned around on a cloudy day in the woods or getting lost during an event like a snowstorm can be extremely disorienting and stressful — not to mention dangerous. In situations where travel goes outside the beaten path, it’s a good idea to have some survival gear around, including a good compass. But if you need your hands for other things, or simply don’t want to have to stop often to check a compass, you might want to try out something like this belt-mounted haptic feedback compass.

The compass is based around a Raspberry Pi Pico microcontroller and uses a ULN2803a transistor array chip to control a series of motors. The motors are mounted all along a belt using custom 3D printed clips with wires woven to each through the holes in the belt. The firmware running on the belt communicates with an Android app via USB to control each of the motor’s vibration based on the direction the wearer is traveling and their desired heading. With certain patterns, the wearer can get their correct heading based on the vibrations they feel through the belt.

While it does rely on having a functioning phone, a modern smartphone’s built-in compass doesn’t require a signal to work. We would still recommend having a good simple compass in your pack as backup if you’re going to be far off the beaten path, though. There are other ways of navigation besides by compass, map, or GPS too. Have a shot at inertial navigation if you want a challenge.

Thanks to [Peter] for the tip!

Arbitrary Waveforms On The Cheap

A signal generator that can produce the usual sine, square, and triangle waves is handy and has been a staple of electronic benches for decades. Being able to craft custom signals opens up new horizons, but historically, these instruments were expensive. The price has come down, though, and [Rishin Goswami] made a 5 MHz 8-bit signal generator with 131K data points of arbitrary waveform for a low price: about $20. If you want to spend a bit more, you can improve the output DAC and op amps, but even that should cost well under $100, all in.

This is one of those projects that seems easy until you start digging into it. For example, storing some points and generating signals using any microcontroller isn’t a big deal. But minimizing jitter and maximizing speed with a conventional processor is difficult. That’s why [Rishin] uses a Raspberry Pi Pico. The programmable I/O units are perfect for generating waveform data fast and reliably. You can see the project go through its paces in the video below.

The Pi streams data to an 8-bit DAC. However, it would be easy to improve resolution with a different converter. The DAC0808 also limits the instrument’s sample rate. The processor could likely go much faster if it had a DAC accommodating higher speeds.

This is just a proof-of-concept, so don’t expect fancy GUIs or the ability to import spreadsheets. You control the device from a command-line-like interface. Still, a good example of how to take advantage of the Pi’s hardware. We took a shot at a similar device nearly a decade ago.Those programmable I/O blocks are finding uses in some surprising applications.

Continue reading “Arbitrary Waveforms On The Cheap”

Listening To Bats As They Search For Food

The range of human hearing goes up to about 20 kilohertz, which is fine for our purposes, but is pretty poor compared to plenty of other animal species. Dogs famously can hear up to about 60 kHz, and dolphins are known to distinguish sounds up to 100 kHz. But for extremely high frequencies we’ll want to take a step into the world of bats. Some use echolocation to locate each other and their food sources, and bats like the pipistrelle can listen in to sounds up to 350 kHz. To listen to them you’ll need a device like the π*pistrelle. (Ed Note: a better explanation is available at the project’s website.)

The original implementation of the bat detector was based on a Raspberry Pi Pico, from which it gets its name. But there have been several improvements on it in the years since it was first developed. The latest can detect bats when it hears their 350 kHz sonar calls thanks to an ultrasonic microphone and op amp. The device then records the bat sounds and then either heterodynes the sound down or time-expands it to human-audible range so the calls can actually be heard. There’s an LED display on the board as well as three input buttons, but an iOS companion app is available to interact with the device as well.

If you want to know for sure which species is flying around at night, you can use machine learning to help figure that out.