The rvPhone is a hybrid RISC-V + ARM phone experiment

The rvPhone is a hybrid RISC-V + ARM phone experiment

Around one year ago, Sipeed announced initial support for Android on their RISC-V development boards, hinting that a first functional prototype of RISC-V phone could be coming within one or two years. Although Android is now supported by several development kits based on this architecture, as can be seen in the relatively new RISC-V Android Source repositories, we have yet to see a major mobile device implementing this architecture. Although still in the depths of the Linux kernel's architectural porting, things are moving fast.

The RISC-V based Sipeed Maix Amigo kit PDA (2020)

But if the very first PDA to support a quasi-RISC-V architecture was the Precursor, released in late 2020, the NLnet Foundation is now funding a new, homegrown RISC-V phone project. As for many other mobile Linux projects, such as postmarketOS, MNT Research's Reform and PocketReform, and others, the rvPhone also appears to be sponsored by the European Union's Next Generation Internet project.

To put things clear, the rvPhone is quite different from the devices above, as in spite of what its name may suggest, it is still far from doing the tasks of even a basic smartphone, and is rather focused on enabling mobile communication on a low-power RISC-V platform than about providing a modern smartphone user experience.

A screenshot of the current rvPhone firmware

And if the rvPhone developments are more about its open-source hardware than the software, some specifications can be derived from the current prototype:

  • todotodo proc
  • CPU: SiFive Freedom E310 RISC-V microcontroller (320MHz, RV32IMAC)
  • CPU (on daughterboard / SoM): NXP i.MX 8M (the same family as the Librem 5's), e.g. CL-SOM-iMX8 (4x ARM Cortex-A53@1.5GHz + ARM Cortex-M4 coprocessor)
  • Display: 480x854 IPS LCD capacitive touchscreen, ILI9806E  (FocusLCDs E50RG84885LWAM520-CA)
  • Graphics: BT817 controller
  • Wireless: Espressif ESP32 Wi-Fi + Bluetooth
  • Cellular: SIMCom SIM7600X or Quectel EC-25 broadband modem via mini-PCIe
  • Audio: I2S audio subsystem, Class D amp (MAX98357A) + microphone (ICS-43434)
  • Others: gyro, accelerator, magnetometer (LSM9DS1), haptic driver (DRV2605L)
  • Camera: ArduCAM / OV2640 sensor (5MP)
  • Power: Lithium battery + charger (BQ25895)
  • Storage: SD card (FAT filesystem, AES/Blowfish encryption support), possibly eMMC on i.MX8 daughterboard
Back of the rvPhone's prototype motherboard (source)

As can be seen, this prototype seems to be an interesting combination of an inexpensive, low-power RISC-V SoC sharing the board with a relatively high-performance i.MX8 ARM module. Although the electrical schematics are available, it is not entirely clear how the two subsystems interface with each other, or how the switching logic occurs between the ultra-low-power RISC-V system and the fully-featured i.MX8 board.

For instance, although electrical specifications are open and downloadable (also in KiCad format from the hw directory of its repository), the general documentation looks to be still limited. Similarly, no videos or pictures of the prototype apart from that above seem to be released at the time of writing.

The project looks developed by one developer, Uroš Majstorović ("majstor"), and its official Git repository looks to be relatively active. This probably falls into the spectrum of homebrew projects, and it represents the first experimentally working RISC-V mobile device. Having some kind of Linux integration through the i.MX8 subsystem, it could also be a good source of inspiration for privacy-oriented RISC-V hardware stacks - although for ypu will need to wait at least until next year to see more fully-featured RISC-V phones.

RISC-V Phone