Hardware Overview¶
Every SoundTouch device libretouch targets is built around the same TI AM3356 (ARM Cortex-A8) SoC on one of two processor modules. The module a device carries matters far more than which product it is: it decides how the board is wired, how it reaches the network, and which device tree it needs.
The two processor modules¶
| SCM | SM2 | |
|---|---|---|
| Full name | Shelby Common Module | Shelby Common Module 2 |
| Generation | first | second |
| SoC | TI AM3356, 128 MiB DDR3, 256 MiB NAND | same |
| Wi-Fi | on a separate co-processor (see below) | TI WL1835 on the SoC's SDIO bus |
| Bluetooth | none | yes, on the same WL1835 |
| Network path | through the co-processor | directly from the SoC |
The module also carries the flash, the RAM, and the basic audio hardware, so products sharing a module share most of their description. What stays product-specific is the front panel — keypad, display, LEDs, IR receiver — and the audio routing.
The SCM co-processor¶
SCM boards are not a plain "AM335x with a Wi-Fi chip". They carry a second processor, a BridgeCo/SMSC DM870 module from the JukeBlox platform, which the stock software calls the BCO. It is a complete Wi-Fi audio-streaming SoC and it owns the network connection: the AM335x has no Wi-Fi and no wired Ethernet of its own, and reaches the outside world through the co-processor, over an internal USB link that presents itself as an ordinary CDC Ethernet device.
This has a practical consequence for libretouch. On SM2 the network is a normal Linux Wi-Fi interface. On SCM it is a USB network adapter that happens to be soldered to the board, and it only works once that internal link is up. Getting that link reliable is the open item in SCM support.
SM2 has no co-processor at all.
USB ports: not every device has a USB-A socket¶
Both modules give the AM3356 exactly one usable USB controller, usb0. On
the products that have two USB connectors, both hang off that one controller
behind an external mux: a GPIO (microbsel) selects which connector is live,
and a second one (microbdet) reports which is in use. Only one of the two can
be used at a time — that is a hardware limit, not a software one.
The micro-USB service port is on every device. The USB-A socket is not:
| Has USB-A + micro-USB | micro-USB only |
|---|---|
spotty_sm2, mojo_sm2, lisa_sm2 |
rhino_sm2, binky_sm2, bardeen_sm2, burns_sm2 |
spotty_scm, mojo_scm, lisa_scm, taigan_scm |
(Every product built on lisa_scm hardware inherits its USB-A socket. The
remaining SM2 adapters have not been checked.)
This decides which development setup is available to you:
- A device with a USB-A socket can boot from a USB drive, and can also use USB-RNDIS network boot on the micro-USB port.
- A device without one has only the micro-USB port, so USB-RNDIS network boot is the only way to run libretouch on it. Booting from a USB drive is not a thing that can be made to work — there is nowhere to plug the drive in.
Known limitation. Switching the mux to the USB-A socket is described only in each board's own device tree, not in the boot-only trees (
common_sm2.dtb/common_scm.dtb). A device booted with a boot-only tree therefore never reaches a USB drive: the kernel comes up, registers the USB host controller, and waits forever for a root filesystem that cannot appear. That affects bringing up a new board, where the boot-only tree is the whole point — use RNDIS there. It does not affect a board that has a device tree of its own.
Models and support status¶
Boards are named <board>_<module> throughout the project — the same name the
device reports in its own bootloader environment. That name is what libretouch
supports, and it is not always the product you bought: one board can be sold
under several names. If you do not know what you have, Add support for a new
device shows how to read the name off
the device.
| Status | Meaning |
|---|---|
| ✅ | Supported: the board has its own device tree and its hardware is brought up |
| 🚧 | In progress: the board has a device tree, but parts of it are unverified or not working |
| ❌ | Not supported yet: no board device tree exists |
SCM (first generation, no Bluetooth)¶
| Status | Board | Sold as |
|---|---|---|
| 🚧 | lisa_scm |
The SoundTouch adapter. The same box is also the adapter sold for the Wave SoundTouch, VideoWave, Lifestyle, SoundTouch Stereo JC, SoundTouch SA-4 and CineMate — it takes its product name from whatever it is plugged into. See One board, many product names |
| ❌ | spotty_scm |
SoundTouch 20 Series II |
| ❌ | mojo_scm |
SoundTouch 30 Series II |
| ❌ | taigan_scm |
SoundTouch Portable |
SM2 (second generation, with Bluetooth)¶
| Status | Board | Sold as |
|---|---|---|
| ✅ | spotty_sm2 |
SoundTouch 20 Series III |
| ❌ | rhino_sm2 |
SoundTouch 10 |
| ❌ | mojo_sm2 |
SoundTouch 30 Series III |
| ❌ | lisa_sm2 |
SoundTouch adapter |
| ❌ | ginger_sm2 |
SoundTouch 300 (Soundbar) |
| ❌ | triode_sm2 |
SoundTouch Wireless Adapter for CineMate |
| ❌ | marconiprod_sm2 |
SoundTouch Wireless Adapter for Lifestyle/ViewWave |
| ❌ | nelson_sm2 |
Wave SoundTouch Series IV |
| ❌ | bardeen_sm2 |
Lifestyle |
| ❌ | binky_sm2 |
SoundTouch Wireless Link Adapter |
| ❌ | burns_sm2 |
SoundTouch SA-5 |
bardeen, binky and burns use dedicated audio hardware rather than the
module's, so they will need more work than the rest. Whether any of the SM2
adapters share one board the way the SCM ones do has not been checked.
A ❌ is not a wall. libretouch also builds a generic device tree for each module, describing only what the module itself provides — SoC, memory, NAND, the USB port and the serial console. Any board of that module can boot it and reach a shell, which is where adding a product starts. See Add support for a new device.
For the per-feature status of the boards that are supported, see the project status page.
lisa_scm, the adapter¶
lisa_scm is the first SCM board libretouch supports, and it is deliberately
the odd one out: everything else listed as working is SM2. It serves as the
reference for the whole first generation, so most of what is learned on it
carries over to the other SCM products.
One board, many product names¶
This is the thing to know about lisa_scm before anything else: it is one
piece of hardware that calls itself different things depending on what you plug
it into.
The adapter is a separate box. It does not sit inside the audio product it serves; it connects to a host Bose system through a cable that carries three things at once — power for the adapter, audio, and a control link called Advanced BoseLink (ABL). The adapter is what talks to your network and streams the music; the host is what makes the sound.
And the adapter has no stored product identity. The board calls itself
lisa — that much is fixed, and it is also the name the standalone adapter goes
by — but which product it is, it does not know until it asks the host over that
link. The answer decides the product name it shows, the setup network name it
advertises, its feature flags, and which host it expects to drive:
| Host it is connected to | Product profile |
|---|---|
| Wave SoundTouch | nelson |
| VideoWave | otto |
| Lifestyle | corey |
| SoundTouch Stereo JC | luke |
| SoundTouch SA-4 | colin |
| CineMate | triode |
Every one of these is the same board, running the same device tree. What the
hardware reports never changes: on SCM the board identity comes from an
analogue board-ID resistor, and in all of them it reads lisa. Only the product
identity on top of it moves.
Three consequences:
- Supporting
lisa_scmsupports all of them. If a device reportslisaon thescmmodule, libretouch'slisa_scmsupport applies, whatever the label on the box says. Do not go looking for anelson_scmortriode_scmboard — there is no such thing. - A product name tells you almost nothing. "Wave SoundTouch" describes the radio the adapter is plugged into, not the adapter. Read the board name off the device.
- Under libretouch the adapter never learns what it is. libretouch does not implement the BoseLink link, so it neither identifies the host nor controls it. Audio still leaves over the cable, but the host stays inert, and the stock software-update path — which refuses to start until the adapter knows its identity — does not apply.
Factory units also carry a mode flag alongside the board identity, noap, for
units built without AirPlay. It selects different co-processor firmware, not a
different board, and libretouch reads it but does not currently act on it.
Not a speaker¶
Being a box on the end of a cable rather than a speaker has consequences of its
own, and they are the other reasons lisa_scm needs separate treatment:
No amplifier and no speaker — only a line output. Audio leaves down the cable to the host, which amplifies it. The amplifier-related controls the speaker products use are absent or meaningless here, and there is nothing on the adapter itself to listen to a test tone on: verifying audio needs the host system, or a scope or line input on the output.
No display and no keypad. The adapter has exactly one push-button and one white indicator labelled WIFI. Do not expect the display and button handling of a SoundTouch 20 to appear; the OLED and the four-by-four keypad simply are not fitted. (A second, amber colour in the same indicator is plausible but has not been confirmed on hardware.)
Its network is the co-processor. As described above, the wired Ethernet
controller in the AM3356 is not connected on this board — its pins are used for
other functions — so the only network path is the internal link to the BCO.
libretouch brings that link up and configures it, but the connection currently
drops under receive traffic and has to reconnect. Until that is fixed, treat
networking on lisa_scm as unreliable and use a serial
console for anything that matters.
The audio path is described and builds, but it has not yet been measured on
lisa_scm hardware. Bluetooth does not exist on SCM at all.
Stock firmware version matters here¶
One more lisa_scm peculiarity is about the stock firmware rather than
libretouch: from stock version 17.00.08 onward, the stock kernel stops running
the USB port as a dual-role port, which removes the easiest way of getting a
shell on the stock system. If you have the choice, keep a lisa_scm device on
16.00.09. See Preferred stock version on
lisa_scm and Version
dependency on lisa_scm.
Components of an SM2 speaker¶
The tables below describe spotty_sm2 (SoundTouch 20 Series III), the reference
board for the second generation. This is a practical overview of the components
used by the current machine support, not a complete bill of materials. An SCM
board shares the SoC, memory and flash, but differs in the connectivity and
audio rows.
Core platform¶
| Component | Purpose | Documentation |
|---|---|---|
| TI AM3356 Sitara | ARM Cortex-A8 SoC, memory controller, NAND, USB, Ethernet, McASP, SPI, and UART | Data sheet · Technical Reference Manual |
| NAND flash | Bootloader, environment, kernel, and persistent storage | See the device's documented MTD partitions in the recovery guide. |
| DDR memory | System memory | 128 MiB is available to the system. |
Connectivity and power¶
| Component | Purpose | Documentation |
|---|---|---|
| TI WL1835 | Wi-Fi and Bluetooth | Data sheet |
| NCP6922C | Power-management IC | |
| USB controller | One AM3356 USB controller, shared by the USB-A host and Micro-USB setup ports | USB driver guide |
Audio and display¶
| Component | Purpose | Documentation |
|---|---|---|
| TLV320AIC3256 | Stereo audio codec with miniDSP | Data sheet |
| PCM1804 | Stereo ADC | Data sheet |
| AK4384 | Stereo DAC | Data sheet |
| Solomon SSD1327 | 128 × 96 grayscale OLED controller | Official product page and datasheet request |
See the audio driver guide and OLED display guide for their Linux interfaces and testing procedures.
User interfaces¶
The buttons and infrared receiver are exposed as Linux input devices. The serial console is UART3 and is available through the unusual AUX connector; see the serial-console guide for the pinout and electrical requirements.