Login
BeagleY-AI voice image: phased plan
Login

First target from README.md: a BeagleY-AI (TI AM67A / J722S, 4 GB RAM) SD card image that boots into a Fossil server used to develop its own voice-controlled app, with the JK Embedded Audio Board for sound.

Split (decided 2026-10-10):

Each phase ends in something that can be booted or demonstrated, and each one is committed here before the next starts.

What exists today (research, 2026-10-10)

Piece Source State
Userland bootstrap-qcow2 (BQ2) Produces a reproducible rootfs tarball: musl 1.2.5, LLVM/Clang 18, busybox 1.36, Crystal 1.19, git, sqlite, fossil 2.25. A prebuilt seed is available as https://dl.beagle.cc/images/bq2-rootfs-0.4.0-arm64.tar.gz. It has no init system, no ALSA, no SD/QCOW2 image output, no board or kernel support. It builds natively only (no cross-compiling), so rebuilding it needs an aarch64 host.
Boot + kernel TexasInstruments/armbian-build ti-main config/boards/beagley-ai.conf, family k3-beagle. BRANCH=vendor uses beagleboard/linux v6.12.49-ti-arm64-r56 and beagleboard/u-boot v2025.07-am6232-pocketbeagle2, with TF-A/ti-linux-firmware 11.00.09 and OP-TEE 4.6.0. Boot files are tiboot3.bin, tispl.bin and u-boot.img on a FAT boot partition, using boot-k3.cmd and uEnv.txt. The R5 SPL toolchain is x86_64-only in the TI fork.
upstream armbian/build (chosen BSP) config/boards/beagley-ai.conf, family k3-beagle, KERNEL_TARGET=vendor,vendor-rt,edge. vendor uses the same beagleboard 6.12 kernel and U-Boot. Newer for this board: ti-linux-firmware 11.02.15 (needed by EdgeAI 11.02 on J722S) and a 7.2 edge kernel with C7x DMA-BUF and remoteproc patches.
ollama.openbeagle.org/armbian-build An older copy (tip badge-snake). It has the same vendor 6.12 sources.
Audio embedconsult/jkembedded-audio-board A mikroBUS audio board with a TI TAC5112 codec, an Si5351B clock and a DAC53002 VCXO trim, connected over McASP0/I2S. A HAT carries an MSPM0 that acts as a pca9538 at 0x20 and routes the audio signals to the header pins. On BeagleY-AI those are WRD 35, BIT 12, DI 38 and DO 40. The only overlay so far is for the mux. There's no codec/McASP sound-card overlay, no speaker amp and no microphone. The I/O is two line-level 3.5 mm jacks.
TAC5112 driver sound/soc/codecs/tac5x1x-i2c.c is present in beagleboard/linux v6.12.49-ti-arm64-r56 and in ti-linux-kernel 6.18, but not in mainline (7.3-rc6). Armbian's k3-beagle vendor config just doesn't enable it (CONFIG_SND_SOC_TAC5X1X_I2C). For edge, the driver has to be carried as a patch.
Agent bridge OCX (ocx2) + ollama docs/beaglebadge-provisioning.md already describes an aarch64 Beagle agent host: fossil, Crystal, the agent binary, and either llm.openbeagle.org/v1 or a local Ollama/llama.cpp provider.

Phases

Phase 0: Plumbing (now)

Phase 1: Boot to a shell

Status (2026-10-10):

Everything is built with clang (LLVM=1 / CC=clang).

It must be rootless, so it can't use loop mounts.

Phase 2: The board serves Fossil and joins OCX

Phase 3: Audio bring-up (JK Embedded Audio Board)

Upstream it to the audio-board repo next to the existing mux overlay.

Phase 4: Local speech loop (CPU first)

Everything runs on the A53 cores to begin with, within 4 GB RAM.

Phase 5: Accelerator offload (C7x DSP + MMA)

Phase 6: Voice-driven development

Decisions wanted

  1. ~~Kernel~~: beagleboard 6.12 (Armbian's vendor refs), built by BQ2.
  2. ~~aarch64 build host~~: https://fossil.openbeagle.org, through OCX once its hook is installed.
  3. ~~Microphone and speaker~~: chosen, and the mic bias is confirmed.
  4. Board login name: a new login. Proposed: byai-voice.
  5. ~~binman~~: ported to Crystal (cleave-binman).