Forum: Projekte & Code Projekt fertiggestellt: MP3 Player für Kinder auf ATTiny-Basis


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von ghmartin77 (Gast)


Angehängte Dateien:

Lesenswert?

Falls jemand Freude am Nachbau eines portablen und kindgerechten 
MP3-Player auf ATTiny-Basis hat, bedient Euch (sicher auch ein nettes 
Weihnachtsgeschenk):

https://github.com/ghmartin77/KidsMP3Player

Have fun :-)

Viele Grüße
ghmartin77

von Axel S. (a-za-z0-9)


Lesenswert?

Da fehlt noch der Schaltplan für den Anschluß der Tasten.

von ghmartin77 (Gast)


Lesenswert?

Soeben hinzugefügt

von PTx (Gast)


Lesenswert?

schönes Projekt! - wirklich toll!

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Die Mechanik ist wirklich niedlich.

Ich war schwer beeindruckt vom Titel "MP3 Player ... auf ATTiny-Basis".
Die Erkenntnis, dass der AVR nur das Tastaturinterface für ein fertiges 
MP3-Modul darstellt, sorgte dann für schlagartige Ernüchterung.

Die Tatsache, dass der AVR, genau wie im Schaltplan gezeigt, nicht mal 
einen Blockkondensator spendiert bekommen hat, macht das ganze Projekt 
passend für die heutige Zeit.

von ghmartin77 (Gast)


Lesenswert?

Marcus H. schrieb:
> Die Mechanik ist wirklich niedlich.
>
> Ich war schwer beeindruckt vom Titel "MP3 Player ... auf ATTiny-Basis".
> Die Erkenntnis, dass der AVR nur das Tastaturinterface für ein fertiges
> MP3-Modul darstellt, sorgte dann für schlagartige Ernüchterung.
>
> Die Tatsache, dass der AVR, genau wie im Schaltplan gezeigt, nicht mal
> einen Blockkondensator spendiert bekommen hat, macht das ganze Projekt
> passend für die heutige Zeit.

Naja, ich hoffe ja doch, dass in diesem Forum insofern Profis unterwegs 
sind, die klar wissen, dass sich mit 8k kaum ein MP3-Decoder 
implementieren lässt :) Insofern war mit dem Begriff "MP3 Player" die 
Holzkiste im gesamten gemeint. Hast aber schon recht, wenn man Worte 
klauben möchte, dann ist auf ATTiny-BASIS tatsächlich Unfug. Die 
eigentliche Arbeit erledigt der DFPlayer-Chip (Filesystem und 
MP3-Decoding, ja sogar 3W-Verstärkung für den Lautsprecher). Der ATTiny 
hat nur ein bissel Logik im Bauch, um die Tastatureingaben an den Player 
zu vermitteln und Minifeatures wie einen Sleep-Timer zu implementieren.

So what? Deshalb jetzt alles Kacke und die Welt schlecht, schlimm und 
schwarz? Ich denke nicht :)

Tipps nehm ich allerdings gern entgegen. Bisher lief der AVR auch ohne 
Kondensator mit der billigen China-Powerbank (, die eigentlich auch eher 
nur ein Akku ist,) stabil. Welche Gründe gäbs noch für nen Kondensator, 
außer halt, dass der Profindas halt so macht?

Grüße
ghmartin77

von mega161 (Gast)


Lesenswert?

ghmartin77 schrieb:
> Tipps nehm ich allerdings gern entgegen. Bisher lief der AVR auch ohne
> Kondensator mit der billigen China-Powerbank (, die eigentlich auch eher
> nur ein Akku ist,) stabil. Welche Gründe gäbs noch für nen Kondensator,
> außer halt, dass der Profindas halt so macht?

Ohne Worte ...

von Klaus R. (klaus2)


Lesenswert?

...die flachen breiten Schrauben stören das Gesamtbild etwas, den 
Lautstärkeknopf hätte ich etwas zentraler gesetzt (vll auch vorne drauf) 
- ansonsten SEHR schöne Umsetzung, vor Allem auch mechanisch sauber. Die 
notorischen Nörgler sind zu ignorieren, die können es ja gerne besser 
machen! Und fertige Module zu verwenden ist mehr als iO, denn nur das 
Ergebnis zählt, vor Allem wenn es so "schick" ist!

Klaus.

von Dussel (Gast)


Lesenswert?

ghmartin77 schrieb:
> So what? Deshalb jetzt alles Kacke und die Welt schlecht, schlimm und
> schwarz? Ich denke nicht :)
Der sogenannte "Clickbait" ist halt nicht so gern gesehen.

ghmartin77 schrieb:
> Bisher lief der AVR auch ohne
> Kondensator mit der billigen China-Powerbank (, die eigentlich auch eher
> nur ein Akku ist,) stabil. Welche Gründe gäbs noch für nen Kondensator,
> außer halt, dass der Profindas halt so macht?
Die Gründe dafür sind genau die, warum Profis das so machen.

Controller mögen Störungen nicht sehr gerne. Bei dir treten keine auf, 
deshalb funktioniert es, aber jemand anderes benutzt das Gerät 
vielleicht in einer anderen Umgebung.
Bei mir knackt es deutlich im Kopfhörer, wenn ich meine 
Schreibtischlampe ein- oder ausschalte. Da ist es nicht schlimm, weil 
danach neue Daten kommen und es weitergeht. Einen Controller kann eine 
solche Störung aber komplett aus dem Tritt bringen.
Denk dran, wenn eine Störung nur eine tausendstel Sekunde dauert, führt 
der Controller schon tausend oder mehr Taktzyklen undefiniert aus.
Ein Kondensator filtert solche Störungen zu einem gewissen Maße weg.

von ghmartin77 (Gast)


Lesenswert?

> Controller mögen Störungen nicht sehr gerne. Bei dir treten keine auf,
> deshalb funktioniert es, aber jemand anderes benutzt das Gerät
> vielleicht in einer anderen Umgebung.
> Bei mir knackt es deutlich im Kopfhörer, wenn ich meine
> Schreibtischlampe ein- oder ausschalte. Da ist es nicht schlimm, weil
> danach neue Daten kommen und es weitergeht. Einen Controller kann eine
> solche Störung aber komplett aus dem Tritt bringen.
> Denk dran, wenn eine Störung nur eine tausendstel Sekunde dauert, führt
> der Controller schon tausend oder mehr Taktzyklen undefiniert aus.
> Ein Kondensator filtert solche Störungen zu einem gewissen Maße weg.

Danke für die konstruktive Erläuterung, Dussel. Klingt vernünftig (und 
hat vor allem nicht diesen süffisanten Unterton wie in anderen 
Kommentaren :)).
Welche Größenordnung und/oder Kombinationen sind notwendig/sinnvoll? 
"Großer" Elektrolytkondensator für die "längeren" Störungen PLUS 
"kleiner" Keramikkondensator für die "schnellen" Störungen? Nur eins von 
beiden?
Braucht's das nur nah an VCC/Ground des ATTiny oder sollte das auch an 
VCC/GND des DFPlayers angebracht werden? In welchen Größen/Kombinationen 
würdest Du dort Kondensatoren empfehlen?

Darüber hinaus gibt es einige Stimmen im Netz, die besagen, der 
Lautsprecher sollte tunlichst mit einem möglichst großen 
Elektrolytkondensator (>1000uF) entkoppelt werden, statt ihn direkt an 
SPK1(+) und SPK2(-) anzuschließen. Was ist Deine Meinung zu dieser 
Behauptung?

Vorab schonmal vielen Dank für (D)eine Antwort.

Viele Grüße
ghmartin77

von Frank G. (frank_g53)


Lesenswert?

Dussel schrieb:
> Controller mögen Störungen nicht sehr gerne.

Das hatte ich heute bei meiner LED-Schreibtischleuchte mit 
Touch-Funktion gemerkt.
Ein Signalkabel vom Funktionsgenerator (5Mhz/5V) hatte das 
Kunststoffgehäuse der Lampe berührt.
Lichtfunktionen (drei Modi) wurden dadurch sehr schnell durchgeschaltet. 
Danach war die Lampe nicht mehr zu bedienen.

Gewartet bis der Akku leer war und USB angestöpselt. Aber es ging nichts 
mehr.
Alles auf Risiko: Gehäuse geöffnet und Controller kurzgeschlossen, in 
der Hoffnung er startet sein Programm neu.

Hat funktioniert, alles wieder prima.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

ghmartin77 schrieb:
> "Großer" Elektrolytkondensator für die "längeren" Störungen PLUS
> "kleiner" Keramikkondensator für die "schnellen" Störungen? Nur eins von
> beiden?

Die üblichen 100 nF direkt am µC sollten genügen. Dein Aufbau verwendet 
ja wohl einen Akku, also brauchst Du Dir um Störungen eines Netzteils 
keine Gedanken machen.

> oder sollte das auch an VCC/GND des DFPlayers angebracht werden?

Das Modul enthält selbst schon entsprechende Kondensatoren, hat aber 
auch keine Probleme damit, wenn Du auch ihm den üblichen 
100-nF-Kondensator spendierst.

> der Lautsprecher sollte tunlichst mit einem möglichst großen
> Elektrolytkondensator (>1000uF) entkoppelt werden

Das wäre der Fall, wenn er asymmetrisch angesteuert würde, d.h. wenn der 
Verstärker einen Audioausgang hätte, und der Lautsprecher zwischen 
diesem und GND angeschlossen würde.

Dein DFPlayer aber nutzt eine Brückenschaltung, und da wäre so ein 
Ausgangsentkopplunskondensator kontraproduktiv.


Solche Kondensatoren bräuchtest Du, wenn Du einen Stereoverstärker in 
Brückenschaltung (der dann also vier Lautsprecheranschlüsse hätte) an 
einen Kopfhörer anschließen wolltest (der nur drei Leitungen hat, je ein 
Lautsprechersignal und eine gemeinsame Masse).

von ghmartin77 (Gast)


Lesenswert?

Hallo Rufus,

viele Dank für Deine Antworten.

> Die üblichen 100 nF direkt am µC sollten genügen. Dein Aufbau verwendet
> ja wohl einen Akku, also brauchst Du Dir um Störungen eines Netzteils
> keine Gedanken machen.

Richtig. Kein Netzteil im Einsatz, nur ein/e Akku/Powerbank.

Kannst Du noch ein wenig erklären, warum dann "die üblichen 100nF" 
genügen sollten, damit ich über mein ungesundes Halbwissen hinauskomme?
Mein Verständnis bisher ist, dass die "kleinen" Keramikkondensatoren 
sinnvoll sind, um "schnelle" (evtl. rapide, in jedem Fall aber kurze) 
Einbrüche in der Spannungsversorgung abzufangen, wohingegen die 
höherkapazitiven (Elektrolyt-)Kondensatoren für "langsame" Einbrüche 
(quasi zur Stabilisierung von Schwankungen) dienlich sind. Letztere z.B. 
um bei einem Brückengleichrichter das Abfallen der durch die 
Wechselspannung verursachte Wellenbewegung der Spannung zu glätten.

Welche Störungen können wodurch in welchem Umfang in meinem Aufbau (eben 
ohne Netzteil und Anschluss an die Netzversorgung) induziert werden? 
Warum sind 100nF in diesem Kontext ausreichend, nicht aber 10nF 
ausreichend oder 1uF notwendig? Sind das empirisch ermittelte Werte oder 
kann man die benötigte Kapazität berechnen?

Bonusfrage :)
Beim Rumspielen und Erweitern des auf Github dokumentieren Standes mit 
Kondensatoren am AVR (auch größeren) in Verbindung mit dem Sleep-Modus 
des Gerätes kommt es zu folgendem Szenario (zumindest meine 
Interpretation): Nach Ablauf der Sleep-Timer-Zeit schaltet der AVR die 
Stromversorgung des DFPlayers aus und versetzt sich selber in den 
tiefstmöglichen Schlafmodus (ADC aus, SLEEP_MODE_PWR_DOWN). Damit wird 
der Stromverbrauch so klein, dass auch die Powerbank ihre 
Stromversorgung abschaltet. Das ist insofern prima, als dass das der 
sparsamste Zustand ist, den ich haben kann.
Allerdings lässt sich das Gerät durch Aus-/Einschalten nicht wieder 
starten. Meine Vermutung ist, dass der Kondensator am AVR genügend Strom 
liefert, um ihn mehrere Minuten am Leben zu erhalten, so dass er nicht 
neu gestartet wird, sobald der Strom vom Akku wieder verfügbar ist. 
Somit schläft der AVR fleißig weiter und das Gerät bleibt tot.
Entferne ich den Kondensator aus der Schaltung, klappt der Neustart 
problemlos. Auch ein 100nF-Kondensator funktioniert, wenn man ein 
Ein-/Ausschalt-Wartezeit von wenigen Sekunden einhält.
Wie würde man das lösen, wenn ein großer Kondensator zum Entstören nötig 
wäre? Kann man ihn durch eine geschickte Schaltung beim Ausschalten 
entladen, resp. beim Einschalten den Reset-Pin des AVRs kurz triggern?

Grüße
ghmartin77

von Nop (Gast)


Lesenswert?

ghmartin77 schrieb:

> Wie würde man das lösen, wenn ein großer Kondensator zum Entstören nötig
> wäre?

Normalerweise gehen Controller ja in den Tiefschlaf, aus dem man sie mit 
einem Interrupt wieder aufwecken kann. Neustart sollte eigentlich nicht 
nötig sein, weil die Latenz dann sehr lang wäre, und dann wäre der ganze 
Zustand des Tiefschlafes ja auch unsinnig.

von ghmartin77 (Gast)


Lesenswert?

Nop schrieb:
> Normalerweise gehen Controller ja in den Tiefschlaf, aus dem man sie mit
> einem Interrupt wieder aufwecken kann. Neustart sollte eigentlich nicht
> nötig sein, weil die Latenz dann sehr lang wäre, und dann wäre der ganze
> Zustand des Tiefschlafes ja auch unsinnig.

Jepp, man könnte den Controller mit einem Interrupt wieder aufwecken. 
Ich weiß aber nicht, wie ich das bei meinem Setup umsetzen könnte: Mein 
Ausschalter steht auf EIN, der Akku hat den Stromlieferdienst 
eingestellt, weil er keinen ausreichenden Verbrauch mehr festgestellt 
hat, der AVR döst im Tiefschlaf vor sich hin, weil er scheinbar aus dem 
Kondensator noch für geraume Zeit mit Energie versorgt wird.
Wenn ich jetzt per Aus-/Einschalten das System neu starte, schläft der 
AVR fröhlich weiter und das System bleibt deshalb unbedienbar.
Neustart des AVR ist für mich eine völlig valide Option, da dessen 
Startzeitlatenz im Vergleich zum DFPlayer völlig vernachlässigbar ist. 
Der Sleep-Modus ist auch nicht unsinnig, nur weil ich den AVR danach 
resette. Durch den Sleep-Modus kann ich signifikant Strom sparen, 
insbesondere, da die Powerbank sich sogar ganz abschaltet, wenn der AVR 
nur noch winzigste Mengen Strom zieht.

Die Lösung -ob Interrupt oder Reset-Triggern- ist aber vermutlich 
technisch die selbe. In beiden Fällen muss entweder der Reset-Pin oder 
ein definierter Interrupt-Pin kurzzeitig auf High gezogen werden. Frage 
ist, wie löst man das "in Elektronik", wenn der Ein/Aus-Schalter bedient 
wird. Oder alternativ -falls technisch einfacher- meine Ausgangsfrage: 
Wie entleere ich den Kondensator beim Ausschalten?

Viele Grüße
ghmartin77

von Herr M. (herrmueller)


Lesenswert?

Wechselschalter und Entladewiderstand.

von Klaus R. (klaus2)


Lesenswert?

Achtung: Die Powerbanken stellen NUR den Wandler ab, aber prinzipbedingt 
ist dann Ubatt = Uout!

Klaus.

von Mitleser (Gast)


Lesenswert?


von Klaus R. (klaus2)


Lesenswert?

Mitleser, afaik liest der nur WAV du Experte :)

"The SD audio player supports only RIFF-WAVE format sound files known as 
Microsoft wave file in LPCM, 8/16-bit, mono/stereo and upto 48kHz 
sampling rate."

Klaus.

von Horst M. (horst)


Lesenswert?

Mitleser schrieb:
> MP3-Player mit 8-Bit-uC:
>
> http://elm-chan.org/works/mp3/report_e.html
>
> http://elm-chan.org/works/sd8p/report.html (Mit Konvertierung)
>
> Geht schon.

Hier Beitrag "Software MP3 decoder for ATmega/ATxmega" gibt's einen (den 
einzigen?) echten MP3-Decoder für AVR8.

von ghmartin77 (Gast)


Lesenswert?

Angeregt durch eure Kommentare hat meine Recherche mit Tante Google 
folgende Seite zu Tage gefördert, die mir ganz eingängig scheint:
http://rn-wissen.de/wiki/index.php/Abblockkondensator

Danke für Eure (Rat)schläge :)

von Bentschie (Gast)


Lesenswert?

ghmartin77 schrieb:
> Allerdings lässt sich das Gerät durch Aus-/Einschalten nicht wieder
> starten. Meine Vermutung ist, dass der Kondensator am AVR genügend Strom
> liefert, um ihn mehrere Minuten am Leben zu erhalten, so dass er nicht
> neu gestartet wird, sobald der Strom vom Akku wieder verfügbar ist.

Das hatte ich auch schon. Grund bei mir war, das der µC im Sleep Modus 
problemlos mehrere Minuten aus dem Elko versorgt werden kann. Wenn Du 
jetzt beim Testen nicht jedesmal eine Viertel Stunde wartest, dann hat 
der µC noch gar nicht gemerkt das die Powerbank abgeschaltet hat. Der 
läuft einfach weiter in seinem Sleep Modus und ist mit sich zufrieden.

von Manfred F. (manfred_f)


Lesenswert?

Seltsam. Hörbert (http://de-de.hoerbert.com) sieht fast identisch aus. 
Zufall? Absicht? Nicht das die Firma noch Lizenzgebühren verlangt...

: Bearbeitet durch User
von Uli (Gast)


Lesenswert?

Sieht nach einem Nachbau aus, die Fragen von ghmartin77 deuten 
daraufhin.
Wenn es der Prototyp wäre von Hörbert wäre,würde ich diese Fragen nicht 
erwarten.

Ich werde mir das Teil nachbauen, denn 239,00 für Hörbert finde ich 
etwas übertrieben, da kann ich ja auch gleich eine Toniebox kaufen.

von Sepp Meier (Gast)


Lesenswert?


von Mampf F. (mampf) Benutzerseite


Lesenswert?

Manfred F. schrieb:
> Seltsam. Hörbert (http://de-de.hoerbert.com) sieht fast identisch
> aus.
> Zufall? Absicht? Nicht das die Firma noch Lizenzgebühren verlangt...

Das Wayback Archiv sagt, den Hoerbert-Player gäbe es schon seit April 
2016 ...

Gibt es ja öfters, dass gute Opensource-Projekte zu kommerziellen 
Produkten verwertet werden, da sie zB der GPL unterliegen oder garkeine 
Lizenz haben.

In diesem Fall wohl nicht.

von Uli (Gast)


Lesenswert?

Laut CT:
Seit Mitte Dezember 2014 ist der Musikspieler Hörbert auch als Bausatz 
verfügbar.

Also ist das Teil noch älter.

von Oliver S. (phetty)


Lesenswert?

Da wird sicher was anderes drin verbaut sein, bei diesem Kasten kommt 
man auf Materialkosten von 20-30€.

von Uli (Gast)


Lesenswert?

Meinst Du die hier vorgestellte Version oder den Hörbert?
Aber ich denke das beide vom Preis etwa gleich sein dürften.

Ich habe nur die von weiten aufgenommenen Bilder vom Hörbert gesehen und 
ich denke das da nichts wildes drauf ist.
Machen wir mal eine Fallstudie für das Teil:
- Kleiner Cortex M3/M4 (MP3 & Bedienung), SD, Spannungsregler
- interner DAC auf einen Treiber für den Speaker
- der ganzen Rest wie Gehäuse Taster, Batteriehalter, Speaker, ...

Der Prozessor und der Speaker sollten das teuerste sein, gefolgt vom 
Gehäuse.

Wäre nichts wildes, macht man zwar nicht mal so eben in der 
Mittagspause, aber wenn man (wie ich) MP3 und das ganze händling darum 
schon fertig hat könnte man das in wenigen Tagen bauen.
Nur ich werde es nicht machen, da baue ich mir lieber die hier 
vorgestellte Version und ich bin in 2-4 Stunden fertig.
Wenn es mich allerdings packt und im Kindergarten schreien plötzlich 
viele "Will ich auch haben" dann könnte ich mal darüber nachdenken, aber 
das sehe ich nicht.

von Flips (Gast)


Lesenswert?

Marcus H. schrieb:
> Die Mechanik ist wirklich niedlich.
>
> Ich war schwer beeindruckt vom Titel "MP3 Player ... auf ATTiny-Basis".
> Die Erkenntnis, dass der AVR nur das Tastaturinterface für ein fertiges
> MP3-Modul darstellt, sorgte dann für schlagartige Ernüchterung.
>
> Die Tatsache, dass der AVR, genau wie im Schaltplan gezeigt, nicht mal
> einen Blockkondensator spendiert bekommen hat, macht das ganze Projekt
> passend für die heutige Zeit.

Ich finde das aber durchaus sinnvoll. Der DFPlayer Mini kostet 1,5 Euro 
und hat schon einen SD-Slot + DAC + Stereo Audioverstärker integriert.

Ich finde es sinnvoll mit vorhandenen Modulen zu arbeiten. Das spart 
Zeit und ist effizienter.

Andererseits kann ich natürlich verstehen, wenn es einem um das Bauen 
als solches geht und man deshalb den umständlichen Weg gehen möchte.

Ich finde das Projekt ganz nett.

von ghmartin77 (Gast)


Lesenswert?

Nach all den Mutmaßungen: Ich suchte einen kinderkompatiblen MP3-Spieler 
und habe in diesem Zuge natürlich auch den Hörbert im Netz gefunden. Die 
Optik der einen Version, die ich mir gebaut habe, ist klar der des 
Hörberts nachempfunden (ist ja auch ein gefälliges Design). Ich hatte 
das Ergebnis aber wegen der Elektronik und Software eines einfachen 
MP3-Abspielers hier geteilt, nicht wg. der Holzoptik meiner 
Eigenbau-Variante drumrum. Ist ja ein Mikrocontroller-Forum und kein 
Schreiner-Forum, oder? :)

Wer sich für die Elektronik des Hörberts interessiert, findet hier 
hochauflösende Details:
https://www.heise.de/ct/zcontent/15/02-hocmsmeta/1420327506115668/contentimages/504_Hoerbertbausatz_neu_80896-sha-jg_PR.jpg

Mir gefiel weder Hardware (ATTINY-861) noch Bespielkonzept (MP3-Dateien 
werden auf dem PC dekodiert und als WAV auf das Gerät gebracht), zudem 
bastel und programmiere ich halt selber gern. Außerdem fehlte mir ein 
Sleep-Timer...

Auch an der Raspberry-Pi-Jukebox, die oben verlinkt ist, bin ich 
vorbeigekommen. Ebenso ein tolles Projekt, allerdings war mir für meinen 
Bedarf ein Raspberry leistungsmäßig und vom Energieverbrauch völliger 
Overkill, nur um ein bissel Musik zu machen.

Wie Flips anmerkte, schien mir auch der 1,2€-Mini-DF-Player die 
eindeutig bessere Wahl, um MP3s abzuspielen.

Zum Thema Kosten: Der Hörbert ist sein Geld allemal und absolut Wert. 
Die "Schreinerei" und auch die Software (auch wenn das letztlich nur ein 
paar Zeilen sind) hat mich etliche Tage gekostet, u.a. weil der DF 
Player "bescheiden" dokumentiert ist (falsche Doku, Doku in 
verschiedenen Varianten, fehlerhafte Libs) und eine insgesamt etwas 
seltsame API hat (Warum ruft man play(folderid, songid) auf, kriegt dann 
aber einen Callback, wenn das Lied zu Ende gelaufen ist, bei der eine Id 
mitgegeben wird, die nichts mit den Aufrufparametern zu tun hat?).

Ansonsten in Geld:
Ikea-Kiste Dragan 10€
Henkel aus dem Baumarkt 7€
Pappelsperrholz, 4mm 4€
Lautsprecher 8€
DF Player 1,2€
Attiny 1€
SD-Karte, 16GB 8€
Powerbank 10€
Elektrokleinscheiß 5€
Poti-Knopf 5€
Schrauben und Gekröse 5€

Roundabout 65€

Viele Stunden Bastel- und Programmierspaß: Unbezahlbar :)
Gut, letzterer ist euch mit dem fertigen Code auf GitHub genommen :)

Bleibt zusammengefasst:
Nein, ich war nicht der erste, der auf die Idee kam, mit einem 
Lautsprecher Töne abzuspielen, auch nicht der erste, der die brilliante 
Idee hatte, MP3s per Knopfdruck abzuspielen und auch den DF Player hab 
ich nicht selbst zusammengelötet. Vermutlich ist nicht mal die Kombi 
Attiny+DF Player einzigartig, sondern schlicht naheliegend.
Alles, was ich Euch vorstellen wollte, war der Code, der in der 
Attiny/DF-Player-Kombi einen funktionstüchtigen Player abgibt. Obacht 
für die Nörgler: der ist doch tatsächlich in einer Programmiersprache 
verfasst, die ich nicht erfunden habe und verwendet Bibliotheken aus 
offenen Quellen.

Grüße
ghmartin77

PS: Hier habt ihr noch eins meiner Projekte zum Zerpflücken: 
https://github.com/ghmartin77/SmartLEDLamp (und nein, ich habe das Licht 
nicht erfunden)

von Flips (Gast)


Lesenswert?

> Obachtfür die Nörgler

Nörgler gehören zu diesem Forum dazu wie die Weißwurst zu Bayern.
Dieses Forum ist quasi eine Sammelstelle für das Nörgeltum schlechthin 
:-)

Das ist völlig normal hier und kein Grund zur Besorgnis oder sich zu 
ärgern.

:-))

von Uli (Gast)


Lesenswert?

Warum sollte man über deine Lampe meckern, ist doch eine nette Idee das 
so zumachen.

Das Du ca. 65€ ausgegeben hast hätte ich nicht gedacht, aber Du hast da 
eininges aufgezählt wo ich sagen würde "ganz schön teuer".

Ich habe anscheinen meine Player auch zu teuer eingekauft (2,8€).
Nunja so ist das leben.
Uli

von Eike S. (heissezwerge)


Lesenswert?

Hey ghmartin77

Tolles Projekt!! Mir gefällt was du gemacht hast. Darf ich fragen, was 
du für Taster und Kappen verwendet hast? Ich habe nach den "original" 
Tastern vom Hörbert gesucht und habe die Serie 5G von APEM/MEC gefunden. 
Allerdings sind die Kappen dazu aktuell schwer zu bekommen (Je nach 
Farbe LZ = 20 Wochen!?). Der Druckpunkt von den "original" Tastern hat 
mir jedoch gut gefallen. Die knacken nicht gleich wie die 
normalen/billigen Kurzhubtaster. Wie ist das bei deinen?

VG heissezwerge

von M. K. (sylaina)


Lesenswert?

ghmartin77 schrieb:
> Falls jemand Freude am Nachbau eines portablen und kindgerechten
> MP3-Player auf ATTiny-Basis hat, bedient Euch (sicher auch ein nettes
> Weihnachtsgeschenk):
>
> https://github.com/ghmartin77/KidsMP3Player
>
> Have fun :-)
>
> Viele Grüße
> ghmartin77

Für Weihnachten wirds zwar eng aber zum Geburtstag für meine Nichte wird 
das auf jeden Fall umgesetzt. Super Idee, dank dir für dieses tolle 
Projekt!

von ghmartin77 (Gast)


Lesenswert?

Eike S. schrieb:
> Hey ghmartin77
>
> Tolles Projekt!! Mir gefällt was du gemacht hast. Darf ich fragen, was
> du für Taster und Kappen verwendet hast? Ich habe nach den "original"
> Tastern vom Hörbert gesucht und habe die Serie 5G von APEM/MEC gefunden.
> Allerdings sind die Kappen dazu aktuell schwer zu bekommen (Je nach
> Farbe LZ = 20 Wochen!?). Der Druckpunkt von den "original" Tastern hat
> mir jedoch gut gefallen. Die knacken nicht gleich wie die
> normalen/billigen Kurzhubtaster. Wie ist das bei deinen?
>
> VG heissezwerge

Die Serie, von der Du schreibst, sieht sehr gut aus... Ich hab lange 
gestöbert, bin dann aber letzten Endes bei den allgegenwärtigen 
Standard-China-Tastern ausgekommen, z.B.
https://de.aliexpress.com/item/Tactile-Push-Button-Switch-Momentary-Tact-Cap-12-x-12-x-7-3mm-KeyCaps-Assorted-Kit/32813514030.html

Knacken, billig wie sie sind, sind leider scheinbar nur in 7 Farben zu 
bekommen, aber die Caps haben zumindest einen überstehenden Ring, so 
dass sie nicht aus dem Gerät fallen können :)
Druckpunkt fand ich ok. Von den Maßen kriegst Du die ohne Ausfräsen 
maximal in 4mm dicker Platte unter. Dann gucken sie gerade noch soweit 
raus, dass man sie g'scheit drücken kann.

Grüße
ghmartin77

von Jan L. (ranzcopter)


Lesenswert?

ghmartin77 schrieb:
> PS: Hier habt ihr noch eins meiner Projekte zum Zerpflücken:
> https://github.com/ghmartin77/SmartLEDLamp (und nein, ich habe das Licht
> nicht erfunden)

Sehr schöne Lampe! Und nein, kein Zerpflücken oder Nörgeln :), bloss die 
Frage, ob das die "echte" funktionierende Codeversion ist? Ich hab's 
gerade mal versucht zu kompilieren, und nur mit Mühe hinbekommen:
- ohne ein zus. "include <IRrecv.h>" tut's nicht
- HeatColorsBlue_p u. HeatColorsGreen_p sind unbekannt (habe ich mal mit 
CRGB::Blue umschifft - habe leider k.A. von FastLed)
- WS2801_RBG gibt's nicht (habe mal WS2801_RGB eingesetzt)

Ich überlege, das für andere LED-Strippen umzustricken...

von Stefan F. (Gast)


Lesenswert?

Mich erinnert die Lampe stark an unseren Kratzbaum, den wir an ein Regal 
angebunden haben. Der hat auch drei Elemente.

von ghmartin77 (Gast)


Lesenswert?

Jan L. schrieb:
> ghmartin77 schrieb:
>> PS: Hier habt ihr noch eins meiner Projekte zum Zerpflücken:
>> https://github.com/ghmartin77/SmartLEDLamp (und nein, ich habe das Licht
>> nicht erfunden)
>
> Sehr schöne Lampe! Und nein, kein Zerpflücken oder Nörgeln :), bloss die
> Frage, ob das die "echte" funktionierende Codeversion ist? Ich hab's
> gerade mal versucht zu kompilieren, und nur mit Mühe hinbekommen:
> - ohne ein zus. "include <IRrecv.h>" tut's nicht
> - HeatColorsBlue_p u. HeatColorsGreen_p sind unbekannt (habe ich mal mit
> CRGB::Blue umschifft - habe leider k.A. von FastLed)
> - WS2801_RBG gibt's nicht (habe mal WS2801_RGB eingesetzt)
>
> Ich überlege, das für andere LED-Strippen umzustricken...

Hallo Jan,

ja, der Code ist der "echte". Allerdings brauchst Du ein paar Libs dazu, 
zu denen mir Dank Deiner Anmerkungen just einfällt, dass ich die 
teilweise gepatcht und auch nicht explizit aufgeführt habe:
1) Für das IRecv.h-Problem brauchst Du die Lib 
https://github.com/markszabo/IRremoteESP8266. Eigentlich solltest Du 
auch einen "Header not found"-Fehler für #include <IRremoteESP8266.h> 
erhalten haben.

2)Die WS2801-Lib ist jene hier: 
https://github.com/adafruit/Adafruit-WS2801-Library
Weil meine Stripes aus China eine interessante Aufschaltung hatte, 
musste ich in die Lib noch WS2801_RBG reinpatchen, das im Original nicht 
drin war.
Das kannst Du hier auf existierende Werte umstellen:
https://github.com/ghmartin77/SmartLEDLamp/blob/master/LEDMatrix.h#L6
(Solltest Du Stripes haben, die auch RBG aufgeschaltet sind, kann ich 
auch gern den Patch verfügbar machen).

3) HeatColorsBlue/Green hatte ich in die FastLED-Lib reingepatcht. Dein 
Workaround sollte vorübergehend funktionieren.

Danke für Deine Hinweise. Ich werde mal sehen, dass ich entsprechende 
Patches für die Libs mit ins GitHub-Repository packe.

Viele Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Stefan U. schrieb:
> Mich erinnert die Lampe stark an unseren Kratzbaum, den wir an ein
> Regal
> angebunden haben. Der hat auch drei Elemente.

;-)

Vielleicht hatte der Ikea-Designer auch Deinen Kratzbaum vor Augen als 
er Vidja schuff :)

Wenn Du den Code etwas anpasst, dass Du einen Laufpunkt hast, gehen die 
Miezen bestimmt ähnlich gut ab, wie bei einem Laserpointer :)

Grüße
ghmartin77

von Jan L. (ranzcopter)


Lesenswert?

ghmartin77 schrieb:

> Hallo Jan,
>
> ja, der Code ist der "echte". Allerdings brauchst Du ein paar Libs dazu,
> zu denen mir Dank Deiner Anmerkungen just einfällt, dass ich die
> teilweise gepatcht und auch nicht explizit aufgeführt habe:

Nee nee, die beschriebenen Probleme traten auf nachdem ich das halbe 
Dutzend Libs sukzessive nachgerüstet hatte...
Ich vermute mal, es läuf eher auf das „gepatcht“ hinaus ;-)
Wie gesagt, das Kompilieren lief letztlich durch, mit dem genannten 
Gefummel.

> 1) Für das IRecv.h-Problem brauchst Du die Lib
> https://github.com/markszabo/IRremoteESP8266. Eigentlich solltest Du
> auch einen "Header not found"-Fehler für #include <IRremoteESP8266.h>
> erhalten haben.

Ja. Danach gibt es einen Fehler, dass das IR-Objekt unbekannt ist. Bis 
man die Lib IRecv.h ebenfalls einbindet, was die Examples aus der 
IRremoteESP8266 im Übrigen auch machen... :)

>
> 2)Die WS2801-Lib ist jene hier:
> https://github.com/adafruit/Adafruit-WS2801-Library

Jo, vorhanden...

> Weil meine Stripes aus China eine interessante Aufschaltung hatte,
> musste ich in die Lib noch WS2801_RBG reinpatchen, das im Original nicht
> drin war.
> Das kannst Du hier auf existierende Werte umstellen:
> https://github.com/ghmartin77/SmartLEDLamp/blob/ma...
> (Solltest Du Stripes haben, die auch RBG aufgeschaltet sind, kann ich
> auch gern den Patch verfügbar machen).

Würde wohl normale WS2812 nehmen, oder lpd8806; deswegen wird das so 
vermutlich eh‘ nicht 1:1 laufen.

>
> 3) HeatColorsBlue/Green hatte ich in die FastLED-Lib reingepatcht. Dein
> Workaround sollte vorübergehend funktionieren.
>
> Danke für Deine Hinweise. Ich werde mal sehen, dass ich entsprechende
> Patches für die Libs mit ins GitHub-Repository packe.

Ja, hilfreich wäre auch jeweils eine kleine Info im Code, welche Lib 
genau es sein soll. Ich glaube z.B. ‚Websocket‘ gibt‘s auch diverse, die 
die betreffende .h haben.


>
> Viele Grüße
> ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Hallo Jan,

habe Dank Deiner Hinweise die Dokumentation und Sourcen auf GitHub 
überarbeitet. Damit die Threads inhaltlich nicht verwischen, habe ich 
hier einen separaten für die Lampe aufgemacht: 
Beitrag "SmartLEDLamp/Mood Light (IKEA Vidja-Korpus + WS2801 Stripes + ESP8266)"

Danke Dir für Dein Feedback!

Grüße
ghmartin77

von Uli (Gast)


Lesenswert?

In der neuesten Elektor ist ein CORTEX M4 Player drin.

Wenn ich mit den so ansehen dann liest sich das fast so wie meine 
Fallstudie vom 14.12..

Nur das ich mit der Software einiges weiter wäre wie die.

von Rainer U. (r-u)


Lesenswert?

Mir gefällt die Umsetzung auch sehr, vor allem wegen der Mechanik, wo 
ich eine Niete bin.. :-)

Die Stromversorgung  Standby  Wecken mit Interrupt hättest Du halt 
vorher genauer austesten können - Aber das lässt Bastelspaß und Raum für 
eine Version 2.0!

von Jörg P. (plitzi)


Angehängte Dateien:

Lesenswert?

Hallo allerseits,

zuerst mal veiel Dank an ghmartin77 für die Idee, die Umsetzung und vor 
allem für das Teilen.

Ich habe der Player jetzt für meinen Enkel (mechanisch) nachgebaut und 
scheitere jetzt an der Programmierung des Controllers. Das ist mir schon 
ziemlich peinlich, da ich mich nicht gerade als Anfänger in Sachen 
Elektronik und Mikrocontroller einschätzen würde, aber mit Arduino habe 
ich (bisher) nichts gemacht.

ich habe mir also die aktuelle IDE heruntergeladen und installiert, die 
mitgelieferte ino-Datei geladen und versucht zu compilieren. Die erste 
fehlermeldung ist, dass er "Softwareserieal.h" nicht findet. Ich dachte, 
die ist bei Arduino dabei? Also die zugehörigen Dateien aus dem 
Arduno-Pfad in eine Zip-Datei gepackt und dann als Bibliothek wieder 
eingebunden (so hatte ich mir das von der Bibliothek für den DFPlayer 
abgeschaut). Jetzt kommt der Compiler schon ein ganzes Stück weiter, 
beschwert sich aber nun (unter anderem) über mehrfache Definitionen der 
Funktion "Softwareserial::read". Irgendwie bin ich da wohl zu blöd bzw. 
steige nicht durch das sicherlich vorhandene System bei den Bibliotheken 
durch.

Ich möchte als Hardware nicht einen einzelnen Attiny85 verwenden sondern 
habe hier noch ein paar Digispark-Module mit diesem Prozessor liegen und 
habe diese auch (hoffentlich richtig) als Plattform angegeben (mit 
Boardinformationen von Digispark). Aber daran sollte doch das einfache 
compilieren nicht scheitern, oder? Die CPU stimmt ja.

Kann mir bitte einer der Arduino-Freaks da auf die Sprünge helfen. Ich 
würde (diesmal) gern die Software "out of the box" verwenden.

Als "Gegenleistung" biete ich schon mal ein erstes Bild meiner 
Umsetzung.

Jörg

von Klaus R. (klaus2)


Lesenswert?

...sehr schöne Umsetzung - ich finde die Schrauben in den Ecken hübsch, 
die am Tastenfeld hätte ich aber weggelassen (und das anders gelöst). 
Hast du das Gehäuse slebst gemacht, ist das Bambus?

Klaus.

von Jörg (Gast)


Lesenswert?

Hallo,

vielen Dank für das Lob. Das Gehäuse ist das vom Initiator auch 
verwendete "Kistchen" aus dem schwedischen Möbelhaus. Allerdings habe 
ich die kleinere Kiste aus dem Set verwendet und auch den Original-Boden 
als Front genutzt. Ist also Bambus und das habe ich dann auch an einigen 
Stellen zu spüren bekommen. Das große Loch für den Lautsprecher mit der 
(wahrscheinlich nicht mehr sonderlich scharfen) Lochkreissäge war eine 
Geduldsprobe, die ich allerdings leider nicht ganz betsanden habe. Im 
Ergebnis ist die Frontplatte dabei leicht gerissen. Beim genauen 
Hinsehen ist das sicher auch erkennbar. Als Rückwand habe ich übrigens 
den Boden der flachen Schale aus dem Set "aufbereitet". Damit bleibt die 
Optik "stimmig".
Die Schrauben an der Tastatur tragen die Tastenleiterplatte. Was 
besseres ist mir nicht eingefallen. Ja, es sind ziemlich viele 
Schrauben, aber die mechanische Bearbeitung hat so schon ziemlich viel 
Zeit in Anspruch genommen. Beim zweiten wirds besser ;-))

Jörg

von Jörg P. (plitzi)


Lesenswert?

Hallo,

ich frage hier nochmal vorsichtig nach, ob mir jemand die Hex-Datei für 
dieses Projekt "bauen" kann, ich bin da offensichtlich zu blöd für. Und 
ehe ich das ganze außerhalb des "Arduino-Biotops" selbst zurechtschmiede 
oder nachbaue, würde ich es mir hier ausnahmsweise mal einfach machen 
wollen. Und im Github-Archiv ist leider keines drin.

Jörg

von Stefan F. (Gast)


Lesenswert?

Zuerst braucht man den Quelltext und eine Angabe, mit welcher Toolchain 
es compiliert werden muss. Oft spielt die konkrete Version eine Rolle.

Verlinke diese Sachen hier, dann kann man Dir weiter helfen.

Außerdem solltest du dich registrieren, damit man dich persönlich 
kontaktieren kann. Erfahrungsgemäß laufen solche Anfragen von Gästen 
nämlich ins Leere, so dass jede Mühe reine Zeitverschwendung ist.

von Jörg P. (plitzi)


Lesenswert?

So, ich habe es jetzt hinbekommen. Wo genau der oder die Fehler waren, 
kann (und will) ich (vorerst) nicht nachvollziehen. Freunde werden 
Arduino und ich aber wohl erstmal nicht ;-)

Vielen Dank nochmal an den "Spender".

Jörg

von F. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich habe den Player leicht modifiziert auch aufgebaut. Ich habe einen 
Arduino Pro Mini 3.3V verwendet (hatte ich noch da) und nur 9 Taster. 
Eingebaut habe ich das Ganze in eine Kiste in der Geschenkkiste (war Mal 
Grappa drin).
Vielen Dank fürs Teilen des Projektes.

von ghmartin77 (Gast)


Lesenswert?

Hallo Jörg,
hallo F.,

sehr, sehr schöne Umsetzungen! Was mir an dem Teil am meisten gefällt, 
dass es den großen (Spiel-)Kindern Freude beim Bauen macht und den 
kleinen beim Nutzen... Win-Win :)

Hatte übrigens auch zunächst versucht, den Boden der Bambuskiste zu 
nutzen, aber direkt beim Bohren des zweiten Button-Lochs, ist das spröde 
Zeug zersplittert.

Wenn Euch beim Bau oder Code irgendetwas aufgefallen ist, was für die 
Nachwelt ins Git-Repo einfließen sollte, lasst es mich bitte wissen...

Ansonsten wünsche ich den Beschenkten leuchtende Kinderaugen und viel 
Freude!

Viele Grüße
ghmartin77

Beitrag #5379170 wurde von einem Moderator gelöscht.
von Uli (Gast)


Lesenswert?

Nach langer Pause wollte ich meine Player nun auch endlich fertig 
machen.
Bis Mittwoch Abend muss das fertig sein!

In der Mini SD Card File Structure sind im Ordner /ADVERT einige Files 
drin.

Gibt es die schon fertig irgendwo zum laden oder muss ich mir diese 
selber bauen?

Viele Grüße, Uli

von Klaus R. (klaus2)


Lesenswert?

...unter Zeitdruck klappt sowas eh immer am besten und es gibt kaum 
unangenehme Überraschungen (da man ja keine Zeit hat und Kollege Murphy 
da sehr rücksichtsvoll ist)... ;)

Viel Glück! Klaus.

von Uli (Gast)


Lesenswert?

Musik spielt das Teil schon nur die ganzen Sleep Sachen habe ich noch 
nicht getestet. Und dafür sind ja anscheinen die ganzen Files die ich 
suche.

Ich hoffe das es an einer vollen SD Karte liegt, aber bei mir braucht 
das System gut 90 Sekunden bis ich mal aus dem Setup raus komme.

Ich erwarte jetzt nicht mehr soooo viele Überraschungen.

VG, Uli

von Stefan F. (Gast)


Lesenswert?

> In der Mini SD Card File Structure sind im Ordner /ADVERT einige
> Files drin.

Advert wie "Advertising" (=Werbung)?

von Uli (Gast)


Lesenswert?

1
/ADVERT
2
    0001.mp3 - Audio file "Sleep Timer OFF"
3
    0002.mp3 - Audio file "Sleep Timer 5 mins"
4
    0003.mp3 - Audio file "Sleep Timer 10 mins"
5
    0004.mp3 - Audio file "Sleep Timer 15 mins"
6
    0005.mp3 - Audio file "Sleep Timer 20 mins"
7
    0006.mp3 - Audio file "Sleep Timer 25 mins"
8
    0007.mp3 - Audio file "Sleep Timer 30 mins"
9
    0008.mp3 - Audio file "Sleep Timer 35 mins"
10
    0009.mp3 - Audio file "Sleep Timer 40 mins"
11
    0010.mp3 - Audio file "Sleep Timer 45 mins"
12
    0011.mp3 - Audio file "Sleep Timer 50 mins"
13
    0100.mp3 - Audio file "Mode Set Sleep Timer"
14
    0200.mp3 - Audio file "Continuous Play ON"
15
    0201.mp3 - Audio file "Continuous Play OFF"
16
    0300.mp3 - Audio file "Playlist Loop ON"
17
    0301.mp3 - Audio file "Playlist Loop OFF"
18
/MP3
19
    [Copy same content as in /ADVERT here]

von ghmartin77 (Gast)


Lesenswert?

Die lange Startdauer liegt vermutlich an der vollen SD-Karte. Der Code 
scannt beim Start die Ordner, um zu wissen wie viele Files hinter jedem 
Knopf liegen. So wird der Loop durch die Tracks beim Knopfdrücken 
schnell(er).
Dafür kostet dann leider die Initialisierungsphase etwas mehr Zeit.
Was die Audio-Tracks angeht, könntest Du diesen Dienst nutzen: 
https://www.text2speech.org/de.html

@Stefanus: Jepp, Advert wie Advertising. Hat mit den Strukturen zu tun, 
die der DFPlayer benötigt. Die Firmware sieht vor, dass man laufende 
Audios nur mit Dateien aus dem Advert-Ordner unterbrechen kann, so dass 
das laufende Audio danach an der Stelle fortsetzt, wo es unterbrochen 
wurde.
Da das Teil Files unter Advert nur abspielt, wenn gerade ein Audio-Track 
läuft, benötigt man alle Files als Kopie nochmal im Ordner MP3, damit 
man die Meldungen auch abspielen kann, wenn gerade kein Audio-Track 
läuft.

Grüße
ghmartin77

von Uli (Gast)


Lesenswert?

Mit einer frischen SD-Karte mit allem was ich haben will dauert es nur 
noch gut 10 Sekunden bis es los geht.
Waren wohl die 5GB Bilder und MP3 auf der alten Karte, hatte das alles 
extra in ein Verzeichniss verschoben, nunja jetzt geht es.

Die Audio Dateien habe ich mir erzeugt und die gehen auch.
Ersetzen werde ich die aber später noch mal, die Aussprache ist ja 
schlimm.

Jetzt muss ich nur noch den Sleep testen, Gehäuse fräsen, alles zusammen 
schrauben und noch ein Bild fürs Forum machen.

VG, Uli

von Klaus R. (klaus2)


Lesenswert?

T-15h ;)

Klaus.

von Uli (Gast)


Lesenswert?

T-1h -> fertig!

Bilder kommen noch, sind aber wie zu erwarten nicht sehr spannend.

von Klaus R. (klaus2)


Lesenswert?

...da der Kreativität des Gehäuses keine Grenzen gesetzt sind, immer her 
damit! Glückwunsch!

Klaus.

von Uli (Gast)


Lesenswert?

Bin gerade dabei ein zweites Gerät fertig zu machen und habe da ein 
Problem.

Ich habe 2 verschiedene DF-Player gekauft.
Auf einem steht MP3-TF-16P  wie bei ghmartin77, der geht.
Auf dem anderen DF-Player, der will nicht immer richtig starten.

An der Hardware drummherum scheint es nicht zu liegen, habe die Player 
gewechselt und es beleibt dabei der DF-Player will nicht richtig.

Wenn der mal gestartet ist dann spielt die Musik auch ab, nur das ist 
selten.

Habe schon 100uF direkt daran gehangen, hat aber auch nicths gebracht.


Hat jemand von euch auch so was erlebt und dazu eine Lösung?

VG, Uli

von Klaus R. (klaus2)


Lesenswert?

Foto beider Player zum HW Vergleich?

Klaus.

von Uli (Gast)


Lesenswert?

Fotos helfen da nicht, der einzige sichtbare Unterschied ist der 
Aufdruck und das bei dem "DF-Player" die Beschriftung der IC's entfernt 
wurde.

Ich habe mal ein Labornetzteil (5V) angeschlosen, direkt am Modul!
Dabei kann ich einbrüche von gut einem Volt beim Softreset von diesem 
Modul erkennen, und das ohne Speicher OSZI.
Scheint aber zu reichen um die 2,7V vom Prozessor zu treffen.

Das Andere Modul ist da deutlich humaner.

Ich glaube das ich mir bei dem 1. Lieferanten einfach noch ein Modul 
kaufen sollte und den anderen als Schrott entsorgen kann.

Außer jemand halt da noch eine Idee.


Was ich beim Lesen über diese Player gesehen habe so sollte man den Pin 
1 vom Verstärker (nicht Modul) besser von seinem Dauer-An mit einem 
Draht vom Prozessor schalten lassen.
Dann könnte man den erst einschalten wenn das ganze Setup durch ist und 
beim Poweroff den wieder abschalten.

VF, Uli

von ghmartin77 (Gast)


Lesenswert?

Uli schrieb:
> Was ich beim Lesen über diese Player gesehen habe so sollte man den Pin
> 1 vom Verstärker (nicht Modul) besser von seinem Dauer-An mit einem
> Draht vom Prozessor schalten lassen.
> Dann könnte man den erst einschalten wenn das ganze Setup durch ist und
> beim Poweroff den wieder abschalten.

Jepp, so was ähnliches habe ich im Netz auch gefunden, probiert und 
verworfen: 
http://work-now-dammit.blogspot.com/2016/08/dfplayer-mp3-module-power-onoff-clicks.html

Hier wird der Busy-Output-Pin direkt mit dem Enable-Pin für den 
Verstärker verbunden. Klappt auch, führt aber zu einem (in meinen Ohren) 
unangenehmen Knacken im Lautsprecher, sobald der Verstärker aktiviert 
wird. Wg. der Busy-Pin-Verbindung war das dann mit jedem frisch 
gestarteten Audio-Track der Fall, was mich so nervte, dass ich es wieder 
umgelötet habe.
Wenn man das dediziert über einen Pin des ATTiny steuert kriegt man das 
sicher etwas "feinfühliger" hin, wann der Verstärker deaktiviert wird, 
die Frage ist aber, ob das sooo viel Strom spart.

Zu Deinem anderen Modul: IMHO lohnt sich für 2,23€ der Forschungsaufwand 
nicht, wenn Du eine neue Lieferung abwarten kannst --> Ich würde auch 
die "Tonne und neu bestellen"-Strategie fahren...

Grüße
ghmartin77

PS: Du wolltest uns noch Photos von Deinem Werk zeigen... :)

von Uli (Gast)


Lesenswert?

Ein neues Modul ist bestellt.

Fotos mache ich wenn ich das Teil mal von den Kindern bekomme, die 
weigern sich das Teil herzugeben. Dabei müsste ich auch noch ein Loch 
nachfräsen, damit ich den Lautstärke Regler mal richtig fest schrauben 
kann.

Das mit dem umsetzen auf den Busy Pin habe ich auch probiert, das macht 
alles nur schlimmer (Plop zwischen den Titeln). Man muss das schon über 
den Prozessor machen.
Man soll schon einige mA (ca. 15mA) sparen wenn ich die Messungen im WWW 
glauben darf.

VG, Uli

von ghmartin77 (Gast)


Lesenswert?

Uli schrieb:
> Man soll schon einige mA (ca. 15mA) sparen wenn ich die Messungen im WWW
> glauben darf.

So habe ich es auch gelesen. Aber wann und für wie lange kannst Du in 
diesen Sparmodus und dann wirklich 15mA sparen? Die paar Sekunden beim 
Systemstart machen den Brei nicht fett. Zwischen einzelnen Tracks machst 
Du den Verstärker wg. des Plopps/Knacken auch nicht aus (das wird ja 
nicht weggehen, nur weil der Signalgeber nun der Prozessor ist). Bliebe 
noch nach konfigurierbarer Pause nach Abspielen des letzten Tracks (wenn 
weder Loop noch Sleeptimer eingestellt ist; Mit Sleeptimer wird der DAC 
und Verstärker sowieso per Software ausgeknipst).
Ist der verbleibende Anwendungsfall fürs Stromsparen interessant genug?
Eine weitere Schwierigkeit kommt hinzu: Am ATTiny ist nur noch ein Pin 
frei, der Reset-Pin. Wenn Du den nutzen willst, brauchst Du zum Flashen 
danach eine High-Voltage-"Konfiguration", was echt lästig für's 
Entwickeln ist :)
Ich hatte mit dem Pin rumgespielt und mittels Transistor die Stromzufuhr 
zum DFPlayer komplett abgeschaltet (also mehr noch, als nur den 
Verstärker), habe aber u.a. wg. der nervigen Flashproblematik ganz 
schnell den Herrn Knuth in mein Ohr flüstern hören: Premature 
optimization is the root of all evil!

Dann wird halt der Akku einmal mehr geladen :)

Außerdem geht auch der Spannungswandler in der Powerbank aus, wenn zu 
wenig Strom gezogen wird (siehe Diskussion oben), was dazu führt, dass 
man das Teil nur noch durch Ein-/Ausschalten wiederbeleben kann (wie 
beim Sleep-Timer halt).

Grüße
ghmartin77

PS: Ja, ich weiß, das Reset-Pin-Argument ist ein schwaches. Wenn man die 
Volume-Pots geschickter verkabelt, braucht man nur einen Pin und hätte 
einen weiteren wieder frei...

von Uli (Gast)


Angehängte Dateien:

Lesenswert?

Hier ein Bild von heute morgen.
Wie man sehen kann ist der Lautstärkeregler noch nicht richtig fest und 
man sieht noch 3 Löcher die falsch gebohrt wurden. Nunja 1. Gerät.
Das ist das kleine Gehäuse, von den 2 IKEA Boxen.

Das 2. Gerät habe ich gleich richtig gefräst, das habe ich das grosse 
Gehäuse genommen.

Das mit dem Reset-Pin hatte ich nicht bedacht.
Du hast recht das nur wenige Ecken gibt wo man den Verstärker abwürgen 
kann.
Aber er wird nicht abgeschaltet durch das Modul, auch nicht im 
Powerdown, Standby oder sonst was, der ist fest auf AN verdrahtet.

VG Uli

von ghmartin77 (Gast)


Lesenswert?

Hi Uli,

das sieht sehr gut aus. Ich frag mich ja noch, womit man dieses spröde 
Bambus-Zeugs gebohrt kriegt. Bei meinen handwerklichen Fähigkeiten 
(und/oder Werkzeug) zersplittert mir das immer :)
Hut ab! Gefällt gut mit den deutlich weniger Schrauben.
Wie klappt das mit dem Griff mittig? Ich hatte meinen extra versetzt 
montiert, weil der Schwerpunkt durch den Lautsprecher schwer in dessen 
Richtung geht.

Meine Modulabschalttheorie geht so:
Der DFPlayer hängt -wie Du schreibst- dauerhaft an VCC und GND. Wenn der 
Player vom Sleep Timer ausgeschaltet wird, wird hier der DAC 
deaktiviert:
https://github.com/ghmartin77/KidsMP3Player/blob/master/KidsMP3Player/KidsMP3Player.ino#L56
Das führt zu deutlich weniger Stromverbrauch (zumindest wenn mein 
China-USB-Durchfluss-Messgerät halbwegs verlässliche Zahlen raushaut 
:)). Zusätzlich geht der ATTiny in den Tiefschlaf. Die 
Stromverbrauchsreduktion reicht bei mir in Summe aus, um den 
Spannungswandler meiner Powerbank auszuknipsen. Damit bricht die 
Spannung ein auf deutlich unter 5V und es gibt keine ausreichende 
Versorgungsspannung mehr für den DFPlayer. In der Powerbank steckt 
vermutlich so ne 18650er und die liefert ohne Spannungsregler halt nur 
noch ~3.irgendwas Volt, also ganz am unteren Ende der Spec des 
DFPlayers. Ob der dann wirklich damit keinen Strom mehr verbraucht, kann 
ich allerdings nicht sagen...

Grau ist alle Theorie und das ganze Gebastel nur Hobby :) Vielleicht 
kann jemand aus dem Forum hier was fundiertes zur Thematik beitragen?

Grüße
ghmartin77

von Klaus R. (klaus2)


Lesenswert?

...das mit dem Bambus frage ich mich auch. Die sehr schlichte Umsetzung 
gefällt! Woher der Griff?

Klaus.

von Ralf L. (ladesystemtech)


Angehängte Dateien:

Lesenswert?

Klaus R. schrieb:
> Die sehr schlichte Umsetzung
> gefällt!

Mir auch. Vor 30 Jahren gab's mal bei Conrad ein 12-Melodien IC, daraus 
habe ich mir so eine Musikbox mit Innen- und Außenbeleuchtung gebastelt. 
Die Abspielgeschwindigkeit konnte auch noch eingestellt werden.

Oder sollte ich das besser in den Parallelthread verschieben 
(Alte_Elektronik_Basteleien)?  :-)

von Klaus R. (klaus2)


Lesenswert?

Geiles Mopped!

Klaus.

von Uli (Gast)


Lesenswert?

Das habe ich einfach auf einer Fräse mit einem 3mm Fräser gemacht.
Den Nullpunkt hatte ich mir zuvor markiert und das Teil dann etwas fest 
geklemmt und zur Sicherheit noch festgehalten.
Da gab es überhaupt keine Probleme, musste sogar das Programm beim 
kleinen Kasten 2 mal drüber laufen lassen, weil mir 0.2mm fehlten um 
durch den Deckel sauber zu kommen.

Der Deckel von dem grossen Gehäuse war etwas locker und darum hatte ich 
beide vorher mit Holzleim fest geklebt. Ist auch für die Akustik besser.

Nur bei der Oberseite hatte ich die Innereien vergessen und dann noch 
vergessen die Seite zuwechseln, darum die 3 Fehlbohrungen.


So gesehen könne ich von Gehäuse aus in die Serienproduktion gehen.
Nur die Lochrasterplatinen, Gewerbe, WEEE, ....  hindern daran.


Das mit dem Abschalten habe ich auch ersteinmal verschoben, komme 
sowieso nicht an das Gerät, das Teil läuft zur Zeit noch ca. 10h am Tag.
Hoffe mal das die neuen Player in 3 (2-4) Wochen kommen, dann kann ich 
den 2. auch fertig machen.

VG , Uli

von Uli (Gast)


Lesenswert?

Der Giff kommt auch von IKEA, der ist mittig weil meine Frau sagte das 
der da hin soll. Bei der grösse stört irgentein Gewicht im inneren nicht 
wirklich, durch den Akku ist das schon gut verteilt.

von Uli (Gast)


Lesenswert?

Noch zum Gewicht:
Da ich nur einen Visatron SC4.7ND verbaut habe bringt der auch nicht so 
ein Gewicht in die Kiste.

Der ist übrigens laut genug, ich habe den schon anständig runter regeln 
müssen.
Vom Klang hatte ich nichts (Blecheimer) erwartet und bin positiv 
überrascht worden.
Der Player und der Lautsprecher arbeiten für den Preis gesehen recht 
anständig. Hat zwar nichts mit HIGHEND zu tun, aber das erwartet hier ja 
auch niemand.

Hatte mal einige Kauf-Player im Fachgeschäft mir angehört und war 
teilweise enttäuscht wie die Klingen, da hätte ich oft mehr erwartet, 
besonders wenn ich dann auf das Preisschild gesehen habe.

Aber so ist das halt, marketing siegt oft über Qualität.

VG, Uli

von Christian S. (chris02)


Lesenswert?

Ein kleiner Beitrag von mir.

Die Taster, die im org. Aufabu verwendet werden sind Apem Multimec 3F, 
bzw die 5G gehen auch.

Weiter oben wurde das schon mal in Erwägung gezogen.

Reichelt bietet einige Tasterkappen, vollständiges Farbensortiment 
(zumindest für den 3F) hat Mouser im Angebot.

Tasterkappe für (xx=Farbcode):
3F: 1Dxx
5G: 1DSxx

Farbcodes:
58  metal bordeaux
08  red
30  ultra blue
02  green
34  melon
40  dusty blue
00  blue
38  noble red
32  mint green
50  metal dark blue
57  metal dark grey

Vollständige Farbübersicht im Datenblatt beim Hersteller
https://www.apem.com/de/1ds-232.html

Meiner Meinung nach ein sehr schöner Vorteil, bei den Tasterkappen: Sie 
haben einen Durchmesser von 9,6mm und benötigen eine 10mm Bohrung, was 
die Sache recht einfach macht.


Selbst beim Nachbau ist es, mit den org. Komponenten schon recht 
ostenintensiv.

von Friedhelm E. (fredfromflett)


Lesenswert?

Hallo alle zusammen

Eigentlich ein Ärgernis der Woche oder die Temperatur vernebelt mir 
alles

Ich versuche auch gerade so einen Player ans Leben zu kriegen,
aber mit dem Dateisystem auf der SD Karte stehe ich auf Kriegsfuß.
Gibt es vielleicht irgendwo ein Muster zum runterladen?  Die Erklärungen 
auch im DaBla habe ich gelesen, es kommt aber immer "File Error"

oder kann mir sonst noch einer auf die Sprünge helfen.

Gruß fredfromflett

von Uli (Gast)


Lesenswert?

Was ist den daran unklar?
Das ist doch alles gut beschrieben, wenn Du das hier nachbaust!
Schau doch nochmal in die Readme.md rein da steht es eigentlich sehr gut 
drin.

01/001.mp3
01/002.mp3
..

11/001.mp3

ADVERT/.... und mp3/.... sind da schon etwas kompizierter, aber auch ich 
habe es geschaft die paar Dateien anzulegen.

von Friedhelm E. (fredfromflett)


Lesenswert?

Genau so hab ich das gemacht.
aber das Ding sagt halt "File Error"
oder kommet es auf die Reihenfolge an, in der man die Dateien auf die SD 
kopiert hat?
ich stell das ganze nachher hier mal rein.

von Uli (Gast)


Lesenswert?

Da bin ich raus, da habe ich keine Ahnung.

Ich habe alles auf dem PC zusammen gestellt und einfach alles kopiert.
Da hatte ich keine Probleme.

Ich hatte mal irgendwo gelesen das die FAT Einträge die Reihenfolge 
bestimmen sollen, wenn den so ist dann habe ich wohl alles richtig 
gemacht.

von Oliver S. (phetty)


Lesenswert?

Es gibt ein Tool dirsort  damit kann man die Einträge auf sdkarten 
sortieren.  Braucht man auch für billige mp3 Autoradios.

von ghmartin77 (Gast)


Lesenswert?

Bist Du mit Deiner SD-Karte im Rahmen der Spec des DF-Players?
...supports FAT16 , FAT32 file system, maximum support 32G of the TF 
card...

Was auch noch sein könnte ist, dass er den Kartentyp einfach nicht 
"mag". Hast Du's schonmal mit einer anderen Karte (anderer Hersteller) 
probiert?

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

@Friedhelm E.:
Problem behoben oder kann Dir noch geholfen werden?

von Florian R. (flo1234)


Lesenswert?

Hallo,
Ich bin dabei, einen weiteren Player aufzubauen. Ich habe das Problem, 
dass zwar das Abspielen von MP3s funktioniert, jedoch kann ich während 
des Abspielens weder die Lautstärke verändern noch eine andere Datei 
auswählen. Es scheint als ob der Player in folgender Zeile hängt:
1
curTrackFileNumber = readPlayerCurrentFileNumber(READ_RETRIES);
Hat vielleicht jemand eine Idee, woran das liegen könnte?

von ghmartin77 (Gast)


Lesenswert?

Hi Florian,

spaßig, welch verrückte Fehlerbilder es so geben kann. Dieses habe ich 
noch nie gesehen. Ich stell einfach mal ein paar Fragen, vielleicht 
kommen wir dabei in die Ecke, woran's liegen könnte:
1) Code ist 1:1 der von GitHub? Keinerlei Anpassungen? Zeile 277 ist 
nicht wegverschwunden?

2) Binärsuche betrieben? ATTiny ausgetauscht, DFPlayer ausgetauscht 
(nach Möglichkeit jeweils aus dem funktionstüchtigen ersten Gerät)?

3) Was lässt Dich denken, dass der Code bei readPlayerCurrentFileNumber 
hängenbleibt? Der Code gibt -soweit ich das sehe- eigentlich keinen 
Punkt her, dass er dort hängenbleiben könnte. Die Retries in Verbindung 
mit einem Timeout sorgen eigentlich genau gerade dafür, dass der Code in 
jedem Fall zurückkommt.

4) Lässt sich die Lautstärke einstellen, wenn noch kein Titel abgespielt 
wurde?

5) Lässt sich nach Abspielen eines Titels ein weiterer Titel starten? 
...die Lautstärke ändern?

6) Lässt sich während des Abspielens der Sleep Timer aktivieren? (Falls 
ja, spräche das gegen die Blockier-Theorie bei 
readPlayerCurrentFileNumber.)

7) Hast Du einen Arduino zur Hand? Der Code sollte sich auch darauf 
ausführen lassen und der erlaubt Dir mittels Serial ein paar 
Log-Ausgaben rauszuschreiben, um der Ursache auf den Grund zu gehen...

Toitoi...

Grüße
ghmartin77

PS: Nicht ganz Ernst gemeint: Spec des DFPlayers geprüft? Vielleicht 
funzelt der bei >35 Grad nicht mehr so wirklich gut :) Dann wird's ab 
Donnerstag gehen...

von Friedhelm E. (fredfromflett)


Lesenswert?

ghmartin77 schrieb:
> @Friedhelm E.:
> Problem behoben oder kann Dir noch geholfen werden?

Hallo ghmartin77

Danke für die Antworten werde ich probieren, musste das Projekt aber 
zurückstellen.

von Florian R. (flo1234)


Lesenswert?

Hallo ghmartin77,

vielen Dank für die Antwort, ich denke ich habe das Problem gefunden:
Nr 2. hat mir auf die Sprünge geholfen, mit dem anderen Modul 
funktioniert es wie gewünscht. Ich habe da offensichtlich ein Fakemodul 
aus CHina bekommen. Wie hier 
(https://forum.arduino.cc/index.php?topic=241021.45) beschrieben erkennt 
man diese u.a. an der roten LED und daran, dass Basisfunktionen wie die 
Wiedergabe funktionieren, aber ein List der Verzeichnisse nicht. Ich 
habe bereits vom Händler das Geld zurückbekommen. Ich hatte extra bei 
dem selben Händler gekauft, bei dem ich auch das letzte Modul gekauft 
habe.
Hat jemand eine günstige Bezugsquelle für Module aus Europa? Habe keine 
Lust wieder 6 Wochen zu warten...

Der Vollständigkeit halber noch die Antworten auf die restlichen Fragen:

1) Code ist 1:1 der von GitHub, Anpassungen lediglich bei den ADC Pins 
und den Werten für die Buttons (habe nur 9 Buttons) und kompiliert für 
Arduino Pro Mini

2) s.o.

3) Habe den Arduino per Serial.print debugged und so herausgefunden ab 
welcher Stelle die main-loop hängen bleibt

4) Ja, funktioniert

5) nein, sobald ein Titel läuft geht gar nichts mehr

6)... auch kein anderer Titel oder der Sleeptimer

7) s.o.

Und da ich im Keller bastle kann ich auch die Hitze ausschließen :-)
Vielen Dank für deine Unterstützung

von ghmartin77 (Gast)


Lesenswert?

Hi Florian,

watt et allet gibt. Werd' ich in diesem Leben nicht mehr schnallen, 
warum es sich lohnt, solche 1,15€-Dinger als Fake zu verticken. Kann ja 
nur über Stückzahlen halbwegs lukrativ sein. Und warum die Kaspers es 
dann nicht auf die Kette kriegen, wenigstens die farblich richtige LED 
aufs Board zu tüddeln, erschließt sich mir auch nicht. Naja, zumindest 
gut für den Endverbraucher :)
Mir wurden mal Fake ATTinys untergejubelt. Seinerzeit hatte ich diesen 
Artikel gefunden (spaßig zu lesen): https://www.sparkfun.com/news/384
Das sieht fast so aus, als würden manchmal ein paar Firmen hinten links 
im Lager noch ein paar tausend alte Chips finden. Dann wird die 
Beschriftung runtergeschliffen und die Dinger auf etwas umgelabelt, was 
von außen gleich aussieht. Auch ne Form von Recycling :)

Preiswerte Bezugsquelle in Europa kenne ich leider keine, sorry.

Grüße
ghmartin77

von Uli (Gast)


Lesenswert?

Ich habe ja auch Probleme mit 5 von 6 Playern, bei 2 davon gehe ich auch 
davon aus das das Fake Typen sind (Beschriftungen entfernt). Bei den 
andern 3 bin ich mir noch nicht zu 100% sicher, die sehen wie die 
funktionierende aus.

Mir zerreist es immer den AVR, sieht zumindestens so aus.
Hatte mal nur die Spannung angelegt und eine der Originaltasten 
betätigt, Musik machen kann der Player wenn er will. Nur unter AVR 
Kontrolle geht nichts.

Parallel habe ich mal eine Platine gemacht wo ich alles selber in 
Software mache. Mal sehen was schneller fertig ist der 2. DF-Player oder 
mein eigenes Teil.

VG Uli

von Uli (Gast)


Lesenswert?

Es sind bei mir 5 Fake Player.
Ohne AVR gehen die alle und machen Musik, aber mit AVR geht nichts.

Original: blaue LED  +  YX5200 chip

Fake: rote LED + abgeschliffen oder andere Bezeichnung


Also Augen auf beim einkaufen.

von Swen N. (niesel)


Lesenswert?

Hallo,

ich habe dieses Projekt gefunden, als ich im Internet auf der Suche nach 
einem Kinderradio für meinen 2,5 Jahre alten Sohn war. Das einzige 
kommerzielle Radio, welches in Frage gekommen wäre war der „Hörbert“. 
Somit ist diese Variante für meinen kleinen ideal :-). Also erstmal 
vielen Dank für die tolle Idee.

Da wir die Bambusbox vom großen Schwedischen Kaufhaus eh im Bad 
rumstehen hatten, konnte ich mich auch gleich an die Arbeit machen. Ich 
habe dabei auch den Boden der Box als Front genommen und ein Lochraster 
für den Lautsprecher mit einem Holzbohrer gebohrt (Bilder folgen). Die 
Optik des Radios gefällt mir richtig gut. Den Elektronikpart habe ich 
1:1 von diesem Projekt übernommen. Derzeit habe ich lediglich den IC 
Sockel des Attiny per Kabel mit dem Arduino Uno verbunden. Auf die SD 
Karte habe ich die Ordner 01 bis 11 mit jeweils zwei mp3s angelegt.

Bisher konnte ich folgende Funktionen erfolgreich testen:

1. Wenn ich auf einen der 11 Knöpfe drücke, wird jeweils der erste Track 
dieses Ordners abgespielt.

2. Lautstärkeregelung funktioniert vor und nach dem Abspielen des 
Tracks.

Was derzeit nicht funktioniert:

3. Lautstärkeregelung während der Wiedergabe.

4. Nachdem das erste Lied zu Ende ist, geht der yC wieder in den loop. 
Er spielt also nicht automatisch das zweite Lied.

5. Während der Wiedergabe kann ich kein anderes Lied ansteuern.

Wenn ein Lied abgespielt wird, läuft das Programm bis zur folgenden 
Zeile:
ret = player.readCurrentFileNumber(DFPLAYER_DEVICE_SD);
Wenn das Lied zu Ende ist, geht es direkt wieder in den loop.

Was mich noch stört:

6. Sobald der DFPlayer Strom bekommt knackt der Lautsprecher

7. Während die 11 Ordner durchsucht werden, knackt der Lautsprecher 
jeweils 1mal.

Den "Advert" und "MP3" Ordner habe ich noch nicht angelegt. Müssen hier 
bestimmte Tracks abgelegt werden???

Ich würde mich freuen, wenn mir irgendjemand weiterhelfen kann ;-)

von Klaus R. (klaus2)


Lesenswert?

...hast du den Thread gelesen? Du hast vermtl eine fake DFPlayer.

Klaus.

von Swen N. (niesel)


Lesenswert?

Hallo Klaus,

ja ich habe den Thread gelesen.
Ich kann den DFPlayer über die seriellen Schnittstelle TX RX ja 
ansteuern. Sowohl die Ordnerauswahl, in der die MP3s liegen sowie die 
Lautstärke kann ich ändern. Dies funktioniert aber nur bevor ich ein 
Lied starte und wenn dies zuende ist.

Ich habe es bisher so verstanden, dass bei den Fakes keine Kommunikation 
über die serielle Schnittstelle möglich ist.

Ach ja, die LED wenn ein Track abgespielt wird leuchtet blau :-)

von Klaus R. (klaus2)


Lesenswert?

...ah, OK - dann hätte ich vll genauer lesen sollen. Dachte genau der 
Effekt wäre auch beim Abspielen mal aufgetreten, aber da du ja ne blaue 
LED hast, kann es ja quasi kein fake sein ;)

Klaus.

von ghmartin77 (Gast)


Lesenswert?

Hi Swen,

dann sammeln wir mal, in der Hoffnung, dass Dir irgendwas weiterhilft:

zu #3) Ist durch die Punkte #4 und #5 erklärbar. Das Lautstärke-Handling 
erfolgt in der Main-Loop, die scheinbar nach Start eines Tracks nicht 
weiter ausgeführt wird.

zu #4) Hängt mit #5 zusammen. Der Code versucht nach Track-Start die ID 
des aktuell laufenden Tracks vom Player abzuholen 
(readCurrentFileNumber), um nach dessen Ende den nächsten Track zu 
starten. Wie du schreibst kommt readCurrentFileNumber aber nicht mehr 
zurück, damit ist der "Continuous Play"-Mechanismus kaputt.

zu #5) Die gute Nachricht: Wenn Du das gelöst bekommst, sind Deine 
anderen Probleme auch weg :-) Die schlechte Nachricht: Ich habe keine 
Ahnung, was die Ursache ist, aber ich rate mal fleißig: Variante A: Es 
gibt noch eine andere Fake-Version des DFPlayers. Variant B (darauf 
tippe ich): Vor 15 Tagen gab es eine Änderung im Github-Repo 
https://github.com/DFRobot/DFRobotDFPlayerMini. Evtl. hat die Änderung 
meinen Code inkompatibel werden lassen. Solltest Du die frischeste 
Version aus dem Repo nutzen, kannst Du ja mal in der Zeit etwas 
zurückreisen und die Version vor dem 1.0.3-Commit probieren.
Randbemerkung dazu: Eigentlich sollte es (Fake-Chips mal außen vor) 
"virtually impossible" sein, dass der Code an der Stelle hängen bleibt, 
die Du beschreibst: Die DFPlayer-Lib sieht extra einen Timeout vor, 
nachdem diverse Funktionen (u.a. auch readCurrentFileNumber) 
zurückkehren müssen, auch wenn keine Antwort vom Player kommt. Dieser 
Timeout steht auf 1sec. Da ich davon ausgehen, dass Deine Test-MP3s 
länger sind, muss was anderes verquer sein. DASS der Code trotz meiner 
"Kann eigentlich nicht sein"-Argumentation dort hängenbleibt, zweifle 
ich übrigends nicht an. Alle Deine anderen Fehlerbeschreibungen 
bestätigen das und von den Erfahrungen mit Fake-Modulen, passiert es 
dort offensichtlich auch nachweislich.

zu #6) Ein einmaliges Knacken ist bekannte "Funktion": Das passiert, 
sobald der Verstärker auf dem DFPlayer aktiviert wird. Ist halt ein 
Billig-Low-End-Modul. Da kannst Du nichts Großes erwarten. Falls Du 
dauerhaftes Knacken/Störgeräusch hörst, weist das auf einen fehlenden 
(oder falsch dimensionierten) Widerstand zwischen TX-ATTiny-Pin und 
RX-DFPlayer-Pin hin.

zu #7) Das ist mir bisher nicht aufgefallen. Da hierbei fleißig mit dem 
Player über UART "gesprochen" wird, tippe ich auf zu klein 
dimensionierten Widerstand (siehe #6).

Nummernlos: Den "Advert" und "MP3" Ordner habe ich noch nicht angelegt. 
Müssen hier bestimmte Tracks abgelegt werden???
Ja, so ist es. Ist auf der GitHub-Seite beschrieben.

Dann man viel Erfolg und lass mal hören, woran's gelegen hat...

Grüße
ghmartin77

von Tim M. (brotzeit)


Lesenswert?

Hallo zusammen,
da mein Junior total auf Hörspiele abfährt bin ich gestern, auf der 
Suche, über diesen Beitrag gestolpert, und war gleich mal hin und weg:

KLASSE PROJEKT!

Gefällt mir richtig gut, und genau das was ich/wir brauchen.
Zum Nutzen für den Junior, und für mich, um den Spieltrieb zu 
befriedigen.

Leider ist hier vieles für mich Neuland (schon wieder einer dieser Sorte 
;-) ).

Würde mich freuen wenn ihr mir zur Realisierung des Projektes 
weiterhelfen würdet:

- Wenn ich das richtig verstanden habe muss ich einen Programmcode auf 
den DFplayer kopieren!? Wie und mit was realisiere ich das?
Oder ist der Player vorkonfiguriert?

- Ist der Widerstand auf der Platine für die Lautstärkebegrenzung?

: Bearbeitet durch User
von ghmartin77 (Gast)


Lesenswert?

Hi Tim,

> - Wenn ich das richtig verstanden habe muss ich einen Programmcode auf
> den DFplayer kopieren!? Wie und mit was realisiere ich das?
> Oder ist der Player vorkonfiguriert?

Den DFPlayer kannst Du so nehmen wie er ist (vorausgesetzt, Du erwischt 
keinen Fake (s.o.)). Der Programmcode kommt (compiliert) in den 
ATTiny-Mikrocontroller. Dazu gibt's mehrere Wege. Empfehlen würde ich 
ArduinoIDE und einen Arduino zum Flashen. Entsprechende Anleitung hier: 
https://www.frag-duino.de/index.php/maker-faq/37-atmel-attiny-85-mit-arduino-arduinoisp-flashen-und-programmieren
Das sollte zum Einlesen und Abschätzen, worauf Du Dich im "Neuland" 
einlässt ausreichen. Aber sei beruhigt: "Wir schaffen das" :)

>
> - Ist der Widerstand auf der Platine für die Lautstärkebegrenzung?

Solltest Du die Widerstände auf der Button-Platine meinen, dann nein. 
Wenn Du mit DEM Widerstand auf der Platine den auf der Hauptplatine 
zwischen DFPlayer und ATTiny meinst, dann bedingt. Guxtu hier: 
https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299
Ohne den Widerstand gibt's zuweilen starke Stromgeräusche. Die Doku sagt 
"But if you find the noise is quite loud, then you could attach an 1K 
resistor to the TX pin."
Die Lautstärkebegrenzung, die Du meinst steckt eher in den beiden Potis: 
Eins für den externen Regler und ein zweites für die Maximaleinstellung.

Grüße
ghmartin77

von Swen N. (niesel)



Lesenswert?

Hallo ghmartin77,

erstmal vielen Dank für Deine schnelle Unterstützung. Dank Deiner Hilfe 
konnte ich das größte Problem lösen. Der Player bleibt jetzt nicht mehr 
hängen und geht nach start des Tracks direkt wieder in den loop. Somit 
kann ich die Lautstärke während des Abspielens verändern und mit einer 
anderen Taste ein anderes Lied starten.
Das Problem lag tatsächlich an der library. Allerdings hatte ich nicht 
die neuste sondern eine älter drin 1.0.2

Somit ist mein DFPlayer i.O.  :-)

Momentan ist es aber so, dass er nur das erste Lied aus dem jeweiligen 
Ordner spielt. Drücke ich den selben Knopf noch mal, spielt er wieder 
das erste Lied. Nachdem das Lied zu Ende ist wird kein weiters 
automatisch gestartet.

Das Knacken der Lautsprecher habe ich nur noch beim Einschalten.

Das mit dem "Advert" und "MP3" Ordnern habe ich irgendwie noch nicht so 
richtig verstanden. Auf der GitHub-Seite ist zwar beschrieben wie die 
Ornerstruktur aussehen soll. Mir ist aber nicht klar, ob ich da jetzt 
normale Lieder rein packe oder ob da bestimmte Files hinein müssen.

Werde mich jetzt weiter auf die Fehlersuche begeben.

Nochmals vielen Dank für die Unterstützung.

Grüße
Swen

von ghmartin77 (Gast)


Lesenswert?

Hi Swen,

klingt lösbar :)
Jetzt bist Du vermutlich soweit im DFPlayer-GitHub-Projekt 
zurückgegangen, dass Du Dir einen anderen Fehler eingehandelt hast.
Schau mal bitte, ob du in Deiner jetzigen Version von 
DFRobotDFPlayerMini.cpp solche Zeilen findest:
1
int DFRobotDFPlayerMini::readFileCounts(){
2
  readFileCounts(DFPLAYER_DEVICE_SD);
3
}
4
5
int DFRobotDFPlayerMini::readCurrentFileNumber(){
6
  readCurrentFileNumber(DFPLAYER_DEVICE_SD);
7
}

Falls ja, pack doch vor jeden der read*-Aufrufe im Inneren der Methoden 
ein beherztes "return ". Den Fehler haben sie mit diesem Commit mal 
behoben aber nachträglich oder vorher wohl mal was anderes 
kaputt-gefixt: 
https://github.com/DFRobot/DFRobotDFPlayerMini/commit/0cf620c20da92716404efcffbdc089e3a29b9e24

Vermutlich kommt dann Dein Knacken beim Start zurück, wenn er die 
Verzeichnisse scannt (Widerstands-Theorie dazu hast Du ja bereits von 
mir).

Zum Verständnis der Folder "Advert" und "MP3" habe ich mal ein Manual 
mit ins GitHub-Repository hochgeladen: 
https://github.com/ghmartin77/KidsMP3Player/blob/master/assets/Manual%20German.pdf
Seiten 3,4 und die letzte lassen hoffentlich ein Glöckchen bei Dir 
klingeln, was das soll :) Hinweis: "Es spricht..."
Warum die gleichen Dateien als Replik in "Advert" UND "MP3" liegen 
müssen, steht weiter oben in diesem Thread.

Und das Wichtigste zuletzt:
Cooles Kistlein ist's geworden!!! Respekt! :)

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

@Tim:
Meine "Stromgeräusche" im Text oben sollten "Störgeräusche" sein.
Poti zur internen Maxlautstärkeeinstellung siehst Du im soeben 
hochgeladenen Manual:

https://github.com/ghmartin77/KidsMP3Player/blob/master/assets/Manual%20German.pdf

Seite 8, "Have It Your Way" zeigt's...

Hoffe's hilft Dir weiter...

von Tim M. (brotzeit)


Lesenswert?

Hallo ghmartin77,

danke für deine Unterstützung!

Ja, ich meinte den Poti auf der Platine.
Schöne Anleitung hast du da noch hinzugefügt!

Gestern hab ich einige Bauteilbestellungen angestoßen, ich kanns kaum 
abwaren bis die einflattern.

Jetzt muss ich mir mal genau durchlesen wie ich den Programmcode in den 
attiny bekomme...

Sollte ich am Besten nen Arduino UNO R3 beschaffen?
(Da gibts ja tausende "nachbauten!?)

Nochmals Danke, neue Fragen kommen garantiert.... ;-)

: Bearbeitet durch User
von ghmartin77 (Gast)


Lesenswert?

Tim M. schrieb:
> Sollte ich am Besten nen Arduino UNO R3 beschaffen?

Welcher Arduino, ist relativ wurscht, da er in diesem Fall nur zum 
Flashen des ATTiny genutzt wird. Ich persönlich nutze dazu am liebsten 
einen Arduino Nano. Der hat -selbst in Deutschland geordert- ein 
halbwegs vernünftiges Preis-/Leistungsverhältnis, kann auf ein 
Breadboard neben den zu flashenden ATTiny gesteckt werden und macht 
damit alles, was ich brauche.
Die oben verlinkte Anleitung funktioniert auch mit einem Nano... 
(relevante Pins sind beim UNO und beim Nano gleich beschriftet)

von Marcus (Gast)


Lesenswert?

Hallo,
Zuerst einmal: Tolles Projekt. Das möchte ich unbedingt für meine kleine 
basteln.

Leider hab ich überhaupt keine Erfahrung mit sowas und daher noch ein 
paar fragen.

Den Arduino Nano brauche ich um den attiny zu flashen? Kann ich den 
einfach draufstecken oder wird der auch gelötet?

Welchen Widerstand hat dein Lautsprecher? Den gibts ja mit 4 und 8 ohm.

Funktioniert das auch mit 2 Ls in Stereo?

Schöne Grüsse

von ghmartin77 (Gast)


Lesenswert?

Hallo Marcus,

Marcus schrieb:
> Leider hab ich überhaupt keine Erfahrung mit sowas und daher noch ein
> paar fragen.

Völlig ok.

> Den Arduino Nano brauche ich um den attiny zu flashen?

Wenn man keine Erfahrung hat, sollte man zumindest ein kleines bissel 
Aufwand in Recherche stecken. Nur einen Eintrag über Deiner Frage steht 
in diesem Thread:
1
Welcher Arduino, ist relativ wurscht, da er in diesem Fall nur zum 
2
Flashen des ATTiny genutzt wird.

Insofern kann ich Deine Frage überhaupt nicht nachvollziehen. Ich helfe 
gern weiter, aber dann möchte ich auch ein gewisses Maß an 
Eigeninitiative wahrnehmen.

> Kann ich den einfach draufstecken oder wird der auch gelötet?

Ebenfalls im Eintrag direkt vor Deinem steht
1
Die oben verlinkte Anleitung...

Mit minimalstem Aufwand ist besagter Link auf diese auch direkt hier im 
Thread zu finden. Da hat sich jemand anders bereits viel Mühe gegeben, 
zu beschreiben, wie man einen ATTiny mit einem Arduino flasht. Kurz 
lesen und Du weißt, ob was gelötet wird oder aufgesteckt.

>
> Welchen Widerstand hat dein Lautsprecher? Den gibts ja mit 4 und 8 ohm.
>

Auf der GitHub-Anleitungsseite steht
1
Visaton 8006 Speaker
Den finde zumindest ich nur in einer 8Ohm-Version.


> Funktioniert das auch mit 2 Ls in Stereo?

Ja, der DFPlayer hat Ausgänge für R und L, allerdings dafür keinen 
Amplifier an Board (den nur für Mono). D.h. Du bräuchtest einen 
separaten Stereo-Amplifier, z.B. PAM8403 oder PAM8610.

>
> Schöne Grüsse

Grüße
ghmartin77

von Tim M. (brotzeit)


Lesenswert?

Es geht vorwärts, die ersten Bauteile trudeln langsam ein...

Hab mich gestern mit dem Arduino laut Anleitung oben versucht, und beim 
"Testen" der "KidsMP3Player.ino" bekomme ich die Fehlermeldung dass er 
"DFRobotDFPlayerMini.h" nicht findet (#include <DFRobotDFPlayerMini.h) 
...

Der DFPlayer hat wohl nen Transportschaden, da wurden alle Pins beim 
Transport durch die Verpackung gedrückt.
Hab gestern dann mal 5V und gnd angeschlossen, da leuchtete allerdings 
keine LED (auch nicht mit Karte). Wann leuchtet diese?
(wollte testen ob blau oder rote LED :-) )

@Marcus
Den attiny kannst nicht direkt aufstecken.
Geht über ein "Breakout Board" (schimpft man das so!?) und einzelne 
Kabel die am Board und am Arduino eingesteckt werden.

von Marcus (Gast)


Lesenswert?

Moin, danke für die Antworten,
.
@ghmartin77
Genau der thread über meinem hat mich ja auf due Frage gebracht. Da hab 
ich mich wohl falsch ausgedrückt. Ich wollte eigentlich nur wissen ob 
der attiny gesteckt oder gelötet wird. Danke@Tim.

Ich gelobe Besserung und werde mich erstmal gründlich einlesen.
Wenn ich das richtig verstanden habe dauert es ja eh etwas bis ich die 
Teile zusammen habe.
Thx

von Stefan F. (Gast)


Lesenswert?

> Ich wollte eigentlich nur wissen ob der attiny gesteckt oder gelötet wird.

Fest einlöten würde ich Mikrocontroller nur, wenn ich ganz sicher bin, 
dass ich ihn niemals austauschen werden muss. Also eher: IC's Immer 
stecken. Selbst wenn das nicht ausdrücklich im Bauplan steht.

von ghmartin77 (Gast)


Lesenswert?

Hi Marcus,

genau wie Stefanus schreibt. Immer in einen Sockel. Würde ich auch für 
den DFPlayer empfehlen. Da gibt's keinen Sockel zu, aber weibliche 
Stiftleisten, die man auflöten kann, und den Player dann da reinstecken.
Hintergrund: Manchmal sind die Komponenten sehr hitzeempfindlich und 
gehen beim Löten (gerade, wenn man Anfänger ist) kaputt, wenn man sich 
außerhalb der "Lötspezifikation" der jeweiligen Komponente bewegt. Also 
erst immer unbestückte(!) Sockel/Stiftleiste verlöten, dann einstecken 
(dabei natürlich korrekte Ausrichtung beachten).

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Hi Tim,

Tim M. schrieb:
> Hab mich gestern mit dem Arduino laut Anleitung oben versucht, und beim
> "Testen" der "KidsMP3Player.ino" bekomme ich die Fehlermeldung dass er
> "DFRobotDFPlayerMini.h" nicht findet (#include <DFRobotDFPlayerMini.h)
> ...

ArduinoIDE unterstützt externe Bibliotheken und die DFRobotDFPlayer ist 
genau eine solche. Auf GitHub hier zu finden:
https://github.com/DFRobot/DFRobotDFPlayerMini

Zwei Varianten, das lauffähig zu bekommen:
1) Als Library in ArduinoIDE einbauen.
2) Oder einfach die Files DFRobotDFPlayerMini.h und 
DFRobotDFPlayerMini.cpp neben das KidsMP3Player.ino-File legen.

Hinweis: Die frischeste Version der DFRobotDFPlayerMini-Files aus dem 
Repo scheint aktuell nicht vollständig zu funktionieren. Siehe 
Diskussionen in diesem Thread weiter oben.

Grüße
ghmartin77

von Klaus R. (klaus2)


Lesenswert?

Hallo Martin,

biete doch fertig geflashte AT85 auf ebay (oder hier) an? Dann ist es 
"nur noch" ein Bausatz...ich finde dein Projekt super und es werden sich 
noch viele Nachbauer finden, doch wenn jmd NULL Ahnung hat, ist auch 
diese Hürde schon hoch ;)

Die Bauteile zu sockeln sollte eine Empfehlung in der Beschreibung zu 
sein, ja.

Klaus.

von Swen N. (niesel)


Lesenswert?

….. mein Radio ist endlich fertig und funktioniert so wie es soll :-)

Nach vielen Stunden, die ich für die Fehlersuche benötigt habe, war die 
Lösung so einfach.

Ich habe mir als erstes die besagten Zeilen angeguckt. Der „return “ 
Befehl war dort vorhanden. Trotzdem wurden weder die FileCounts noch die 
CurrentFileNumber zurückgegeben. Da ich mir bis zu Letzt nicht 100% 
sicher war, ob es vielleicht doch am DFPlayer liegt, habe ich mir bei 
einem offiziellen Distributor von DFRobot einen weiteren Player 
bestellt. Den neuen schnell aufs Board gesteckt, Speicherkarte rein und 
siehe da, es funktioniert!!!

Jetzt habe ich hier drei Player liegen, die alle unterschiedlich viel 
können:

Player 1. direkt aus China -> rote LED, spielt Lieder ab, muss direkt 
angesteuert werden, serielle Schnittstelle funktioniert aber nicht!

Player 2. Bezug über Amaz* -> blaue LED, serielle Schnittstelle 
funktioniert, die Performanz ist sehr langsam, Initialisierung der 11 
Ordner dauert extrem lange ca. 1min, Es wird immer nur das erste Lied 
pro Ordner abgespielt.

Player 3. Bezug über offiziellen Disti -> blaue LED, Initialisierung der 
11 Ordner dauert ca. 3sec, voller Funktionsumfang.
In den nächsten Tagen werde ich noch zwei weitere Player aus China 
bekommen. Mal gucken ob einer von denen funktioniert.

In Summe hatte ich mit dem Radio drei Probleme, die ich lösen musste:

1. Beim drücken der Knöpfe ist nichts passiert.
Lösung: die Abfrage über die Höhe des Stroms musste etwas gesenkt 
werden. Mein Multimeter gab mir in der Schaltung 998mA bis 1008mA aus. 
Somit habe ich den Wert für das handleKeyPress von original 1000 auf 985 
gesenkt.
2. Während des abspielen eines Tracks konnten keine weiteren Eingaben 
getätigt werden
Lösung: Ich hatte eine alte Library 1.0.2 des DFRobotDFPlayer genutzt. 
Version 1.0.3 sowie 1.0.5 funktionieren. Habe beide getestet!
3. Es konnte immer nur der erste Track eines Ordners abgespielt werden
Lösung: DFPlayer fake gegen original ausgetauscht.

Ich werde das Gehäuse jetzt noch um eine USB Buchse auf der Rückseite 
erweitern, da ich zum Aufladen der Powerbank nicht immer den Deckel 
abschrauben möchte.

Anschließend werde ich mal gucken was sich sonst noch so modifizieren 
lässt ;-)

Ich möchte mich noch mal recht herzlich bei ghmartin77 für diese tolle 
Idee und konstruktive Unterstützung bedanken.

von Klaus R. (klaus2)


Lesenswert?

Was kostet der DFPlayer vom Distri? (link)

Gibt es einen günstige Chinaquelle, deren DF Player auch nachweislich 
funktionieren?

Die teile sind ja super, da kann man mal welche bunkern...aber natürlich 
lieber für 1.20 als 3.99 :)

Klaus.

von Swen N. (niesel)


Lesenswert?

@Klaus: beim Distri in Deutschland habe ich 5,99 Euro + Versand bezahlt.
In China habe ich jetzt zwischen 2 und  Euro inkl Versand bezahlt.
Bei Amaz* in Deutschland habe ich für den "defekten" 6,99 Euro bezahlt!
Werde versuchen diesen umzutauschen!

von Klaus R. (klaus2)


Lesenswert?

...ich habe mal einen für 1.17 in China bestellt und werde mein Geld 
zurückfordern, falls der nicht geht. Die Chinesen können sehr gerne 
direkt an mich verkaufen - aber dann bitte kein fake (was auch meistens 
nicht der Fall ist), wegen mir dann auch für 2.34

Klaus.

von Hermann (Gast)


Lesenswert?

Hallo,
habe den Player nachgebaut und funktioniert auch so weit.
Allerdings habe ich Probleme mit der Tastenerkennung. Einige Tasten 
werden falschen Ordnern zugeordnet.
Die Tasten 7 und 4 werden als Taste 1 erkannt und Ordner 1 wird dann 
auch abgespielt. Sieht nach einem Offset aus .
Die Hardware ist Okay, habe ich schon zweimal nachgesehen.
Da ich kein SW Profi bin, weiß ich nicht wo ich drehen muss.
Kann mir jemand helfen ?
Gruß
Hermann

von ghmartin77 (Gast)


Lesenswert?

Hallo Hermann,

das Tastenfeld ist als Spannungsteiler ausgelegt, das die Spannung am 
ATTiny-Eingangspin auswertet. Das entsprechende PCB geht davon aus, dass 
alle verbauten Widerstände den gleichen Wert haben. Den 
unterschiedlichen Spannungen, die sich je nach gedrücktem Knopf aus der 
Spannungsteiler-Funktion ergeben, stehen im Quellcode entsprechende 
Werte gegenüber.
Da Widerstände produktionsbedingt Toleranzen haben, kann's sein, dass 
die Werte im Code nicht mit der Hardware zusammenpassen.

Ab hier sind die "spannenden" Teile im Code:
https://github.com/ghmartin77/KidsMP3Player/blob/master/KidsMP3Player/KidsMP3Player.ino#L243

1000, 949, 894, usw. sind die Zahlen, die Du passend zu Deinem Setup 
drehen musst.

(Randnotitz @Klaus: Das ist übrigens ein gewichtiger Grund, warum das 
mit den vorgeflashten ATTinys nicht so leicht ist. Dann bräuchte man 
einen "Anlernmodus" und muss schauen, dass man die Werte irgendwo im 
EEPROM unterbekommt.)

Welche Werte nun für Deine Hardware die richtigen sind, kannst Du auf 
drei Arten herausfinden:
1) Spannungsteiler-Rechnung + Dreisatz: Der Wert 1024 entspricht VCC am 
Tastenfeld. Der Wert 0 entspricht GND. Je nach gedrücktem Knopf ergibt 
sich eine andere Spannung am Ausgangspin des Tastenfeldes (kannst Du 
rechnen oder messen). Die Spannung gemäß Dreisatz auf einen Wert in das 
Fenster [VCC=1024 und GND=0] umrechnen.

2) Wenn Du einen Arduino zur Hand hast, spielst Du den Sketch darauf und 
packst ein Serial.println(keyCurrent) an entsprechende Stelle. Dazu sind 
allerdings grundlegende Arduino/Programmierkenntnisse notwendig.

3) Ausprobieren, Flashen, Ausprobieren, Flashen... Wenn Du dabei 
strukturiert vorgehst (Binärsuche) kommst Du mit < 1000 Versuchen hin, 
ist aber müüüüüüßig :)

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Swen N. schrieb:
> ….. mein Radio ist endlich fertig und funktioniert so wie es soll :-)

Herzlichen Glückwunsch!!!
Das freut mich, dass nun alles klappt :-)

Vielen Dank für die ausführliche Analyse Deiner Fehler-Odyssee.

Ein Anmerkung zu:
> 1. Beim drücken der Knöpfe ist nichts passiert.
> Lösung: die Abfrage über die Höhe des Stroms musste etwas gesenkt
> werden. Mein Multimeter gab mir in der Schaltung 998mA bis 1008mA aus.
> Somit habe ich den Wert für das handleKeyPress von original 1000 auf 985
> gesenkt.

Dein Fix ist sicher richtig, aber der Weg dahin und die 
Schlussfolgerungen vermutlich nicht. Fast 1A Stromfluss in der Schaltung 
fände ich überraschend viel.
Der Input-Pin "reagiert" nicht auf Stromstärke (bei 1A wäre der ATTiny 
auch tot), sondern auf Spannung in Bezug auf Referenz VCC. Dass Du den 
Wert reduzieren musstest, kann mit deinen Hardwareteilen zusammenhängen 
(siehe auch vorhergehender Eintrag), aber es gibt keine (direkte) 
Verbindung zwischen Deiner Stromstärken-Messung und der Zahl im 
Quell-Code.
Geholfen hat's aber glücklicherweise trotzdem :)

> Anschließend werde ich mal gucken was sich sonst noch so modifizieren
lässt ;-)

Da lass uns doch bitte dran teilhaben. Vielleicht kann ich was auf die 
GitHub-Seite übernehmen.

Grüße
ghmartin77

von Hermann (Gast)


Lesenswert?

Hallo ghmartin77 ,
vielen Dank für die Erklärungen, das werde ich schon hinbekommen.
Nach meinem Verständnis ist aber auch noch ein pullup an dem Keyport 
geschaltet. Wenn der auch beim Tastendruck aktiv ist , verändert der 
natürlich auch den Spannungsteiler.
Und der Tastentoleranzwert von 25 ist auch noch da.
Am Besten wird sein, life messen , umrechnen und programmieren.

Übrigens ist es sehr hilfreich, wenn man sich kurze mp3s (ca 10s) mit 
den Ordnernamen erzeugt und die dann jeweils als erstes „Lied“ in den 
Ordnern ablegt. Dann weiß man sofort ob die Zuordnung der Tasten stimmt.

Gruß
Hermann

von ghmartin77 (Gast)


Lesenswert?

Hallo Hermann,

da hast Du absolut Recht:
1
Zeile#156 pinMode(PIN_KEY, INPUT_PULLUP);

...und der gehört mit in die Rechnung rein. --> Im Betrieb messen (wie 
Du schreibst) :)

Toitoi!

Grüße
ghmartin77

PS: Sehen wollen :) Reichst Du noch ein Bild nach?

von Klaus R. (klaus2)


Lesenswert?

@ghmartin77: So einen Anlernmodus habe ich mal bei einer IRMP 
Universal-FB eingebaut, das ist an sich kein Hexenwerk (war aber nur 
eine Übung, gebraucht hätte ich das nicht) ;)
Man muss halt beim Init einmalig die Tasten in der Lern-Reihenfolge 
drücken...mit etwas "Toleranz" um den erkannten Wert (+/-50) war das 
eine sehr saubere Sache. Wenn man "PWR" (schaltet direkt auf Masse) beim 
Startup halten würde, wird der Anlernprozess neu gestratet.

-> mMn dürfte das aber mit 1% Rs auch so kein Problem sein...?

Klaus.

von ghmartin77 (Gast)


Lesenswert?

Klaus R. schrieb:
> @ghmartin77: So einen Anlernmodus habe ich mal bei einer IRMP
> Universal-FB eingebaut, das ist an sich kein Hexenwerk (war aber nur
> eine Übung, gebraucht hätte ich das nicht) ;)
> Man muss halt beim Init einmalig die Tasten in der Lern-Reihenfolge
> drücken...mit etwas "Toleranz" um den erkannten Wert (+/-50) war das
> eine sehr saubere Sache. Wenn man "PWR" (schaltet direkt auf Masse) beim
> Startup halten würde, wird der Anlernprozess neu gestratet.
>
> -> mMn dürfte das aber mit 1% Rs auch so kein Problem sein...?
>
> Klaus.

Hi Klaus,

die Idee als solche finde ich durchaus interessant. Der Anlernmodus 
selbst ist von der Programmierung her auch nicht das Problem. Mein Kopf 
kriegt im Moment nur noch nicht unter, wie ich den Anlernmodus triggern 
soll.
Klar, frisch geflashter ATTiny ist einfach. Da kann ich dann gucken, ob 
im EEPROM schon Werte stehen. Wenn nicht, dann Anlernmodus beim 
Einschalten. Prima.
Aber wenn dann der Anlernmodus einmal durch ist, habe ich Werte im 
EEPROM und keinen Pin mehr frei, über den ich sagen könnte, dass ich den 
Anlernmodus erneut starten möchte (weil ich z.B. nur mal mit einem 
Testbutton in einem Versuchsaufbau rumgespielt habe).
Der einzige noch freie Pin ist der Reset-Pin. Den kann ich aber nicht 
auf High ziehen, weil der ATTiny dann resettet. Ich hab zwar was 
gelesen, das man den als analogen IN-Pin konfigurieren kann und dann 
kleine Spannungen "lesen" kann, weil er erst an einem Schwellwert 
resettet, aber das ist von der Bedienung ein bissel schwierig...

Aber wo ich mich gerade mittels dieser Zeilen klardenke: Man könnte die 
Filestruktur auf der SD-Karte nutzen. Über den DFPlayer kann man zwar 
keine Files lesen, aber man kann ANZAHLEN von Files in Ordnern auslesen 
(also bei den Non-Fake-DFPlayern zumindest :)). Darüber könnte man 
steuern, ob der ATTiny beim Einschalten in den Lernmodus geht.

Wenn z.B. im Folder 12 (heute unberücksichtigt) 1 File liegt, dann 
Anlernmodus.
Ist Folder 12 leer oder nicht vorhanden, dann normaler Start.

Hmmmmm...

Könnte klappen...

Mach ich aber nur, wenn ausreichend Interesse an vorgeflashten ATTinys 
besteht.

Und was man noch überlegen müsste, wäre ob und wie man Varianten mit 
unterschiedlich vielen Knöpfen unterstützen möchte...
Man kann bspw. zum Abbruch des Lernmodus einfach die erste Taste drücken 
lassen und dann kann jeder gemäß seiner HW-Config stoppen...

Mal gucken, ob hier ein paar Leute "Haben wollen" posten, dann könnte 
ich den Code ändern. Dann findet sich bestimmt noch wer, der 
vorgeflashte ATTinys anbieten möchte :)

Grüße
ghmartin77

von Klaus R. (klaus2)


Lesenswert?

...ein Taster muss direkt auf Masse schalten, dann sieht der ADC immer 
"0" - wenn DIESER beim PowerUp gedrückt ist, wird neu gelernt. So mache 
ich es.

Aber nochmal: Bei 1% Widerständen sollte es mit einer stabilen Vcc (die 
kann man aber intern messen, oder?) und einer Toleranz von +/- x Counts 
(das müsste man einmal ermitteln) immer klappen?

...wobei natürlich der Lernfaktor bei selber flashen und Code editieren 
größer ist ;)

Klaus.

von ghmartin77 (Gast)


Lesenswert?

Klaus R. schrieb:
> ...ein Taster muss direkt auf Masse schalten, dann sieht der ADC
> immer
> "0" - wenn DIESER beim PowerUp gedrückt ist, wird neu gelernt. So mache
> ich es.

Ah, geschnallt. Jepp, das geht natürlich. Brett vorm Kopf bei mir :)

>
> Aber nochmal: Bei 1% Widerständen sollte es mit einer stabilen Vcc (die
> kann man aber intern messen, oder?) und einer Toleranz von +/- x Counts
> (das müsste man einmal ermitteln) immer klappen?
>

Ja, da bin ich voll bei Dir. Die "+/-"-Toleranz ist bereits im Code. Mal 
sehen, was bei Hermanns Messungen rauskommt. Dass 1,4 und 7 zusammen als 
1 interpretiert werden, ist zumindest mal verdächtig und könnte am Ende 
doch noch ein Hardware-Problem sein. Auch mit größeren Abweichungen, als 
bei 1%-Widerständen, sind derart große Abweichungen ungewöhnlich bis 
unmöglich (intakte Bauteile vorausgesetzt).

Anlernen bei vorgeflashten ATTinys wäre trotzdem sinnvoll, denn sonst 
muss man bei einer Variante mit weniger Knöpfen einen 
"Kompensationswiderstand" einbauen, damit das Spannungsteilerverhältnis 
auf die sonst fix einprogrammierten 11 Buttons und deren 
Widerstandsverschaltung passt.

> ...wobei natürlich der Lernfaktor bei selber flashen und Code editieren
> größer ist ;)

Definitiv. Aber in einer Marktwirtschaft bestimmt die Nachfrage das 
Angebot :) Wenn's also ausreichend gemeldeten Bedarf vorgeflashter 
ATTinys gäbe, hack ich das Anlernen in den Code.

Grüße
ghmartin77

von Hermann (Gast)


Lesenswert?

Hallo ghmartin77,
so, jetzt habe ich gemessen in meinem Aufbau :
Versorgungsspannung war 5,02V
Taste 11= 4,56V / T9= 4,14V / T6= 3,72V
T3= 3,30V / T2= 2,89V / T5= 2,47V
T8= 2,03V / T10= 1,57V / T7= 1,09V
T4= 0,56V / T1= 0V
Bei den kleineren Spannungswerten wirkt sich der pullup schon spürbar 
aus.
Laut Datenblatt hat der pullup einen Wert zwischen 20-50kOhm, die 
Spannung am port steigt dadurch um ca 0,2V bei den kleineren Werten.

Die daraus resultierenden Werte für das scetch sind bei mir :
T11=930 / T9=844 / T6=759 / T3=673 / T2=590 / T5=504
T8=414 / T10=320 / T7=222 / T4=114 / T1>0
Diese Werte habe ich in das Programm eingetragen und den Attiny neu 
programmiert.
Jetzt funktioniert es so wie es soll, alle Ordner werden richtig 
angesprungen und abgespielt :-)
Ich freu mich.
Gruß
Hermann

von ghmartin77 (Gast)


Lesenswert?

Hi Hermann,

Ick freu mir auch :-)

Prima, dass Dein Gerät nun läuft, wie's soll. Dann war die Krux 
allerdings nicht etwaige Abweichungen von Standard-Widerständen, sondern 
vermutlich die verbaute Spannweite von Pullup-Widerständen in 
verschiedenen ATTinys. 20k-50kOhm ist ja schonmal ein breites Spektrum.
Den internen Pullup zu nutzen, ist -wenn man den Code unverändert lassen 
möchte- scheinbar keine gute Idee von mir. Wieder was gelernt. Danke 
dafür!

Wollst Du Dein Werk denn noch per Photo zeigen?

Grüße
ghmartin77

von Stefan F. (Gast)


Lesenswert?

Ich komme besser mit externen Pull-Up Widerständen klar. Die Internen 
sind recht hochohmig. Wenn mehr als 10cm Draht dran hängen, fängt man 
sich leicht Radiowellen ein.

von Tim (Gast)


Angehängte Dateien:

Lesenswert?

ghmartin77 schrieb:
> ArduinoIDE unterstützt externe Bibliotheken und die DFRobotDFPlayer ist
> genau eine solche. Auf GitHub hier zu finden:
> https://github.com/DFRobot/DFRobotDFPlayerMini

Bibliothek war das Stichwort... hat mir weitergeholfen, DANKE!

Es geht weiter... Gehäuse ist im Bau, die erste Platine soweit fertig.
Warte aktuell auf den Attiny85 und die Taster.
Habe leider nen DFPlayer mit ner roten LED erwischt, werde jetzt einen 
beim Distribotor bestellen.

von ghmartin77 (Gast)


Lesenswert?

Wowy! Sehr sauber. Du handwerkerst nicht zum ersten Mal :)

Das mit der hohen Schlagzahl an DFPlayer-Fakes dieser Tage ist echt 
nervig. Da guck ich mir mal meine Vorräte an. Mal sehen, ob ich bei 
meinen Vorratsbestellungen (aliex…) auch betuppt worden bin.

Apropos LED: Habe die bei meinem Player mit nem scharfen Teppichmesser 
runtergekratzt. Dann gibt's kein nerviges Leuchten im Kasten und es 
spart nochmal ein paar wenige mA...

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Schöne Alternative hab ich gerade gefunden (wer gern RFID haben mag):
https://www.voss.earth/tonuino/

Pfiffige Idee, die ganze Elektronik direkt in eine fertige Box 
reinzubasteln.

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

ich schon wieder... am verzweifeln...
Inzwischen sind fast alle Bauteile da. Auch ein "blauer" DFPlayer. :-)

Aktuell scheitert es allerdings beim "brennen" des Bootloaders.
Bekomme immer Fehlermeldung:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x56
...

Bin strikt nach Anleitung vorgegangen, Beispiele, Arduino ISP, 
Boardverwalter, ATTiny85, Programmer: Arduino as ISP und dann Bootloader 
brennen.
Is aber nicht. Hab auch mal die Verbindung zwischen ATTiny und Arduino 
durchgemessen, das passt alles.

Im Bordverwalter hab ich auch schon 2 verschiedene "Pakete" probiert, 
jedoch ohne Änderung.

(Arduino 1.8.6, AAtiny Core by Spence Kode 1.1.5)


Freue mich über eure Hilfe...

von Stefan F. (Gast)


Lesenswert?

Hast du denn den Arduino ISP Sketch auf dein "Arduino as ISP" Board 
installiert? Sind dessen Fuses korrekt gesetzt?

Hast du MISO und MISO 1:1 verbunden oder gekreuzt (muss 1:1 sein)?

von Tim (Gast)


Lesenswert?

Stefanus F. schrieb:
> Hast du denn den Arduino ISP Sketch auf dein "Arduino as ISP" Board
> installiert? Sind dessen Fuses korrekt gesetzt?

Im Sketch Ordner ist ArduinoISP.ino drin und unter Beispiele Arduino ISP 
angewählt (es geht ein neues Fenster auf)

Unter Programmer hab ich dann 2 Auswahlmöglichkeiten:
Adruino as ISP oder Arduino as ISP (ATTiny Core)

Was sind Fuses? Die Einstellungen?
Board: ATTiny 25/45/85
Save EEprom: EEprom retained
Timer 1 Clock: CPU
LTO: disabled
B.O.D.: disabled
Chip: ATTiny85
Clock: 1MHz (internal)
Port: COM 6 (Arduino...)

MISO? = Pin6 am ATTiny? ist verbunden mit Pin 12 am Arduino!

von ghmartin77 (Gast)


Lesenswert?

Wild guesses:
1) 
https://www.heise.de/make/artikel/Arduino-Nano-mit-neuem-Bootloader-4011641.html

2) Kondensator am Arduino vergessen

Ansonsten: Um zu schauen, ob das mit dem Flashen funktioniert, ist 
"Bootloader brennen" nicht so entscheidend. Im ATTiny-Fall macht der 
nichts außer sog. Fuses zu setzen. Die sind aber im Normalfall schon 
passend gesetzt, so dass Du mal schauen kannst, was Du für Meldungen 
bekommst, wenn Du einen Sketch auf den ATTiny hochlädst. Vielleicht gibt 
Dir die dann kommende Meldung noch eine weitere Idee, was schief sein 
könnte...

von Stefan F. (Gast)


Lesenswert?

Schau dir mal im Internet die Doku zum Arduino ISP Sketch an, dort sind 
viele wichtige Fragen geklärt.

von Tim (Gast)


Lesenswert?

Ist ein ganz neuer originaler Arduino... und ich dachte damit fährt man 
besser... hehe


Kondensator ist dran einfach hochladen is nich :-(

Der Sketch verwendet 7344 Bytes (89%) des Programmspeicherplatzes. Das 
Maximum sind 8192 Bytes.
Globale Variablen verwenden 237 Bytes (46%) des dynamischen Speichers, 
275 Bytes für lokale Variablen verbleiben. Das Maximum sind 512 Bytes.

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x8e
...
Problem beim Hochladen auf das Board. Hilfestellung dazu unter 
http://www.arduino.cc/en/Guide/Troubleshooting#upload.

von ghmartin77 (Gast)


Lesenswert?

Nochmal langsam getze. Bin nicht sicher, ob wir nicht aneinander 
vorbeireden. Fragen und Antworten passen noch nicht so richtig zusammen 
und für mich ist noch nicht ausgeschlossen, dass Stefanus' allererste 
Frage nicht schon das Problem löst:

> Hast du denn den Arduino ISP Sketch auf dein "Arduino as ISP" Board
installiert?

Du schreibst:
> Im Sketch Ordner ist ArduinoISP.ino drin und unter Beispiele Arduino ISP
angewählt

Wenn das wörtlich zu verstehen ist, dann kann ich sagen, dass das so 
nicht reicht und auch nicht gehen wird.
Die Logik ist folgende: Der Arduino wird mittels Sketch zu einen 
ATTiny-Flasher. Dazu benötigt man den ArduinoISP.ino-Sketch aus den 
Beispielen. Der muss für Board Arduino compiliert werden und mittels 
"AVR ISP" auf den Arduino gespielt werden. Das ist Schritt eins. Erst 
wenn das erfolgreich ist, kann's Richtung ATTiny, Bootloader usw. 
weitergehen.
Dann kommen die Schritte, dass Du einen dedizierten ATTiny-Sketch 
(Beispielsweise die KidsMP3Player.ino für das Board ATTiny compilierst 
und dann "durch" den Arduino über "Arduino as ISP" auf den ATTiny 
spielst...

@Tim: Jetzt nochmal Du. Passt das soweit zu Deinem Setup und Deinen 
Vorbereitungsschritten?

Grüße
ghmartin77

von Stefan F. (Gast)


Lesenswert?

Du hast noch nicht verstanden, welche Rolle der Arduino bei dem ganzen 
Konstrukt hat.

Irgendwie muss der Sketch von dem MP3 Player in den ATtiny85 geladen 
werden. Außerdem müssen vermutlich die Fuses des ATtiny85 eingestellt 
werden. Sie heißen EFUSE, HFUSE und LFUSE (Extended-, High- und 
Low-Fuse). Siehe: http://www.engbedded.com/fusecalc/ und das Datenblatt 
des ATtiny85.

Irgendwie muss dieser ATtiny85 mit deinem PC verbunden werden. Einen USB 
Anschluss hat er nicht, als muss ein Adapter her. Diesen Adapter nennt 
man: ISP Programmer.

Die meisten Leute kaufen einen fertigen ISP Programmer irgendeines mehr 
oder weniger namhaften Herstellers, um Sketche in "nackte" 
Mikrocontroller zu laden. Zum Beispiel diesen: 
https://www.conrad.de/de/diamex-programmieradapter-usb-isp-stick-avr-7200-842379.html

Als Alternative zu Fertigprodukten kann man einige Arduino Module mit 
dem "Arduno ISP Sketch" ausstatten, dadurch wird das Arduino Modul 
faktisch zu einem ISP Programmieradapter. Arduino Module werden 
vorprogrammiert verkauft. Sie enthalten bereits ein Programm namens 
Bootloader, welches es ermöglicht, Sketche direkt über den USB Anschluss 
zu laden. Doku https://www.arduino.cc/en/Tutorial/ArduinoISP

Die Arbeitsschritte sind also diese:

1) Arduino Modul per USB mit dem PC verbinden.
2) Den Arduino ISP Sketch auf das Arduino Modul laden. Als Verbindung 
wird der Arduino Bootloader verwendet (Achtung: Es gibt inzwischen zwei 
Varianten. Der alte hat 57600 Baud Geschwindigkeit, der neue 115200 
Baud).
3) Du hast nun einen ISP Programmieradapter vorliegen.
4) Den ATtiny85 mit dem ISP Programmieradapter verbinden, gemäß der Doku 
auf https://www.arduino.cc/en/Tutorial/ArduinoISP
5) Installiere nun den Bootloader mit der Arduino IDE auf den ATtiny85. 
Dadurch werden die Fuses so gesetzt, wie das bei Arduino vorgesehen ist. 
Der Bootloader wird durch den nächsten Schritt wieder gelöscht, Schritt 
5 ist trotzdem wegen der Fuses notwendig - denke ich jedenfalls.
6) Nun den MP3 Player Sketch öffnen und auf den ATtiny85 laden. Die 
Übertragungsmethode ist wieder "Arduino as ISP".

Jetzt solltest du fertig sein.

Du machst gerade folgenden Fehler: Du versuchst, das Arduino Modul als 
ISP Programmieradapter zu verwenden, aber er ist noch kein ISP 
Programmieradapter, weil du den Arduino ISP Sketch noch nicht 
installiert hast. Du versucht, den Arduino ISP Sketch auf den ATtiny zu 
laden, der gehört aber auf das Arduino Modul.

Da das Arduino Modul noch kein ISP Programmieradapter ist, bekommst du 
die Fehlermeldung, dass der Programmieradapter nicht antwortet. Das 
Stichwort "stk500" ist der Name des Übertragungsprotokolls zwischen PC 
und Programmieradapter. Es entspricht einem alten Entwicklungs-Kits vom 
Atmel mit dem Namen STK500.

von Tim M. (brotzeit)


Lesenswert?

@ghmartin77 @Stefanus F.

Hatte gestern leider keine Zeit mehr zum Testen, das werde ich heute 
nachholen. Ich glaub ich hab den Fehler gefunden:

ghmartin77 schrieb:
> ...auf dein "Arduino as ISP" Board
> installiert?

Ich ging von einer Installation im Arduino Windows Programm aus.

Stefanus F. schrieb:
> Du machst gerade folgenden Fehler: Du versuchst, das Arduino Modul als
> ISP Programmieradapter zu verwenden, aber er ist noch kein ISP
> Programmieradapter, weil du den Arduino ISP Sketch noch nicht
> installiert hast.

Richtig, hab ich eindeutig versucht (geht so nicht ;-) )


Danke euch schonmal für eure Geduld und ausführlichen Tipps, heut abend 
gehts weiter, ich werde berichten...

: Bearbeitet durch User
von Tim M. (brotzeit)


Lesenswert?

Hallo zusammen,

ich hab es gestern hinbekommen und den Microcontroller beschrieben.
Danach musste ich noch etwas an den Einstellwerten für die Taster feilen 
bis die Tastenzuordnung gepasst hat.
Bin erstmal begeistert das es soweit funktioniert.

Habe dann festgestellt das der DFRobot kurze Titel wohl überhaupt nicht 
mag.
(Hab zur Kontrolle der einzelnen Ordner/Tasterzuodnung entsprechende 
Ansagen erstellt). Da Spielt er einzelne Titel hintereinander ab, 
ignoriert Tasteneingaben und stürzt dann ab.


Aktuell sind noch sporadische Fehler aufgetaucht:
- Wenn ein Timer eingestellt ist, funktioniert die Lautstärkeregelung 
manchmal nicht.
- Nach dem Einschalten (Wartezeit 2-3sec?) reagiert er manchmal nicht 
auf Tasteneingaben. Dann muss ich 1-2mal Aus- und Einschalten.
Diese Fehler treten aber nicht immer auf.
Möglicherweise stört er sich noch an den Dateinamen? Habe an manche 
Dateinamen nur die Nummern vorne angehängt und dahinter den Text 
gelassen.
Das werde ich heut nochmal ändern.

Ansonsten:
- Wird die Lautstärke zu laut, schaltet sich das Ganze ab. (Ich denke 
das ist normal, oder mangelt es hier an der Stromversorgung? 
Kondensator?)


Bisher auf jedenfall ein tolles "Spielerlebnis" und begeisterndes 
Zwischenergebnis!

Jetzt geht es mit dem Gehäuse weiter...

von ghmartin77 (Gast)


Lesenswert?

Tim M. schrieb:
> ich hab es gestern hinbekommen und den Microcontroller beschrieben.
Chapeau :) Sehr gut!

> Habe dann festgestellt das der DFRobot kurze Titel wohl überhaupt nicht
> mag.
> (Hab zur Kontrolle der einzelnen Ordner/Tasterzuodnung entsprechende
> Ansagen erstellt). Da Spielt er einzelne Titel hintereinander ab,
> ignoriert Tasteneingaben und stürzt dann ab.

Ob Du da den DFPlayer richtig in Verdacht hast, kann ich nicht sagen. 
Das Ding ist tatsächlich in bestimmten Situationen etwas "zickig" und 
die Programmier-API ist auch ein wenig schräg, als Komponente in einem 
Setup, das grundsätzlich läuft, ist er aber recht zuverlässig. 
Kontinuierliches Abspielen von Titeln innerhalb einer Playlist ist 
Feature des Codes im ATTiny und der Code ist (im Zusammenspiel mit der 
DFPlayer-API) darauf angewiesen, dass die Einzeltitel >1 Sekunde lang 
sind. Sind sie kürzer, geht das kontinuierliche Abspielen nicht richtig, 
aber abstürzen sollte da nichts. Was konkret interpretierst Du als 
Absturz?

> Aktuell sind noch sporadische Fehler aufgetaucht:

Ich will nicht vollständig ausschließen, dass mein Code definitiv 
schuldlos ist, aber die (Hard- und Software-)Version, wie sie auf GitHub 
gezeigt ist, läuft sehr zuverlässig. Habe nach jetzt fast einem Jahr 
Betrieb keine Fehlermeldung erhalten.

> - Wenn ein Timer eingestellt ist, funktioniert die Lautstärkeregelung
> manchmal nicht.

Das ist seltsam. Funktioniert dann ein Track-Wechsel noch oder ist es 
nur die Lautstärkeregelung?

> - Nach dem Einschalten (Wartezeit 2-3sec?) reagiert er manchmal nicht
> auf Tasteneingaben. Dann muss ich 1-2mal Aus- und Einschalten.
> Diese Fehler treten aber nicht immer auf.

Auch das ist seltsam. Nach dem Einschalten dauert es ein paar Sekunden, 
weil die Anzahl der Files pro Track-List Ordner vom DFPlayer geholt 
werden. Danach muss der Player aber bedienbar sein.

> Möglicherweise stört er sich noch an den Dateinamen? Habe an manche
> Dateinamen nur die Nummern vorne angehängt und dahinter den Text
> gelassen.

Welchen Text dahinter? Das Namensschema ist auf der GitHub-Seite und 
nochmal in der dort verlinkten Bedienungsanleitung beschrieben. An 
keiner Stelle ist ein Text hinter der Nummer erwähnt.

> Das werde ich heut nochmal ändern.
>
> Ansonsten:
> - Wird die Lautstärke zu laut, schaltet sich das Ganze ab. (Ich denke
> das ist normal, oder mangelt es hier an der Stromversorgung?
> Kondensator?)

Was bedeutet "schaltet sich das Ganze ab"? Stellt Deine Powerbank dann 
die Versorgung ein (LED geht aus)? Der Verstärker auf dem DFPlayer 
verspricht 3W. Damit dürfte der Gesamtaufbau unter Volllast etwas über 
0,6A bei 5V fressen (ATTiny, Tastaturfeld und Rest vom DFPlayer kann man 
vernachlässigen). Eine Powerbank, die dann schon aussteigt, scheint mir 
recht schwachbrüstig. Konnte ich mit meiner nicht beobachteb. Andersrum 
wird bei mir ein Schuh draus: Wenn zu wenig Strom "verbraucht" wird, 
geht der Spannungswandler der Powerbank aus und das System schaltet 
wegen Unterversorgung (in Bezug auf Spannung) ab. Den ATTiny allein kann 
man nicht über solch eine Powerbank versorgen, weil der einfach zu 
sparsam ist. Auch wenn man den Verstärker des DFPlayers ausschaltet, 
bricht der Verbrauch so weit ein, dass meine Powerbank-Testkandiaten 
alle abgeschaltet haben. Diesen Umstand mache ich mir im Code für den 
Sleeptimer zu Nutze.

Du kannst ja für Deinen Volllasttest mal ein USB-Ladegerät mit mind. 1A 
Ausgangsleistung anschließen und schauen, ob Dein Setup dann 
funktioniert. Ist dem so, tippe ich als Fehlerursache auf die Powerbank.

Weiterhin frohes Schaffen
ghmartin77

von Stefan F. (Gast)


Lesenswert?

Die Abschaltung könnte auch mit einem zu dünnen Kabel oder zu lockerem 
Stecker in der Stromversorgung zusammen hängen.

von Tim M. (brotzeit)


Lesenswert?

ghmartin77 schrieb:

> aber abstürzen sollte da nichts. Was konkret interpretierst Du als
> Absturz?

Dann sind jegliche Tastereingaben wirkungslos!


>> Aktuell sind noch sporadische Fehler aufgetaucht:
...
>> - Wenn ein Timer eingestellt ist, funktioniert die Lautstärkeregelung
>> manchmal nicht.
>
> Das ist seltsam. Funktioniert dann ein Track-Wechsel noch oder ist es
> nur die Lautstärkeregelung?

Track-Wechsel ist auch nicht möglich.
Wenn ein Timer eingestellt ist, stoppt dann der Titel nach Ablauf der 
Zeit, oder auch wenn ein Titel zu Ende ist? Aktuell endet die Wiedergabe 
nach Beendigung des Titels. (z.B. 5min Timer eingestellt, Titel 3min)


> Was bedeutet "schaltet sich das Ganze ab"? Stellt Deine Powerbank dann
> die Versorgung ein (LED geht aus)?

Die Power Bank schaltet sich nicht ab, nur die Wiedergabe bricht ab und 
lässt sich nicht mehr starten.


> Du kannst ja für Deinen Volllasttest mal ein USB-Ladegerät mit mind. 1A
> Ausgangsleistung anschließen und schauen, ob Dein Setup dann
> funktioniert. Ist dem so, tippe ich als Fehlerursache auf die Powerbank.

Wird gemacht!


Danke für eure schnelle Hilfe!

von ghmartin77 (Gast)


Lesenswert?

Tim M. schrieb:
> Wenn ein Timer eingestellt ist, stoppt dann der Titel nach Ablauf der
> Zeit, oder auch wenn ein Titel zu Ende ist? Aktuell endet die Wiedergabe
> nach Beendigung des Titels. (z.B. 5min Timer eingestellt, Titel 3min)

https://github.com/ghmartin77/KidsMP3Player/blob/master/assets/Manual%20German.pdf
Seite 4, dann Seite 3, dann nachdenken... :)

Zu den anderen Fehlerbildern -ergänzend zu Stefanus' wichtiger Anmerkung 
oben- fällt mir noch siedendheiß die Diskussion über 
Abblockkondensatoren am ATTiny ganz oben in diesem Thread ein. In meinem 
Build habe ich einen 100nF-Keramikkondensator in den Hohlraum zwischen 
Sockel und ATTiny reingestopft (natürlich mit Anschluss an VCC und GND 
des ATTiny), das aber nie im Schaltbild nachgezogen. Werd ich alsbald 
nachrüsten.

Das wäre auch etwas, was Du mal probieren kannst. Vielleicht fällt 
tatsächlich der ATTiny um, wenn der DFPlayer unter Volllast losrockt, 
weil das Auswirkungen auf die Spannung hat.

Grüße
ghmartin77

von Stefan F. (Gast)


Lesenswert?

Kann sein.

Abblock-Kondensatoren haben allerdings primär die umgekehrte Aufgabe: 
Sie sollen die Spannungsversorgung vor Störungen bewahren, die vom IC 
kommen.

von ghmartin77 (Gast)


Lesenswert?

Neuigkeiten bzgl. vermeintlicher Fake-Chips:
Habe meine Vorräte an DFPlayern ausgepackt. Auf den ersten Blick sehen 
sie gleich aus, wie die Variante, mit der ich entwickelt habe: Blaue 
LED, gleiche "MP3-TF-16P"-Aufschrift neben dem MiniSDCard-Slot.
Funktioniert haben sie nur nicht. Habe viele Fehlerbilder 
wiedergefunden, die oben im Thread beschrieben sind.
Der wesentliche Unterschied:

Die eine Version hat einen Chip mit der Aufschrift YX5200 an Board 
(meine Entwicklungsversion), die anderen einen mit MH2024K.

Damit ein wenig gegoogelt und diverse Stellen gefunden, an denen Leute 
drüber weinen, dass mit dem MH2024K die Serial-Schnittstelle nicht 
ginge. Der Treffer, der mich auf die richtige Spur brachte, war der 
hier:
https://github.com/DFRobot/DFRobotDFPlayerMini/issues/12

Meine Tests sind noch nicht final vollendet, aber vermutlich gehen Eure 
als Fake vermuteten Player, wenn ihr ab Zeile 164 den folgenden Code...:
1
  while (!player.begin(softSerial)) {
2
    delay(200);
3
  }

durch den hier ersetzt...:
1
  player.begin(softSerial, false, false);

Das Serial-Antwortverhalten des MH2024K ist scheinbar nicht sauber (kein 
ACK), zudem macht er beim Reset einen ziemlichen Krach über den 
Lautsprecher. Die beiden "false"-Parameter schalten beides ab: Reset und 
keine ACK-Erwartung.
Das macht die Kommunikationsschnittstelle zwar etwas "unzuverlässiger", 
funktioniert aber scheinbar sowohl mit MH2024K als auch mit YX5200.

Ich teste noch ein bissel und packe dann eine aktualisierte Fassung ins 
GitHub-Repo...

Grüße
ghmartin77

von Brotzeit (Gast)


Lesenswert?

Habe den Abblockkondensator installiert, Kabelquerschnitte vergrößert, 
Lötstellen kontrolliert , SD- Karten getestet und das Ganze mit dem 
Labornetzgerät betrieben. Trotzdem läuft das Ganze nicht zuverlässig :-(

Muss das System mehreremale Neustarten bis es funktioniert. Beim 
Einschalten knackt es mehrmals laut, manchmal reagiert es auf Eingaben, 
manchmal nicht.


Habe ich trotz offiziellem Distributor evtl. einen Fake erwischt?

von ghmartin77 (Gast)


Lesenswert?

Hi Tim,

hast Du meinen Post direkt über Deinem gelesen?
Welchen Chip hast Du auf Deinem DFPlayer (Unterseite)?
Ggfs. hilft die vorgeschlagene Codeänderung.

Ansonsten kann ich Dir noch einen Sketch für den Arduino anbieten, mit 
dem Du Debug-Output erhältst, wenn Du den Arduino als Steuereinheit für 
den Player nimmst. Vielleicht kommen wir auch so dahinter, wo's 
klemmt...

Deinen berichteten "Absturz" bei voller Lautstärke konnte ich mit einem 
ausreichend dimensionierten Lautsprecher (Visaton, 8Ohm, 10W) 
nachvollziehen. Bei mir schaltet dann der DFPlayer ab lässt sich aber 
nach Reduzieren der Lautstärke per Knopfdruck wieder zum Abspielen des 
nächsten Titels überreden.

Grüße
ghmartin77

von Brotzeit (Gast)


Lesenswert?

Auf dem "originalen" steht bei mir:
 DFROBOT LISP3 (großer chip)
XY8002D 170721

Auf dem Fake:
JC AA1752CJ3J13.1-94
auf dem kleinen Chip steht beim Fake nichts.

Wenns es bei kir zum Absturz kommt bekomm ich das Teil nicht mehr 
gestartet.
Wenn ich es an der Powerbank betreibe, geht diese dann nach einiger Zeit 
aus.

von ghmartin77 (Gast)


Lesenswert?

Brotzeit schrieb:
> Auf dem "originalen" steht bei mir:
>  DFROBOT LISP3 (großer chip)
> XY8002D 170721

Nach den jüngsten Recherchen und der Lernerfahrung "YX5200 vs MH2024K" 
bin ich vorsichtig mit "Fake" rufen, aber das Internet kennt 
verdächtigerweise keinen Chip und auch keinen DFPlayer mit der 
Aufschrift "LISP3".

Falls Du die o.g. Code-Änderung (ist auch mittlerweile auf GitHub) nicht 
bereits probiert hast, würde ich das noch vorschlagen...

Ansonsten Fake oder -wenn doch Original- hat das Teil vielleicht nen 
Schlag weg. Wenn wir den ATTiny noch als Fehlerverursacher ausschließen 
wollen, gib mir Bescheid, dann lade ich den Sketch für den Arduino hoch. 
Dann kannst Du damit nochmal rumprobieren.

> Wenns es bei kir zum Absturz kommt bekomm ich das Teil nicht
> mehr gestartet.
> Wenn ich es an der Powerbank betreibe, geht diese dann nach einiger Zeit
> aus.

Auch das ist mindestens mal verdächtig. Wie oben beschrieben, konnte ich 
mit hoher Last erzwingen, dass der DFPlayer die Wiedergabe abbricht 
(dann schickt er allerdings noch eine Abbruchsmeldung und lässt sich 
danach weiter ansteuern). Wenn Deine Powerbank kurz darauf ausschaltet, 
ist das ein Indiz dafür, dass der DFPlayer sich wirklich komplett 
weggehängt hat, zumindest aber den ADC deaktiviert. Nur dann fällt der 
Gesamtstromverbrauch unter eine Schwelle, dass eine Powerbank ausgeht.

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Vorgängerpost: ADC --> DAC

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> Ggfs. hilft die vorgeschlagene Codeänderung.

Mit der Codeänderung kann ich den Player zwar zuverlässig mit einer der 
Tasten starten, aber dann reagiert er auf keinerlei Eingaben mehr. Auch 
die Lautstärkeregelung ist außer Funktion.
Beim Einschalten ist diesmal kein Knacken zu hören.

Hab das ganze jetzt mit nem zweiten ATTiny getestet. Identische Funktion 
zum Ersten.

Ich glaub ich order noch einen DFPlayer von nem anderen Distributor...

von ghmartin77 (Gast)


Lesenswert?

Hallo zusammen,

hab noch ein weiteres Feature im GitHub-Code nachgerüstet: Über Taste 3 
(2 Sekunden halten) kann man nun einstellen, ob der Player beim 
Einschalten, den zuletzt nicht vollständig abgespielten Track, bei dem 
ausgeschaltet wurde, automatisch erneut startet.

Grüße
ghmartin77

von Tim M. (brotzeit)


Angehängte Dateien:

Lesenswert?

ghmartin77 schrieb:
> Über Taste 3
> (2 Sekunden halten) kann man nun einstellen, ob der Player beim
> Einschalten, den zuletzt nicht vollständig abgespielten Track, bei dem
> ausgeschaltet wurde, automatisch erneut startet.

Genau das hat noch gefehlt. Ist bei längeren Hörspielen die nicht 
gesplittet sind von Vorteil.

Hab gestern das Gehäuse soweit fertiggestellt, jetzt muss ich nur noch 
die Technik hinbekommen und einbauen...
Ich hoffe mit nem neuen DFPlayer läuft die Kiste...

von Stefan F. (Gast)


Lesenswert?

Mir gefällt dieses Projekt sehr, ganze besondere die hübsche Kiste - 
obwohl ich selbst dafür keinen Anwendungsfall habe. Ich behalte es aber 
als Geschenk-Idee im Hinterkopf.

Es ist wirklich schade, das so schlechte DFPlayer Klone im Handel sind.

von ghmartin77 (Gast)


Lesenswert?

Tim M. schrieb:
> Genau das hat noch gefehlt. Ist bei längeren Hörspielen die nicht
> gesplittet sind von Vorteil.

Genau lesen:
> den zuletzt nicht vollständig abgespielten Track, bei dem
> ausgeschaltet wurde, automatisch erneut startet.

An exakt der Stelle aufsetzen, an der ausgeschaltet wurde, bringt der 
DFPlayer in seiner API nicht mit (genausowenig wie Spulen). Bei langen 
Hörspielen ohne Split hilft das Feature leider nicht, wohl aber wenn ein 
aufgeteiltes Hörspiel in mehreren Tracks in einer Playlist liegt (oder 
mehrere Folgen einer Serie).

> Hab gestern das Gehäuse soweit fertiggestellt
Sieht super aus!!!

> Ich hoffe mit nem neuen DFPlayer läuft die Kiste...
Da bin ich zuversichtlich. Wenn's ganz dicke kommt, kann ich Dir einen 
meiner Player zuschicken, damit die "Bestelllotterie" ein Ende hat und 
Du einen Player mit YX5200 oder MH2024K hast...

Grüße
ghmartin77

von Tim M. (brotzeit)


Lesenswert?

ghmartin77 schrieb:
...

> Genau lesen:
>> den zuletzt nicht vollständig abgespielten Track, bei dem
>> ausgeschaltet wurde, automatisch erneut startet.

Ah, OK. Aber das hilft auch. Dann kann man ja die mp3 in viele Teile 
splitten und es geht am Trackanfang wieder los. Hilft auf jedenfall 
auch!

>> Hab gestern das Gehäuse soweit fertiggestellt
> Sieht super aus!!!

Freut mich wenn es gefällt!



>> Ich hoffe mit nem neuen DFPlayer läuft die Kiste...
> Da bin ich zuversichtlich. Wenn's ganz dicke kommt, kann ich Dir einen
> meiner Player zuschicken, damit die "Bestelllotterie" ein Ende hat und
> Du einen Player mit YX5200 oder MH2024K hast...

Das wäre natürlich SUPER! Bin jetzt mal gespannt was ich geliefert 
bekomme....
Kann dir auch gerne ein paar Fakes anbieten. Aufgrund defekter 
Verpackung habe ich eine Lieferung doppelt bekommen...

: Bearbeitet durch User
von Tim M. (brotzeit)


Lesenswert?

Was mir noch positiv aufgefallen ist: Der Klang!

Bin total überrascht wie gut die Tonqualität ist, welche der kleine 
Lautsprecher in dem Gehäuse abliefert.
Sowohl für Musik als auch für gesprochene Texte!

von Hermann (Gast)


Lesenswert?

Hallo,
mein Dfplayer hat den Aufdruck DFROBOT/LISP3
Ist identisch zu dem in diesem shop
https://www.robotshop.com/de/de/dfplayer-mini-mp3-player.html#Lieferantenproduktcode
Da gibt es auch Datenblätter und library

Bislang ist mir keine Fehlfunktion aufgefallen
Der Player ist allerdings auch noch nicht im Gebrauch , Gehäuse fehlt 
noch
Gruß
Hermann

von Tim (Gast)


Lesenswert?

Heute ist mein zweiter Player gekommen, ebenfalls mit dem Aufdruck 
DFROBOT LISP3

Dieser startet allerdings genauso schlecht und unzuverlässig wie der 
Erste.

von Uli (Gast)


Lesenswert?

Wie viele DF-Player Vesionen gibt es den inzwischen die funktionieren?

Von den anderen kann ich inzwischen ein kleines Geschäft aufmachen unter 
dem Motto: "Super Fake Player, China schrott exterem billig".

Muss gerade noch 2 Player bauen und freue mich schon auf die neuen FAKE 
Player.

von Tim (Gast)


Lesenswert?

Gerade mal das neueste Programm mit der Trackwiederholung für den ATTiny 
getestet.
Funktioniert bei mir nicht. Keine Lautstärkeregelung möglich, keine 
Reaktion auf Tastereigaben... Aber: startet zuverlässig immer mit dem 
gleichen Track... hehe

von ghmartin77 (Gast)


Lesenswert?

Hmmm, jetzt wird's langsam gleichsam interessant wie verwirrend.

@Hermann: Danke für den Link und die Auskunft, dass besagter Player bei 
Dir funktioniert. Ich habe zwar -wie oben beschrieben- (per Google) 
keinen Chip mit der Aufschrift DFPlayer/LISP3 gefunden, aber die 
Shop-Aufmachung wirkt hinreichend professionell, vor allem auch mit 
einem Photo der Chip-Unterseite, dass ich verleitet bin zu glauben, dass 
auch dieser Chip vernünftig laufen sollte.

Damit hätten wir in Summe die Theorie, dass Chips mit folgenden 
Aufschriften funktionieren:
-YX5200
-MH2024K
-DFPlayer/LISP3

Folgender scheint tatsächlich insofern ein Fake zu sein, als dass die 
UART-Schnittstelle zumindest mal nicht so läuft wie die DFPlayer-Library 
das erwartet:
-JC AA1752CJ3J13.1-94

Bleibt die Frage, warum die zwei DFPlayer/LISP3-Chips von Tim nicht 
funktionieren. Entweder sind das Fakes, bei denen jemand die Aufschrift 
geschickt nachahmt, oder das Problem steckt doch im konkreten Aufbau.
Ich würd' mich mit Ankunft des zweiten Players und gleichem Problem mal 
auf letzteres einschießen und Dich, Tim, bitten, folgendes zu prüfen:
1) Sind die Verbindungen zwischen ATTiny und DFPlayer (i.e. RX, TX) 
exakt gemäß dem Schaltplan auf der GitHub-Seite verbunden?
2) Ist der Widerstand in der richtigen Leitung eingebaut?
3) Ist es sicherlich ein 1KOhm-Widerstand?
4) Jetzt wird's etwas esoterisch: Ich habe irgendwo mal gelesen, dass 
SoftSerial nur mit bestimmter Taktung des ATTiny aufgrund von 
Timing-Issues korrekt funktioniert: Mit welcher Clock-Angabe ist Dein 
ATTiny-Bootloader "gebrannt"? 1 MHz (internal) oder 8 MHZ (internal)? Im 
Zweifel probier beides aus und schau, ob sich was am Verhalten Deines 
Systems ändert. ACHTUNG!!! Bitte keinesfalls einen der "x MHz 
(external)"-Menüpunkte probieren, sonst kriegst Du ohne Zusatzmaterial 
Deinen ATTiny nicht mehr ans Laufen. Alle Einträge mit "internal" im 
Namen sind aber safe.

Bin gespannt auf Deine Rückmeldungen :)

Grüße
ghmartin77

von Hermann (Gast)


Lesenswert?

Hallo,
ganz wichtig ist meiner Meinung nach auch, die Spannungswerte in der 
Tastaturwiderstandskette zu messen und falls notwendig die Zahlenwerte 
im Programm zu ändern. Nur dann werden die Keys sicher erkannt und man 
hat eine mögliche Fehlerquelle weniger.
Gruß
Hermann

von Tim M. (brotzeit)


Lesenswert?

ghmartin77 schrieb:
> leibt die Frage, warum die zwei DFPlayer/LISP3-Chips von Tim nicht
> funktionieren. Entweder sind das Fakes, bei denen jemand die Aufschrift
> geschickt nachahmt, oder das Problem steckt doch im konkreten Aufbau.

Da ich bei zwei verschiedenen offiziellen Distributoren bestellt habe, 
kann ich mir nicht vorstellen dass es sich um Fakes handelt.

Ich werde heute nochmal die Verdrahtung, Lötpunkte Widerstand etc. 
Prüfen!
Vielleicht bau ich nochmal ne Platine auf. Bauteile hab ich inzwischen 
genug rumliegen.... hehe


>Mit welcher Clock-Angabe ist Dein
> ATTiny-Bootloader "gebrannt"? 1 MHz (internal) oder 8 MHZ (internal)?

Habe den Bootloader mit 1 MHz (internal) gebrannt, kann die 8MHz gerne 
testen.


@Hermann
Das Ändern der Werte zur Spannung war bei mir ebenfalls Pflicht.
Mit den Standardwerten gingen nur wenige Tasten, bzw. mehrere Taster 
waren dem gleichen Ordner zugewiesen.

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> Jetzt wird's etwas esoterisch: Ich habe irgendwo mal gelesen, dass
> SoftSerial nur mit bestimmter Taktung des ATTiny aufgrund von
> Timing-Issues korrekt funktioniert

Tja, was soll ich sagen... der Kandidat erhält 100 Punkte!

Bootloader mit 8MHz gebrannt und schon läuft die Kiste perfekt.
Kein Knacken beim Einschalten, zuverlässige Titelanwahl!

Großes Lob! Danke für eure Mühen und Geduld, ganz besonders dir 
ghmartin77!!!


Jetzt kann ich die Kiste fertig bauen, Bilder werden folgen...
Mit den Vorräten an Bauteilen, muss ich bestimmt noch nen zweiten bauen 
;-)

von ghmartin77 (Gast)


Lesenswert?

Tim schrieb:
> ...und schon läuft die Kiste perfekt.

Ja mei, da kriegst Pippi inne Augen :)

...und mir deucht, ich sollte in der Doku auf GitHub noch ein wichtiges 
Detail hinterlassen :)
Die 8 MHz sind nach Datenblatt scheinbar auch der Default. Deshalb hatte 
da bisher wohl auch niemand Stress mit.

Ich würd mal sagen: Projektziel vollumfänglich erfüllt :) Haben wir alle 
einiges gelernt. Weiß zwar nicht, ob Du Dir das so vorgestellt hattest, 
Tim, oder einfach nur einen Player basteln wolltest... Ich für meinen 
Teil freu mich, ob der spannenden Erkenntnisse...

Chapeau!

von Tim M. (brotzeit)


Lesenswert?

ghmartin77 schrieb:
> Ich würd mal sagen: Projektziel vollumfänglich erfüllt :) Haben wir alle
> einiges gelernt. Weiß zwar nicht, ob Du Dir das so vorgestellt hattest,
> Tim, oder einfach nur einen Player basteln wolltest...

Dazulernen war eindeutig mit eingeplant. Bin schon davon ausgegangen, 
dass die eine oder andere Stolperfalle dazukommt. Das Playerroulette war 
zwar etwas nervig, aber ansonsten hats viel Spaß gemacht.
Mission erfüllt, das Ding funktioniert!

Außerdem ist mein Junior Feuer und Flamme, und gibt den Player nicht 
mehr aus der Hand, das entschädigt alles!

von ghmartin77 (Gast)


Lesenswert?

> Außerdem ist mein Junior Feuer und Flamme, und gibt den Player nicht
> mehr aus der Hand, das entschädigt alles!

Truly the only thing that matters :)

von Tim (Gast)


Angehängte Dateien:

Lesenswert?

Wie versprochen noch ein paar Bilder...

von ghmartin77 (Gast)


Lesenswert?

Saubere Sache!

Das ist eine andere Hausnummer als meine Heißkleber-Montagetechnik für 
die Powerbank :)

Das nächste Gehäuse bestelle ich bei Dir :)

Grüße
ghmartin77

von Stefan F. (Gast)


Lesenswert?

ghmartin77 schrieb:
> Die 8 MHz sind nach Datenblatt scheinbar auch der Default.

Nein, per Default ist bei allen AVR die CLKDIV8 Fuse gesetzt. Aber bei 
den für Arduino verkauften Chips mit Bootloader ist sie aus.

Am Besten wäre, wenn du alle drei Fuse-Bytes ausliest und dokumentierst, 
nicht nur dieses eine Bit.

von ghmartin77 (Gast)


Lesenswert?

Recht hast Du... in beiderlei Hinsicht.
Habe die Doku auf GitHub entsprechend ergänzt.

Grüße
ghmartin77

von Stefan F. (Gast)


Lesenswert?

ghmartin77 schrieb:
> Habe die Doku auf GitHub entsprechend ergänzt.

Sehr gut, das ist ein tolles Projekt. Ich finde die vielen Fotos dazu 
auch sehr hilfreich.

Das könnte man sicher gut auf dem Weihnachtsmarkt verkaufen - ich aber 
nicht, ich würde die Box nicht so schön hinbekommen.

Ein Verbesserungsvorschlag:
Bei der Tastenabfrage würde ich den internen Pull-Up durch einen 
externen ersetzen, wegen seiner Präzision. Ich denke, dann entfällt das 
Manuelle Anpassen der ADC Schwellwerte.

von Hermann (Gast)


Lesenswert?

Hallo,
noch eine Frage zu den Fuse Bits:
Ist es denn ausreichend, den Clock auf 8 Mhz intern, beim brennen des 
Boatloaders zu stellen?
Mir ist nicht klar, wie ich an die drei Fuses herankomme mit dem Arduino 
Ide?
Zusatzfrage:
Wenn ich einen schon einmal programmierten Attiny85 neu programmiere, 
kann ich dann auch den Boatloader auf 8 Mhz (von ehemals 1Mhz)  neu 
brennen?
Gruß
Hermann

von ghmartin77 (Gast)


Lesenswert?

Hermann schrieb:
> Hallo,
> noch eine Frage zu den Fuse Bits:
> Ist es denn ausreichend, den Clock auf 8 Mhz intern, beim brennen des
> Boatloaders zu stellen?
> Mir ist nicht klar, wie ich an die drei Fuses herankomme mit dem Arduino
> Ide?
> Zusatzfrage:
> Wenn ich einen schon einmal programmierten Attiny85 neu programmiere,
> kann ich dann auch den Boatloader auf 8 Mhz (von ehemals 1Mhz)  neu
> brennen?
> Gruß
> Hermann

Hallo Hermann,

diese "Bootloader brennen"-Geschichte ist historischer Unfug aus der 
Welt, aus der die ArduinoIDE ursprünglich kommt: Arduino. Dort kann mit 
dieser Funktion genau das getan werden, was der Name vermutet, nämlich 
einen Bootloader zu brennen. Das ist einfach ein Mini-Stück-Code, das 
beim Starten des Chips für wenige Sekunden schaut, ob jemand über ein 
vereinbartes Protokoll neuen Code hochladen möchte, diesen dann 
entgegennimmt und in den Chip packt (ohne den Bootloader zu 
überschreiben und ohne, dass man den Chip mit Low-Level-Mechanismen 
flashen muss, die teilweise recht aufwändig sind).
Im ATTiny-Falle gibt es dagegen keinen Bootloader. Stattdessen wird 
diese Funktion genutzt, um die sog. Fuses zu setzen. Das sind 
Konfigurations-Bits, verteilt auf 3 Byte, die den Chip in einen 
bestimmten Zustand konfigurieren, beispielsweise die Taktfrequenz 
setzen.
Wenn Du in der ArduinoIDE unter "Datei" -> "Voreinstellungen" die beiden 
Häkchen bei "Ausführliche Ausgabe" setzt, siehst Du etwa so was im 
unteren Konsolen-Fenster:
1
C:\***/bin/avrdude -CC:\***avrdude.conf -v -pattiny84 -cstk500v1 -PCOM5 -e -Uefuse:w:0xFF:m -Uhfuse:w:0b11010111:m -Ulfuse:w:0xE2:m

Daran kannst Du die Werte der Fuses sehen, die er setzen will (der 
hfuse-Wert ist hier als Binärwert angegeben (entspricht Hex 0xD7)). Mit 
dem Tool avrdude kannst Du sie auch "per Hand" setzen. Abgeleitet werden 
sie in ArduinoIDE von den Settings für den Chip (Taktfrequenz, 
Brown-out-Detection (BOD), etc.). In der ArduinoIDE reicht es für den 
MP3-Player, wenn Du die Clock-Frequenz auf 8MHz (internal) setzt. Der 
Rest kann bei den Defaults bleiben.
Da die Fuses erhalten bleiben, brauchst Du das nicht jedesmal beim 
Hochladen eines Programms machen. Wenn ein ATTiny schon passend 
konfiguriert ist, reicht es, nur noch den Sketch hochzuladen.
Lustige Effekte kriegst Du aber, wenn Fuses und Compile-Schalter nicht 
zusammenpassen. Beispiel: Deine Fuses stehen auf 8MHz. Dann setzt Du die 
Taktfrequenz in der ArduinoIDE auf 1MHz um und lädst den kompilierten 
Sketch hoch. In diesem Fall werden "Pausenzeiten" zur Compile-Zeit auf 
1MHz berechnet, der Chip läuft aber immer noch mit 8MHz.
Was dann bspw. mit einer Funktion wie "delay()" passiert, überlasse ich 
Deiner Phantasie :)

Zur Zusatzfrage noch die explizite Antwort: Du kannst Fuses und Programm 
jederzeit und so häufig es die Speicherstellen aushalten, neu brennen. 
So lange Compile-Zeit-Einstellungen und Fuses zusammenpassen, reicht es 
aber, immer nur das Programm neu hochzuladen.

Grüße
ghmartin77

von Klaus R. (klaus2)


Lesenswert?

...und statt "brennen" würde man "schreiben" (ND: flashen) sagen, da ich 
vermute dass der Begriff noch aus der Zeit kommt, als mit "richtigen 
Programmern" bei OTPs sie Zellen "verbrannt" wurden, was dann einer 
logischen 0 entsprach? Aber das hat sich so eingebürgert und ist daher 
natürlich weiterhin verständlich ;)

Klaus.

von ghmartin77 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Hermann,
hallo Stefanus,
hallo Klaus R.,

hab mir die Sache mit den Key-Werten im Programm nochmal angeschaut, 
weil mich die Abweichungen verwirrten.
Angehängt ein kleines LibreOffice-Calc-Sheet.
Jetzt ist mir einiges klarer :)

1) Vorweg und am wichtigsten: Stefanus hat weiterhin Recht: Den internen 
Pullup zu benutzen, ist für ein zum Nachbau vorgesehenes Projekt eine 
blöde Idee, weil der laut Datensheet von 20kOhm bis 50kOhm schwanken 
kann.

2) Mein Fritzing-Diagramm und der Code passen nicht zusammen: Ich habe 
im Fritzing-Diagramm 1kOhm-Widerstände reingemalt, verbaut habe ich aber 
10kOhm (Braun, Schwarz, Orange). Bei einem internen Pullup mit 36kOhm 
komme ich dann rechnerisch (siehe auch Sheet) auf 950, 896, 850, 806, 
759, 706, 642, 560, 448, 281, 0. Das ist sehr nah an den Werten, die ich 
im Programm-Code stehen habe (seinerzeit durch Messen ermittelt).

3) Mache ich die selbe Rechnung für 1kOhm-Widerstände bei gleichem 
internen Pullup auf (Zelle E1 ändern, dann rechnet das Sheet neu), 
ergibt sich rechnerisch: 933, 846, 761, 676, 591, 505, 415, 322, 223, 
116, 0. @Hermann: Kommen Dir diese Werte bekannt vor? :)

4) Nummer 1 ist immer noch richtig und der einzig vernünftige Weg, dem 
Problem aus dem Weg zu gehen...

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

Kleiner Zwischenbericht:
Die Freude am Player ist ungebrochen und er hat schon stundenlang 
Hörbücher abgespielt.
Er funktioniert zuverlässig und fast perfekt.

Einen Bug hab ich noch:
Ab und an bleibt er nach einem Titel stehen, und spielt den nächsten 
erst bei betätigen der Taste aus dem gleichen Ordner. (Die Powerbank ist 
an!)
Ist allerdings nicht immer der gleiche Titel, sondern unterschiedlich...

Aus den restlichen Bauteilen bau ich gerade nen 2. Player. 
Komischerweise schaltet sich die 2. Powerbank bei leiser Lautstärke ab. 
Hab jetzt nen 130Ohm Widerstand parallel geschaltet, damit scheint das 
Problem gelöst zu sein. Die Powerbank schaltet sich auch weiterhin ab 
wenn kein Titel abgespielt wird.
Ich hoffe das ist "elektrisch vertretbar"!?

Teste den zweiten Player gerade mit nem Visaton SC 5.9 ND (8056)

von ghmartin77 (Gast)


Lesenswert?

Hi Tim,

schön zu hören, dass ihr Spaß mit dem Gerät habt :)

Zu Deinen Fehlerbildern:
1) "Kontinuierliches Abspielen zuweilen unzuverlässig": Kann -wie immer 
im Leben- mehrere Ursachen haben:
a) Rückmeldung, dass ein Track zu Ende ist, wird nicht sauber erkannt. 
Code dazu steckt hier: 
https://github.com/ghmartin77/KidsMP3Player/blob/master/KidsMP3Player/KidsMP3Player.ino#L339 
(ff).
Ursächlich könnte das eine Störung auf der Leitung vom DFPlayer zum 
ATTiny (die ohne Widerstand) sein. Damit wird evtl. das Callback-Paket 
komplett nicht oder in den entscheidenen Punkten falsch gelesen. Dem 
könnte man evtl. mit Entstörkondensatoren entgegenwirken (bin ich aber 
nicht bewandert, soll mal jemand was aus diesem Forum zu sagen, der 
echte Ahnung hat). Wenn's keine Störung ist, könnte es auch eine 
Timing-Frage sein. Die Kommunikation zwischen DFPlayer und ATTiny läuft 
mit 9600 Baud 
(https://github.com/ghmartin77/KidsMP3Player/blob/609a59758d550903c2a1ad18d126d9e76df3ef7c/KidsMP3Player/KidsMP3Player.ino#L193). 
Wg. leichter Timing-Fehler könnte eine Antwort -genau wie bei Störungen- 
Verschütt gehen. Probieren kannst Du mit leicht größerer oder leicht 
kleinerer Baudrate.

b) Die jetzige Rückmeldungsverarbeitung prüft, ob der abgespielte Track 
mit dem zuletzt gestarteten übereinstimmt: 
https://github.com/ghmartin77/KidsMP3Player/blob/609a59758d550903c2a1ad18d126d9e76df3ef7c/KidsMP3Player/KidsMP3Player.ino#L343 
und 
https://github.com/ghmartin77/KidsMP3Player/blob/609a59758d550903c2a1ad18d126d9e76df3ef7c/KidsMP3Player/KidsMP3Player.ino#L336
Das kann in zwei Ecken in die Hose gehen: Lesefehler im Callback-Paket, 
deshalb falsche Tracknummer. Alternativ ist die Pause in Zeile 335 zu 
klein und der Player gibt nach 500ms noch die falsche curTrackFileNumber 
zurück.

In allen Fällen hilft vermutlich nur Rantasten (ist bei 
"Nur-Manchmal"-Fehlern immer ein hartes Brot :)). Ich würde in folgender 
Reihenfolge vorgehen (wenn's jeweils nicht hilft, nächsten Schritt 
angehen):
1) Zeile 335: delay(500) erhöhen auf delay(1000).
2) Zeile 343: Tracknummer-Vergleich entfernen.
3) Hardware: Kabelabschirmung (so überhaupt ein Kabel und keine 
Leiterbahn) und Entstörungsversuche.
4) Spielen mit der Baudrate.

Zu Deinem anderem Punkt:
2) "Powerbank geht aus": Der neue Lautsprecher, den Du gewählt hast, hat 
wesentlich weniger Watt, als der vorherige. Damit ist vermutlich bei 
leisem Abspielen der Gesamtstromverbrauch nicht mehr hoch genug für die 
Powerbank und sie schaltet den Spannungswandler ab. Ein 
parallelgeschalteter Widerstand erhöht den Stromverbrauch für ein bissel 
Wärme und behebt Dein Problem. Achte drauf, dass der Widerstand "hinter" 
dem Ein-/Ausschalter liegt, damit die Powerbank nicht dauerhaft 
leergesaugt wird. Ansonsten gibt's elektrisch betrachtet von meiner 
Warte nichts zu meckern. Kriegst nur keinen grünen Umweltstempel mehr :)

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> 1) Zeile 335: delay(500) erhöhen auf delay(1000).
Brachte keine Besserung

> 2) Zeile 343: Tracknummer-Vergleich entfernen.
Die Zeile bis zur Klammer löschen?
Welche Funktionen sind dann nicht mehr gegeben?
Beim Einschalten des kontinuierlichen Abspielens springt er automatisch 
nen Track weiter!?!

von Tim (Gast)


Angehängte Dateien:

Lesenswert?

Testplayer ;-)

von ghmartin77 (Gast)


Lesenswert?

Tim schrieb:
>> 2) Zeile 343: Tracknummer-Vergleich entfernen.
> Die Zeile bis zur Klammer löschen?
> Welche Funktionen sind dann nicht mehr gegeben?
> Beim Einschalten des kontinuierlichen Abspielens springt er automatisch
> nen Track weiter!?!

Neenee, nicht die ganze Zeile löschen, ich meinte nur den 
Tracknummer-Vergleich:
1
if (type == DFPlayerPlayFinished /* && value == curTrackFileNumber */) {

Beim nochmaligen Drübernachdenken und Code-Analyse der DFPlayer-Lib 
schwindet meine Sicherheit, dass das helfen könnte. Habe gesehen, dass 
in der DFPlayer-Lib eine Prüfsumme ausgewertet wird, so das eine 
Nachricht vom Player nur verarbeitet wird, wenn die Prüfsumme passt. 
Insofern ist Erhalt der DFPlayerPlayFinished-Nachricht mit falscher 
Tracknummer (mit ausreichender Wahrscheinlichkeit) nicht möglich.
Trotzdem kannst Du das mal probieren, auch wenn das -wie Du richtig 
vermutet hast- Seiteneffekte hat, die ich initial nicht bedacht hatte 
(Abspielen von Konfigurationstexten (z.B. Sleep Timer), wenn der Player 
gerade nichts abspielt, könnte den Effekt haben, dass danach einfach ein 
Track aus den Playlists abgespielt wird).

Trotzdem hilft uns das evtl. weiter. Solltest Du mit ausreichender 
Genauigkeit sagen können, dass das Problem dann weg ist (ja, ja, ich 
weiß, man kann Ausbleiben eines Fehlers nicht beweisen :)), liegt die 
Ursache bei Erfassung der curTrackFileNumber und wir können an der Ecke 
weitersuchen. Das wäre zumindest mal eine Einschränkung des Problems.
Bleibt das Problem bestehen, wissen wir, dass die 
DFPlayerPlayFinished-Meldungen nicht immer vom ATTiny gesehen werden.

Siehst Du das beschrieben Verhalten in beiden Deiner Player?
Wie häufig kommt das vor? Gibt's in Deinen Augen irgendeine 
Gemeinsamkeit der Tracks, nach denen das kontinuierliche Abspielen 
abbricht? Besonders kurz, besonders lang, besonders laut? Wenn es bei 
einem Track passiert, passiert es bei diesem Track dann immer?

Kriegst Du das Verhalten auch mit der KidsMP3Player.ino-Version vor 
Einbau der Funktion des erneuten Start eines unvollendeten Tracks beim 
Einschalten? 
https://github.com/ghmartin77/KidsMP3Player/tree/77621df2cf0c73cfc919e383d6546d23f876d431 
(die Key-Referenz-Values müssen noch angepasst werden).

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> Wie häufig kommt das vor? Gibt's in Deinen Augen irgendeine
> Gemeinsamkeit der Tracks, nach denen das kontinuierliche Abspielen
> abbricht? Besonders kurz, besonders lang, besonders laut? Wenn es bei
> einem Track passiert, passiert es bei diesem Track dann immer?

Ich kann es nicht reproduzieren. Lautstärke, Track, kurz, lang... immer 
unterschiedlich

> Kriegst Du das Verhalten auch mit der KidsMP3Player.ino-Version vor
> Einbau der Funktion des erneuten Start eines unvollendeten Tracks beim
> Einschalten?

Ich teste aktuell deine Version "vor Disable ACK"
War die Erste Version die ich nach meiner Anmeldung runtergeladen hatte.
Scheit bis jetzt problemlos zu laufen.

Ich hab das Gefühl die Pausen nach dem Track sind etwas länger und der 
Player spielt dadurch zuverlässiger weiter.

von Tim (Gast)


Lesenswert?

Tim schrieb:
> Ich teste aktuell deine Version "vor Disable ACK"
> War die Erste Version die ich nach meiner Anmeldung runtergeladen hatte.
> Scheit bis jetzt problemlos zu laufen.

Ich lehn mich mal aus dem Fenster und schließe den Fehler mit der 
Version aus.
Der erste Player läuft damit auch durch...

von ghmartin77 (Gast)


Lesenswert?

Interessant. Mit und nach dem "Disable ACK"-Commit habe ich insgesamt 
noch zwei Änderungen eingebaut, die die Ursache sein könnten: "Disable 
ACK" eben oder das Wiederanspielen des letzten unvollendeten Tracks.

Würde gern noch den Root-Cause des Problems finden:
Kannst Du mal den Head aus dem GitHub-Repo nehmen und die Änderung des 
"Disable ACK"-Commits manuell zurückdrehen? D.h.
1
  player.begin(softSerial, false, false); // disable ACK to work with MH2024K-24SS chips
ersetzen durch
1
  while (!player.begin(softSerial)) {
2
    delay(200);
3
  }

Btte "automatisches Wiederanspielen" aktivieren (Taste 3).
Wie verhält sich der Player dann, was das kontinuierliche Abspielen 
angeht?

Danke für's Experimentieren!

Grüße
ghmartin77

von Let the Music Play (Gast)


Lesenswert?

Tim schrieb:
> Wie versprochen noch ein paar Bilder...
Sieht etwas ambivalent aus: Die modernen bunten Knöpfe und das 
altbackene dunkle Holz der 80er. Aber trotzdem nette Arbeit!

von Tim (Gast)


Lesenswert?

Let the Music Play schrieb:
> Tim schrieb:
> Wie versprochen noch ein paar Bilder...
>
> Sieht etwas ambivalent aus: Die modernen bunten Knöpfe und das
> altbackene dunkle Holz der 80er. Aber trotzdem nette Arbeit!


Das Holz ist nichg wirklich dunkel. Multiplex Ahorn. Lediglich def Griff 
ist etwas dunkler (Buche)


@ghmartin77
Experiment wird noch durchgeführt. Hatte bisher noch keine Zeit...

von Ronny S. (dr_bal)


Angehängte Dateien:

Lesenswert?

Hi,

Auch wenn der Code bei mir nicht läuft :-( möchte ich Euch schon mal 
mein Design vorstellen.  Ich werde die Teile dafür auf die eigens dafür 
gebaute cnc Maschine Fräsen und dann verleimen.

Die ersten Tests verliefen sehr gut.


Den Code werde ich wohl noch anpassen werden, ich denke das liegt am 
china Klon.

Player.playfolder(1, 1); zum Beispiel läuft nicht zuverlässig. 
Player.playLargeFolder(1, 1); dagegen schon...

Aber das teste ich mal noch :-)

Danke auf alle Fälle für die Inspiration.

Vg
Ronny

von Klaus R. (klaus2)


Lesenswert?

Hut ab, holztechnisch bench und ein schönes Design (vor Allem der 
Lautsprecher gefällt mir im dänischen Design viel besser!)...

Klaus.

Beitrag #5599441 wurde von einem Moderator gelöscht.
Beitrag #5599580 wurde von einem Moderator gelöscht.
von Ralf L. (ladesystemtech)


Lesenswert?

Ronny D. schrieb:
> möchte ich Euch schon mal
> mein Design vorstellen.

Respekt! Ist das Gehäuse mit dem Griff aus dem 'Vollen' geschnitzt 
(gefräst) worden?

von mb (Gast)


Lesenswert?

Wow Super umgesetzt Respekt.

von Berd Schlehe (Gast)


Lesenswert?

Hallo Ronny, sieht gut aus was du da ausgefräst hast mit deiner CNC 
Fräse.
Habe mir seit längerem Gedanken zu einem Hörbert ähnlichen mp3 Player 
gemacht und hab auch noch eine Menge guter Ideen was die Funktionen 
anbelangt.
Mein einziges Problem ist, das ich nicht programmieren kann.
Und bis jetzt einige Prototypen mit fertigen China mp3 Boards realisiert 
habe.
Leider kann ich die super Funktionen die mir im Kopf rumschweben leider 
so nicht umsetzen, deswegen wäre ich super dankbar wenn ich jemand hätte 
der mich beim programmieren unterstützen könnte und im Gegenzug dafür 
einiges an Funktionsideen und mechanischen Lösungen bekommen würde.
Wenn du Lust hast ein Projekt zusammen zu starten schreib mir einfach 
kurz eine mail, dann setzen wir uns in Verbindung, würde mich freuen.
:-)

mail: berd.schlehe@web.de

von Ronny S. (dr_bal)


Angehängte Dateien:

Lesenswert?

Hi, ja der wird direkt ausgefräst.

Bin noch am experimentieren mit dem Setup, habe aber gestern den Test 
aus dem Foto gefräst.

Über den Lautsprecher kommt auch noch eine Blende, dann sieht es nicht 
so nackt aus.

Für mehr aktuelle Infos könnt ihr bei Instagram schauen 
https://instagram.com/ronbal1308

Oder bei Github, da werde ich dann meinen Form veröffentlichen. Wenn 
Interesse besteht kann ich das Gehäuse als fusion360 Datei auch 
bereitstellen.
Https://Github.com/ronbal


Vg
Ronny

: Bearbeitet durch User
von ghmartin77 (Gast)


Lesenswert?

Hi Ronny,

das sieht sehr schick aus! Coole Idee, das Gehäuse "in Scheiben" zu 
Fräsen. Wenn Du in das Sandwich noch eine passend gefräste 
Plexiglas-Scheibe reinbaust, kannst Du mit ein paar Zusatz-LEDs noch 
eine schicke Beleuchtung dabeizaubern. Auch die Abrundungen Deines 
Designs finde ich sehr gelungen und dazu wesentlich verletzungsärmer, 
als die doch recht spitzen Ecken und Kanten der Ikea-Box.

Top! Top!

Ronny D. schrieb:
> Auch wenn der Code bei mir nicht läuft :-(

Na, das kriegen wir auch noch hin :-) Was steht denn für eine 
Bezeichnung auf deinem Chip des DFPlayers? (Die Diskussionen oben im 
Thread zum Thema Klone hast Du schon gelesen?)

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> Interessant. Mit und nach dem "Disable ACK"-Commit habe ich
> insgesamt
> noch zwei Änderungen eingebaut, die die Ursache sein könnten: "Disable
> ACK" eben oder das Wiederanspielen des letzten unvollendeten Tracks.
>
> Würde gern noch den Root-Cause des Problems finden:
> Kannst Du mal den Head aus dem GitHub-Repo nehmen und die Änderung des
> "Disable ACK"-Commits manuell zurückdrehen? D.h.
> player.begin(softSerial, false, false); // disable ACK to work with
> MH2024K-24SS chips
> ersetzen durch  while (!player.begin(softSerial)) {
>     delay(200);
>   }
>
> Btte "automatisches Wiederanspielen" aktivieren (Taste 3).
> Wie verhält sich der Player dann, was das kontinuierliche Abspielen
> angeht?
>
> Danke für's Experimentieren!
>
> Grüße
> ghmartin77

Da jetzt endlich meine Taster aus China angekommen sind, konnte ich 
heute die "Tastatur" fertigstellen und experimentieren.

Soweit ich das bis jetzt beurteilen kann läuft der Player mit der 
Codeänderung zuverlässig durch...

von Hermann (Gast)



Lesenswert?

Hallo Zusammen,
bei meinem player war es auch so wie bei Tim, dass mit der aktuellen SW 
, ab und zu stehen blieb und erst durch drücken einer Taste weiter 
spielte .
Nachdem ich das „Disable ACk „ wieder rückgänglg gemacht habe, wie 
gmartin77 vorschlug, läuft der player einwandfrei durch, spielt Lied auf 
Lied und bleibt nicht mehr hängen .

Noch ein Hinweis, bei Reichelt gibt es klare transparente Tastenkappen 
für die Multimec Taster.
Man kann einen Tropfen Lack, z.B. Revell Farblack, von innen in die 
Kappe geben und so beliebig farbige Kappen erzeugen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.