ich will heute mein erstes Selbstbauradio mit Bernhard's iRadioMini-Software vorstellen.
Die Grundkonstruktion stammt von educ8s.tv, der das Gehäuse für ein Arduino-UKW-Radio konstruiert hatte:
Die STL-Dateien gibt es hier:
Art Deco FM Radio with Arduino
Ein paar Kleinigkeiten habe ich mit tinkercad geändert. Hauptsächlich
Bohrungen für Gewindeeinsätze. Eine Schallwand und ein Innenchassis hab
ich mir angefertigt. Das Nokia Display PCD8544 wollte ich beibehalten.
Ich hätte auch ein 1,3" OLED mit SSH1106 Controller anpassen können. Ich
wollte aber den nostalgischen Flair des Nokia.
Der Ausdruck des Gehäuses ist mit über 8 Stunden recht zeitintensiv. Der
erste Versuch ist nicht sonderlich gelungen. Das Gehäuse hatte sich
übermässig verformt. Das war aber meine eigene Schuld. Hier ein Bild mit
dem 1,3" OLED.
Auch der zweite Druck ist nicht perfekt. Die Front ist etwas vernarbt. Der Flashforge braucht dringend ein neues Druckbett. Aber das Gehäuse ist gerade und masshaltig.
Auch das Chassis druckte ich zweimal, wegen Änderungen des mechanischen Konzeptes. Das TTGO T8 V1.7 Board ist auf eine kleine Lochrasterplatine aufgesockelt. Ich benutzte keine Dupont-Kabel, sondern lötete alle Verbindungen mit flexibler Litze. Der Encoder für die Senderwahl ist nur als einfacher Taster geschaltet und eine Drehbewegung schaltet die playlist immer nur in Vorwärts-Richtung.
das ist der aktuelle Stand. Das kleine Loch mittig zwischen den Knöpfen wird noch dem Anschrauben eines kleinen Emblemes dienen.
beim Einbinden des Nokia-Display in die Software hatte ich einige
Startschwierigkeiten. Mit massiver Unterstützung von Bernhard ist es
dann aber geglückt. Da ich erstmals den internen DAC zur Audioausgabe
benutze baute ich mir eine extra toolchain mit der IDF 4.3. Die Version
4.4 unterstützt den internen DAC nicht mehr. Das ursprünglich
vorgesehene NF Modul mit TDA2822M ersetzte ich später gegen ein XPT8871
Modul. Kaum zu glauben das ein D-Class Modul weniger Störgeräusche
abliefert als ein konventionelles TDA-Modul.
In Kürze die Besonderheiten des Nokia 5110-LCD:
nach der Anleitung von Bernhard ganz normal die lvgl-Bibliotheken installieren.
in menuconfig folgende Einstellungen vornehmen (die PIN-Belegung ist natürlich nicht verpflichtend)
in der iRadioMini/main/modules/display/lvgl/displayd_lvgl.c das Nokia Display ergänzen:
#if defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_IL3820 \
|| defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_JD79653A \
|| defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_UC8151D \
|| defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_SSD1306 \
|| defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_PCD8544
Die Tastenabfragen durch Auskommentieren dieses Blockes deaktivieren:
/* static void btn_event_cb(lv_event_t * e)
{
lv_event_code_t code = lv_event_get_code(e);
lv_obj_t * btn = lv_event_get_target(e);
if(code == LV_EVENT_CLICKED) {
// Add your btn code here
}
}
*/
diese 3 Blöcke ebenfalls auskommentieren oder löschen:
lv_obj_t * btn_next = lv_btn_create(lv_scr_act());
lv_obj_set_pos(btn_next, 100, 170);
lv_obj_set_size(btn_next, 60, 40);
lv_obj_add_event_cb(btn_next, btn_event_cb, LV_EVENT_ALL, NULL);
lv_obj_t * label = lv_label_create(btn_next);
lv_label_set_text(label, LV_SYMBOL_NEXT);
lv_obj_center(label);
lv_obj_t * btn_prev = lv_btn_create(lv_scr_act());
lv_obj_set_pos(btn_prev, 20, 170);
lv_obj_set_size(btn_prev, 60, 40);
lv_obj_t * label2 = lv_label_create(btn_prev);
lv_label_set_text(label2, LV_SYMBOL_PREV);
lv_obj_center(label2);
die Auflösung des LCD anpassen:
disp_drv.hor_res = 84;
disp_drv.ver_res = 48;
die Ausgabetexte für die kleine Auflösung anders positionieren:
/*Create a widgets on the currently active screen*/
lv_obj_t * label_prog = lv_label_create(scr);
lv_obj_align(label_prog, LV_ALIGN_CENTER, -5, -10);
lv_label_set_text(label_prog,"P");
lv_obj_t * label_prog_num = lv_label_create(scr);
lv_obj_align(label_prog_num, LV_ALIGN_CENTER, 5, -10);
lv_obj_t * label_url = lv_label_create(scr);
lv_label_set_long_mode(label_url, LV_LABEL_LONG_SCROLL_CIRCULAR);
lv_obj_set_width(label_url,250); lv_obj_align(label_url, LV_ALIGN_CENTER, 0, 5);
Jetzt wo im Groben alles funktioniert kann ich an die Feinheiten gehen.
ich wollte die Anzeige so minimalistisch wie im ersten post auf dem
Video, wo einfach nur in großen Buchstaben die Frequenz steht. Den Punkt
hab ich jetzt erreicht. Natürlich bin ich mir bewusst dass es als
einzige Information nur die Stationsnummer gibt, und dass es bei
Stationsnummern über 9 eng auf dem Display wird.
Als Schriftart habe ich per menuconfig Montserrat 46 eingestellt, und
die Laufschrift ausgeblendet. Das Nokia 5110 ist ein Dinosaurier,
einfarbig und mit einer für heutige Ansprüche klötzchenhafter Auflösung
von 84 x 48 Pixel. Dem trage ich hiermit Rechnung. Wenn ich
kontrastreiche, gestochen scharfe Informationen in geballter Fülle auf
1,3" haben will entscheide ich mich für ein modernes Display. Bei diesem
Radio habe ich mich für die Ausgabe entschieden die ich jetzt
realisiert habe.
..und noch ein Bild. Das kleine Pferdchen dient nicht nur der Zierde, sondern gibt dem Chassis mittels einer 2mm Schraube Halt im vorderen Bereich.
Keine Kommentare:
Kommentar veröffentlichen