Bose SoundTouch Toolkit

Documentation for controlling and preserving Bose SoundTouch devices

View the Project on GitHub gesellix/Bose-SoundTouch

Device Logging & Troubleshooting

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.

Log Types

  1. System Logs: Internal OS logs (Linux-based) including dmesg, syslog, and process-specific logs.
  2. Traffic Logs: Real-time HTTP/HTTPS requests sent by the device to cloud or local services.
  3. Proxy Logs: Logs generated by the soundtouch-service when it acts as a man-in-the-middle.

1. Accessing System Logs (Requires Root)

Most SoundTouch devices run a modified Linux distribution. Accessing these logs requires root SSH or Telnet access.

Enabling Root Access (Remote Services)

Community research (SoundCork Issue #112) has identified a “backdoor” to enable developer services:

  1. USB Method:
    • Format a USB stick to FAT32.
    • Create an empty file named remote_services (no extension) in the root of the USB stick.
    • Insert the stick into the SoundTouch device.
    • Reboot the device (power cycle).
    • On some models, you may need to hold 4 and Volume - on the device while powering on to force a USB check.
  2. TAP Command (Legacy):
    • On older firmware versions, you can connect to port 17000 via Telnet and issue the command: remote_services on.

Making Root Access Persistent

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

Viewing Logs

Once inside via SSH:

Pro-Tip: Filtered Real-time Monitoring

To 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.


2. Traffic Logging & Interception

If you cannot or do not want to root the device, you can monitor its outbound traffic by redirecting it to a proxy.

Via soundtouch-service

The 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:

Via Packet Sniffing (Advanced)

If you have a managed switch or a router capable of port mirroring, you can use Wireshark or tcpdump to capture traffic.


3. Troubleshooting Common Issues

“IsItBose” Validation Failures

If the device fails to connect to your custom service despite correct configuration, it may be failing the internal IsItBose regex check.

Disappearing Sources (TuneIn/Local Radio)

If TUNEIN or LOCAL_INTERNET_RADIO sources disappear after a reboot in an offline environment.


4. HTTP Protocol Quirks

ETag Case-Sensitivity

Research in SoundCork Issue #129 revealed a significant bug in the SoundTouch device firmware regarding HTTP ETag headers.

Example Nginx Fix:

proxy_hide_header etag;
add_header ETag $upstream_http_etag;

References