G4 IMac Gets An M1 Heart Transplant

The second-generation iMac was a big departure from the original brightly-colored release. The chunky CRT aesthetic was dead, replaced with a sleek design featuring a slim LCD monitor on a floating arm. [Connor55] recently laid his hands on such a machine, and decided it needed a transplant of some modern M1 hardware.

There’s a lot going on in there.

The machine, as it came into his possession, lacked WiFi, and had a disc drive struggling to open its own tray, so it made a good candidate for hacking. Out came the original motherboard and drives, leaving room for a motherboard from a Mac Mini to be substituted in, with the powerful new M1 system-on-chip onboard.

First up, the screen had to be converted to use DVI input, with a guide from [Dremel Junkie] helping out with that. The Mac Mini motherboard was then prepped to install in the iMac’s dome-shaped housing; notably, the entire board is smaller than the stock iMac G4’s hard drive. It still took plenty of cramming, with a multitude of adapters finagled and massaged to fit inside the original housing.

It’s a very completionist build; even features like the original power button and optical drive still work. It took some fiddling, but the display and backlight operate properly as per the original functionality, too.

Apple’s tasteful industrial design has always proved popular with modders. We’ve seen similar builds before over the years, from Intel NUCs stuffed into G4 iMacs to classic Macs outfitted with iPad hardware. It’s always satisfying to see vintage hardware given a new lease of life with modern grunt!

Another Homebrew Linux Board Success Story

It’s truly incredible what the hobbyist is now capable of. While it would have seemed all but impossible a few years ago, we’re happy to report that yet another dedicated hardware hacker has managed to spin up their own custom Linux single-board computer. Creator [Ian Kilgore] tells us the only goal when developing CATFOOD (yes, that’s the name) was to gain confidence with at-home board production, so it looks like a success to us.

To those who’ve been keeping an eye on this sort of thing, it will probably come as no surprise to hear [Ian] was inspired by the work of [Jay Carlson], who arguably kicked off this whole trend when he put together a bevy of homebrew Linux boards in an effort to compare different System-in-Package ICs. His incredibly detailed write-up of the experience and lessons learned along the way has emboldened other brave souls to take up the challenge.

The USB-C powered board uses an ARM i.MX 6ULL processor and features DDR3, NAND flash, and an Ethernet interface. That last one was the biggest deviation from the reference design, which meant it took a little fiddling to get right. For anyone playing along at home, [Ian] collected up the lessons learned while developing CATFOOD, bringing the whole learning experience full circle.

If you’re interested in more homebrew Linux SBCs, we’d highly recommend reading up on the WiFiWart developed by [Walker]. Over the course of about six months, we got to watch the open hardware board go from concept to a diminutive first prototype.

Teardown: 168-in-1 Retro Handheld Game

The holidays are upon us, and that can mean many furrowed brows trying to figure out what token gift they can give out this year as stocking-stuffers. Something that’s a bit more interesting than a coupon book or a lotto scratcher, but also affordable enough that you can buy a few of them without having to take part in that other great holiday tradition: unnecessary credit debit.

Includes the NES classic Super Militarized Police Bros 3

Which is how I came to possess, at least temporarily, one of these cheap handheld multi-games that are all over Amazon and eBay. The one I ordered carries the brand name Weikin, but there are dozens of identical systems available, all being sold at around the same $20 USD price point. With the outward appearance of a squat Game Boy, these systems promise to provide precisely 168 games for your mobile enjoyment, and many even include a composite video out cable and external controller for the less ambulatory classic game aficionado.

At a glance, the average Hackaday reader will probably see right through this ploy. Invariably, these devices will be using some “NES on a Chip” solution to emulate a handful of legitimate classics mixed in with enough lazy ROM hacked versions of games you almost remember to hit that oddly specific number of 168 titles. It’s nearly a foregone conclusion that at the heart of this little bundle of faux-retro gaming lies a black epoxy blob, the bane of hardware tinkerers everywhere.

Of course, there’s only one way to find out. Let’s crack open one of these budget handhelds to see what cost reduction secrets are inside. Have the designers secured their place on the Nice List? Or have we been sold the proverbial lump of coal?

Continue reading “Teardown: 168-in-1 Retro Handheld Game”

Bike Computer Exploration Uncovers A Hidden Android

As a happy side-effect of the smartphone revolution, the world is now awash with tiny computers that are incredibly cheap thanks to the nearly unfathomable volumes in which their components are manufactured. There wouldn’t be a $10 Raspberry Pi Zero if the billions of smartphones that were pumped out before it hadn’t dropped the cost of the individual components to literal pennies. That also means that smartphone hardware, or at least systems that are very close to it, have started to pop up in some unexpected places.

When [Joshua Wise] recently took ownership of a Wahoo ELEMNT BOLT bike computer, he wondered how it worked. With impressive list of features such as Internet connectivity, GPS mapping, and Bluetooth Low Energy support, he reasoned the pocket-sized device must have some pretty decent hardware under the hood. With some poking and prodding he found the device was powered by a MediaTek SoC and incredibly had a full-blown install of Android running in the background.

So how does one find out that their lowly bike computer is essentially a cleverly disguised smartphone? If you’re [Joshua], you listen to who it’s trying to talk do when doing a firmware update over the Internet. He used mitmproxy running between his Internet connection and a WiFi access point setup specifically for the BOLT, from there, he was able to see all of the servers it was connecting to. Seeing the device pull some data down from MediaTek’s servers was a pretty good indication of whose hardware was actually inside the thing, and when it ultimately downloaded some Android .apk files from the Wahoo website, it became pretty clear what operating system it was running underneath the customized user interface.

Further examination of the Bolt’s software brought to light a few troubling issues. It turned out that the firmware made extensive use of Apache-licensed code, for which no attribution was given. [Joshua] contacted the company and was eventually referred to the Wahoo’s CEO, Chip Hawkins. Refreshingly, Chip was not only very interested in getting the licensing issues sorted out, but even had some tips on hacking and modifying the device, including how to enable ADB.

Before the publication of this article, we reached out to Chip Hawkins (yes, he really does respond to emails) for a comment, and he told us that not only has he made sure that all of the open source packages used have now been properly attributed to their original authors, but that his team has been providing source code and information to those who request it. He says that he’s been proud to see owners of his products modifying them for their specific needs, and he’s happy to facilitate that in any way that he can.

Open source license compliance is a big deal in the hacking community, and we’ve seen how being on the wrong side of the GPL can lead to lost sales. It’s good to see Wahoo taking steps to make sure they comply with all applicable licences, but we’re even more impressed with their positive stance on customers exploring and modifying their products. If more companies took such an enlightened approach to hacking, we’d all be a lot better off.

[Thanks to Roman for the tip.]

RISC-V CPU Gets A Peripheral

One of the ways people use FPGAs is to have part of the FPGA fabric hold a CPU. That makes sense because CPUs are good at some jobs that are hard to do with an FPGA, and vice versa. Now that the RISC-V architecture is available it makes sense that it can be used as an FPGA-based CPU. [Clifford Wolf] created PicoSOC — a RISC-V CPU made to work as a SOC or System on Chip with a Lattice 8K evaluation board. [Mattvenn] ported that over to a TinyFPGA board that also contains a Lattice FPGA and shows an example of interfacing it with a WS2812 intelligent LED peripheral. You can see a video about the project, below.

True to the open source nature of the RISC-V, the project uses the open source Icestorm toolchain which we’ve talked about many times before. [Matt] thoughtfully provided the firmware precompiled so you don’t have to install gcc for the RISC-V unless you want to write you own software. Which, of course, you will.

Continue reading “RISC-V CPU Gets A Peripheral”

Easy FPGA CPU With MAX1000

Ok, we’ll admit it. We like FPGAs because it reminds us of wiring up a 100-in-1 kit when we were kids. But the truth is, many projects are just as well off to have a CPU. But there’s a real sweet spot when you have a CPU and an FPGA together. Intel (or Altera, if you prefer) has the NIOS II CPU core, but that’s hard to configure, right? Maybe not, thanks to a project by [jefflieu] over on GitHub. He’s assembled some basic definitions and libraries to easily — relatively speaking — use NIOS II on the MAX1000 as well as a few other boards. The MAX1000 is a pretty nice board for about $30, so this is a very inexpensive way to get into “System on Chip” (SOC) development.

[jeff] goes into more detail in a blog post, but the idea is pretty simple. We tried it, and it works very well, although we found a few things hard to follow so read on to see how we managed.

The idea behind SoC development is you define your CPU configuration and then your hardware devices. Then you write software to talk to those custom hardware devices and — of course — write your actual application code. So you don’t just write a program, you also define the CPU the program will run on and the hardware that it will talk to.

There are several ready-to-go I/O devices included in the project, but the real fun will be writing your own. The Intel tools have the C compiler and everything else you need. You could also do everything from scratch, but these tools make it much easier to get started.

Continue reading “Easy FPGA CPU With MAX1000”

Microchip Introduces Tiny Cheap Linux Modules

Linux is in everything these days, and that means designers and engineers are crying out for a simple, easy-to-use module that simplifies the design of building a product to do something with Linux. The best example of this product category would probably be the Raspberry Pi Compute Module, followed by the C.H.I.P. Pro and its GR8 module. There are dozens of boards with Allwinner and Mali chips stuffed inside that can be used to build a Linux product, and the ‘BeagleBone on a Chip’ is a fantastic product if you need Linux and want to poke pins really, really fast.

Now Microchip is rolling out with their answer to the Linux System on Module. The SAMA5D2 is a single chip in a BGA package with a small footprint that runs Linux. It’s capable, it’s cheap, and if you want to put Linux in a project, this is your newest option.

The core product in this new Microchip lineup is the SAMA5D2 SIP, a system in package that puts an ARM Cortex-A5 CPU and DDR2 memory in a single BGA package that, with a cursory examination, looks easy enough to design a PCB around and reflow. There are four chips in this lineup, with 128 Mbit, 512 Mbit, and 1 Gbit of DDR2 memory. The 128 Mbit chip is meant for bare metal and RTOS applications, with the higher memory chips capable of running Linux at least as well as a repurposed router.

This chip is at the core of Microchip’s ATSAMA5D2 SOM, a system on module that adds power management (that only requires a single 3.3V supply), an Ethernet PHY, and boot memory into a single package that’s effectively as hand-solderable as a QFN package. It’s Linux on a Chip, or at least as close as we’ve gotten to such a concept.

Adding Linux to a project is hard, and while there are modules and systems that can do it, we’re always welcoming more options given to designers. While these modules and systems aren’t exactly cheap compared to a beefy ARM microcontroller — the SIP starts at around $9, the SOM is available for $39 in 100-unit quantities — this price is quite low compared to other Linux-on-Modules available.