Marco's Affenbox Fork

An alle Forknutzer, in dem erweiterten Hörbuchspeicher gab es einen Bug, der den EEPROM falsch befüllt hat.
Bitte aktualisiert eure Forkversion.

Hallo @stephan
Ich habe mir mal den Pullrequest angesehen. Verstehe ich das richtig, dass die Vergrößerung des EEPROM zu lasten des Programmspeichers geht?
Ich werde mich aber erst mal nicht an diese Sache wagen und warte ab bist eine fertige Aktualisierung der Bibiothek veröffentlicht ist.
Gruß Thomas

Da der LGT kein EEPROM hat geht die Emulation immer zu Lasten des Programmspeichers und das doppelt (wegen paging). Der PR geht auch nicht (primär) um das vergrößern sondern um einen Bug der momentan nur den Zugriff auf 512 byte statt der default mässigen 1024 (1022 eigentlich) erlaubt.

Das heißt, mit dem Bug sind die 510 Byte auf die nicht zugegriffen werden kann quasi gar nicht nutzbar. Auch nicht für den Programmspeicher?

Richtig. (20 Zeichen)

ok.verstanden. Danke für die Auskunft.

Hallo zusammen,
ich habe mir Marcos letzten Sketch gezogen um einen Poti aus diesem Set als Lautstärkeregler zu nutzen. Wenn ich nun in die Config schaue, liegt der ROTARY_ENCODER auf 5. Muss ich hier auf 7 switchen? Reichen mir 3,3V oder muss ich auf 5V gehen?
Gruß,
Jens

Hallo Jens,
ein Poti funktioniert leider nicht, du musst einen Rotary Encoder kaufen.

Der dreht Endlos und bietet Vorteilenin der Software Anpassung.

Schade. Kann ich nicht über map den PotiValue abgreifen?

Ich habe in meinem Fork nur diesen Encoder vorgesehen.
Potis find ich nicht so geeignet, da sie immer fest sind.
Man kann so keine Lautstärken über Software festlegen. Die Initiallautstärke entfällt somit.

Achso, klar - Denkfehler. Danke!

Lässt sich der Tonuino komplett über den Rotary-Encoder steuern? Also Play/Pause/Aufwecken per Druck, Lautstärke durch Drehen und ggf. Vor/Zurück durch Drücken und Drehen gleichzeitig? Fürs Admin-Menü kann man ja eine Karte machen.

Nein es wird nur die Lautstärke gesteuert.

Die Idee der Gesamtsteuerung hatte ich auch schon, aber ich finde das nicht so Kindertauglich, deswegenbhab ich da keine weiteren Mühen hinein gesteckt.

Ich versuche gerade deinen Fork für die AiO-Platine zu kompilieren. Das klappt leider nicht. Ich habe das Gefühl, dass ich irgendeine Bibliothek aktualisieren muss, weiß aber nicht was genau …

Der Fehler ist 'class EEPROMClass' has no member named 'size':

Tonuino/Tonuino.ino: In function 'void setup()':
Tonuino:1802:30: error: 'class EEPROMClass' has no member named 'size'
   for (int i = 0; i < EEPROM.size(); i++) {
                              ^~~~
Tonuino/Tonuino.ino: In function 'void adminMenu(bool)':
Tonuino:2611:30: error: 'class EEPROMClass' has no member named 'size'
   for (int i = 0; i < EEPROM.size(); i++) {
                              ^~~~
exit status 1
'class EEPROMClass' has no member named 'size'

Das scheint mit der Diskussion, die ihr in dem Pull Request zu diesem Thema geführt habt, zusammenzuhängen. Der PR beinhaltet die Implementierung der neuen EEPROM API und ist ja noch nicht gemerged. Könnt ihr mir Sagen wie ich auf die richtige Version aktualisieren und den Sketch kompilieren kann? Danke

Ist angepasst, bitte nochmal herunter laden.

Das ging ja fix :slight_smile:
Danke!

(kleiner Tipp am Rande: Solche „magic numbers“ machen sich ganz gut als definierte Konstanten. Während du geantwortet hast habe ich selber das Problem mit einem #define EEPROM_size 512 gelöst.)

Da fällt mir ein: Sollte das wirklich 1020 sein? Sind die 1020 Bytes nicht der unterliegende physische Flashspeicher der gebraucht wird um 512 Byte abbilden zu können?

Eigentlich sollten es 1024 Byte emulierter EEPROM sein der 2048Byte Flash benötigt.
Ein Bug in der EEPROM Bibliothek des Controllers lassen aber nur eine Addressieren der ersten 512 Bytes zu.

Wenn der Bug behoben wird, dann stehen 1020 Bytes zur Verfügung.

Für irgendwas werden die 4 Bytes dann noch gebraucht, weiß leider nicht wofür. Ist für mich auch nicht weiter relevant.

Du hast Recht ich werde aus der 1020 noch eine Konstante Variable machen.

Vielen Dank für die Erklärung. Das gibt mir genug Mut deinen Fork zu flashen.

(Ich will nur tunlichst vermeiden, dass ich mir wenige Tage vor Weihnachten das Geschenk so zerschieße, dass ich es nicht wieder vor Weihnachten repariert bekomme … was beim Überschreiben des Bootloaders wahrscheinlich der Fall wäre.)

Überschreiben wird so nicht passieren, dazu müsste man aktiv den EEPROM vergrößern, was ich nicht mache.

Ich flashe die Software hier immer wieder auf meine AiO ohne Schaden :wink:

1 „Gefällt mir“

@marco-117 ich möchte ja jetzt auch gerne deinen Code wegen der Spiele benutzen. Du hast ja in deiner Version die Option drin dass das Lied, oder was auch immer gerade läuft, gestoppt wird wenn die Karte entfernt wird. Lässt sich das auch auf einfachem Weg wieder rückgängig machen, also das es weiter läuft wenn die Karte weg ist? Ich hab den Code mal überflogen und „StopWhenCardGone“ wird wohl dafür verantwortlich sein, oder? Dieses wird im Code ja öfter benutzt nur leider hab ich keine Option gefunden dies zu deaktivieren, oder geht das nicht so einfach?

Desweiteren könntest du mir nen Tipp geben wo im Code ich ansetzen muss um durch einen ShortCut einen Ausgang am Nano zu setzten?

Vielen Dank
Gruß
Stefan