Skip to content

ppy2/PureCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PureCore - USB Hi-Resolution Audio Interface

Embedded Linux system for Luckfox Pico PRO/MAX (RV1106) that emulates hardware interface UAC2 to I2S.

Hardware

  • Target: Rockchip RV1106 (ARM Cortex-A7)
  • USB Mode: Device/Gadget (USB->I2S audio bridge)
  • Audio Output: I2S DAC
  • Max Sample Rate: PCM 768 kHz/32-bit and DSD 512
  • Clock Source: Internal PLL clocking providing audiophile-grade timing quality comparable to high-end crystal oscillators

Precision Clocking

The project utilizes the internal PLL of the processor for audio clock generation. This built-in PLL allows achieving sound quality at the level of quality hardware quartz generators, providing precise timing essential for high-resolution audio playback.

image

Supported Modes:

Mode Driver API Formats Status
Without Drivers Windows USB Audio 2.0 (built-in) WASAPI PCM 44.1-768 kHz ✅ Working
With custom Drivers libusbk (in dev) WASAPI/ASIO PCM + DSD64-512 🚧 In dev
Linux Host ALSA ALSA PCM + DSD64-512 ✅ Working

Features:

  • ✅ Works without driver installation (Windows 10+)
  • ✅ Standard WASAPI support for PCM
  • ✅ Linux native DSD via Alt Setting 2 (kernel quirk: QUIRK_FLAG_DSD_RAW)
  • ✅ Thesycon ASIO DSD support
  • 🚧 Volume controls enabled (PCM compatible)
  • ✅ Universal compatibility across all platforms

Limitations:

  • ⚠️ Windows without drivers: PCM only (ignores Alt Setting 2 with DSD)

Flashing the Device

Luckfox Pico Pro/Max comes preloaded with a factory test image. Users must manually flash the OS to onboard Flash.

Prerequisites

  1. Install USB Drivers: RK DriverAssistant
  2. Download Programming Tool:

Windows Flashing to SPI NAND Flash

  1. Install USB Drivers

    Driver Installation
  2. Open SocToolKit as Administrator

    SocToolKit Interface
  3. Connect Device in Mask ROM Mode Hold BOOT button while connecting to PC

  4. Select Firmware and Flash Browse to buildroot/output/images/boot.img and click Download

    Flashing Process

Linux Flashing to SPI NAND Flash

  1. Check Device Connection

    lsusb
    Linux USB Detection
  2. Flash Firmware

    sudo upgrade_tool uf buildroot/output/images/boot.img
    Linux Flashing

Notes

  • The PureCore build generates boot.img in buildroot/output/images/
  • This contains both kernel and device tree for NAND flash boot
  • Ensure device is in mask ROM mode (BOOT button held) for flashing

Credits

Special thanks to Vladimir Aleev (https://github.com/aleev/ale-linux-rv1106) for the initial idea and implementation of I2S on rv1106.


About

PureCore USB Hi-Resolution Audio Interface - Clean embedded Linux implementation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •