Reverse engineering

SiFive Is Bringing Open Source to the Chip Level

uses the RISC-V chip, has the same form factor as an Arduino Uno. Photo by Gareth Halfacree. Feature and banner images courtesy of SiFive

The HiFive board

There has been an upswell of interest in custom, open hardware among makers, in which community-developed and shared designs abound. The availability of low-cost development boards such as Arduino and Raspberry Pi, together with open source software, has made it easier to get started with making innovative, new hardware designs.

Read articles from the magazine right here on

However, in terms of embracing open source to achieve greater innovation and productivity, the hardware industry is still far behind software. Up until now, the open source hardware movement has been limited by the use of off-the-shelf, commercial silicon chips. These chips often include blocks that are closed source. Their programming interfaces can only be accessed under non-disclosure agreements, or by using opaque precompiled software “binary blobs” that cannot be modified or reverse engineered.

Many advanced chips are not even available to purchase in small quantities, as the vendors are only interested in supporting high-volume customers. Without access to custom silicon technology, makers and small startups are currently constrained to using off-the-shelf microprocessors combined with field-programmable gate arrays (FPGAs), which can be reprogrammed to emulate a custom chip design.

FPGAs, although excellent for prototyping, are too expensive and power hungry to use in large production runs. This lack of open source chips led me, along with my computer architecture research group at UC Berkeley, to develop an open source instruction set architecture (ISA). The latest version, RISC-V, allows hardware developers open access and full power over their parts — down to the level of the chip.

The chip on SiFive’s HiFive board contains the RISC-V instruction set. The creators of RISC-V founded SiFive to commercialize RISC-V designs and to grow the RISC-V ecosystem. Photo by Gareth Halfacree

Back in early 2010 at UC Berkeley, our research group was pondering which ISA to choose for our upcoming research projects. An ISA defines the set of instructions that a microprocessor understands. For example, laptop and server chips from Intel and AMD only run software encoded in the Intel x86 ISA, whereas mobile chips from Apple, Samsung, and others only run software encoded in the ARM ISA. Ideally, for our research projects, we wanted to evaluate our new processor ideas running a wide range of software. Using x86 or ARM for our projects would have seemed the obvious choice, but three big problems forced us down an alternative path.

Photo by Hep Svadja

First, both these ISAs are large and complex. The Intel x86 has its roots in the 16-bit 8086 chip, one quickly designed in ten weeks back in the late 1970s after a different, more ambitious Intel ISA was late to market. In a momentous decision, IBM chose the cheaper Intel 8088 variant of this chip for its first PC prototype and brought in third-party operating software from Microsoft. It inadvertently left the platform open for clones and enabled Intel and Microsoft to grow into industry titans on the back of the IBM PC platform’s dominance.

Flush with revenue from the PC business, Intel rapidly grew the x86 ISA, expanding from 16- to 32-bit and now 64-bit registers — all while being conscious not to sacrifice backwards compatibility with the original hastily constructed foundation. Nearly 40 years later, not even an Intel architect will claim the x86 ISA is elegant, and high-performance implementations of this baroque ISA require huge engineering resources, far beyond the reach of a small university team.

The ARM ISA, in contrast, has it roots in the RISC (Reduced Instruction Set Computer) movement pioneered by groups at IBM, Stanford University, and UC Berkeley in the early 1980s, a movement that promoted simple ISAs for high-performance implementations. “RISC” was coined by my colleague Dave Patterson to name the world’s first RISC-I and RISC-II chips that were produced in the project he led at UC Berkeley, but RISC is now used to refer…

Stealing Cars for 20 Bucks

[Yingtao Zeng], [Qing Yang], and [Jun Li], a.k.a. the [UnicornTeam], developed the cheapest way so far to hack a passive keyless entry system, as found on some cars: around $22 in parts, give or take a buck. But that’s not all, they manage to increase the previous known effective range of this type of attack from 100 m to around 320 m. They gave a talk at HITB Amsterdam, a couple of weeks ago, and shown their results.

The attack in its essence is not new, and it’s basically just creating a range extender for the keyfob. One radio stays near the car, the other near the car key, and the two radios relay the signals coming from the car to the keyfob and vice-versa. This version of the hack stands out in that the [UnicornTeam] reverse engineered…

5 Labs That Use 3D Printing for Biohacking Projects

The greatest bridge between the world of makers and the world of biohackers is probably the mighty 3D printer. The main difference is instead of using plastics, they’re using biomaterials to build three-dimensional structures, and using special bioinks made of living cells to print messages and patterns.

Human cells cultured into a decellularized apple slice (left) and an apple carved into an ear shape (right) from Pelling Labs. Photo by Bonnie Findley

How BioCurious Started Bioprinting

Read articles from the magazine right here on

BioCurious is a mandatory stop among biohacker communities in North America. This pioneering space, located in Sunnyvale, California, hosts a number of great people collaborating on the DIY BioPrinter project. Their bioprinting adventure started in 2012, when they had their first meetups. According to Patrik D’haeseleer, who is leading the project with Maria Chavez, they were looking for community projects that could bring new people into the space and let them quickly collaborate. None of the project leaders had a specific bioprinting application in mind, nor did they have previous knowledge on how to build this kind of printer. Still, it appeared to be a fairly approachable technology that people could play with.

“You can just take a commercial inkjet printer. Take the inkjet cartridges and cut off the top essentially. Empty out the ink and put something else in there. Now you can start printing with that,” D’haeseleer explains.

The BioCurious group started by printing on big coffee filters, substituting ink with arabinose, which is a natural plant sugar. Then they put the filter paper on top of a culture of E. coli bacteria genetically modified to produce a green fluorescent protein in the presence of arabinose. The cells started to glow exactly where arabinose was printed.

Modifying commercial printers for this, as they were doing, presented challenges. “You may need to reverse engineer the printer driver or disassemble the paper handling machinery in order to be able to do what you want,” says D’haeseleer.

First major success with BioCurious’ $150 DIY BioPrinter: fluorescent E. coli printed on agar with an inkjet printhead. Photo by Patrik Dʼhaeseleer

So the group decided to build their own bioprinter from scratch. Their second version uses stepper motors from CD drives, an inkjet cartridge as a print head, and an open source Arduino shield to drive it — a DIY bioprinter for just $150 that you can find on Instructables.

The next and still current challenge deals with the consistency of the ink. Commercial cartridges work with ink that is pretty watery. But bioink requires a more gel-like material with high viscosity. The DIY BioPrinter group has been experimenting with different syringe pump designs that could allow them to inject small amounts of viscous liquid through the “bio print head.”

BioCurious’ early printer: $11 syringe pumps mounted on a platform made from DVD drives. Photo by Patrik Dʼhaeseleer

Moving to 3D

Starting with an already existing 3D platform seemed like the best way to go beyond 2D patterns. The group first tried to modify their existing 3D printer by adding a bio print head directly on it. However, their commercial machine required some difficult reverse engineering and software modification to perfect the process. After a couple of months, this led to a dead end.

The RepRap family of 3D printers influenced the next step. After buying an affordable open source printer kit, the bioprinting team was able to switch out the plastic extruding print head for a print head with flexible tubes that connected to a set of stationary syringe pumps. It worked.

Converting a RepRap into BioCurious’ latest 3D BioPrinter platform, with an Open…