Precursor might look like an elongated Blackberry, but it’s capable of a lot more. Every element of this device can be inspected and controlled, right down to the field-programmable gate arrays (FPGAs) at its core.
Modern smartphones are complex, closed platforms with software and hardware abstracted away from the user. Precursor seems about as far in the other direction as it’s possible to get.
A Mobile FPGA Development Platform
Precursor is the latest open hardware project from Sutajio Ko-Usagi, a duo of hackers and embedded hardware developers based in Singapore. It’s a dual FPGA open-source hardware development kit aimed at providing the most secure mobile development platform possible.
The development kit is encased in a machined aluminum body, which houses the physical keyboard and 536 x 336 black and white display, along with a replaceable 1100 mAh Li-ion battery. There’s no microphone in the device’s body, but there is a combination 3.5mm audio port and a 0.7 W notification speaker and vibration motor.
Every aspect of the project is open source, down to the source code of the system on chip (SoC) hosted on the FPGA. This means you could compile your own processor and know for sure that there is no malicious code built into it.
The project was initially announced early last month, but its Crowd Supply page is now live and has already accrued over $117,000 of the $222,000 funding goal at the time of writing.
Early Bird pledges have already been claimed, but the $512 regular tier Precursor is still available.
Precursor: The Full Specifications
If you stop trying to think of it as a phone, you begin to see that Precursor is a fully fledged mobile FPGA dev kit:
- FPGA: Xilinx XC7S50 primary System on Chip (SoC) FPGA using -L1 speed grade for longer battery life; tested with 100 MHz VexRISC-V, RV32IMAC + MMU, 4k L1 I/D cacheLattice Semi iCE40UP5K secondary Embedded Controller (EC) FPGA managing power, standby, and charging functions; tested with 18 MHz VexRISC-V, RV32I, no cache
- System Memory: 16 MB external SRAM
- Storage: 128 MB flash
- Display: 536 x 336 black & white LCD with 200ppi, backlight
- Audio: 0.7 W notification speaker, vibration motor, 3.5 mm headset jack
- Connectivity:802.11 b/g/n WiFi via sandboxed Silicon Labs WF200C chipset for battery conservation
- USB: 1x USB 2.0 Type-C port for data and charging
- User Input: Physical backlit keyboard with changeable layout overlays (QWERTZ, AZERTY, and Dvorak)
- Sensors: Accelerometer and gyroscope
- Expansion: Flex PCB breakout for 8x FPGA GPIO via the battery compartment
- Debugging: Custom Raspberry Pi HAT and developer’s cable for GDB + Chipscope and firmware flashingUSB cable via wishbone tunnel for middleware debugging
- Security: Dual hardware TRNG
- Anti-tamper features: User-sealable metal can for trusted componentsDedicated real-time clock (RTC) with basic clock integrity monitoringPower monitors trip reset in case of power glitchesAlways-on accelerometer/gyro to detect movement in standbySupport for instant secure erase via battery-backed AES key and self-destruct circuit
- Battery: Replaceable 1,100 mAh Li-Ion battery giving ~100 hours standby with Wi-Fi + embedded controller + static display enabled, or 5.5 hours continuous use.
- Dimensions: 138 x 69 x 7.2 mm
- Weight: 96 grams
Another Open Source Smartphone?
Calling Precursor a phone is a little disingenuous, but it does have some things in common with other open-source smart devices like the Pine Phone or Librem 5. Where it differs is in the decision to host the SoC on an FPGA.
A processor is essentially a tiny, complex circuit you can interact with using instruction based architecture. You have no control over what is actually inside it. You just give it calculations to perform using an instruction set provided by the manufacturer. You simply have to take the chip creators on their word when they say they are secure.
This frequently gets proved wrong, as it did in the case of the critical vulnerabilities found in AMD Ryzen chips some time ago.
FPGAs are integrated circuits that can be reconfigured using code. This might not sound all that different on the surface, but rather than giving the FPGA instructions like you would a regular processor, you are configuring the circuitry itself.
This is where the “evidence-based trust” idea central to the Precursor project comes from. You’ll be able to know, down to the very last logic gate in the CPU, that your device is 100 percent secure.
Turn it into the most secure retro phone in existence, or make it a mobile development platform for cryptography and two-factor authentication. The possibilities are, for once, actually endless. Almost.