Documentation for controlling and preserving Bose SoundTouch devices
Accessing logs from SoundTouch devices is critical for debugging custom service integrations and understanding internal device behavior. This document outlines the methods for collecting logs, as discovered by the SoundCork and ÜberBöse API communities.
dmesg, syslog, and process-specific logs.soundtouch-service when it acts as a man-in-the-middle.Most SoundTouch devices run a modified Linux distribution. Accessing these logs requires root SSH or Telnet access.
Community research (SoundCork Issue #112) has identified a “backdoor” to enable developer services:
remote_services (no extension) in the root of the USB stick.remote_services on.Once you have logged in as root (usually no password or a well-known community password), you can make the access survive reboots without the USB stick:
touch /mnt/nv/remote_services
/etc/init.d/sshd start
Once inside via SSH:
dmesgcat /var/log/messages or tail -f /tmp/soundtouch.log (paths vary by firmware).logread -fps wTo focus on cloud service and preset interactions (Marge), use the following command on the device:
logread -f | grep -Ei '(marge|preset)'
This is particularly useful for debugging preset synchronization and service redirection issues.
If you cannot or do not want to root the device, you can monitor its outbound traffic by redirecting it to a proxy.
soundtouch-serviceThe soundtouch-service included in this repository includes a built-in proxy. When a device is migrated to use this service, all of its cloud-bound traffic is logged to the service console.
Key Traffic to Monitor:
POST /v1/scmudc/{deviceId}: Real-time telemetry events.GET /marge/...: Account and streaming configuration requests.POST /streaming/support/power_on: Boot-time diagnostics.If you have a managed switch or a router capable of port mirroring, you can use Wireshark or tcpdump to capture traffic.
tcp port 80 or tcp port 443If the device fails to connect to your custom service despite correct configuration, it may be failing the internal IsItBose regex check.
If TUNEIN or LOCAL_INTERNET_RADIO sources disappear after a reboot in an offline environment.
/streaming/support/power_on and /streaming/sourceproviders during the device’s boot-up.Research in SoundCork Issue #129 revealed a significant bug in the SoundTouch device firmware regarding HTTP ETag headers.
ETag header to be exactly title-cased (ETag). Many modern web servers or frameworks (like FastAPI/Uvicorn) return headers in all lowercase (etag) per HTTP/2 or standard case-insensitive conventions.etag, the device fails to recognize it. Consequently, the device will never send an If-None-Match header in subsequent requests, breaking preset synchronization and efficient caching.ETag.Example Nginx Fix:
proxy_hide_header etag;
add_header ETag $upstream_http_etag;