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.

DIY Laptop Aims For Complete Hardware Freedom

Open source software has unquestionably gone from fringe idealism to mainstream, even if the average person doesn’t really know it. From their web browser to their smartphone operating system, more people are running open source software today than at any other time in the history of computing, and the numbers are only getting bigger. While we can debate how well some companies are handling their responsibilities to the open source community, overall this is probably a lot closer to an open source utopia that many of us ever believed we’d get.

For argument’s sake, let’s say the software is settled. What’s next? Well, if we’ve got all the open source software we could ever ask for, naturally we now need to run it on open source hardware. Just like our software, we want to see how it works, we want to modify it, and to fix it ourselves if we want. These goals are precisely what [Lukas Hartmann] had in mind when he started work on Reform, the latest entry in the world of fully open source laptops.

A plate of fresh keycaps

Like the Novena that came before it, the Reform leverages the four-core ARM Cortex-A9 NXP i.MX6 SoC to deliver tablet-level performance, though [Lukas] mentions the design may migrated to the upgraded six-core version of the chip in the future which should give it a little more punch. The SoC is paired with the Vivante GC2000 GPU which can be used under Linux without any binary blobs. Most hardware is connected to the system via the USB 2.0 bus, though networking is provided by a ThinkPenguin mini PCI-e wireless adapter, and on-board SATA handles the 128 GB SSD.

While the internals are relatively run-of-the-mill these days, the work that [Lukas] has done on the case and input devices is definitely very impressive. He partnered with industrial designer [Ana Dantas] to get the look and feel of the system down, and built almost everything out of 3D printed parts. Even the keyboard caps and the trackball were manufactured in house on a Formlabs Form 2. Rather than using an off-the-shelf USB HID solution, [Lukas] is using Teensy LC boards to interface the custom input hardware with the OS.

[Lukas] is still working on how and when the Reform will be made available to the public. After some refinements, the team hopes to make both kits and individual parts available, and of course put all the files up so you can build your own if you’ve got the equipment. A mockup Amazon listing for the Reform has been posted to get the public’s feedback on the look and features of the machine, and [Lukas] asks that anyone with comments and suggestions send him an email.

Between the Reform, Novena, and the Olimex, competition in the realm of DIY laptops is frankly staggering. Now we just need more people working on open hardware smartphones.

Thanks to [Adrian] for the tip.

SiFive Announces RISC-V SoC

At the Linley Processor Conference today, SiFive, the semiconductor company building chips around the Open RISC-V instruction set has announced the availability of a quadcore processor that runs Linux. We’ve seen RISC-V implementations before, and SiFive has already released silicon-based on the RISC-V ISA. These implementations are rather small, though, and this is the first implementation designed for more than simple embedded devices.

This announcement introduces the SiFive U54-MC Coreplex, a true System on Chip that includes four 64-bit CPUs running at 1.5 GHz. This SoC is built with TSMC’s 28 nm process, and fits on a die about 30 mm². Availability will be on a development board sometime in early 2018, and if our expectations match the reality of SiFive’s previous offerings, you’ll be able to buy this Open SoC as a BGA package some months after that.

Continue reading “SiFive Announces RISC-V SoC”

More WiFi Modules For IoT Madness

The last year has brought us CC3000 WiFi module from TI, and recently the improved CC3200 that includes an integrated microcontroller. The Chinese design houses have gotten the hint, putting out the exceptionally cheap ESP8266, a serial to WiFi bridge that also includes a microcontroller to handle the TCP/IP stack and the software side of an 802.11 connection. Now there’s another dedicated WiFi module. It’s called the MT7681, and it’s exactly what you would expect given the competition: a programmable module with the ability to connect to a WiFi network.

Like TI’s CC3200, and the ESP8266, the MT7681 can be connected to any microcontroller over a serial connection, making it a serial to WiFi bridge. This module also contains a user-programmable microcontroller, meaning you don’t need to connect an Arduino to blink a few pins; UART, SPI, and a few GPIO pins are right on the board. The module also includes an SDK and gnu compiler, so development of custom code running on this module should be easier than some of the other alternatives.

You can pick up one of the MT7681 modules through the usual channels, but there’s an Indiegogo campaign based in China that takes this module and builds a ‘dock’ around it. The dock has a relay, temperature/humidity sensor, a few GPIO pins, and a USB serial connection for use as an Internet of Things base station.

For anyone looking for a little more computational horsepower, there’s also a few mentions and press releases announcing another module, the MT7688, This is a very small (12mm by 12mm) module running Linux with 256 MB of RAM and 802.11n support. This module hasn’t even hit the market yet, but we’ll be on the lookout for when it will be released.

Thanks [uhrheber] for sending this one in.