Similar to how a Raspberry Pi or an Arduino can be transformed into an IoT gadget with the addition of a couple breakout boards, some solder, and a bit of code, Precursor is a framework upon which you can assemble a wide variety of DIY mobile applications.
Precursor is unique in the open source electronics space in that it’s designed from the ground-up to be carried around in your pocket. It’s not just a naked circuit board with connectors hanging off at random locations: it comes fully integrated—with a rechargeable battery, a display, and a keyboard—in a sleek, 7.2 mm (quarter-inch) aluminum case.
Unlike other projects, Precursor not just a board, but a ready-made prototype of a portable device with an aluminum case measuring 69x138x7.2 mm, LCD-screen (336x536), battery (1100 mAh Li-Ion), miniature keyboard, loudspeaker, vibration motor, accelerometer and gyroscope. The computational module is supplied not with a ready-made processor, but with a software-defined SoC based on FPGA Xilinx XC7S50, on the basis of which emulation of a 32-bit RISC-V CPU operating at 100MHz is organized. At the same time, there are no restrictions on emulating other hardware components, for example, the operation of various processors, from 6502 and Z-80 to AVR and ARM, as well as sound chips and various controllers, can be emulated. The board includes 16 MB SRAM, 128 MB Flash, Silicon Labs WF200C Wi-Fi, USB type C, SPI, I²C, GPIO.
As a security feature, there are two hardware pseudo-random number generators. Interestingly, the device basically comes without a built-in microphone - it is understood that sound reception is possible only when the headset is explicitly connected, and if the headset is disconnected, it is physically impossible to organize eavesdropping, even if the device's software has been compromised.
The wireless (Wi-Fi) chip is hardware isolated from the rest of the platform and operates in a separate environment. To protect against unauthorized access, a lockable case is also used, a separate RTC for integrity tracking, motion monitoring in standby mode (accelerometer and gyroscope always on). There is also a chain of self-destruction and instant clearing of all data, activated with an AES key.
FHDL-language Migen (Fragmented Hardware Description Language) based on Python is used to describe hardware components . Migen is part of the LiteX framework , which provides the infrastructure for creating electronic circuits. Based on Precursor using FPGA and LiteX, a Betrusted reference SoC was prepared, including a 100 MHz CPU VexRISC-V RV32IMAC, as well as an embedded Betrusted-EC controller with an 18 MHz LiteX VexRISC-V RV32I core.
Betrusted SoC provides a built-in set of cryptographic primitives such as a pseudo-random number generator, AES-128, -192, -256 with ECB, CBC and CTR modes, SHA-2 and SHA-512, Curve25519 elliptic curve crypto engine. The crypto engine is written in SystemVerilog and is based on crypto cores from the Google OpenTitan project.
Precursor is positioned as a platform for prototyping and verification, while Betrusted is one of the ready-made mobile devices built on the basis of Precursor. Since traditional enclaves used for isolated storage of crypto keys do not protect against high-level attacks, such as collecting passwords using keyloggers or accessing messages by creating screenshots, Betrusted adds user interaction elements (HCI, Human-Computer Interaction), ensuring that sensitive data that can be read by a human will never be stored, displayed, or transmitted outside the protected device.
Betrusted is not trying to replace a mobile phone, but is only forming a secure enclave with auditable I/O. For example, an external smartphone can be used over Wi-Fi as an untrustworthy data link, but encrypted messages transmitted are typed only on the built-in keyboard of the Betrusted device, and received messages are displayed only on the built-in screen.
All Precursor and Betrusted components are open source and available for modification and experimentation under the Open Hardware License 1.2, which requires all derivative works to be opened under the same license. Including open diagrams and complete design documentation of the main and auxiliary boards, the finished SoC Betrusted implementation and the control controller (EC). Models available for 3D printing the case. In the form of open source projects, a set of firmware and a specialized Xous operating system based on a microkernel is also being developed.