June 05, 2026, 10:03:31 PM

Recent posts

#1
ESP32 / Re: I built an 8-bit Retro Aud...
Last post by UfkuAcik - Today at 12:31:46 PM
Thank you very much. Please upload the code to the board and test it out when you have the time. It is particularly important to me that the DSP block meets expectations, so I am very curious to hear your thoughts on this point.

As a quick note, I plan to include the following features in the project in the future:

Remastering the algorithms in the DSP block to ensure full academic compliance and optimizing the related functions to the highest possible degree.

The ability to import short external audio files (1-2 seconds) from an SD card into the synthesizers (signal generators) and synchronize them to the tempo.

Real-time recording from the master output to the SD card during runtime.

Improvements to make it impossible for the master audio output to clip/distort, even as a result of heavy effects and boosting.
#2
A13 / Re: How update nand flash of m...
Last post by colpamax - Today at 12:28:46 PM
Android partitioning remains unchanged.
Debian root partition is installed in biggest nandi (around 2.6 Gb)
Debian Home partition is installed in nandd (around 512 Mb)
2 smaller partitions (256Mb each) are mounted as 'storage' and 'backup' under 'mnt' folder. Use them for your files as you wish.
One more Android 128Mb partition is mounted automatically by XFCE. You can delete Android files from it and use for your needs.

May be for another Android images (for example for 8Gb NAND) script must be changed.
I can't check this.
#3
A13 / Re: How update nand flash of m...
Last post by colpamax - Today at 12:09:49 PM
I've got working Debian image in NAND.
My configuration is: A13-Olinuxino-Wifi with 4Gb Hynix.

1)
You must setup Android image with LiveSuit. (later we will use u-boot from Android to load Linux image). You must load image for your type of board from here
https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%d0%b0ndroid_images/nand/
For my board image is 
https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%d0%b0ndroid_images/nand/A13_android_NAND_LCD_800x480_EN_second_release.img

2)
You must prepare SD-card with Debian image, which is good for your board. Be careful - ONLY OLD LINUX KERNEL 3.4.x supports NAND. In later releases NAND support is missing.
For my board Debian image is
https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_mainline_u-boot_release_11_3.7z

3) Check boot from Android. After that insert SD card with Linux and boot from SD-card. Check that you have access to NAND memory partitions with Android installed.

4) Under Debian you must replace in /etc/apt/sources.list
   deb http://deb.debian.org/debian/
   with
   deb http://archive.debian.org/debian/

   in order to get updates for your old kernel.
 
5) IF all is OK - than under Debian run this script to delete all Android stuff and replace with Linux files. Android partitions remain unchanged.
5.1) Insert text below into movetonand.sh file.
5.1.1) If you make this under Windows be carefull in Windows EOL is (\r\n) in Linux EOL is (\n). If you insert this script in Windows Notepad the script will not run.
5.2) Add permission to execute with:  chmod +x movetonand.sh
5.3) sudo ./movetonand.sh
#!/bin/sh
apt-get install rsync
apt-get clean
apt-get autoclean

umount /dev/nandi
mkfs.ext4 /dev/nandi
tune2fs -o journal_data_writeback /dev/nandi
tune2fs -O ^has_journal /dev/nandi
e2fsck -f /dev/nandi

umount /dev/nandd
mkfs.ext4 /dev/nandd
tune2fs -o journal_data_writeback /dev/nandd
tune2fs -O ^has_journal /dev/nandd
e2fsck -f /dev/nandd

umount /dev/nande
mkfs.ext4 /dev/nande
tune2fs -o journal_data_writeback /dev/nande
tune2fs -O ^has_journal /dev/nande
e2fsck -f /dev/nande

umount /dev/nandh
mkfs.ext4 /dev/nandh
tune2fs -o journal_data_writeback /dev/nandh
tune2fs -O ^has_journal /dev/nandh
e2fsck -f /dev/nandh



mkdir /mnt/nandroot
mount /dev/nandi /mnt/nandroot

rsync -aAXHv \
 --exclude=/proc \
 --exclude=/home \
 --exclude=/sys \
 --exclude=/dev \
 --exclude=/tmp \
 --exclude=/run \
 --exclude=/mnt \
 --exclude=/media \
 / /mnt/nandroot

mkdir /mnt/nandroot/dev /mnt/nandroot/proc /mnt/nandroot/sys /mnt/nandroot/tmp /mnt/nandroot/run /mnt/nandroot/mnt /mnt/nandroot/media /mnt/nandroot/home

rm -rf /mnt/nandroot/var/log/*
rm -rf /mnt/nandroot/var/tmp/*

mkdir -p /mnt/nandroot/mnt/storage
mkdir -p /mnt/nandroot/mnt/backup


cat << 'EOF' > /mnt/nandroot/etc/fstab
/dev/nandi    /              ext4    defaults,noatime,nodiratime,commit=60    0    1
/dev/nande    /home          ext4    defaults,noatime,nodiratime,commit=60    0    2
/dev/nandh    /mnt/storage   ext4    defaults,noatime,nodiratime,commit=60    0    2
/dev/nandd    /mnt/backup    ext4    defaults,noatime,nodiratime,commit=60    0    2

tmpfs         /tmp           tmpfs   defaults,noatime,mode=1777,size=64M      0    0
tmpfs         /var/log       tmpfs   defaults,noatime,mode=0755,size=32M      0    0
tmpfs         /var/tmp       tmpfs   defaults,noatime,mode=1777,size=32M      0    0
EOF

umount  /mnt/nandroot
rmdir /mnt/nandroot

mkdir /mnt/new_home
mount /dev/nande /mnt/new_home
rsync -aHAXx /home/ /mnt/new_home/
umount /mnt/new_home
rmdir /mnt/new_home


mkdir -p /mnt/sdboot
mount -t vfat /dev/mmcblk0p1 /mnt/sdboot

dd if=/mnt/sdboot/uImage of=/dev/nandc bs=1M
dd if=/mnt/sdboot/script.bin of=/dev/nandf bs=1k
sync
umount /mnt/sdboot
rmdir /mnt/sdboot


cat << 'EOF' > u-boot.txt
baudrate=115200
bootdelay=1
console=ttyS0,115200
loglevel=8
machid=102a
nand_root=/dev/nandi
init=/sbin/init
setargs=setenv bootargs console=${console} root=${nand_root} rootwait init=${init} loglevel=${loglevel}
boot_normal=nand read 0x44000000 0x1300000 0x500000; nand read 0x43000000 0x33300000 0x20000; bootm 0x44000000
bootcmd=run setargs boot_normal
EOF


python -c "
import zlib, struct
with open('u-boot.txt', 'r') as f:
    lines = [line.strip() for line in f if line.strip()]
data = '\x00'.join(lines) + '\x00'
target_size = 131072 - 4
data = data.ljust(target_size, '\x00')
crc = zlib.crc32(data) & 0xffffffff
header = struct.pack('<I', crc)
with open('env.bin', 'wb') as f:
    f.write(header + data)
print('env.bin reafy! filesize:', len(header + data))
"
sudo dd if=env.bin of=/dev/nandb bs=1k
sync

rm env.bin u-boot.txt

echo "All done! Now power off the board, remove SD card and next time it will boot Linux from NAND!"

6)
Shut down your board, remove SD card and power-on. Linux will boot from NAND.
#4
ESP32 / Re: I built an 8-bit Retro Aud...
Last post by LubOlimex - Today at 10:47:19 AM
Looks neat. I will add a link to the project's GitHub at the ESP32-SBC-FabGL's product page under "Community".
#5
ESP32 / I built an 8-bit Retro Audio M...
Last post by UfkuAcik - Today at 09:53:48 AM
Hey everyone!

I wanted to share a project I've been working on and get your feedback. It's called Sound Center, a retro audio platform running on the Olimex ESP32-SBC-FabGL board.

I pushed the ESP32's dual-core to its limits to build a full audio mixing and streaming engine from scratch. It outputs a classic GUI via VGA and supports PS/2 Mouse & Keyboard.

Key Features:

🎹 4-Channel Synth + Piano: Supports continuous waveforms and 30+ drum loops. You can even use a PS/2 Keyboard to play it live as a piano!

📡 SD Card & Live WiFi Streaming: Plays 8-bit WAV files locally, or streams real-time audio over WiFi using a custom Python PC client (which auto-converts audio using an advanced FFmpeg pipeline).

🎛� Real-Time DSP Effects: Dual SFX slots (Schroeder Reverbs, Echoes, Bitcrushers, Pitch Shifting, etc.) plus a 5-Band EQ and Overdrive.

Optimization: To prevent audio stuttering during WiFi streaming, I wrote a custom 8KB Ring Buffer allocated entirely in the external PSRAM. Core 1 handles SD Playback/UI, while Core 0 manages the TCP WiFi Streaming.

If you have this card, I would be really grateful if you could run the code and let me know your feedback on the project.

Link: https://github.com/UfkuAcik/FabGL-AudioMixer-And-Streamer





#6
TERES DIY Laptop / Re: Every Distro/Image has ano...
Last post by LubOlimex - June 03, 2026, 09:13:31 AM
The only thing left to try is "teres_armbian_v1.0_preliminary.zip".

That being said I am not sure if the hardware is sufficient for smooth YouTube experience especially for higher bitrate.

The best bet for heavy video decoding tasks like this is to see if somebody got the LibreElec working for the A64 chip or Teres laptop. My personal experience for video playback with LibreElec and A20 boards was the best.
#7
TERES DIY Laptop / Every Distro/Image has another...
Last post by hmk - June 02, 2026, 05:16:24 PM
Just wondering, has everybody managed to find a Distro/Image that is pretty much usable out of the box?

- Latest Armbian Ubuntu (https://armbian.com/boards/olimex-teres-a64): No sound, no trackpad.
- xenial-teres-bspkernel-20190121_144941_EET-1_hdmi_out_v1_5.zip: Sluggish (on microSD), takes up plenty of disk space (and you run out quickly when trying upgrades), FireFox very old and not supported by YouTube, upgrading breaks the system and FireFox.
- Android (android_teres_rev4.zip): Ancient, no sound (have not tried it out, but reported in this forum).

All in all a pretty tedious experience. I only wanted to have a Laptop with sound that can play YouTube videos and have a running slideshow (with Google Docs).
#8
TERES DIY Laptop / Re: Firefox crash after upgrad...
Last post by hmk - June 02, 2026, 05:00:47 PM
For xenial-teres-bspkernel-20190121_144941_EET-1_hdmi_out_v1_5
it worked for me to update/install chromium-browser (and to remove firefox).
(It is possible to play YT videos, for instance.)
#9
TERES DIY Laptop / Re: Firefox crash after upgrad...
Last post by hmk - June 02, 2026, 04:57:35 PM
Quote from: binutzu on March 16, 2021, 09:01:07 PMNever reinstall a working system ... :D
Well, yes, but with this browser you cannot use YouTube, Google says it's not supported. (Cannot blame Google here, IMHO.)
#10
STMP1 / Re: CAN controllers on STMP157...
Last post by dry - June 02, 2026, 09:33:27 AM
my stuff is ordered, please ship Olimex ^__^