Friday, May 5, 2023

Squeezebox Touch - what I learned so far

Dear readers,


there have been a lot of contacts regarding the Squeezebox Touch recently. It's finally time to open a post on this subject.

So I would like to share here what I know. In contrast to most of the other Squeezebox models, I cannot share only just a tiny amount of "how to repair" approaches here as in my opinion the Squeezebox Touch is not repairable in most cases. You will see why shortly.

Disclaimer

Spoiler: the tone of this post is going to be very dark and pessimistic. This is due to the fact that the Touch really frustrated me. I had at least 15 units on my bench, and only one was recoverable because it was just the IR receiver that failed whereas everything else was okay.

Hardware-wise the Touch (and Radio) create a sharp contrast to the older models where repairability was a lot better. I hope nobody feels attacked by the straight-from-the-heart utterings.

As usual, I cannot present any schematics here to explain things as Logitech won't ever disclose them. So it's a mix of guessing and uneducated reverse engineering. Everyone who can shed more light on the Touch internals is invited to share more information in the comments or e-mail me at johannesfranke74@gmail.com so I can complete the information given here with some better-founded knowledge.

Failure Modes

A rather popular issue with the SB Touch is that it stops receiving infrared commands whereas all commands from the mobile app or Logitech Media Server are processed immediately. While it is unclear why it happens after all, the replacement of the infrared receiver diode is possible and explained further below.

Other than that, there are only two capital failure modes that I can report here: one is the display flex cable being damaged as a result of too little care when disassembling the Touch. If you read the disassembly guide below, the chances this happens to you are far lower. This can certainly be recovered by using a new display. There is plenty of these displays or front panel assemblies available nowadays due to the other failure which is unrecoverable, and usually the front panel is what survives.

Last but not least, the most critical failure presents itself in the form of one or multiple power regulator components burnt out on the mainboard. Unfortunately, they are spread to both sides of the board so the device needs to be completely disassembled for a complete inspection.

As far as I have learned, the issue is caused by:

  • reverse polarity - when the wrong power supply was connected
  • too high voltage - ditto
  • a combination of the two
  • self-destruction - yes, I'm not joking. This may also happen
  • MAYBE: dying power supply causing high ripple current

Details on Power Supply Issues

The Squeezebox Touch comes with a wall-wart power supply that delivers regulated 5V at a maximum of 3A which the Squeezebox never actually needs, but this is the specifications anyway. The power is delivered to the device by the regular 5.5/2.1mm barrel jack connector with the positive terminal inside and the negative on the outside metal sleeve. So there is nothing in the way of connecting a 12V Boom power supply or even a 18V Radio power supply which have the exact same style of connector. If you are lucky, you picked a 5V Classic power supply, that would not do much harm but might deliver too little power. The barrel jack is the connector style used for the vast majority of consumer devices so it may seem tempting to try just any power supply whose connector fits when the original power supply fails. Sadly, this has probably bricked a lot of Touch devices that have appeared to be faulty to their owners, and only the wrong choice of power supply actually killed them.

The Squeezebox Classic (a.k.a. v3) is well known for issues which actually stem from the aged power supply whereas the device is working perfectly with a fresh one. Likewise, the Transporter has a built-in 5V power supply suffering from the same root cause: the output filtering capacitors dry out over the years and consequentially the power supply is no longer able to deliver the current and voltage needed for operation. As a result, it starts up which may cause a spike in the output that quickly collapses because the capacitors are not flattening the ripple any longer, the feedback circuit detects the failure and restarts again, repeating this process indefinitely. The consuming device may either get no power at all because it breaks down before anything even has a chance to start up, or even worse, the consuming device is also turning on and off constantly at a rather high frequency which might be destructive and cause voltage spikes in the consuming circuitry. So dying power supplies might tear things down with them as they fail. My recommendation therefore is to check them regularly if they are 5 years or older, and see whether they can still deliver the current and hold the voltage under the load they are designed for. This requires a battery tester though which almost no household will have available.

It is a true dilemma. Waiting for the power supply to fail may cause loss in more hardware if that gets damaged by erratic input power. However, replacing power supplies for good measure without knowing if it is getting unstable is wasteful and the opposite of sustainability. Unless you acquire a battery tester that will give you a qualified answer on the status, you are technically flying blind and need to decide what is your preferred approach between these two.

All this is probably true also for the Touch power supply. It is rightfully the prime suspect when trouble comes up in just any Squeezebox, and is also the cheapest fix (if it helps) as there are tons of offerings for these ubiquitous sorts of power supply. It's a great relief for all the Squeezebox owners if they learn that their Squeezebox is in perfect shape despite the symptoms observed, and a new 10-dollar power supply was the solution. Even if it does not resolve the issue, it's rarely a waste of money as the Logitech stock power supplies reach the end of their life after 10 to 15 years at best when constantly powered.

So a lot of people are replacing the stock power supply with a different one, unfortunately in many cases without carefully checking out the specifications first.

What to Buy

So to repeat the above another time: double-check specifications before you connect any foreign power supply to your Touch, or else!

Watch for these data:

  • output voltage: 5V stabilized DC (no other voltage is acceptable!)
  • output current: 3A (if it is capable of delivering more, it's no issue)
  • connector: 5.5/2.1mm barrel jack
  • polarity: [ + ] inside / center pin  and [ - ] outside sleeve / ring

It does not matter if it's a wall-wart / plug style or a brick like it's typically used for notebooks. I would prefer the latter as they have more room to spread heat and have good chances of lasting longer.

There are audophile circles that proclaim snake-oil power supplies ranging from 200 to well above 700 US-$, each!. I find it hard to believe that a mostly digital device will profit from such a power supply but one bonus will be that it will last longer than the dreaded wall warts. In my humble opinion, it's only truly audiophile if, on top of that, you use the digital output, bypass the built-in Touch DAC, and use an external DAC weighing in at 2000 US-$ minimum to recondition and de-jitter the signal input.

Basically the Touch DAC has a pretty impressive quality so it will be good enough for most people, even when a crap power supply is used.

Why the Choice Matters

Input protection in the Touch is practically non-existent. While a Boom will easily tolerate more than 12V of input (still not recommended to try though), the Touch bricks itself immediately if any mistake is made. There is no input fuse, no reverse polarity protection, really just nothing. There are lots of power regulators in the Touch but they fail to step down a too-high input voltage, will fail themselves, and that will damage just about everything between the input jack and the CPU (central processor). Eventually it looks like a short circuit in just every corner.

As the Squeezebox / UE Radio is the same hardware development generation as the Touch, the same goes for it, too. Do not try just any power supply but only one with the same specifications as the original. Just to be complete here.

Findings

Documenting here some of the cases I have seen already.

Infrared Receiver Defect

Nobody knows why, but actually the black 3-legged infrared receiver diode fails in some units. You may notice at first that the Touch gets less responsive, or only picks up IR commands if you point the remote control directly at it from a short distance. There are reports of this issue building up slowly, others had a completely failed receiver diode from one day to the other.
The original receiver diode looks pretty solid and is probably not the lowest quality. Maybe it's designed for 3.3V and driven with 5V which may slowly destroy it.
As is often the case nowadays, it's hard to find an exact match when it comes to a replacement part. But infrared diodes are mostly compatible with each other as long as you choose the correct response frequency which is 38kHz for the Squeezebox product range. Deviations in the pinout between the original and replacement are not a big problem. The parts are pretty large and there is some room to swap pins if needed.
See further below for instructions to replace the IR receiver if yours is giving you any trouble.

Blown Power Regulators

Well, if you see any blown-up or warped component such as these, it's practically time to give up. Sad as it is, the damage goes a lot further than the eye can see.

<<photo>>

Disassembly

This is what you need to open your Squeezebox Touch. Be sure to read everything here, it will keep you from making expensive mistakes that many have made already!

Tools Needed

  1. a TX-10 torx driver for the two screws that attach the metal stand
  2. a driver to open the case
  3. a PH-1 screwdriver if you plan to get the mainboard out
  4. to lift the front panel:
    1. a spudger or other flat piece of metal OR
    2. a suction cup

Advice

There are multiple different types and lengths of screws used. It's recommended to keep track of which screw went where and not get them confused later.
Also, take a lot of photos along the way. For instance, there are ways the microphone wires are laid out to keep them from getting squished.

Procedure

Many SB Touch are damaged by curious people who want to have a look inside, be it to fix another issue or just to see what makes it tick. There is a high risk of damaging the display connection if the disassembly is not done very carefully.
Here is how to do it:

Step 1: Remove the Stand

Step 2: Remove Casing Screws

Step 3: Separate Front Panel from Back Case

This is the most critical part actually. Be slow and careful here!

Step 4: Open the Flat-Flex Connectors

Step 5: (if needed) Get the Mainboard Out

Assembly

Step 1: Microphones and Wiring Placement

Step 2: Reseating the Mainboard

Step 3: Plug Microphones

Step 4: Connect Flat-Flexes for Display

Step 5: Attach Front Panel

Step 6: Close Casing

Step 7: Re-Attach Stand


Measurements in a Working Touch

I had a lot of questions on the reference voltages that can be found in a working Touch. This is supposed to help people find out what parts are broken.
 

Infrared Receiver Replacement


The Infrared Remote


Tuesday, August 23, 2022

Voltcraft CT-20TDR Display-Reparatur (Deutsch / German)

Hi zusammen,


diesmal auf Deutsch, weil ich annehme, dass Voltcraft außerhalb von Deutschland nicht großartig bekannt ist...

Die heutige Reparatur dreht sich um einen Kabeltester CT-20TDR von Voltcraft, der z.B. über Conrad Electronic oder Völkner verkauft wird. Damit lassen sich Netzwerk- und Telefonkabel schnell auf Durchgängigkeit testen. Durch ein herausnehmbares Gegenstellenmodul kann man auch installierte Kabel testen. Die Preisklasse ist ca. 150 Euro.

Leider gibt es einen oft auftretenden Fehler, der vielleicht erklärt, warum so viele dieser Geräte bei den einschlägigen Marktplätzen als defekt angeboten werden. Der Fehler zeigt sich so:

Das Problem ist, dass auf einem mehr oder weniger breiten horizontalen Balken keine Pixel mehr erscheinen. Bei LCDs kennt man das, oft sind es die Kontaktstreifen aus Gummi mit eingelassenen leitenden und nicht-leitenden Oberflächen, die diesen Komponenten in Englisch den Namen "Zebra strips" verpasst haben. Diese Streifen können sich über die Jahre leicht ablösen. Wenn man sie neu positioniert oder dafür sorgt, dass sie etwas mehr Andruck an den Kontaktflächen haben, sind solche Probleme einfach zu beheben.

Leider ist es in diesem Fall komplizierter, denn es handelt sich beim CT-20TDR um ein LC-Display, das eigene Intelligenz an Bord hat, sprich ein Chip-On-Glass (COG) sorgt für die Ansteuerung der Pixel und wird über ein vorgegebenes Protokoll vom Gerät angesprochen. Statt Zebra Strips kommt hier ein Flachbandkabel (FFC, Flat Flex Cable) zum Einsatz. COGs sitzen, wie der Name schon verrät, direkt auf demselben Glas wie das Display, und die Kontaktierung erfolgt über transparente Leiterbahnen, die auf das Glas aufgebracht werden. Wenn hier eine Kontaktschwäche herrscht, ist das mit normalem Werkzeug nicht mehr zu reparieren.

Hier ist es sogar noch schlimmer, denn der Kontakt ist nicht nur schwach, sondern für einige Zeilen im Display komplett unterbrochen. Der Grund dafür ist allerdings gut versteckt. Bei den COG-Displays verbirgt sich der Chip oft unter einer schwarzen Silikonschicht, die als Schutz gedacht ist, beim hier verwendeten Display sind auf ganzer Breite des Displays sowohl der Chip als auch alle von ihm weg- und zu ihm hinführenden Leiterbahnen unter Silikon begraben. Auch das Flachbandkabel bekommt an der Stelle, wo es auf dem Glas aufgeklebt ist, von der Silikonschicht noch etwas Schutz, damit es nicht so leicht abreißt.

Die Ursache des toten Streifens auf dem Display konnte ich erst sehen, nachdem das Silikon entfernt war:

 

Mittig unten unter der grauen Anzeigefläche ist der Chip zu erkennen, von dem nach unten das Flachbandkabel wegführt. An der linken unteren Ecke des Displays hat das Glas mehrere Bruchstellen.

Hier noch mal aus der Nähe:
 

Und noch näher. Im Gegenlicht lassen sich bei genauem Hinsehen die Leiterbahnen erkennen, die hier durch den Glasbruch mit unterbrochen wurden:


An dieser Stelle ist klar, dass dieses Display nicht zu retten ist. Durch irgendeinen Umstand wurde das Display an dieser Ecke zu stark gebogen. Ich vermute, dass das Gerät heruntergefallen ist. Das sollte man wohl besser nicht passieren lassen, auch wenn das Gehäuse einen sehr soliden Eindruck macht.

Wie leider üblich ist am Display selbst keinerlei Hersteller oder Modellnummer ersichtlich. Da es zum Austausch aber auf jeden Fall das Gerät verlassen muss, kommen wir nun zum Ausbau. Dazu ist leider Entlöt-Equipment notwendig, weil das Display eine Hintergrundbeleuchtung mitbringt, die aber nicht über das Flachbandkabel versorgt wird, sondern über zwei eingelötete Pins an den Ecken unten links und rechts. Diese müssen ausgelötet werden, bevor es weitergehen kann. Man kann mit gebotener Vorsicht auch die Pins einzeln so weit erhitzen, dass sich das Display in die Gegenrichtung wegziehen lässt.

Erst danach kann man das Display an den zwei Kunststoffclips, die oben rechts und links um die Platine herumgreifen, ablösen und sieht dann das darunter gesteckte Flachbandkabel. Aus dem Verbinder löst man es, indem man den dunklen Sicherungsbalken nach oben klappt:


Dazu auf der Seite, wo das Kabel hineinführt, mittig von unten vorsichtig unter den Balken gehen, z.B. mit einem Fingernagel oder einem Kunststoffwerkzeug, und diesen nach oben klappen. Dann lässt sich das Flachbandkabel ohne Kraftaufwand herausziehen.

(sorry, leider habe ich es versäumt, für diese Prodzedur mehr Fotos mit anderen Perspektiven zu machen)

Die Lötaugen müssen dann von verbleibendem Lötzinn befreit werden, damit das neue Display dort wieder Halt findet (im Bild sind beide markiert):

 

Jetzt gilt es, am defekten Display einen Hinweis auf Hersteller und Modell zu finden. Das ist in diesem Fall leider praktisch unmöglich. Am Display selbst findet sich leider gar nichts, die Rückseite ist komplett weiß, was man hier sieht, ist der Kunststoffrahmen, in dem die Hintergrundbeleuchtung und das LC-Display miteinander verbunden / verklebt sind.

 

Einen Hinweis, der aber nicht wirklich hilft, gibt das Flachbandkabel mit folgendem Aufdruck auf der Vorderseite:

In jeder möglichen Konstellation führt eine Google-Suche nicht zum Erfolg, es scheint keinen Hersteller (mehr) zu geben, der so einen Artikel führt.

Zumindest verrät uns die Produktbezeichnung, dass wir ein 128x64-Pixel-Display haben. Dass die Auflösung der X- und Y-Achse in der Artikelnummer auftaucht, ist sozusagen eine universelle Norm. Aber viel mehr lernen wir hieraus nicht.

Was letztendlich die Veranstaltung rettet, ist der Verbinder. Dieser hat eine spezielle Beschaltung, über die ich einen passenden Ersatzartikel finden konnte:


Zunächst fällt auf, dass einige Pins gar nicht verbunden sind und das Kabel dadurch auch schmaler wird. Aus 34 Pins am Verbinder werden nur 20 durchgeleitete Verbindungen. Angenommen, Pin 1 sei hier ganz links, dann wissen wir zumindest schon einmal:

  • Pin 1-15: verbunden
  • Pins 16-20: NC
  • Pins 21-22: verbunden
  • Pins 23-24: NC
  • Pin 25: verbunden
  • Pins 26-30: NC
  • Pins 31-32: verbunden
  • Pins 33-34: NC

Die Nicht-verbundenen (NC) Pins sind jeweils Gruppen von 5 zusammenliegend, dann 2, dann noch einmal 5 und noch einmal 2.

Da ich mit der Artikelbezeichnung nicht weiterkam, habe ich dann COG-LCDs im Netz gesucht, die eine ähnliche Beschaltung haben und Eigenschaften haben, also:

  • LCD mit COG
  • 128x64 Auflösung
  • monochrom
  • hintergrundbeleuchtet
  • 34-Pin FFC-Verbinder mit 0,5mm Pin Pitch
  • Anzeigefläche gemessen ca. 71 x 39mm 
  • Gesamtgröße ca. 80 x 55mm

Bei den meisten Modellen, die man so findet, sind alle 34 Pins in Benutzung, vermutlich für die unterschiedlichen Protokolle, die man beim Sprechen mit dem COG verwenden kann. Es blieb eigentlich nur folgendes Display übrig:

Crystalfontz CFAG12864Q1-TFH

Shopadresse: https://www.crystalfontz.com/product/cfag12864q1tfh-128x64-low-power-backlit-lcd-display

Gemäß Datenblatt, das man sich dort herunterladen kann, sind die Gruppen von genutzten und nicht-genutzten Pins identisch:

Datasheet CFAG12864Q1 Series, Release Date 2022-07-18, (C) Crystalfontz America, Inc.

Nun hätte man noch sichergehen können und per Oszilloskop die Beschaltung nachprüfen können, aber es wäre extrem mühsam gewesen und hätte ggf. nur dazu geführt, dass auch das Crystalfontz-Display kein passendes Ersatzteil ist.

Zunächst sah es aus, als müsse man das Display in Amerika bestellen zum Stückpreis von 17,94 US-$ plus Versandkosten von rund 50 US-$. Das macht die ganze Sache wirtschaftlich unsinnig, denn das defekte Gerät habe ich für ca. 60€ gekauft, und natürlich sollte die Reparatur nicht noch einmal so viel oder noch mehr kosten - mit dem Unsicherheitsfaktor, dass nur der Verbinder passt, aber das Protokoll nicht.

Dann fand ich heraus, dass es in Deutschland einen Distributor für das Display gibt, nämlich die Fa. LC-Design. Diese vertreibt Crystalfontz-Displays und hat einen gewissen Vorrat auf Lager. Was nicht da ist, kann in USA bestellt werden und ist dann innerhalb von ein paar Wochen lieferbereit.

Hier der Link zum Distributor:

https://lc-design.de/crystalfontz-intelligent-display-module/

Über Kontakt via E-Mail habe ich das besagte Display angefragt und bekam es auf Vorauszahlung innerhalb von ca. 3 Wochen per DPD zugestellt. Gekostet hat das Display 23,78€ netto, dazu kamen noch 6,70€ Versand ebenfalls netto. Zu zahlen waren also 36,27€. Das ist zwar angesichts des Wertes, der hier erhalten werden soll, auch schon grenzwertig, aber ich habe es mal riskiert.

Crystalfontz ist deutlich auskunftsfreudiger mit Angaben zu dem Display, wie man am Aufdruck auf der Rückseite erkennt:

Abgesehen von dem Flachbandkabel, das auch die nicht genutzten Leitungen in voller Breite überträgt, ist es äußerlich von dem ursprünglich verbauten nicht zu unterscheiden. Nach unten führen auch die zwei Hintergrundbeleuchtungs-Pins an exakt der richtigen Stelle heraus.

Hier ein Blick auf das bereits angeschlossene Crystalfontz-Display. Man erkennt hier auch die erwähnte schwarz-glänzende Silikonschutzschicht am unteren Rand des Displays.

Gelb markiert ist die Stelle, an der das Flachbandkabel geknickt werden muss, damit es komplett unter dem Display liegt, wenn alles wieder montiert ist. Andernfalls kann es nach unten hervorschauen und in den Bereich der Tasten gelangen. Das ist weder für die Funktion der Taste gut noch für das Kabel selbst, das keine überflüssige Bewegung oder Verwindung erfahren sollte. Die Flachbandkabel machen einmaliges (!) Knicken gut mit und halten die so gegebene Form auch.

Zum Anschließen schiebt man das Flachbandkabel mit den Kontakten zur Platine schauend in den Verbinder ein. Dies geht nur, wenn der Sicherungsbalken geöffnet ist, also 90° vom Verbinder absteht. Das Kabel schiebt man genau gerade in die Führung ein. Schaut ggf., ob das Kabel versehentlich unter statt in den Verbinder geschoben wurde. Nach ca. 1-2mm des Weges sollte das Kabel am Anschlag sein und sich nicht weiter einschieben lassen. Der etwas dickere Plastikstreifen am Ende des Kabels hilft dabei, und das Kabel sollte möglichst auch an keiner anderen Stelle angefasst werden. Dieser Streifen schaut am Ende noch gute 5mm heraus. Wenn das Kabel gerade sitzt, den schwarzen Sicherungsbalken wieder nach unten klappen und durch leichtes Ziehen am Kabel prüfen, ob die Verbindung wirklich fest ist.

Hierbei bitte äußerste ACHTUNG! Die Flachbandkabel mögen ausschließlich Zugbewegungen entlang ihrer Längs-Achse. Wenn man so ein Kabel zur Seite verwindet, kann es schnell reißen und ist dann kaum zu reparieren. Man kann es auch relativ leicht durchreißen wie ein Stück Papier. Denkt beim Zug-Test auch daran, nicht am Display zu ziehen, sondern dazu das Kabel irgendwo mittig anzufassen, sonst reißt die Verbindung vielleicht am Display selbst, und dank der Silikonschicht hält dann trotzdem noch, was eine schwer zu findende Fehlerquelle darstellt. Es geht bei diesem Test auch nur darum, festzustellen, dass das Kabel nicht vollkommen locker war und einem einfach wieder entgegen kommt. Also nur ganz leicht ziehen, auf keinen Fall mit Kraft!

Nun setzt man das Display an die passende Stelle, so dass die zwei Kunststoffklammern in die Aussparungen in der Platine greifen. Leider sind diese Klammern etwas kürzer geraten als beim Original, so dass sie (zumindest bei meinem Versuch) nicht wirklich halten. Ich habe mir dann damit beholfen, das Display an der oberen Seite links und rechts mit einem Klebestreifen an der Platine zu befestigen, damit es sich nicht im Gehäuse frei bewegt. Im unteren Bereich wird das Display durch die zwei Lötkontakte der Beleuchtung gehalten.

Lohn der Mühe:


Erfolg! Das Crystalfontz-Display zeigt alles so an, wie es soll. Es ist nichts spiegelverkehrt, es gibt keine Bildstörungen, und auch die Hintergrundbeleuchtung funktioniert 1:1, die Polarität stimmt also auch.

Möglicherweise hat Crystalfontz also das ursprünglich verbaute Display auch als OEM geliefert. Jedenfalls ist der Kabeltester damit jetzt endlich wieder voll einsetzbar.

Wer es mag, kann bei Crystalfontz übrigens ein gleich beschaltetes Display in weiß-auf-blau bestellen statt der Darstellung schwarz-auf-grau. Die Artikelnummer dazu lautet CFAG12864Q1-TMI, also TMI als Appendix statt TFH. Es müsste ansonsten genausogut funktionieren, da es lediglich als Produktvariante geführt wird. Ich habe das aber nicht ausprobiert! Klar ist jedenfalls, dass man die weiß-auf-blau darstellenden Displays nicht lesen kann, wenn nicht die Hintergrundbeleuchtung die ganze Zeit aktiv ist. Beim schwarz-auf-grau-Display kann man bei einigermaßen gutem Umgebungslicht auf diese verzichten.


So, ich hoffe, dass ich hiermit ein paar dieser Geräte vor dem Müllberg retten konnte, denn wahrscheinlich sind 9 von 10 Ausfällen auf das Display zurückzuführen.

Wenn Ihr zu der Reparatur noch Fragen habt oder einen eigenen Erfolg vermelden könnt, freue ich mich über entsprechende Kommentare.


Bis zum nächsten Mal!

Joe


Saturday, March 13, 2021

SSH Login to Squeezebox Radio / Touch / Controller

Sometimes you may feel the need to see what's going on behind the scenes in your Squeezebox. The menus may offer some test functionality already but for the curious that's not satisfying enough.

The Squeezebox models mentioned are based on Dropbear which is essentially a tiny linux designed for embedded SoC (System on Chip) hardware where performance is not exceptional. So it's really lightweight but still features an actual Linux kernel that supports multi-tasking, memory management and more, basically on just any hardware.

Linux, as most of you probably know, has great built-in support for networking. A root shell is available via SSH (Secure SHell) that you can connect to wirelessly or wired. It's not particularly user-friendly in that it's just a text-based console, nothing graphic about it. Those who are more experienced with Linux will immediately feel at home as a lot of the usual commands works, such as cd, ls, rm, top, cat, tail, and so on.

The risk of destroying anything is rather low as the file system that you are seeing in there is basically a RAM-disk and is always refreshed when the device is powered up after a cold start. You should still be careful and make backups of files you modify. Don't hold me liable if any of this goes south. Please continue only if you agree you do this on your own risk!

By the way, you won't notice any difference on the user side of your Squeezebox while the SSH port is open or being used. It will behave as always, depending on what you do in the root shell it might be a bit slower maybe.

So how is all of this done?

As usual, it's not just the push of a button.

First I need to disappoint all Transporter, Boom, Receiver, Classic, SliMP owners. SSH is not available on your platform. Unfortunately no way is known about how to connect to their kernel. Maybe it isn't possible at all, or only via JTAG debugging which is way out of my skillset.

So we are focusing here on the three models I know support SSH: Touch, Radio, and Controller.

All of these offer an option to enable the SSH port. By default it is off so the device won't be reachable via SSH at all. This is preferable if you fear that somebody in your network might hijack your Squeezebox. Turning the port off entirely is the best and safest way to ensure nobody gets in there.

Enabling the SSH Port (22)

The option can be found in the menu here:

  • Settings (Einstellungen)
    • Advanced (Erweitert)
      • Remote Login (Remote-Anmeldung)
        • Enable SSH (SSH aktivieren)

The screen shown in the last step also reveals what you need to specify to connect and authenticate:


So another reason to keep the SSH port closed is the very weak protection of the root account. I think the password cannot be permanently changed and even if it could, it might interfere with functions the Squeezebox relies on.

Our takeaways here are:

SSH user name: root

Password: 1234

IP address: (varies depending on your network configuration)

The port is open as soon as you click the Enable SSH menu and the little bright box appears to indicate the option is now active. You can toggle it off in the same place at all times.

Okay, so far for the Squeezebox part of this.

Accessing the SSH Shell

SSH uses TCP port 22 by default. What you need is a piece of software to connect, and it needs to be able to handle secured connections. On Windows, PuTTY is one of the best tools for this purpose, and it's free to download, too. Linux has ssh built in already and does not need anything beyond that.

Linux

To set up the connection and start using it, just start a terminal of your choice and enter the following command:
ssh 192.168.74.40 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc -o PasswordAuthentication=yes -o PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no -l root
So what's all this? SSH accepts tons of parameters. Usually it is enough to specify just the target you want to connect to. However, the Squeezebox uses some very outdated key exchange and encryption algorithms that SSH won't easily accept so it needs to be made to.
The first parameter is the target IP address which in the case of my demo here is 192.168.74.40 but is something else in yours. Find the one that applies in your case in the Enable SSH screen (example screenshot above).
The -oKexAlgorithms parameter adds the SHA1 algorithm to the applicable algorithms for just this one command. All these options can also be made permanent but that's not desirable for security reasons. So we are adding it here to ensure that the next SSH connection you make will rely on only the secure and up-to-date mechanisms again.
-c aes128-cbc adds one of the encryption ciphers that the Squeezebox supports. It's also known to be rather weak nowadays so SSH must be forced to use it anyway.
The remaining -o parameters ensure that SSH won't accidentally pick up one of your public keys (from ~/.ssh) for authentication. The Squeezebox wouldn't know how to deal with that anyway. So we force it here to ignore any personal keys you might have.
-l root tells SSH to use the user account root to connect.
 
SSH will immediately connect once the command has been submitted, and ask you for the password after a short period. Enter 1234 and press <Return>.
This is what you will see:
 
 
 
The announcement about the RSA fingerprint will happen only once, SSH will register the remote host (-> your Squeezebox) and remember you agreed to the risks of connecting to it.
 
Sorry, could not resist showing this in Cool Retro Term, it's so much more fun that the dry plain text consoles. If you're interested, here is the source:
If you like snap images, you can get it ready-to-go from here:

Windows

Windows does not offer an integrated SSH tool, and Telnet which you can install as a feature won't cut it because it does not support key exchange and encryption (as far as I know - please correct me if this is no longer true).
So you will need a terminal program installed in your system. I recommend PuTTY as it is very feature-complete, vastly adjustable, and free do download without any nagging ads built in.
I won't go into the details of installing PuTTY, you can find plenty of information on that elsewhere.
Get PuTTY from here: https://www.putty.org/
After you have installed and started it, the window will look something like this:
 
 
Enter the IP address that your Squeezebox showed you on its screen into the Host Name (or IP address) box - as shown above.
Port 22, and the SSH connection type are preselected so you are basically ready to go. Click Open near the bottom right corner:

 
 
This is the point where Linux ssh would completely refuse the connection as it's too unsafe by today's standards. PuTTY lets you decide. Click Yes to go on.
The next prompt is about the Squeezebox host key that is still unknown to PuTTY and therefore untrusted:
 
 
The red crossed-out section belongs to the RSA2 key that the Squeezebox identifies itself with. This might be individual per device but my impression is that it's same for all of them. Anyway, to help me sleep at night, I obfuscated that portion of the screenshot.
You need to click Yes again to continue to the shell. PuTTY will register the key in its internal store and not ask you again. If you answer No, you will still connect but the key won't be registered and you will see the same prompt again next time you connect.
This is what you should see / enter:

 
Now enter root as the user name and 1234 as the password. You won't see any screen echo as you enter the password so be careful during your input. That is to make sure that nobody else can look over your shoulder and steal this secret from you *sniggle*. But that's a Linux default behavior and usually makes a lot of sense.
After submitting the credentials, you are logged in. Congratulations!

Once the Connection is Up (Linux and Windows)

The final number sign (#) in the console is the Dropbear standard prompt where you can now enter commands that directly execute inside the Squeezebox!

Terminating the Connection

Linux is very forgiving about abrupt connection termination but if you want to be graceful, you can enter the command exit to get out of the console. In Linux, you will be back in your regular terminal, exactly where you were before issuing the ssh command. PuTTY will close the window that represented your session once it has ended.

Looking around

Task Overview

Use the top command for a task manager:
Mem: 42156K used, 20220K free, 0K shrd, 7724K buff, 13604K cached CPU: 34% usr 2% sys 0% nic 63% idle 0% io 0% irq 0% sirq Load average: 0.25 0.40 0.21 2/39 709 PID PPID USER STAT VSZ %MEM %CPU COMMAND 579 1 root R 29580 47% 33% /usr/bin/jive 631 579 root S 8712 14% 2% jive_alsa -d default -c default -b 30000 -p 2 -s 16 -f 3 704 648 root R 2952 5% 1% top 554 2 root SW< 0 0% 0% [wlan_main_servi] 546 1 root S 3032 5% 0% /usr/sbin/inetd 533 1 root S 2956 5% 0% /sbin/syslogd -S 648 646 root S 2952 5% 0% -sh 581 1 root S 2952 5% 0% /sbin/getty tty3 9600 VC vt100 1 0 root S 2948 5% 0% init 535 1 root S 2948 5% 0% /sbin/klogd 580 1 root S 2948 5% 0% init 620 1 root S 2948 5% 0% udhcpc -R -a -p /var/run/udhcpc.eth0.pid -b --syslog -i eth0 -H SqueezeboxController -s /etc/network/udhcpc_action 646 546 root S 2644 4% 0% dropbear -i 277 1 root S < 2052 3% 0% /sbin/udevd -d 571 1 root S 1908 3% 0% /usr/sbin/wpa_supplicant -B -Dmarvell -ieth0 -c/etc/wpa_supplicant.conf 538 1 root S 1828 3% 0% /usr/sbin/watchdog 573 1 root S 1816 3% 0% /usr/sbin/wpa_cli -B -a/etc/network/wpa_action 163 2 root SW< 0 0% 0% [mtdblockd] 193 2 root SW< 0 0% 0% [s3c24xx-spi-gpi]
The list goes on a lot longer than shown here.
This gives you a quick overview of the memory and CPU usage and what processes are responsible for their consumption, updating about every 5 seconds. The most CPU-intensive processes are listed first. You will normally see jive here which is the process responsible for making a Squeezebox out of it all. It presents the user interface, listens to user input events, updates the display, and coordinates network and audio hardware control, among others. 
Exit out of top with <Ctrl-C>, or more gracefully, just pushing the <Q> key.

System Log

To trace the system log, you can enter the following:
tail -f /var/log/messages

This will show you the last 10 lines in the messages file, and keep updating if new content is appended to the file. <Ctrl-C> terminates tail and you will be back at the prompt.

If you want to review the entire file, use:

less /var/log/messages

less allows you to browse the file line by line or page by page, or jump to the end of it with <G> for instance. There are many more capabilities in less (despite the name). However, it won't update if the file has changes. You need to re-issue the command in order to see the latest content. Less can be quit with the <Q> key.

dmesg will give you the kernel log that was written from the moment the kernel was booted far enough to have file system access. So this shows very early stages of the startup processes and might reveal valuable information if you suspect a malfuction. Usually, dmesg will just dump the entire log into your console (around 160 lines) and you have to scroll back to the top to see all of it. If you want to page through it, type in:

dmesg | less

SD Card Access

Most people don't even know it but there's actually an SD card slot hidden in the battery compartment of the Squeezebox controller!

 

The battery needs to be removed in order to access the slot. Unfortunately, modern SD cards appear unreadable, probably the firmware supports only very old versions. A Nokia 128MB MicroSD card from my collection can be read without any trouble and auto-mounts to /media/mmcblk0p1, whereas a newer 16GB SanDisk model won't mount at all:

# cd /media # ls mmcblk0p1 # cd mmcblk0p1/ # ls -la drwxr-xr-x 2 root root 512 Jan 1 1970 . drwxr-xr-x 1 root root 0 Jan 1 1970 .. -rwxr-xr-x 1 root root 60416 Sep 29 2013 HXCFE_V1_8_2_40.upd #

Cool, eh?

So you can now copy (cp) files from and to the card as you wish.

The Touch also has an SD slot which is more well-known because it is exposed. I'm speculating here but probably it can be accessed inside SSH.

If you would like to copy and store some files, maybe exchange them with a PC or whatever, and find scp to troublesome to use, the SD card might be a comfortable way out. I will investigate further about the compatibility to SD cards in general, and add information here. For now, I think the older the card, the better the chance to make it work, at least in the Controller.

The Touch will probably support much newer cards as well as higher capacities are certainly desirable for the built-in Logitech Media Server.

Conclusion

So that's it for now, I'm curious what ideas you all might have how to utilize the SSH interface and whether anything useful can be done with it.
Feel free to ask any questions you might have, and let's explore this a bit!
Have a good time, and stay safe!