Ich habe in einer Brockenstube vor einigen Jahren einen alten Grundig 2012 Röhrenradio aus dem Jahr 1952 gefunden. Den habe ich sehr günstig (für 30 CHF) gekauft, mit dem Ziel, ihn zu einem netzwerkbasierten Audioplayer umzubauen.
Fans von Analog-Radios sollten an dieser Stelle aufhören, mitzulesen… Ich habe nämlich als erstes die ganze Röhrentechnik aus dem Radio entfernt #allesMussRaus
Damit die physikalischen Inputs verwendet werden können, habe ich zusammen mit @Luz die Kontakte und Potis ausgemessen. Anschliessend wurden diese neu verkabelt:
Wie man sieht, ist der Poti weder linear noch logarithmisch, sondern hat zwei stark ansteigende Bereiche und in der Mitte sowie am Ende einen „toten“ Bereich". Das kann an der Bauweise oder auch an Abnutzung liegen.
Der Daemon nutzt zur Linearisierung eine einfache Lookup-Table. Zwischen zwei Messwerten wird linear interpoliert. Das funktioniert einigermassen zufriedenstellend.
Demo mit Lautstärkekontrolle über den Drehregler:
Es gibt zwar eine kurze Verzögerung, die ist aber nicht weiter schlimm.
Boot-Zeit (ab Einstecken) mit Busybox war initial ca. 27 Sekunden. Ich habe das Image anschliessend auf Systemd umgebaut, und nun bootet das Ganze in etwa 16 Sekunden Könnte man vermutlich auch noch weiter optimieren.
Playback läuft nun nicht mehr über Volumio (via API), sondern über einen ffplay-Childprozess, welcher von einem Playback-Thread aus gestartet und gestoppt wird. Lautstärke wird direkt via ALSA amixer gesteuert.