Coffee Space


Listen:

0x64 Linux Board

Preview Image

So, Pine64 just dropped a 64MB RAM Linux SBC for just $8, just before Christmas. I just ordered four.

0x64 board top

So now we get to talk about a new part!

Specifications

From the store page:

Properties Notes
CORE 64-bit 480MHz RV64 C906
32-bit 320MHz RV32 E907
32-bit 150MHz RV32 E902
MEMORY 728KB internal SRAM
64MB internal PSRAM
128Mb (16MB) XSPI Flash
microSD slot
I/O INTERFACE UART
I2C
SPI
I2S
CAMERA INTERFACE MIPI-CSI 2 lanes
COMMUNICATION 802.11 b/g/n 2.4GHz Wifi
BLE 5.0
Zigbee
USB
10/100Mbps Ethernet thru optional add-on board
EXPANSION 40 pins Breadboard friendly form factor
PACKAGE CONTENTS 128Mb Ox64 board

I have some additional notes:

  1. RV64 and RV32 are not RISCV - Maybe you were like me and thought that this would be a super cheap way to get into RISCV programming, but actually this is not the same.
  2. 64MB RAM, 128MB disk - It was not clear to me originally by looking at the product page that there is just 64MB of RAM.
  3. Kernel is custom built - More on this shortly. Worth noting though that this will likely never be in the mainline kernel, simply because it is so heavily modified to run here.
  4. Bluetooth driver not yet written - This would require an appropriate kernel driver.
  5. WiFi driver not yet written - This would also require an appropriate kernel driver.
0x64 board bottom

And some additional things that are unclear:

  1. Boot from micro SD card - It is not yet clear whether we can boot from the micro SD card.
  2. Firmware upload process - Currently you have to use this crazy “DevCube” tool to download the firmware. It would be nice to automate this process.
  3. USB serial terminal - From what I am aware, currently the only way to interact with the system is via a serial terminal.

Linux Status

There appears to be a modern 5.10.4 kernel working, but this is pretty much where it ends. I suspect there is zero hope of this ever getting submitted into the mainline kernel. I guess if you are to be stuck on a kernel indefinitely, make it the newest one! It should at least buy it some years.

BL808 block diagram

What is unclear to be is whether the filesystem will be read-only or not. Maybe we could wear out the flash by writing to /var/log/syslog or such, like Tesla did years ago.

Project Ideas

0x64 board image

The following are some project ideas…

MP3 Player

The idea here would be to have a small, open source Linux-enabled MP3 payer for listening to music. This could open up to a world of opportunities and really make music listening quite interesting.

In theory, this just requires some simple support hardware I already have laying around:

  • LiPo battery (although it is yet unclear how power efficient this will be)
  • LiPo charging circuit
  • Buttons
  • Small display

It might be a good idea to pick up a DAC, as bluetooth doesn’t currently have a driver and we don’t want to blow a pin.

Linux PDA

I don’t think this would be internet connected at all - in fact it might even be cooler if it isn’t. This would simply be a low-power note-taking device that can be synced with a main computer occasionally.

Hardware wise, I think we would be looking at a custom PCB to host it. I imagine the PCB would have simple buttons that could be used to type, a really modest low-power display, and a battery.

Internet Bridge

I have some machines that are on an isolated network, that I would like to occasionally bridge to download packages. I’m thinking that it could emulate a keyboard device whilst transmitting data over a WiFi connection - would be a pretty neat hack!

Vehicle Black-box/Controller

One project I am considering is a vehicle-based Linux system. The idea is that it would be an additional add-on device for a vehicle. Some things I would be interested in are:

  1. Log CAN-bus data whilst the vehicle is operating.
  2. Log IMU and/or GPS data to disk.
  3. Send values over the CAN-bus or another bus.
  4. Drive a display console in the cockpit.

A Tiny Server

It could be funny to host an ultra small server, with something like IRC or some small web pages hosted. I think you would likely want to keep your resources in RAM, otherwise disk access will take far too long.

For this we either need a serial bridge, an Ethernet add-on, or the WiFi driver written.

Next Steps

Now I wait for it to arrive, hopefully some time over Christmas.