Meet PreCusor – The Mobile Dual-FPGA Development Kit

Meet PreCusor – The Mobile Dual-FPGA Development Kit

There has recently been a desire and surge in the development of standalone portable hardware development kits with qwerty keyboards and displays all fitted into a smartphone/blackberry-like (with trackpads) form factors, either for the sake of portability, or security and ease of use. One of the recent boards developed on these premises is the precursor; a recently announced FPGA development kit.

Developed by Sutajio Ko-usagi, the company behind several projects like the Fomu FPGA Board,  the Precursor is designed to serve as an all-in-one, powerful but portable, open hardware development platform for secure, mobile computation and communication.

Packed in a pocket friendly 69 mm x 138 mm x 7.2 mm size with a smartphone look, the Precursor, comes with a built-in display, a physical keyboard, and an internal battery which powers the on-board, FPGA-hosted (Xilinx XC7S50 based), soft-core System-on-Chip (SoC).

The goal of the precursor according to the product announcement was to create a solution that was truly portable but also secure and powerful enough for use in security- and privacy-critical applications. To achieve this, the company designed a SOC called “Betrusted-SoC,” which is meant to be the central pillar of security for devices like Precursor.

The version of Betrusted-SoC used in Precursor is based on a Xilinx FPGA and some of the features include:

  • XC7S50-1L CSG324I, 80% utilized as of October 2020
  • 100 MHz customized VexRISC-V RV32IMAC + MMU core with 4k caches
  • Crypto primitives
    • Ring oscillator TRNG (compliments off-chip TRNG)
    • JTAG-based self-fusing for on-chip generation and sealing of secret keys
    • AES-128, -192, -256 with ECB, CBC and CTR modes
    • SHA-2 and SHA-512 digests
    • Microcode Curve25519 field arithmetic engine
  • SPI
    • High speed, 100 MHz DDR OPI SPI interface for code ROM
    • Low speed, 20 MHz SDR 1-bit SPI interface to an insecure domain
  • I²C (100 kHz) for system integration
  • Keyboard switch matrix controller with low power standby
  • Bidirectional I²S interface for audio
  • Custom frame buffer-based LCD interface
  • 32-bit async SRAM interface with standby support
  • Standard UART
  • Full speed USB device
  • Hardware Ticktimer
  • 12-bit ADC (system voltage monitor)
  • GPIO for power management and extension

Some general features and specifications of Precursor itself are highlighted below:

  • Made for developers
    • Easy-access developer’s cable (included)
    • Low-level debugging (GDB + Chipscope) and firmware flashing via developer’s cable plugged into a custom Raspberry Pi HAT (included)
    • Middleware debugging via USB cable via wishbone tunnel
    • Open source to the core
      • Inspect, modify and compile your SoC and embedded controller from the source
      • All source files hosted on GitHub for convenient fork, pull request and issue tracking
      • Open source PCB and case design
    • Extendable and modifiable
      • No adhesives holding the bezels in place – just one screwdriver is all it takes
      • Want to add hardware? Maybe a cellular modem? No problem!
        • The battery compartment is a blank check for your peripherals
        • Install a smaller battery for more space
        • Flex PCB breakout for 8x FPGA GPIO into the battery compartment
        • The bezel is made out of FR-4, and can be user-customized to hold additional components
  • Slim and light mobile form factor
    • 69 mm x 138 mm x 7.2 mm
    • 96 grams reference weight
    • Compare to iPhone X at 70.9 mm x 143.6 mm x 7.7 mm and 174 grams
    • Accessible mechanical design
      • 6063 alloy aluminum case -– 3D files provided, so you can mill your own case!
      • FR-4 front bezel -– PCB source provided
      • ABS + PC polymer antenna radome -– 3D printable
  • User-customizable CPUs
    • Xilinx XC7S50 primary System on Chip (SoC) FPGA
      • -L1 speed grade for longer battery life
      • Tested with 100 MHz VexRISC-V, RV32IMAC + MMU, 4k L1 I/D cache
    • iCE40UP5K secondary Embedded Controller (EC) FPGA
      • Manages power, standby, and charging functions
      • Tested with 18 MHz VexRISC-V, RV32I, no cache
  • 16 MB external SRAM
  • 128 MB Flash
    • 100 MHz DDR 8-bit wide bus for fast XIP code performance
  • Dual hardware TRNG
    • External discrete noise generator
    • In-SoC ring oscillator based TRNG
  • Inspectable I/O
    • Physical keyboard with changeable layout overlays
    • 200 ppi black and white LCD (336 x 536 resolution), 100% inspectable with standard optical microscope
    • Both keyboard and LCD are backlit for night-time use
    • Modular keyboard PCB — customize layouts, add sensors, or swap in a touch surface
  • Audio with safe defaults
    • Integrated 0.7 W speaker for notifications
    • Vibration motor
    • 3.5 mm headset jack
    • No integrated microphone — audio surveillance is not possible when headset is unplugged
  • Integrated Wi-Fi
    • Sandboxed in a hardware-delineated untrusted domain
    • Silicon Labs WF200C chipset
  • USB Type-C port
    • Supports charging at 5 V; over-voltage protection tolerant to 20 V
    • Power negotiation to 5 V @ 1.5 A (source and sink)
    • Supports legacy USB 2.0 full-speed PHY
    • Basic DRP negotiation hardware support
  • 1100 mAh Li-Ion battery
    • Integrated gas gauge for more accurate battery life estimate
    • Full charge in about three hours
    • Runtime depends on user application
      • Approx. 100 hours standby with Wi-Fi + embedded controller + static display enabled
      • Approx. 700 mW “on-state” (most features enabled and active, backlight off) power draw, or 5.5 hours continuous use
  • Anti-tamper features
    • User-sealable metal can for trusted components
    • Dedicated real-time clock (RTC) with basic clock integrity monitoring
    • Power monitors trip reset in case of power glitches
    • Always-on accelerometer/gyro to detect movement in standby
    • Support for instant secure erase via battery-backed AES key and self-destruct circuit

The precursor is currently only available through the crowdfunding campaign that was launched recently on crowd supply. Launched with a USD 220,000 funding goal, the campaign has so far raised a total of 162,000 with over 200 backers. The campaign is still on for the next 22 days with the precursor ($512) and limited edition precursor ($768) package still available.

Asides from the availability via the crowdfunding campaign, the project is also entirely open source, and all design files, schematics, etc are available on the project’s GitHub page.

More information on the project, the crowdfunding campaign, and other details can be found on the project’s page on crowd supply.

Please follow and like us:
Pin Share
About Emmanuel Odunlade

Hardware Design Engineer | #IoT Consultant |All things #ML | Entrepreneur | Serial Writer | Passionate about Innovation and technology as tools for solving problems in developing countries. Spare time is spent around writing and advocacy for the growth of the Maker/DIY Culture in Africa.

view all posts by emmanuel
Notify of

Inline Feedbacks
View all comments
Get new posts by email:
Get new posts by email:

Join 97,426 other subscribers