Skip to content

PICO_COMPUTER_3 v0.017 -- Bluetooth speaker + USB drive support

Latest

Choose a tag to compare

@Bryan1club Bryan1club released this 27 Aug 12:16

Pico Computer 3 -- v0.017 (draft release notes)

What's new

Bluetooth Classic A2DP (stream audio to a speaker)

  • BLE activates automatically at boot; the board scans in the background and
    auto-connects to a Bluetooth speaker as soon as one is in pairing range --
    no manual steps needed if a speaker is already paired/discoverable.
  • New BT SPEAKER page: manual scan/connect/disconnect, test tone.
  • Confirmed working alongside WiFi -- both stay connected together, which
    matters if you're running more than one board (WiFi is how boards find
    each other).

USB flash drive support (machine.USBDrive, mounted at /usb)

  • Hot-pluggable, FAT32. Works alongside a keyboard/mouse on the same hub.
  • Known limitation, found and fixed this build: this board's USB host chip
    can only complete a single 512-byte sector per USB transaction --
    multi-sector reads used to silently fail. All USB reads/writes are now
    single-sector-safe, at some cost to raw throughput on very large folders.
  • Formatting a drive over 32GB to FAT32 has to be done from the board
    itself (Windows refuses FAT32 above 32GB in its own tools):
    import machine, vfs
    d = machine.USBDrive()
    vfs.VfsFat.mkfs(d)
    vfs.mount(vfs.VfsFat(d), '/usb')
  • Known open issue: on some hub/drive combinations, the USB connection
    can drop and reconnect unexpectedly during heavy use, occasionally failing
    to remount automatically. A retry-with-backoff was added this build, plus
    real error logging (previously silent), but the underlying cause isn't
    fully nailed down yet -- if you hit "USB drive mount failed" in the
    console, a physical unplug/replug clears it.

Music Player page

  • Browse /sd or /usb for .mp3/.wav/.flac, one-click play, playlists
    (add/remove/save/load/next/prev). Decoding is on-device, streamed straight
    to a connected Bluetooth speaker -- no PC-side conversion needed.
  • Large folders (100s of files) now load progressively (first ~10 entries
    show immediately, more load as you scroll) instead of blocking on the
    whole folder up front.

Resilience / recovery

  • Ctrl-C on a physical USB keyboard now reliably interrupts a stuck
    operation (e.g. a long USB read) within about a second, system-wide --
    no need to power-cycle the board to recover.
  • Keyboard-only list navigation (UP/DOWN/ENTER) as a fallback everywhere a
    mouse might be temporarily unresponsive.

Known issues going into this release

  • USB drive connection stability under sustained use is still being
    chased -- see above. Fine for casual use; a production console selling
    10+ units should treat USB storage as "usually works, has a recovery
    path" rather than "rock solid" for now.
  • No resampler in the audio pipeline -- a file whose native sample rate
    doesn't match what the speaker negotiated will play at the wrong
    pitch/speed. Not an issue for typical 44.1kHz files.