Grundig Prima Boy 100 – upgrade

Nach dem Umbau des Grundig Boy 100 kam doch glatt die Nachfrage nach weiteren Umbauten gleichen Typs. Mich störte im Grunde nur, dass ich das ESP32-Bard mit VS1053 ins Batteriefach operieren musste. Das war nicht so richtig schön – aber es gab ja sonst kein Platz.

Und auf einmal die Idee : Ich ersetze die Platine, die das LCD-Display hält. Sie ist ja eh nur noch als Träger verwendet. … Ein paar Versuche später:

Die Platine kann nun auch die komplette originale Tastenmatrix nutzen und hat wahlweise für VS1053 oder den I2S-Max98357A einen Konnektor. Auch für die Nutzung eines SDcard-Adapters liegt eine Anschlussmöglichkeit vor. ( Bisher habe ich aber noch keine Variante mit SDcard betrieben). Bis auf einen Pin sind damit alle GPIO’s des ESP32 benutzt.

Rückseite mit ht1621

Front mit ESP und VS1053
LCD-Stütze aus dem 3D-Drucker

Einige Bilder zeigen eine ältere Version (ohne SDcard Belegung). Durch die Nutzung der originalen Flachbandkabel sieht das Ganze recht aufgeräumt aus.

mit Tastenfeld
Rückseite
kaum noch Kabelgewirr

Radio im Vogelhaus

Mal ein etwas anderes Gewand. Freunde wollten ein WLAN-Radio in ihrer Sauna im Vorraum. Inspiriert von meinem Gartenradio in einer Gießkanne, sollte es diesmal ein Vogelhaus sein.

Auch hier reichen Laut-/Leise, sowie ein einfacher Taster zum Umstellen des Senders. Das Gehäuse stammt aus dem Tchibo-regal.

Da der Lautsprecher nach innen sollte, musste ich etwas zur Halterung vorsehen. Hier half mir der Boden einer typischen Mandarinenkiste. So baute ich also eine Halterung für den Lautsprecher, die komplett ins Häuschen eingesetzt werden kann.

Zum Zusammenstecken ein paar 3D-Teile, schon kann das Innenleben ins Häuschen versenkt werden. Mit etwas Spiel, kann man auch mehr Abstand zur Vorderseite bekommen.

Als nächstes zwei Löcher für die Bedienung ( Sendertaste + Lautstärkepoti ). Der Taster benötigt ca. 11mm und für den Poti habe ich ein 7mm Loch gebohrt. Der Knopf stammt auch wieder aus dem 3D-Drucker und soll eine Blume darstellen.

Fertig sieht das dann so aus:

Der Lautstärkepoti ist auch gleich zum ein-/ausschalten.

Grundig Prima Boy 100

Und schon ist das nächste Radio umgebaut. Im Grunde war die Vorgehensweise wie beim Denver-TR36. Ich will hier aber ein paar Infos für eventuell nochmaligen Umbau hinterlegen.

Auch dieses Radio hat ein LCD, welches ich weiter verwenden will. Zudem benutze ich hier den originalen Verstärker und muss mir dadurch nix für den Lautstärkeregler einfallen lassen. Der vorhandene ist ja super.

Erstmal ein Bild von innen.

Kaum Platz. Ich werde die Platine mit dem ESP32 im Batteriefach versenken.

Also 4 Platinen. Irgendwie AUX/Netzteil (unten/links) , Verstärker + FM-Radio (unten rechts), Display und MCU (oben/mitte) und die grüne Platine (oben/rechts) ist für die Microtaster.

Das Display …
und nochmal von hinten

Tja, bisher steuerte ein kleiner Prozesser das Display gleich mit. Die Platine mit den Tasten ist per Flachbandkabel verbunden. Ein weiteres Flachbandkabel geht dann zur Platine mit dem FM-Chip um die gewählten Sender zu steuern.

Die Flachband kabel kommen beide weg. Die Tasten sind derzeit als Matrix aufgelegt, was ich nicht beibehalten möchte. Ich werde einfach drei der Tasten direkt am ESP anschliessen (Up/Down/1). Den Tuner muss ich auch nicht mehr steuern … der wird auch entfernt.

Die roten Stellen markieren die Anpassungen.
Unten: Zugang vom vs1053-modul

Auf dem linken Bild nicht zu sehen: Es wurde noch eine Drahtbrücke rechts von C30 entfernt. An diese Stelle kommt unser Zugang zum Verstärker. Das rechte Bild zeigt noch oben den Abgriff für die Versorgung unserer ESP32-Platine.

MCU per dremel entfernt.
… und hier kommen die Kabel hin.

Der vierte Pin wird nicht benötigt. Eventuell ist das c-3. Auch die letzte Segmentleitung hat keine Funktion, weshalb ich sie nicht angelötet habe.

und so sieht es dann fertig aus. 🙂

Edit: der Code inkl. meiner LCD-Anpassungen liegt auf github.com. Für dieses Display muss ht1621_lcd_type=grundig_boy100 gesetzt werden.

Denver TR36 Umbau

Inzwischen kommen immer mehr Erweiterungen für den Umbau zu Internetradios. Beim Denver-TR36 wollte ich unbedingt das bereits vorhandene Display weiter nutzen. Die angezeigten Daten sollten wie bei der Verwendung einer 4stelligen 7-Segment-Anzeige mit TM1637 sein.

Dieses Glass-LCD wird im Original von einem Chip getrieben, der in meinem Fall nicht weiter verwendet werden kann. Er hat bereits Software, die auf sämtliche Tasten reagiert – jedoch konnte ich keine Möglichkeit finden, die es erlaubt ihm einen anzuzeigenden Text zu schicken.

Also raus mit dem Chip. Wir steuern das LCD selbst an. Hierbei habe ich mich für den HT1621-Chip entschieden (mit dem ich schon einmal ein 8 stelliges 14-Segment-Display Glas angesteuert hatte : vim878 ). Im Blog von ‚Stepp-ke.de‘ ( Beitrag Juni 2016 ) findet man eine Platine, die ich noch da hatte und hierfür verwenden will.

Hier sei angemerkt, dass Glas Displays nicht einfach wie Leuchtdioden angesteuert werden können. Sie arbeiten quasi mit Wechselspannung. Dies lässt sich auch im µC programmieren – leichter und IO-sparender ist aber der Einsatz eines spezialisierten Chips. Der HT1621 wird von mir verwendet, weil ich noch welche auf Lager habe und dieser so ziemlich Alles bis 32 Segmente mit 4coms ansteuern kann.

Das Denver Display benötigt zwar nur 3com’s und 13 Segmente – das soll aber nicht stören.

von unten nach oben : Seg 0..12 , dann com0..2

Also erstmal die originale Miniplatine auslöten – und dann die Pins vom Display mit der eigenen HT1621-Platine verbinden.

Die 3 Com-Leitungen habe ich extra separat verbunden. So erkenne ich sie später besser.

Nun benötigen wir 3 Datenleitungen zum ESP32 um den HT1621 anzusteuern. Ich habe hierfür die beiden i2C (SDA+SCL) und den obersten PIN vom Encoder-Anschluss (DIO16) verwendet. Ein zusätzliches OLED will ich ja eh nicht einbauen. Der DIO16 darf nicht als CS-Leitung benutzt werden. Nach ein paar kurzen Tests, hat sich folgendes Mapping der Segmente herausgestellt.

buffer[0]

  • …. …1
  • …. ..1. 1 A
  • …. .1.. 1 G
  • …. 1… 1 D
  • …1 ….
  • ..1. …. 1 F
  • .1.. …. 1 E
  • 1… …. pm

buffer[1]

  • …. …1
  • …. ..1. 2 F
  • …. .1.. 2 E
  • …. 1… sleep
  • …1 ….
  • ..1. …. 1 B
  • .1.. …. 1 C
  • 1… ….

buffer[2]

  • …. …1
  • …. ..1. 2 B
  • …. .1.. 2 C
  • …. 1… SW + MHz (unten)
  • …1 ….
  • ..1. …. 2 A
  • .1.. …. 2 G
  • 1… …. 2 D

buffer[3]

  • …. …1
  • …. ..1. 3 A
  • …. .1.. 3 G
  • …. 1… 3 D
  • …1 ….
  • ..1. …. 3 F
  • .1.. …. 3 E
  • 1… …. Doppelpunkt

buffer[4]

  • …. …1
  • …. ..1. 4 F
  • …. .1.. 4 E
  • …. 1… Punkt hinter 3
  • …1 ….
  • ..1. …. 3 B
  • .1.. …. 3 C
  • 1… …. Punkt hinter 2

buffer[5]

  • …. …1
  • …. ..1. 4 B
  • …. .1.. 4 C
  • …. 1… kleine 5 (1/2)
  • …1 ….
  • ..1. …. 4 A
  • .1.. …. 4 G
  • 1… …. 4 D

buffer[6]

  • …. …1
  • …. ..1.
  • …. .1..
  • …. 1…
  • …1 ….
  • ..1. …. Wecker
  • .1.. …. FM + MHz (oben)
  • 1… …. MW + kHz

Man erkennt ein Muster, was die Implementierung erleichert (zumindest für die 4 Zahlen).

Der Edzelf-Code wurde wieder mal erweitert … Ein Treiber für den HT1621-Chip + extra-Code für das Display. Später kommen bei mir sicherlich noch Weitere Displays hinzu.

Nach dem Start werden nacheinander die Segmente der IP angezeigt und dann der eingestellte Sender : ‚ P 1‘. (Es wird 1 aufaddiert, da Sendernummer 0 im Bekanntenkreis zu Verwirrungen führte). Nach 5 Sekunden wechselt die Anzeige auf die Uhrzeit.

Nun noch ein paar Bilder vom Innenleben des Radios…

Umbau des Trimmkondensator. Das Innenleben wurde durch einen einfachen Encoder ersetzt.
Hier die Unterseite mit Encoderknopf. Ein Adapter zum Aufstecken des alten Drehknopfes kommt aus dem 3D-Drucker.
Die Platzierung der neuen Platinen. Das VS1053-Board ist an der Oberseite angeschraubt.

ESP32-Internetradio

Nach meinem Toasterumbau sind nun schon mehrere Umbauten vorhandener UKW Radios als WLAN-Radio erfolgt. Diese Methode hat den Charme, dass man sich nicht um ein Gehäuse, die Knöpfe und den Lautsprecher kümmern muss, sondern es ist alles schon da. Sogar die Stromversorgung kann nicht selten noch benutzt werden.

Bei der Recherche nach Vorhandenem, kommt man an KaRadio32 und die Software von Edzelf’s kaum vorbei. Im Radiobastler-forum habe ich von ’saarfranzose‘ eine Platine bekommen, die in Zusammenarbeit mit Edzelf super funktioniert und im Grunde noch diverse Freiheitsgrade bietet. Mit Hilfe dieser Platine sind dann auch schon 2 Radioumbauten entstanden. Leider kann diese Platine nicht zusammen mit der KaRadio32-Software benutzt werden … zumindest habe ich es nicht hinbekommen, das Pin-mapping entsprechend umzustellen . Aber das nur am Rande.

Mein Hobby hat sich im Bekanntenkreis rumgesprochen, so dass eines Tages ein kleines Küchenradio von Rossmann oder Tchibo zum Umbau bei mir landete. Die Platine von saarfranzose ist leider zu gross. Kurzerhand wurde also google bemüht, und ich habe eine Platine passend zu KaRadio32 gefunden, die die selben Ausmaße wie das VS1053-Modul hat. Nach dem Download kam ich dann auf die Idee, dass ich auch auf dieser Platine den PAM8403-Verstärker unterbringen könnte. Mit KiCad hab ich dann also diese Platine umgestaltet und sogar noch weitere Pin’s rausgelegt. (Dazu später) Mir war auch klar, dass ich mit dieser Platine nun KaRadio32 oder Edzelf nutzen kann, was ich im Grunde aber nicht brauche – ich nehme derzeit fast nur Edzelf. (wg. meiner eigenen Erweiterungen)

Platine mit drunterliegendem VS1053-Modul und PAM8403 auf der Oberseite.

Ich verwende nun aus Platzgründen kein Entwicklerboard mit ESP32, sondern löte hier den ESP32S selbst auf – was erstaunlich gut funktioniert und doch recht einfach ist. Im Bild rechts oben sieht man die Anschlussleisten (v.o.n.u : RXTX-Prog., ADC-Pins, IR-Pin, Encoder-pins.) Das Flachbandkabel führt noch zu den i2c Pins für ein Display.

An der Unterseite der Platine ist zudem noch Platz für ein DC/DC-Buck Modul, was ich bisher aber immer extern betrieben habe.

Hier nochmal ein anderer Winkel mit Display. Zudem sieht man auch die Buchse für den Lautsprecher, die von der originalen Platine ‚geklaut‘ wurde.
Hier eine Version – direkt als Sandwich gelötet. Dafür müssen ein paar Teile vom VS1053 entfernt werden.

Nun zu den ADC-pins. Um mittels normalen Drehwiderständen die Lautstärke und Senderwahl durchführen zu können, werden adc-fähige Pins benötigt. Hierfür eignen sich am besten ADC0-Pins, wobei ich mich für 36 und 39 entschieden habe. Der Voltpegel 0..3.3V wird also in eine entsprechende Lautstärke umgerechnet – genau wie es bei der Senderwahl erfolgen kann. Hierfür waren kleine Anpassungen der Edzelf-Software notwendig, da im Original alles nur mittels Drehencoder bedient wird. – Ich wollte aber die originale Handhabung des Radios möglichst erhalten.

Auch das 128×32 OLED hat ein paar Anpassungen benötigt. Inzwischen kann meine Edzelf-Version auch ein HT1621-Display sowie eine TM1637-7-Segement-Anzeige (als Zusatzdisplays) bedienen. Das hat sich ergeben, weil ich bei anderen Radios die vorhandenen originalen LCD-Glass-Anzeigen weiter nutzen wollte (siehe Beitrag Denver-Tr36).

Nun aber weiter … Als Erstes schau ich mir also die vorhandene Platine an, wo eventuell Spannungen abgegriffen werden können. Oft lege ich im Nachgang die nicht notwendigen Teile auf der Platine lahm – damit sie nicht unnötig stören können oder Strom verbrauchen.

Bei diesem Radio ist der untere Poti (Lautstärke) nicht im 0..3V3-Bereich, so dass ich ihn von der Aussenwelt getrennt habe und den Zugang mit 3.3Volt belegen konnte. Sehr viel mehr Umbauten sind hier nicht notwendig gewesen.

Oft findet man bei solch einfachen Radios Drehkondensator zur Sendereinstellung. Diese ersetze ich dann durch einen einfachen Encoder (ohne Button). Im Edzelf-Code habe ich wahlweise vorgesehen, dass der Encoder direct den Sender ohne weitere Bestätigung umschaltet. (auch dass nur nebenbei 🙂 )

Der Kondensator (mit den Kleberesten) war ursprünglich auf der Unterseite der Platine. Um Platz für das Display zu haben, musste er auf die Oberseite wechseln. Das dünne gelbe Kabel (rechts) ist die Zufuhr von 3.3Volt für das Lautstärkepoti.

Für das SSD1306-Display mit 128×32 musste ein Loch ins Gehäuse geschnitten werden. Die Fixierung mit Heißklebe sieht etwas wild aus – aber es ging. Im Grunde braucht man keine Anzeige, ich fand es aber schöner, wenn man auch mal den gespielten Titel sieht.

Und so ist es dann fertig. Das ausgeschnittene Fenster kann beim nächsten Mal etwas besser werden 🙂 .

Sollte Bedarf an der Platine bestehen … hier die Gerber-files ( Gerber-ESP32radio-V7.zip ).

per default wird das PAM im Mono-Betrieb benutzt. Für stereo muss eine Bahn an der rot markierten Stelle getrennt werden.
G-L-R (oben rechts) sind die Zugänge vom VS1053 Audio-Jack.

Sonstiges / Bestückung / Vorgehensweise …

Die Platine ist bereits mit den einzusetzenden Werten beschriftet. Ich beginne oft mit dem ESP32-Chip. Dafür nutze ich eine Klammer (thingiverse 1718197), die den chip gut auf einer Position hält. Nach dem fixieren mit 3 Pins, kann die Klammer weg und die restlichen Pins werden angelötet. Als nächstes folgen der 10kΩ-Widerstand und der 1nF-Kondensator auf der Oberseite (rechts-oben). Da ich mir die Microtaster sparen will, löte ich nun eine Brücke (abgeschnittener Anschluss eines Elko) über die beiden ‚prog‘-Pads. Als nächstes benötigen wir den AMS1117-3.3V auf der Unterseite der Platine.

Nun können wir schonmal initial programmieren. Dazu nutze ich die Pin-leiste ‚TX-RX-Gnd-5V‘ und einen üblichen USB-TTL-Adapter (FT232RL). Es reicht, wenn man die 4 Enden per Stiftleiste (1reihig) mit dem Daumen fixiert, so dass Kontakt besteht (Achte auf Verpolung – 5V sitzt außen!). Nun den USB-Adapter einstecken und mit der Arduino-Oberfläche programmieren. Durch unsere Brücke über die prog-Pads wird der ESP nicht starten, aber bei Power sofort in der Programmiermodus gehen. Nach der Programmierung : abstecken, prog-Brücke entfernen und den Rest bestücken.

Wenn kein PAM-Modul benutzt werden soll, können auf der Oberseite (oben links) folgende Komponenten weggelasen werden: 100nF, 2x 100kΩ, 47µF.

Für stereo-Betrieb muss eine Bahn getrennt werden. (Die beiden Pads daneben sind dann für den eventuellen Rückbau auf Mono gedacht).

Auf der Unterseite der Platine muss ein 470Ω Widerstand eingelötet werden, wenn man die LED einsetzen möchte. Als Powermodul (Unterseite) wurde dieses eingeplant (DC/DC-Buck) , welches mittels Lötbrücke fest auf 5V gestellt werden kann.

Einstellungen (Beispiel):

flag_00 = autoplay = true # start playing if STOP detected
flag_01 = adc_vol_reverse = false
flag_02 = enc_direct_switch = true # no click for channel change
# more possible flags :
# dsp_brightness = 1..15
# rotate_screen = true/false # for OLED
# dsp_show_ip = true/false # show ip on oled/tm1637 at boot
# adc_delog_vol = true/false # little bit more linear
# oled_128x32 = true/false # only 4 line ssd1306
#
pin_ir = -1 # GPIO Pin number for IR receiver VS1838B
pin_enc_clk = 16 # fx2-pcb : rotary encoder „CLK“
pin_enc_dt = 17 # fx2-pcb : rotary encoder „DT“
pin_enc_sw = 5 # fx2-pcb : rotary encoder „SW“
#
pin_tft_scl = -1 # Pin for TFT „SCL“ fx2-pcb : 14
pin_tft_sda = -1 # Pin for TFT „SDA“ fx2-pcb : 13
#
pin_sd_cs = -1 # Pin for SD card „CS“
#
pin_vs_cs = 32 # fx2-pcb : Pin for VS1053 „CS“
pin_vs_dcs = 33 # fx2-pcb : Pin for VS1053 „DCS“
pin_vs_dreq = 34 # fx2-pcb : Pin for VS1053 „DREQ“
pin_shutdownx = 4 # fx2-pcb : LED
pin_fixed_12 = 1 # fx2-pcb : RST-pin need HIGH
#
pin_tm1637_clk = -1
pin_tm1637_dio = -1

Zum Schluss noch einmal meinen Dank an die Vorversion von gvoigtlaender(github) und die nützlichen Hinweise von saarfranzose (radio-bastler.de)

PowMeter

Eine relativ günstige Möglichkeit, den Stromverbrauch meiner Steckdosen zu messen.

Dieses Projekt ist eigentlich schon eine Weile her, um es später einfacher zu finden, hier ein paar Zeilen dazu.

Ein esp8266-12 nutzt dabei den ACS712-20A zur Messung des Stromverbrauchs. Zur Sicherheit hat das Board auch einen DS18B20-Sensor um extreme Temperaturanstiege schnell zu erkennen.

Wichtig : Ich übernehme keinerlei Garantie und muss zu meiner Absicherung von der Nutzung eventueller Nachbauten abraten – auch wenn die Platine in eine Unterputz-steckdose passt ….

Die Platine habe ich in CN fertigen lassen. Sieht einfach schöner aus. (Gerber-PowMeter) Das Programm spannt zu Beginn ein WLAN auf. Hierüber kann es parametriert werden (192.168.4.1). Diese Parameterseite kann später auch via http://<ip>/setup.html angesprochen werden. Der Parameter ADC-NULL sollte gemessen werden. Er bildet sich aus der Summe von 10-Messungen (ohne angeschlossenen Last). Eine intern ermittelte Summe wird auch auf der Webseite angezeigt (acs-sum). Ein paar Statistiken hält der esp dann auch vor.

Der Schaltplan ist auch wieder recht einfach. Da der ADC-Eingang vom ESP8266 nur 0..1V messen kann, ist ein Spannungsteiler vorgeschaltet. Das geht auf die Genauigkeit! So kann man später mit 40mA je digit rechnen, was wiederum einem Fehler von 9W entspricht! Genaue Messungen sind also nicht drin – mein Zweck richtet sich aber sowieso nur an den groben Verbrauch, der über die Steckdose läuft.

Die Sourcen sind schon etwas mehr… Source-Powmeter.zip.

Inzwischen habe ich alte Schaltsteckdosen ausgeweidet und das Board darin untergebracht. So habe ich eine portable Version … um mal einen kurzen Zeitraum zu messen.

PS: Auch hier gilt … aktuelle Files auf Sourceforge https://sourceforge.net/projects/esp8266/files/

Co2-PUK

Mal wieder ein kleines Projekt für ein Wochenende. Inspiriert von der CO2-Ampel für Schulen, wollte meine Frau auch eine Version, die sie sich ins Büro stellen kann.

Die Schaltung ist recht einfach. Hier die Bauteilliste:

  • Wemos D1 mini   (ebay ~ 2,80€)
  • MH-Z19B  (CO2-Sensor, alibaba ~ 13,50€ )
  • SSD1306 128×64 i2c (ebay ~ 2,80€)
  • DS18B20 (ebay ~0,90€)
  • 4,7kΩ
  • WS2812B LED  (aus einem 60er Stripe geschnitten, daher ~0,10€)
  • Kabel, Heiskleber, Usb-Netzteil

Das Gehäuse habe ich mit onshape konstruiert. ( Suchwort : CO2-PUK ) Der Widerstand wurde frei verdrahtet (hat also keinen festen Platz). Für die 5V- und GND-Versorgung der einzelnen Komponenten, habe ich einen kurzen Lochraster-streifen benutzt (Der wemos hat ja nur 1x 5V und 1x Gnd).

Die Druck-files:

Co2-Puk-Back

Co2-Puk-Top

Schaltplan – Skizze

Sourcecode:   Co2Puk-noWLAN.zip

fertiges Binary: Co2Puk-noWLAN.bin

Hier noch ein Bild vom Inneren. Der MH-Z19 passt (relativ stramm) in eine kleine Fassung. Auch das Wemos-Board sitzt relativ stramm in einer extra Aussparung. Auf den Sockel in der Mitte wird später die WS2812B-LED geklebt. Ich habe zur Sicherheit alle Teile nochmal mit Heiskleber fixiert. Das SSD1306-Display muss eh von unten an den Ecken mit Kleber befestigt werden.

Jetzt noch zum DS18B20. Der wird eigentlich für die Ampel nicht benötigt. Ich wollte aber unbedingt die Temperatur mit anzeigen. Der MH-Z19B liefert aber nur ganzzahlige Werte, und er misst im Inneren.

PS: Der DS18B20 wird am besten auch von unten mit Heisskleber fixiert, so dass das Loch zu ist. Dadurch mird der Messwert später nicht durch ‚Abwärme‘ verfälscht.

Änderung der Software: V1.1

  • Ausgabe der Version zum Start
  • Kalibriermodus aktivieren durch Erwärmen des DS18B20 während der init-phase (LED zeigt BLAU) – PUK sollte dann 20 Minuten am offenen Fenster stehen !

PS: Ich werde die Software hier nicht mehr aktualisieren … es gibt ja ein git auf sourceforge…

Toaster Radio

Ich wollte ein neues Küchenradio. Es sollte ein WLAN-Radio sein und möglichst mit einem ESP funktionieren . (Kleiner gehts ja kaum noch). Eine kleine Google-Recherche ergab dann, dass es schon Projekte dafür gab. Ich habe mich für KaRadio entschieden.

Nach dem Aufbau auf dem Breadboard hatte ich jedoch Bedenken bezüglich Stabilität und wechselte zu KaRadio32 – welches auf dem ESP32 aufsetzt.

Jetzt noch ein passendes Gehäuse …. warum nicht in einen alten Toaster einbauen ? Das passt zur Küche und hat was besonderes.

Bei ebay-Kleinanzeigen schnell einen gebrauchten Toaster für 3 Euro geschossen und es konnte losgehen. … Die Bedienung war mir schnell klar.

Die Auswurf-taste sollte mein Ein-/Ausschalter werden. Lautstärke kann die Bräunungsstufe übernehmen und die Senderwahl erfolgt mit der ‚Stop‘-Taste (nächster Sender).   Aber wie ausschalten ? Okay – Stop-Taste 3 Sekunden halten.

Erstmal den Toaster reinigen. Den hatten andere Leute und die alten Krümel will ja niemand haben. Zerlegen und saubermachen geht in wenigen Stunden. Wichtig – n paar Fotos machen wo welche Feder sitzt usw. Das erleichtert später den Zusammenbau.

Erst wollte ich nur 2 Sender vorsehen, was die Umschaltung durch 1 Taste auch gut bewerkstelligen würde (Wir haben jedenfalls nicht oft umgeschalten). Dann hab ich doch 9 Sender vorgesehen . Mir ist kein Grund eingefallen sich zu beschränken. Mit der Taste kann man ja immer auf den nächsten Sender wechseln. Um den Lieblingssender (Pos-1) schnell zu erreichen wurde Doppelklick genutzt – dann braucht man nicht durch die gesamte Liste.

Da wir jetzt bei 9 Sendern sind – müssen wir auch wissen welcher grad an ist. Gut ein Oled-Display 0.96″ noch dazu . Es wird ja bereits vom KaRadio32-Project unterstützt.

Nach einigen Versuchen (NPN-Transistor zur Steuerung des Haltemagneten, Step-Up für 9V am Verstärker, usw…), bin ich zu folgendem abschliessenden Layout gekommen.

Layout

  • 2 Netzteile (5V+12V) – damit keinerlei Brummen kommt.
  • Der 1.Relaiskontakt schaltet den Magneten ab. (und damit die 220V)
  • Der 2.Relaiskontakt schaltet den Lautsprecher verzögert zu. Dadurch wird ein kurzes Brummen beim Einschalten verhindert.

Hier ein Bild wie mein maxyposi das Loch für das OLED einfräst.

Vorher hatte er schon das Loch für den Lautsprecher gefräst. Den habe ich übrigens aus einem alten Radiowecker (auch 3,- auf …Kleinanzeigen)

Die seitlichen Heizplatten habe ich im Toaster entfernt um die Elektronik (auf Pappkarton fixiert) unterbringen zu können. Eine Seite hat die beiden Netzteile und das Relaisboard und auf der anderen Seite ist der ESP (innen wegen besserem WLAN) und der einfache Verstärker sowie die VS1053-Baugruppe.

Nach ein paar Änderungen der KaRadio32-Software arbeitet das Gerät dann so :

Eine Blende für den Lautsprecher wird heute noch aus Moosgummi bei einem Bekannten gelasert 🙂 .

LED-Wanduhr

Nachdem ich auf günstige LED-Streifen mit dem WS2812B gestossen war (3,60$ inkl.Versand für 60Leds auf 1 m) hatte ich die Idee – daraus könnte man eine Uhr bauen …. ( 60 Leds ist ja genau das was man da braucht. )

Leider gab es keine Halterungen, die 1m Umfang haben. ( Zumindest habe ich nix gefunden). Das sollte was für meine Fräse sein. Als Material wollte ich Sperrholz nehmen – was man günstig als Regalfach im Baumarkt bekommen kann. So ist die Oberfläche auch ordentlich beklebt. Das Ausschneiden mit meiner maxyposi-Fräse sollte sich aber als etwas schwieriger erweisen … der Durchmesser muss ja 318.31mm sein. Ich habe zwar eine Arbeitfläche von ca. 40cm Breite, kann aber nur ab x=5,5cm starten und dann max. 29cm bearbeiten.

Ich musste also jeweils ein Viertel ausfräsen und darauf achten, dass ich beim Umspannen wieder den selben 0-Punkt finde. Es war mühsam – aber irgendwann war ich fertig. Zusätzlich konnte ich sogar noch etwas Rand zur Überdeckung der LED stehen lassen.

In den Körper konnte ich dann noch gut eine Tasche für den NodeMCU fräsen. Zudem war noch eine kleine Nut für die Kabel notwendig.

Derweil schonmal ein Test mit dem ’nackten‘ LED-Streifen…

Weiß – ist der Minutenzeiger.

Die Verkabelung ist so simpel dass ich sie hier nicht skizzieren brauche. Der LED-Streifen hat 3 Anschlüsse : 5V, GND, DATA. Diese werden alle am nodeMCU-Board angeschlossen (DATA auf  D4 = GPIO2 )

Nach dem ersten Einschalten wird ein WLAN angeboten : LedClock

Das Passwort lautet : ledclock-2018     (wenn es nicht in config.h geändert wurde) Man kann sich dann auf IP 192.168.4.1 per Handy verbinden und das Programm konfigurieren.

  • showsecs : sollen die Sekunden angezeigt werden ?
  • showgreen : sollen die 5Minuten-Striche angezeigt werden ?
  • nightmode : soll nachts gedimmt werden ?
  • shift pixels : welcher Pixel ist die Minute 1 (bei mir 30)
  • sonneauf : offset zum Sonnenaufgang – wann wieder Tagmode sein soll
  • sonneunter : offset zum Sonnenuntergang – wann Nachmodus sein soll

Der Rest erklärt sich selbst (WLAN, DHCP, … )

So sieht es dann an der Wand aus:

Hier der Code : led_clockV1.5.ino.bin und die Sourcen tgz.

web-radio

Inspiriert vom RadioduinoWRT habe ich mir ein WLAN-Radio gebaut. Zu Begin bin ich der Anleitung des Authors (Raffael Herrmann) gefolgt, hatte aber schnell einige Extrawünsche und musste so den Aufbau an einigen Stellen anpassen. Das Gerät ist nicht günstiger als Geräte aus dem Handel aber es funktioniert genau so wie ich es will und nutzt keine externen Play-/Radiolisten wie zu Tune-in oder ähnliches.

Meine Stückliste:
Yamaha TX-550RS        (defekt)              ebay         : 15,-
dünne Holzplatte / 2mm als Grundplatte       Baumarkt     :  3,-
16x2 Display HD44780-blau-5V                 ebay         :  1,46
I²C-LCD Interface                            ebay         :  1,-
Sonoff                                       ebay         :  5,37
Netzteile 2x 5V/2A                         amazon         : 12,-
Decken-Einbaulautsprecher (mini)             ebay         :  4,29
USB-Soundkarte                               ebay         :  1,-
USB-to-RJ45 Ethernetkarte                    ebay         :  1,79
TDA-2030A Audio-Amplifier                    ebay         :  1,-
Arduino-Mega 2560-R3 (komp.)                 ebay         :  4,73
W5100-Ethernet-shield                        ebay         :  4,30
kurzes LAN-Kabel (0.3m)                    amazon         :  3,-
SD-Karte micro (für Rasp)                                 :  8,-
Raspberry 2 B+                                            : 35,-
                                                       __________
                                                           100,94

Pfennigartikel : Pinleisten, Bastelplatinen, Kabel usw...

Als Gehäuse habe ich auch ein Yamaha-Gerät genommen. Der Drehknopf dient bei mir als Lautstärkeregler. Es sind nur feste Sender auf 1..24 belegt. Somit hat man eine schnelle direkte Anwahl, kann aber nicht einfach mal einen neuen Sender hinzufügen. Zudem kann ich bei Bedarf meinen Bluetooth-Lautsprecher einschalten – was automatisch die Tonausgabe auf Diesen erweitert. Für diese Funktion habe ich mich entschieden einen Raspberry statt des TL-803 zu nehmen. Dann habe ich meine Songsammlung gleich noch mit auf die Flashkarte kopiert und kann mittels (Memory / FM ) zwischen Radio- und Sammlung hin und herschalten. Der Ein-/Ausschalter hat seine Funktion behalten – er steuert den IO-Pin eines Sonoff-Relais, welches sofort einschaltet jedoch verzögert abschaltet. So kann der Raspberry gemütlich runterfahren. Als Zusatz habe ich mir noch einen kleinen Lautsprecher in den Deckel des Gehäuses eingebaut, so dass das Gerät direkt als Radio benutzt werden kann.

Der erste Schritt war das Ausweiden des alten Gerätes. Beim TX-560 sieht das danach so aus.

Als nächstes wird die alte Anzeige ausgebaut. Stattdessen habe ich das 16×2 LCD eingesetzt. Jetzt noch ein Stück Pappe mit Panzerband umkleben damit es schwarz ist. So wird die freie Stelle abgedeckt – sonst kann man ins Innere schauen.

Als Nächstes habe ich eine dünne Holzplatte zurechtgeschnitten um diese als Grundplatte zu nutzen und keine elektrische Kurzschlüsse riskieren zu müssen.

Die Anschlusskabel der Tastatur, vom Ein-/Ausschalter und vom Drehencoder musste ich beim Ausbau der alten Grundplatine aus dem Klemmbuchsen ziehen. Um diese nun einfach an den Arduino anschliessen zu können habe ich mich entschlossen Stiftleisten anzulöten. So kann ich dann Breadboard-kabel benutzen.

Als nächstes habe ich den Arduino angeschlossen und meine Firmware draufgeladen. So konnte ich schonmal die Tastatur, Display, Drehknopf und Ethernet-shield prüfen.

Nach der Programmierung des Sonoff-Relais habe ich mich an die Verteilung der Komponenten gemacht.

Der kleine Verstärker nebst DC-DC Stepdown Netzteil und Lautsprecher kommen noch. Den Raspberry habe ich natürlich vorab schon mit einem Image bestückt. Ich habe gemäß radioduinoWRT auch den lighthttp benutzt und konnte so das web-interface auch nehmen. mpd & mpc sieht etwas anders aus, da ich ja zusätzlich einen bluetooth-Lautsprecher betreibe.

Damit die Teile nicht umherfliegen habe ich sie nun fixiert. Dafür einfach kleine Löcher in die Grundplatte bohren und mit 2,0×12-er Schrauben habe ich dann alles fixiert. Es hält sicherlich keinen Sturz aus – aber die normale Nutzung sollte nun klappen. Bei den Netzteilen und dem Rasp habe ich etwas Gummi untergelegt, so dass die Platinen etwas Luft drunter haben. Das Gummi stammt von einem Untersetzer.

Hier ist auch schon der Lautsprecher angeschlossen. Nix dolles – aber für nebenher Musik reicht er. Falls ich es etwas kräftiger haben will nehme ich den Bluetooth Lautsprecher.

Hier nochmal mit Beschriftung …

Die Benutzung eines 12V Netzteils (wie hier im Bild) hat sich als schlechte Wahl erwiesen. Der Arduino wurde sehr heiss und hat in regelmässigen Abständen neu gebootet. In der engültigen Version sind folgende Dinge anders.

  • 12V Netzteil durch 5V/2A Netzteil getauscht. Die Versorgung des Arduino dann nicht mehr via Buchse sondern einfach per 5V-Pin auf dem Board. Zudem konnte dadurch auch der DC/DC-Stepdown-wandler entfallen. Die Verstärkerplatine wird nun auch durch das neue Netzteil versorgt.
  • ENC28J60 wurde durch W5100 getauscht. Erstere Version hatte Probleme wenn in kurzer Zeit mehrere Telegramme gesendet werden sollten. Es war immer eine Pause von ca. 250ms notwendig.

Als letztes noch ein Loch in den Deckel – das geht prima mit einem Dremel. Da es ein Deckenlautsrecher ist, hat er Klemmen und ich muss mich nicht weiter um die Befestigung kümmern.