Pi-top [3] A311D upgrade : Libre Computer Alta (Cottonwood series)

Sorry @butonic, not sure how I managed to confuse your reply about using Debian Bullseye as your base (for Raspbian), rather than Bookworm…so of course my above comment doesn’t apply :man_facepalming:

More progress, thanks to user gauntlett114’s testing!

" I’ve installed it before reading this message:

  1. Cloned the wiring tool repo - git clone https://github.com/libre-computer-project/libretech-wiring-tool.git
  2. Install debhelper - sudo apt install debhelper
  3. Invoke ./build.sh
  4. Invoke sudo ./install.sh
  5. Issue i2c enablement command - sudo ldto enable i2c-2
    5.1 If you want it to be permanent, issue the following command sudo ldto merge

Test that is works:

~/src/libretech-wiring-tool (master*) » sudo i2cdetect -y 1                                         ubuntu@strong-selfo
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: 70 -- -- -- -- -- -- --

Probable note: if you did merge the device-tree, post reboot, the i2c interface numbers will swap, so one should use index 0 (zero) to interact with it. (the one the used to be 0, is now 1). there are numerous posts about that swap.

Thanks @Luke and team. (I see you responded to @butonic .

Last request, I’d like to understand the difference between I2C AO and EE, but was not able to find something that I can actually make sense of, can someone provide a useful link?"

To which Luke Lu replied:

“re AO vs EE, generally speaking, the AO means power always-on, so devices in this domain is accessible by power management auxiliary processor (a Cortex-m or riscv processor?) even during suspend or power off mode…”

Libre Computer provided this link to the mainline support status/progress of A311D hardware features:
https://linux-meson.com/hardware.html#support-matrix

Latest video featuring Libre Computer and their Alta SBC at Embedded World 24 - and the pi-top gets a mention!
Interesting to note that Da Xue, Libre Computer’s Chief Product Officer, mentions their quality testing and validation suite is proprietary…I wonder whether it will move to being open source-based in future.
N.B. The description beneath the video was LLM-generated by ChatGPT and a warning that the constant changing of angle around Charbax’s camera gimbal may make you feel nauseous!

Random USB disconnect issues should be fixed soon, according to Libre Computer in their forum:
“We plan to fix this by the time we roll out Linux 6.6 soon.”

Wes Payne, a co-host at Jupiter Broadcasting, recently gave a presentation on NixOS Anywhere at LinuxFest Northwest where he converted an Ubuntu system to NixOS…very cool!

MakerMind Nexus has a new, step-by-step video out about booting a Libre Computer board from an image on a USB when you already have another image stored on the eMMC.
The corresponding step-by-step Libre Computer forum post about it is here.

Libre Computer just posted in the audio issues thread:
“We will implement Alsa UCM2 profiles for Alta and Solitude in the coming image update.”

Libre Computer also just posted in the Sweet Potato USB boot thread (but IIUC what they posted will apply to all their boards) :
“There is currently an issue with how Linux handles USB hubs and the devices attached to it. When Linux starts, it triggers a reset on the USB hub and depending on whether systemd has already mounted the rootfs or not, it causes all the devices on the hub to drop off in the middle of loading files. This is being addressed.”

If anyone’s looking to use a camera with their Alta, you should be aware of this recent post by Libre Computer:
"Camera support for A311D is still 6 months out. You can use it with a vendor SDK but definitely not with our upstream kernel.

We recommend using an UVC camera in the interim."

Slightly off-topic:

Summary

Before they get “disappeared” from the forum, in case it’s useful to anyone and they feel like experimenting with other cases, there’s an unofficial list of cooling cases which were designed for the RPi3B+ and should therefore be pretty much compatible (but not necessarily, e.g. hole for microUSB instead of USB-C) with the Alta:
" DISCLAIMER: I have not tried any of these cases myself, I simply looked up passive cooling cases for the RPi3B+ since they should be pretty much compatible with the Alta (if you chose to try any of them - at your own risk - you would obviously need to enlarge the hole for the microUSB so that it will fit the USB-C, as you already did for your LoveRPi case). Again, I provide no guarantees that any of these cases will work for you and if you decide to purchase any of them, you do so at your own risk. I merely wished to put out some potentially helpful suggestions.

“Case A” from Geekworm: Raspberry Pi 3B+/3B Aluminium Alloy Armor Cooling Case – Geekworm

Or this one, also from Geekworm: Raspberry Pi 3B Plus 3B 2B Use Aluminum Case Metal Enclosure Heatsink – Geekworm

Or the MechatronicsArt case: https://www.tindie.com/products/MechatronicsArt/aluminum-case-for-raspberry-pi-3/

Or the Flirc case: Flirc Raspberry Pi 3B Case - Flirc though it doesn’t have GPIO access

Or the CNC machined case from KKSB: https://kksb-cases.com/collections/raspberry-pi/products/kksb-raspberry-pi-3-model-b-case-cnc-machined - which also doesn’t have GPIO access

Finally, it could be a neat option to download the files for the RPi4B+ case from CoolerMaster and modify them for the RPi3B+ / Libre Computer Alta… https://www.coolermaster.com/catalog/cases/raspberry-pi/pi-case-40-v2/#

It would be great if DeSalvo Systems would do a case for the Alta."

If you already bought an active cooling case from LoveRPi but found the internal fan to be too noisy, "Judging by comments here and here, it may be worth your while swapping out the fan for one from Noctua, if one will fit?

DISCLAIMER: Please note, that I have not tried Noctua fans myself, I just came across these posts while looking at cooling solutions and thought they could potentially be helpful to you if you didn’t want to purchase another case in addition to the LoveRPi one you already have. If you did decide to purchase such a fan and make such a modification, it would be entirely at your own risk. Obviously, you would have to check that the dimensional and electrical properties of such fans were compatible with the Alta… (ideally as close as possible to the fan that came with your case)."

Libre Computer provides their own official list of cases compatible with their boards here.

See: https://redirect.invidious.io/watch?v=15NesuEi1BA&t=696

Libre Computer has just posted an explainer on modifying the order in which the firmware seeks to boot from boot devices - e.g. if you want it to look to boot from USB first, rather than eMMC.

It would appear that this is the full manual: https://dl.khadas.com/hardware/vim3/datasheet/a311d_datasheet_01_wesion.pdf (1,438 pages from 2019 vs. 79 in the quick reference manual)
and this appears to be the most up-to-date version Khadas has:
https://dl.khadas.com/hardware/vim3/datasheet/a311d_datasheet_08_wesion.pdf (1,450 pages from 2021)

In the Libre Computer forum, user “farooqkz” asked the following questions:

"According to A311D’s datasheet, this SoC has a TRNG. Do we have software support for this in Linux? If yes, how do we access it? /dev/random?

Second, the datasheet mentions it has a Cortex-M4 builtin. is it true? is it available on Alta and is there software support for it?"

To which Libre Computer replied:

"You can access it via /dev/hwrng. We recommend using rng-tools to seed /dev/urandom.

There is no Cortex M4. This is an optional component for audio specific applications."

And in response to a question by user “Debas” about installing TensorFlow, Libre Computer replied:

“Only TensorFlow Lite is supported. For that, see @charlie suggested link. TF is not supported. Debian does not package TF or TFLite.”

…where the link suggested by user “charlie” is https://hub.libre.computer/t/libre-computer-cottonwood-alta-tensorflow-lite-mobilenetv1-guide

A really cool “hack” to add “low” power consumption Wi-Fi and Bluetooth to your pi-top’s SBC is detailed in a recent Hackaday article about ESP-32, which would mean you would need the pi-top Proto(+) to fit it but it would free up your SBC’s two remaining USB ports - and we might still be able to get blob-free OSS firmware for them in the not-too-distant future.
I imagine that if you choose a suitable ESP32 board, you could also add Meshtastic capability!