Firsts experiments with RK3588 in december 2022 to january 2023, install an ARMbian and chroot Arch Linux ARM for some updated (less buggy) application


root@rock-5b:~# lsmod | grep tabl
ip_tables              24576  0
x_tables               32768  1 ip_tables
root@rock-5b:~# iptables-save 
iptables-save v1.8.7 (nf_tables): Could not fetch rule set generation id: Invalid argument

To resolve this (and use iptables, (g)ufw still unusable):

update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

Table of Content

First boot with HDMI working on the Radxa Rock5 Model B
ARMbian base installation
activate the PPA
Chrooted Arch Linux


I Just bought few weeks ago a Radxa Rock5 Model B, based on Rockchip RK3588 powerful and energy efficient SoC. It costs around 250 $ with 16GB, I added a 128GB (pluggable) eeprom for 72$ and few accessories (thermal disspator I still didn’t need to use, PD (USB-C) power supply and a light box (the metal box was no more available), and the more important, a USB< ->UART (serial) wire. You will see later that it is today (january 2023) needed to be able to install some distribution as ARMbian (at least my model, it looks like provided kernel had HDMI output on older one).

Received the board
The default Radxa proviced image, use ARM made, closed source Mali driver, that is quite limited (including no desktop OpenGL, only GL ES), I so installed an ARMbian, and needed to tune a lot to have working one.

ARMbian, made a great work at integrating the closed source patched Linux (5.10) kernel with some flavours of preinstalled Debian and Ubuntu GNU/Linux distributions.

I choose Ubuntu flavour, as first test, as it provides the liujianfeng1994 PPA to obtain GPU (via Panfork, a fork on panfost, using some ARM binaries) and video (via Rockchip multimedia libs) acceleration.

I tried Xubuntu flavoour without success with 2 included kernel (no HDMI output), the default GNOME version, doesn’t have either HDMI output with the default kernel (5.10.110), but can be easily switched to 5.10.72 that works just fine. Continue reading

Utiliser VMPK et Cardinal avec PIpeWire, Jack et les baies de brassage Helvum et Qpwgraph

VMPK, clavier de piano MIDI virtuel
Cardinal, fork de VCV Rack, synthétiseur modulaire Eurorack
PipeWire et les baies de brassage
Petit ensemble simple sous Cardinal

Arch Linux, ainsi que de nombreuses autres distributions Linux, ont définitivement basculé la pile audio sous PipeWire. Celui-ci à l’avantage de centraliser de façon simple Jack (temps réel pour l’audio de qualité studio, nécessite des réglages en fonction des besoins) et PulseAudio (plus simple, pour l’utilisation en informatique de bureau ou de jeu). PipeWire, permet aussi de synchroniser plusieurs sources et destinations video de différentes tailles et format, en même temps que le son. Les baies de brassage Helvum et Qpwgraph permettent d’établir simplement à la souris les connexions. QJackCtl ne semble plus fonctionner pour cette tâche. Continue reading

RISC-V based ESP32c3 with ESP-IDF part 3, OLED screen, and potentiometer

Table of Content

* Introduction
* ADC Limitations on some ESP32 SoCs
* Potentiometer
* OLED I²C Screen
* Building the project and flashing


This piece of software was done for new year 2022, but procrastination helped me to delay the release of the tutorial, it continue the traditionnal (but with detailed explanations) LED blinking introduction tutorial. The goal of this tutorial is to learn to use potentiometer and little I²C screens (4 pins are I²C only, SPI versions use more pins) in EPE-IDF, with ESP32 microcontroller SoC based. I use here a really cheap (<5€) but powerful AI thinker ESP-C3-32S, that use an efficient low power RISC-V microcontroller.

Full schema with part 2 and 3

You can find the complete sources files and prebuild RISC-V firmware for ESP32-C3 on my files repository.

This example contain two main parts in the single file adc/esp32c3/adc/main/adc_dma_example_main.c, called in app_main(void), at the end of the file :
* One simple example single_read(NULL);, that make only one read of the state of the ADC, it uses ADC 1, channels 2,3,4) and ADC 2 (channel 0) and display datas on terminal.
* One more complex example continuous_read(NULL);, that reads 256 times the state of the channels and display them in the console, and then make continuous reading and change the onboard RGB Led blue colour light intensity. Continue reading

Quelques essais avec le moteur de jeu LÖVE en Lua

* This post is also available in English.

Dessiné avec Pencil2D et MyPaint, animé en utilisant un maillage dans le moteur de jeu LÖVE (enlangage Lua), J’ai également fait quelques essais en C avec libSDL, mais cela ma paraît plus rapide de prototyper en Lua avec LÖVE, quitte à ajouter des bibliothèques en FFI pour les parties ayant besoin de beaucoup de calcul (dans cet exemple, les calculs sont légers et GL est utilisé pour le rendu), ou de le porter en C/SDL dans un second temps. Tous ces logiciels sont des logiciels libres, utilisés sur un système GNU/Linux.

Ce premier exemple utilise un simple maillage sur une image, et la déforme en utilisant des mouvement circulaires, comme je l’avais fait sur TIC-80 en juillet 2021. Vous pouvez récupérer les sources, images, et le paquet LÖVE pré-assemblé ici:

Continue reading