The Unexpected Joys Of Hacking An Old Kindle

In the closing hours of JawnCon 0x2, I was making a final pass of the “Free Stuff for Nerds” table when I noticed a forlorn Kindle that had a piece of paper taped to it. The hand-written note explained that the device was in shambles — not only was its e-ink display visibly broken, but the reader was stuck in some kind of endless boot loop. I might have left it there if it wasn’t for the closing remark: “Have Fun!”

Truth is, the last thing I needed was another Kindle. My family has already managed to build up a collection of the things. But taking a broken one apart and attempting to figure out what was wrong with it did seem like it would be kind of fun, as I’d never really had the opportunity to dig into one before. So I brought it home and promptly forgot about it as Supercon was only a few weeks away and there was plenty to keep me occupied.

The following isn’t really a story about fixing a Kindle, although it might seem like it on the surface. It’s more about the experience of working on the device, and the incredible hacking potential of these unassuming gadgets. Whether you’ve got a clear goal in mind, or just want to get your hands dirty in the world of hardware hacking, you could do far worse than picking a couple of busted Kindles up for cheap on eBay.

If there’s a singular takeaway, it’s that the world’s most popular e-reader just so happens to double as a cheap and impressively capable embedded Linux development environment for anyone who’s willing to crack open the case.

Continue reading “The Unexpected Joys Of Hacking An Old Kindle”

FLOSS Weekly Episode 846: Mastering Embedded Linux Programming

This week Jonathan and Dan chat with Frank Vasquez and Chris Simmonds about Embedded Linux, and the 4th edition of the Mastering Embedded Linux Programming book. How has this space changed in the last 20 years, and what’s the latest in Embedded Linux?

Continue reading “FLOSS Weekly Episode 846: Mastering Embedded Linux Programming”

A CaptionCall Phone Succumbs To Doom, Again

Pour one out for yet another device conquered. This one’s a desk phone for conferences and whatnot, a colour display, a numpad, and a bog standard handset with a speaker and mic. Naturally, also running Linux. You know what to expect – [Parker Reed] has brought Doom to it, and you’d be surprised how playable it looks!

This is the second time a CaptionCall device has graced our pages running Doom — CaptionCall patched out the previous route, but with some firmware dumping and hashcat, root has been acquired once again. [Parker] has upgraded this impromptu gaming setup, too – now, all the buttons are mapped into Doom-compatible keyboard events coming from a single input device, thanks to a C program and an Xorg config snippet. Feel free to yoink for your own Doom adventures or just general CaptionCall hacking!

If you’re interested in the hacking journey, get into the exploitee.rs Discord server and follow the hack timeline from password recovery, start to finish, to Doom, to the state of affairs shown in the video. Now, as the CPU speeds have risen, should the hackerdom switch away from Doom as the go-to? Our community remains divided.

Continue reading “A CaptionCall Phone Succumbs To Doom, Again”

Give Your Animal Crossing Villagers The Gift Of Linux

If you’ve played any of the versions of Nintendo’s Animal Crossing over the years, you’ll know that eventually you get to the point where you’ve maxed out your virtual house and filled it with all the furniture you could possibly want — which is arguably as close to “winning” the game as you can get.

But now thanks to the work of [decrazyo] there’s a piece of furniture that you can add to your Animal Crossing house that will never get old: an x86 emulator that boots Linux. As explained in the video below, this trick leverages the fact that Nintendo had already built a highly accurate Nintendo Entertainment System (NES) emulator into Animal Crossing on the GameCube, which could be used to run a handful of classic games from within the player’s virtual living room. But it turns out that you can get that emulator to load a user-provided ROM from the GameCube’s memory card, which opens the doors to all sorts of mischief.

Continue reading “Give Your Animal Crossing Villagers The Gift Of Linux”

On the left, the main board of the dual board computer, with the CPU and a bunch of connectors visible. On the right, the addon board is shown, with all the extra connectors as described in the article

A Nifty F1C100S Dual-Board Computer

The F1C100S (and the F1C200S) is a super simple CPU to use – it’s QFN, it has RAM built-in, and it can run Linux. It just makes sense that we bring it up to you once again, this time, on this dual-board computer by [minilogic]. The boards look super accessible to build for a Linux computer, and it’s alright if you assemble only one of them, too – the second board just makes this computer all that much nicer to use!

One the main board, you get the CPU itself, a couple USB ports, headphone and mic jacks, a microphone, a microSD socket, power management, SPI flash chip, plus some buttons, headers and USB-UART for debug. Add the second board, however, and you get a HDMI video output socket, a RGBTTL LCD header, LiIon battery support, RTC, and even FM radio with TV input.

One problem with this computer – it’s not open-source in the way that we expect and respect, as there’s no board files to be seen. However, at least the schematics are public, so it shouldn’t be hard, and the author provides quite a bit of example code for the F1C100S, which softens the blow. Until the design files are properly published, we can at least learn from the idea and the schematics. If you like what the F1C100S CPU offers, there are other projects you can take things from too, like this low-cost handheld we’re patiently waiting for, or this Linux-powered business card.

a CH32V003 Linux-bearing PCB, single-sided, hand-etched, lovely

Bring Linux To CH32V003 Through, Yes, RISC-V Emulation

Like playing around with Linux on low-power devices? You’d be hard pressed to find a better example than the [tvlad1234]’s linux-ch32v003 project. It’s not just a one-off — it’s something you could build right now, since it requires hardly any extra parts.

With help of a 8 MB PSRAM chip for RAM supplementation purposes and an SD card, plus some careful tailoring of the Linux .config parameters, you get Linux on a chip never meant to even come close to handling this much power. The five minutes it takes to boot up to a prompt is part of the experience.

As usual with [tvlad1234]’s projects, there’s a fun twist to it! Running Linux on this chip is only possible thanks to [chlohr]’s mini-rv32ima project, which, as you might remember, is a RISC-V emulator. Yes, this runs Linux by running a RISC-V emulator on a RISC-V chip. The main reason for that is because the MCU can’t map the PSRAM chip into RAM, but if you use an emulator, memory mapping is only a matter of software. Having applied a fair amount of elbow grease, [tvlad1234] brings us buildroot and mainline Linux kernel configs you can compile to play with this — as well as a single-layer-ready KiCad board project on GitHub. Yep, you could literally etch a PCB for this project from single-sided copper-clad FR4 with a bit of FeCl3.

While the CH32V003 is undoubtedly a more impressive target for Linux, the RP2040 Linux project might be more approachable in terms of having most of the parts in your parts box. At least, up until we start valuing the CH32V003 for all the cool stuff it can do!

Four square, unpopulated purple PCBs sit in front of a tube of soldering flux on a light grey work surface. The PCBs are only 1"x1".

BeagleStamp Makes Soldering Linux Into Your Projects Easier

There are a lot of things you can do with today’s powerful microcontrollers, but sometimes you really need a full embedded Linux setup. [Dylan Brophy] wanted to make it easier to add Linux to his own projects and designed the BeagleStamp.

A populated purple PCB propped against a piece of wood on a light grey work surface. The bulk of the PCB is covered in an Ocatavo processor chip.Squeezed onto a 1″ square, the BeagleStamp puts the power of a PocketBeagle into an easy to solder module you can add to a project without all that tedious mucking about with individually soldering all the components of a tiny Linux computer every time. As a bonus, the 4 layer connections are constrained to the stamp as well, so you can use lower layer count boards in your project and have your Linux too.

The first run of boards was delivered with many of the pins unplated, but [Brophy] plans to work around it for the time being so he can spot any other bugs before the next board revision. Might we suggest a future version using RISC-V?