diodenring.de

  • Schrift vergrößern
  • Standard Schriftgröße
  • Schriftgröße verkleinern
Home Elektronik Mikrocontroller Free your Squeezebox Radio

Free your Squeezebox Radio

PDF

Hack your Logitech

Squeezebox Radio

In diesem Beitrag zeige ich, wie man sich ein Batteriepack baut und an die Squezzebox anschließt, wie man sich Zugang zu der seriellen Schnittestelle verschafft, und ein Easter Egg.


 

Warnung: Ich denke, dass die Informationen auf dieser Seite richtig sind. Dennoch kann ich keine Verantwortung dafür übernehmen, Nachbauten auf eigenes Risiko.

Inhalt

  1. Einführung
  2. Anschlußbelegung
  3. DIY Batteriepack
  4. Serielle Konsole
  5. Easter egg
  6. Zusammenfassung


Einführung

Vor einigen Wochen habe ich mir ein Webradio vom Typ Squeezebox (von Logitech) für mein Bad gekauft (ich höre morgens gerne Radio, und der terrestrische Empfang ist bei mir bescheiden). Schon beim Auspacken ist mir eine Klappe aufgefallen, die sich auf der Unterseite der SB befindet. Darunter verbirgt sich im wesentlichen ein großer Hohlraum, und ein kleiner 10-poliger Steckverbinder. Laut Anleitung soll man dort einen Akku für 50€ anschließen können, der damals nicht im Handel erhältlich war. Da ich noch ein paar Akkus übrig hatte, habe ich beschlossen, mir selber ein Pack zu bauen. Dazu mußte ich aber erst einmal die Anschlußbelegung des Steckers herausfinden.

setup

 

Anschlußbelegung

Der Steckverbinder in der Squeezebox ist eine 10 polige Stiftleiste mit 2mm Pinabstand, bei Farnell und digikey gibt es viele dazu passende Buchsenleisten. Ich habe die #1689483 von Farnell mit diesen (oder ähnlichen) Kontakten verwendet, aber diese hier #1668190 gehen genauso. Durch Ausprobieren habe ich Stück für Stück die Anschlußbelegung herausgefunden. Von der Rückseite betrachtet habe ich die Pins von "1" (oben links), "2" unten links zu "10" (unten rechts) durchnummeriert.

Header

 

  1. Batterie +
  2. Unbekannt 1
  3. Batterie 2
  4. Unbekannt 2
  5. Anzapfung 1
  6. serieller Ausgang
  7. NTC
  8. serieller Eingang
  9. Masse
  10. +3.3V Ausgang

 


Zwischen den Pins 10 und 9 liegen 3.3V an, falls man eine eigene Schaltung betreiben möchte. Ich habe allerdings keine Ahnung, wie belastbar diese Spannung ist.

Die Erkennung eines angesteckten Akkupacks geschieht über einen NTC (10k), der von Pin 7 zu Masse geschaltet wird. Darüber wird auch gleich die Temperatur des Akkus gemessen.

Pins 6 und 8 sind die Pins einer seriellen Schnittstelle, und man kann hier einen Seriell (TTL) zu RS232 Konverter anschließen (siehe unten) 

Der Pluspol eines NiMH Akkupacks (10 Zellen) wird mit Pin 1 verbunden, eine untere Anzapfung (etwa Zelle 3) mit Pin 5 und eine obere Anzapfung (Zelle 7) mit Pin 3. Ich empfehle zwei Widerstände in Serie mit den Anzapfungen um im Fehlerfall den Stron etwas zu begrenzen. Der Minuspol wird mit Masse verbunden. Eine Sicherung (1A flink) ist ebenfalls empfehlenswert. Die Eingangswiderstände der Pins 5 und 7 sind etwa 9475 Ohm, und aus den Spannungwerten, die die SB liefert schließe ich, dass der interne DAC eine Auflösung von 10 bit hat, und mit einer Referenz von 2,048V und einem Vorteiler von 10:1 betrieben wird. Um genau zu sein ist die Quantisierung 19,9883mV. Ich weiß nicht, wofür die Anzapfungen der Batteriespannung verwendet werden. Wahrscheinlich nur, um den Akku zu überprüfen.

Die Schaltung sieht dann so aus:

 

Schaltplan

 

Die Bedeutung von zwei Pins ist unbekannt:

Pin 4 wird mit etwa 10k nach Masse gezogen, der Pegel scheint keinen Einfluß auf das Radio zu haben, und ist auch keine Handshakeleitung der seriellen Datenüberttragung.

Pin 2 ist sogar noch merkwürdiger: Eine Impedanzmessung zeigt, dass er einenen internen DC Filter besitzt. ich habe mal ein Ersatzschaltbild gezeichnet. Hat jemand eine Idee? (Ein User meinte, es könne sich um einen Reset Generator für externe Schaltungen handeln)

equivalent circuit to pin2

 

 

DIY Batteriepack

In der Squeezebox wird ein Akkupack verwendet, in dem 10 NiMH Zelle (Typ: Mignon/AA)  in Serie geschaltet sind. Wenn man anstelle des Akkus ein Labornetzteil anschließt (~13V) und die SB mit dem Steckernetzteil verbindet, versucht das Radio das Labornetzteil zu laden, und zieht die Klemmspannung auf ~16,1V hoch. Nach exakt einer Sekunde stellt die SB dann fest, dass es nix zu laden gibt (bzw. die maximale Ladeschlußspannung erreicht ist), und die Klemmspannung fällt zurück auf die eingestellten 13V.

Klemmspannung
 Squeezebox Verhalten
 16,1VMaximale Spannung während des Ladens
 11,1V "Low Battery"
 10,6V SB schaltetsich ab

Wenn man also annimmt, dass das Akkupck aus 10 Zellen besteht, dann liegt die maximale Ladeschlußspannung pro Zelle bei 1,6V (in Wirklichkeit wird diese nicht erreicht, da die SB eine delta U oder Temperatur basierte Abschaltung besitzt), und beim Entladen ist bei 1,1V Schluß. Ich habe mir ein Akkupack aus 2100mAh AA GP Recyco Zellen gebaut. Zur Temperaturmessung habe ich einen 10k NTC (Farnell #1672286) verwendet, und auch noch mein USB zu RS232 (TTL) Dongle angeschlossen.

Aber ich bin mir nicht sicher, wohin mit den Anzapfungen. Und ich weiß auch nicht, ob diese überhaupt in der SB verwendet werden. Vielleicht zur Batterieüberwachung oder um den Ladeschluß besser zu erkennen? Ich habe die Lötstelle zwischen Zelle 3-4 (von unten "GND" gezählt) und 7-8 angeschlossen, bislang ohne Probleme.

 

DIY battery

 

Das sieht nicht allzu schön aus, aber ich hatte halt gerade keinen Schrumfschlauch in der nötigen Größe zur Hand. Also habe ich Gewebeklebeband verwendet. Und es läuft: Wenn die SB mit Netzstrom versorgt wird, wird die Batterie geladen, und über das Menü kann man die Spannungen und die Temperatur ablesen. Perfekt!

 

The squeezebox running on my DIY battery (do you see the tiny battery icon on the display?)

Im Standby oder wenn sie leise Musik spielt verbraucht die SB etwa 2,1 - 2,5W, der exakte Wert hängt von der Hintergrundbeleuchtung ab. Mein Akkupack sollte also etwa 12V*2.1Ah/2.5W = 10 Stunden halten, deutlcih länger als von dem Originalen bhauptet wird (angeblich 6 Stunden). Alles zusammen paßt perfekt in das Batteriefach, auch das USB->TTL Dongle.

In dem Schacht für das Akkupack sind leider keine Lüftungsschlitze zur Kühlung vorgesehen, daher besteht durchaus die Möglichket, dass sich der Akku beim Laden stark erwärmt. Um hier ein Problem auszuschließen habe ich die Temperatur des Akkus einmal während eines Ladezyklus gemessen:

 

Temperaturverlauf während des Ladens

 

Den Ladevorgang habe ich gestartet, nachdem die Batterie über Nacht leer wurde, und das Radio sich abgeschaltet hat. Die Batterie war also komplett leer. Am Anfang des Diagramms ist noch deutlich das Sinken der Temperatur nach der langen Betriebsdauer zu erkennen. Der Ladevorgang duertetwa 5,5 Stunden bei einem geschätzten Ladestrom von etwa 400mA (ich habe ihn nicht gemessen). Gegen Ende des Ladevorgangs wird wie bei NiMH Akkus üblich ein zunehmender Teil der zugeführten Energie in Wärme umgesetzt was zu dem Temperaturanstieg führt. Der Ladeschluß ist am Wendepunkt der Temperatur, danach steigt die Temperatur noch etwas an, da der Sensor nur die Temperatur an der Aussenseite des Akkus messen kann, und einige Zeit vergeht, bis die im innern produzierte Wärme die Aussenseite aufgeheizt hat.

Üblicherweise wird von Akku-Herstellern empfolen, die Betriebstemperatur zwischen 10°C und 45°C zu halten, ich mache mir hier wegen der kurzzeitig moderat erhöhten Temperatur keine Sorgen.

 

Serielle Konsole

Hier wird es lustig: Schnapp dir einen dieser billigen USB zu TTL Seriell Adapter (zum beispiel basierend auf dem FTDI Chip FT232, etwa diesen hier), und verbinde GND, TX und RX mit den entsprechenden Pins der Stiftleiste (RX und TX gekreuzt, Nullmodem!). Hyperterminal (für Windows, die Linux Leute wissen eh was ich meine) starten, den Com Port des Adpters auf 115k8 8-N-1 einstellen, und öffnen, und mit der ausgeschalteten SB verbinden. Beim Einschalten sieht man dann das hier:

++NAND: RCSR=54200900
Searching for BBT table in the flash ...
.
Found version 1 Bbt0 at block 1023 (0x7fe0000)
Block 46 is bad
Block 284 is bad
Block 787 is bad
Block 869 is bad
Total bad blocks: 4
.FEC PHY: RTL8201EL
FEC: [ HALF_DUPLEX ] [ disconnected ] [ 10M bps ]:
Ethernet mxc_fec: MAC address 00:04:20:26:12:cc
No IP info for device!
Unrecognized chip: 0xf8!!!
hardware reset by POR
...

Lustig, oder? Ein voller Logmitschnitt liegt hier. Nachdem das Radio gebootet hat 'Return' drücken, und man hat Zugriff auf die Konsole und das Filesystem. Soweit ich weiß läuft auf der Squeezebox ein Busybox Linux, aber da ich keinen Ahnung von Linux habe, überlasse ich es anderen herauszufinden, was man da noch hacken kann. Falls ihr was habt,  Diese E-Mail-Adresse ist gegen Spambots geschützt! Sie müssen JavaScript aktivieren, damit Sie sie sehen können. !

Alternativ kann man sich auch per SSH einloggen (siehe unten). Allerdings gibt es dann keine Bootinfos.

 

Eastereggs

Im Menü des Radios: Preferences->Advanced->Factory test->Display und den Test durchführen. Am Ende sieht man ein Bild einer Frau. Offensichtlich geht der Bildschirm ;-)

 

Beim Einloggen über SSH (login: root, pwd 1234, vorher im Menü aktivieren) sieht man Folgendes:

This network device is for authorized use only. Unauthorized or improper use
of this system may result in you hearing very bad music. If you do not consent
to these terms, LOG OFF IMMEDIATELY.

Ha, only joking. Now you have logged in feel free to change your root password
using the 'passwd' command. You can safely modify any of the files on this
system. A factory reset (press and hold add on power on) will remove all your
modifications and revert to the installed firmware.

 

Zusammenfassung

In der Bedienungsanleitung steht:

"We hope you have as much fun using it (the Squeezebox) as we did creating it for you."

Ich habe meinen Spaß damit, vielen Dank dafür!

 

Kommentare sind willkommen,

Achim

Comments
Search
GiPe  - Fine Job !   |2009-12-12 22:53:55
Thanks a lot Achim for your detailed description. My squeeze box is now equipped
with 10xGP-2700 batteries.

Actually charging... All seem to be perfectly
working !

I'll tell you how it is running after some time.

Chuss !
GiPe   |2009-12-19 09:56:41
After using it during one week, I confirm that the battery pack perfectly
works.

Thanks again.
doubleugk  - Weiteres Hacking   |2010-02-05 17:51:03
Super coole Info. Hast Du in der zwischenzeit mehr darüber in Erfahrung bringen
können, welche Einstellungen über SSH modifiziert werden könnten? Habe bisher
nichts im Netz gefunden.
achim   |2010-02-07 04:25:56
Sorry, I have no further information about what you can modify over the console.
As far as I know, there is a Busybox Linux running on the SB.

But since I have
(nearly) no xperience with Linux, I can't tell, whats possible, and what not.
But I think, that you get really full acess to the device. For example I was
able to browse the folders, look at running threads etc. Experianced users
certainly will be able to reprogram the whole device.
bingo  - help for dummies?   |2010-02-17 14:00:35
thanks for taking the time to write this up! I was just thinking about doing
this myself and found your post.

I'm not an electrical engineer, just a daring
DIY kinda guy. Can you help describe what the connector is? The Farnell site
here in Sweden has THOUSANDS of connectors and I don't know how to begin to find
it!

NTC... is that a cap?
admin   |2010-02-28 19:42:49
Hey Bingo, do you have additional information on these topics?

Since I have
been asked a few times about the connectors, I hav now added links to Farnell
with some suggestions. The NTC (a temperature dependent resistor) got a link as
well.
bingo   |2010-02-18 17:15:30
thanks, bro. That helps alot!

I won't be using a USB connection so I just need
to connect the NCT resistor between pins 7 and 9 and 9 is also where I connect
the negative side of the battery pack, which is wired in series. Positive of
battery array goes to pin 1.

Is that correct?

pins 3 and 5.... battery tap? I
guess I don't need anything connected there.
admin   |2010-02-28 19:42:38
Correct!

I don't know, wheather the voltage on the taps are evaluated or not.
I connected the + terminal of battery 3 (nominal 3.6V) to pin 5, and the +
terminal of battery 7 (nom. 7*1.2V) to pin 3. But as I said, maybe this is not
neccessary.
danmcb  - unknown pins   |2010-02-25 16:46:24
nice work.

I am guessing that the designers allowed for connecting an external
digital device (maybe for diagnostics/repair) to the 10 pin, so maybe that is
what pins 4 and 2 do. They look like the kind of values that might be used to
enable an external device (the 10k pull down) or to reset it (the CR network
pull up, which would reset an external uP some milliseconds after power
up).

greetings

Daniel
Dingsdada   |2010-02-28 12:26:48
Ich habe einen Akkupack mit 10 Sanyo 2700mAh nach der Anleitung zusammengebaut.
Der Akku funktioniert tadellos und auch sehr lange (ca. 9h).
Nur leider läd das
Radio ständig - auch dann wenn der Akku voll sein sollte.
Im Power-Menü zeigt
er auch ne Spannung von fast 15V an (für Akkus super). Beim Laden macht er nur
ne Pause zum Abkühlen des Akkus (bei ca. 45°C).
Auch scheint die
Ladezustandsanzeige nicht richtig zu funktionieren (Er zeigt nie ganz voll an
und auch schon nach 1h nur noch halb, obwohl er ja noch 8h läuft).
Wer hat
ähnliche Erfahrungen gemacht? Kann es sein, dass die Zwischenabnahmen nach dem
3. und 7. Akku nicht reichen?
achim   |2010-02-28 19:42:03
Hi Dingsdada,

Ich bin mir nicht ganz sicher, wie die SB erkennt, ob der Akku
voll ist. Aber ich denke es ahndelt sich um eine delta U Abschaltung, bei der
ein Ladeende durch eine trotz weiteren Ladens abnehmende Akkuspannung erkannt
wird. Das ist beim Lade von NiMH Zellen Standart, und führt eine Erwärmung der
Zellen mit sich. Ich habe gerade geschaut, meine Zellen werden maximal 47°
warm. Zugegeben warm, aber es gibt in dem engen Schacht auch keine Kühlung
durch Konvektion. Zu den Abgriffen: Ein User hat vorgeschlagen 220 Ohm
Widerstände in die Leitungen zu schleifen, um in Kurzschlußfall den Strom zu
begrenzen. Persönlich denke ich, dass die Spannungen der Abgriffe garnicht
verwendet werden.
Dingsdada   |2010-02-28 21:09:25
Ich hoffe, dass bald jemand einen Originalakku durchmessen kann.
Dann wird sich
einiges klären.
Die 45°C finde ich für mich zu hoch und zu riskant. Hab den
Akku mal vorsorehalber raus.
Dingsdada   |2010-03-04 15:52:34
habe soeben meinen radio geschrottet, weil ich den stecker vom akkupack
falschrum reingesteckt hab. :( :( :( :(
warum bauen die keine diode zum
schutz ein :?:
da auch übers netzteil nichts mehr funktioniert, gehe ich davon
aus, dass man da nix mehr reparieren kann...
maniac_on_moon   |2011-01-05 17:32:08
Hallo Dingsda,

bin ein Leidensgenosse, kein Bild, kein Ton.
Was genau hast Du
damals gemacht?

Danke und Gruß
maniac_on_moon
achim   |2010-03-05 10:54:37
Das tut mir leid, es klingt echt nicht gut: Du hast die 12V an den 3,3V Ausgang
angeschlossen. Pin #2 hat warscheinlich Dioden nach Vdd und Vss, die in dem Fall
Strom von GND nach Vss fließen lassen. Warscheinlich ist da nichts mehr zu
machen.
Wagst du einen Reparaturversuch? Falls nein, kann ich dir anbieten mal
einen Blick rein zu werfen.
Dingsdada   |2010-03-05 20:35:15
Ich hab das Gerät schon mal geöffntet.
Alles kleinste SMD Bauteile. Die
Leiterbahnen zu suchen ist schon schwierig (zumindest keine Zwischenlage).
Rein
optisch sieht man da natürlich keinen Defekt.
Was mich wundert, ist, dass das
Radio auch übers Netzteil nicht mehr geht. Da scheints ein wichtiges Bauteil
(oder mehr) geshrottet zu haben. Ich weis halt auch nicht, was ich nachmessen
und überprüfen könnte. Man bräuchte halt Schaltpläne...
Danke für das
Angebot reinzuschauen. Ich denke da ist wirklich nichts mehr zu machen.
Dingsdada   |2010-03-07 14:15:25
Es läuft wieder!
Ich bin fassungslos. Nachdem ich jetzt alle möglichen
Leiterbahnen und Bauteile durchgemessen hab, startete es wieder.
Oh mann - das
war mir eine Lehre.
Purn0   |2010-05-22 13:07:11
What did you do to make it run again? I also inserted the connector the wrong
way around :(
Now, with the adapter plugged in, the PCB behind the display
becomes quite hot. If I let it cool down, it tries to startup, showing the
Loitech logo, but that's it! :s
Does anyone have a clue how to fix my Radio?
:dry:
auenkind  - Danke!   |2010-04-10 21:20:37
danke für die ausführlichen infos!

Hab das gerade eben zusammengelötet und
es funktioniert tadellos.

Jetzt bin ich gespannt ob das mit dem ladestatus
alles richtig klappt oder ob mir gleich das akkupack explodiert :X Ich werde
berichten.
mrMuppet   |2010-09-06 16:14:29
Ich habe auch vor, mir einen solchen Akku zu bauen, aber ich habe leider nur
sehr geringe Elektrotechnik-kenntnisse. Löten ist noch soweit ok, aber ich bin
mir nicht sicher, wie und wo ich diesen Temperatursensor anlöte, und auch wie
ich am besten die Zellen verbinde, ist mir nicht richtig klar.
Vielleicht
kannst du mir noch mal ein richtiges Blockschaltbild von deinem Akku irgendwo
hochladen.

Ich würde jetzt einfach mit einem Kabel die Zellen in reihe
aneinander löten, dann zwischen die 3. und 4. Zelle und zwischen der 7.und
8.-Zelle die Pins 3 und 5 anschliessen. Ansonsten vorne den Pluspol an Pin 1 und
den Minuspol der Zellen an Pin 9.
Ist das so alles richtig? Wie funktioniert
dann dabei die Temperaturmessung? Welche Kabeldurchmesser sollte ich verwenden?
Was ist sonst noch zu beachten?
jf2020  - Works perfect   |2010-12-17 00:26:05
Just wanted to say thank you. Works perfectly. I had a small doubt about the
battery taps but if you keep it logical it's fine: so you should have
GND- 10K
- 4V - 9V - 13V from pin 9 to pin 1.
ramon3000  - USB charging for iPhone   |2011-09-14 23:05:38
I wonder if the charge function of the SB can be used to charge my iPhone over
night, e.g. by using a power regulator to 5 volt?
achim   |2011-09-17 04:18:25
The simple answer is No.
At least there is no easy way of doing so since the SB
checks wether the output voltage is within a certain range. If no battery is
connected, the SB at first outputs a voltage, but stops after it found that not
battery is attached. So a simple 5V regulator is not enough, you will need to
model the whole battery pack.
However you might want to try the 3.3V output and
use a step-up converter to bring it to 5V. But I have no clue how much current
can be drawn from this pin. Experiments are at your risk.
Only registered users can write comments!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."