Firmware aufspielen ohne online-update

Diese Anleitung beschreibt, wie man ohne das online-update die TonUINO Firmware auf die AiO-Platine bekommt. Das ist vor allem nötig, wenn man etwas an der Software ändern möchte oder eine Abwandlung (Fork) der Software nutzen möchte.

Zuerst sollte der Aufbau, soweit möglich, mit der Standard-Software aus dem online-update getestet werden. So lässt sich bei späteren Problemen ein Hardwarefehler ausschließen.

Download und Installation der Arduino IDE

Zum Aufspielen der Software wird die Arduino-Software (nicht die Windows App) benötigt.

Download der TonUINO-Firmware

Außerdem brauchst du natürlich die Firmware, die du aufspielen möchtest. Diese wirst du meistens bei GitHub finden. All-in-One All-in-One Plus. Am besten schaust du zuerst einmal ob im Abschnitt Releases etwas vorhanden ist. Wird da etwas angezeigt, klickst du auf die neuste Version und lädst eines der Verzeichnisse unter Assets herunter. Wenn es kein Release gibt, klickst du oben auf Code und Download ZIP.


Die ZIP-Datei muss nun entpackt werden (Anleitung).
Anschließend kann die .ino Datei geöffnet werden.

Nun kannst du den Code bearbeiten. Also beispielsweise vor #define FIVEBUTTONS 2 Schrägstriche ergänzen (auskommentieren) um die 3 Tastenversion aufzuspielen.

Bibliotheken

Beim ersten Mal müssen noch die Bibliotheken installiert werden. Diese enthalten zusätzlichen Code, der von der TonUINO-Software genutzt wird. Die Standard-Software verwendet folgende Bibliotheken:

  • MFRC522
  • JC_Button
  • DFPlayer Mini Mp3 by Makuna :warning:

:warning: Bis die Software an die Änderungen der Version 1.1.0 angepasst ist, muss die Version 1.0.7 verwendet werden. Dazu einfach vor dem Installieren die passende Version auswählen. Die Software für die All-in-One Plus ist bereits angepasst. Hier also die 1.1.0 verwenden.

Zum Installieren klickst du oben auf Sketch Bibliothek einbinden Bibliotheken verwalten . In dem Fenster suchst du nun nacheinander nach den verwendeten Bibliotheken und klickst auf installieren .
Bei einem Fork kann es sein, dass weitere oder auch andere Bibliotheken benötigt werden.

Einrichtung der Arduino IDE für die AiO- (Plus) Platine

Spätestens jetzt solltest du die Platine mit dem Computer verbinden. Denn der Port kann nur angezeigt werden, wenn dort etwas angeschlossen ist. (So kann man auch herausfinden, ob man den richtigen Port gewählt hat. Er sollte nur angezeigt werden, wenn die Platine angeschlossen ist.)
Stelle nun die Arduino-Software so ein, wie von den Leiterkartenpiraten in der Anleitung beschreiben. All-in-One All-in-One Plus

Upload

Nun kannst du die Software auf die AiO laden. Dazu klickst du auf diesen Button.


Nun wird der Code zunächst kompiliert, also in Maschinensprache übersetzt, und im Anschluss auf die Platine geladen. Vergiss also nicht, die Playtaste gedrückt zu halten.

7 „Gefällt mir“

Nachdem @Foggy vorhin so freundlich war und die Verständlichkeit meiner Erklärung getestet hat, veröffentliche ich diese mal als ein extra Thema.

Ich habe auch gleich ein wiki daraus gemacht, sodass jeder die Anleitung aktualisieren und verbessern kann.

2 „Gefällt mir“

Hallo Zusammen
Gerne möchte ich Affenbox.ino installieren. Ich habe einen AiO-Plus. Zuerst habe ich die Tonuino-Online-Updater (Firmware) installiert. Dann habe ich Arduino IDE auf dem PC installiert sowie die benötigten Bibliotheken. Auch habe ich alle Einstellung gem. Tonuino übernommen (ATmega4809).
Wenn ich nun die Affenbox.ino installieren möchte, bekomme ich diesen Fehler:

:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.h:6:10: fatal error: AceButton.h: No such file or directory
 #include <AceButton.h>
          ^~~~~~~~~~~~~
compilation terminated.

exit status 1

Compilation error: AceButton.h: No such file or directory

Die ZIP-Datei wurde entpackt. Aktuell verstehe ich den Fehler nicht.

Hast du die Bibliothek denn installiert?

Allerdings ist mir nicht bekannt, dass der Affenboxfork überhaupt schon an die AIO Plus angepasst ist.

Habe alle Bibliotheken installiert. Aber kann natürlich sein, dass Affenbox nicht auf AIO Plus funktioniert. Wollte eigentlich diese Version, da hier mit auflegen der RFID Karte das Hörbuch beginnt und beim Wegnehmen pausiert und der Stand gespeichert wird.
Dann werde ich die Platine nochmals neu via Online-Updater flashen.
Danke für deine Hilfe.

Was meinst du mit alle? Alle hier im ersten Beitrag genannten oder alle, die der Affenboxfork braucht? Acebutton wird nämlich in der Standardsoftware nicht gebraucht. Deshalb steht es oben auch nicht. Man muss halt schauen, was der jeweilige Fork braucht.

Folgende Bibliotheken habe ich installiert:

  • MFRC522
  • JC_Button
  • DFPlayer Mini Mp3 by Makuna

Ich dachte, dass JC_Button die Tasten sind. Daher nur diese. Wüsste auch nicht, wie ich diese installieren müsste.

Der Affenboxfork verwendet aber eine andere Bibliothek für die Taster.

In die Suche gibst du dann Acebutton ein

Danke. Nun kommt aber der nächste Fehler:
WARNUNG: Bibliothek JC_Button behauptet auf avr Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrer derzeitigen Platine, welche auf megaavr Architektur(en) ausgeführt wird.

Das ist nur eine Warnung, funktioniert aber.

Dann kann ich dies auch vernachlässigen. Dies wird unter der Warnung in rot dargestellt.

C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino: In function 'void setup()':
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2293:19: error: 'INTERNAL2V048' was not declared in this scope
   analogReference(INTERNAL2V048);
                   ^~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2293:19: note: suggested alternative: 'INTERNAL4V34'
   analogReference(INTERNAL2V048);
                   ^~~~~~~~~~~~~
                   INTERNAL4V34
In file included from C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.h:3:0,
                 from C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2:
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h: In instantiation of 'uint16_t DFMiniMp3<T_SERIAL_METHOD, T_NOTIFICATION_METHOD, T_CHIP_VARIANT>::listenForReply(uint8_t) [with T_SERIAL_METHOD = SoftwareSerial; T_NOTIFICATION_METHOD = Mp3Notify; T_CHIP_VARIANT = Mp3ChipOriginal; uint16_t = unsigned int; uint8_t = unsigned char]':
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:223:27:   required from 'void DFMiniMp3<T_SERIAL_METHOD, T_NOTIFICATION_METHOD, T_CHIP_VARIANT>::loop() [with T_SERIAL_METHOD = SoftwareSerial; T_NOTIFICATION_METHOD = Mp3Notify; T_CHIP_VARIANT = Mp3ChipOriginal]'
C:\Users\Desktop\ToniBox\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:625:16:   required from here
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:598:62: error: no matching function for call to 'Mp3Notify::OnPlayFinished(DFMiniMp3<SoftwareSerial, Mp3Notify>&, DfMp3_PlaySources, uint16_t&)'
                         T_NOTIFICATION_METHOD::OnPlayFinished(*this, DfMp3_PlaySources_Usb, replyArg);
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:112:17: note: candidate: static void Mp3Notify::OnPlayFinished(DfMp3_PlaySources, uint16_t)
     static void OnPlayFinished(DfMp3_PlaySources source, uint16_t track)
                 ^~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:112:17: note:   candidate expects 2 arguments, 3 provided
In file included from C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.h:3:0,
                 from C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2:
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:603:62: error: no matching function for call to 'Mp3Notify::OnPlayFinished(DFMiniMp3<SoftwareSerial, Mp3Notify>&, DfMp3_PlaySources, uint16_t&)'
                         T_NOTIFICATION_METHOD::OnPlayFinished(*this, DfMp3_PlaySources_Sd, replyArg);
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:112:17: note: candidate: static void Mp3Notify::OnPlayFinished(DfMp3_PlaySources, uint16_t)
     static void OnPlayFinished(DfMp3_PlaySources source, uint16_t track)
                 ^~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:112:17: note:   candidate expects 2 arguments, 3 provided
In file included from C:\Users\Desktop\ToniBox\TonUINO-Affenbox-2.13\Affenbox\Affenbox.h:3:0,
                 from C:\Users\Desktop\ToniBox\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2:
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:607:62: error: no matching function for call to 'Mp3Notify::OnPlayFinished(DFMiniMp3<SoftwareSerial, Mp3Notify>&, DfMp3_PlaySources, uint16_t&)'
                         T_NOTIFICATION_METHOD::OnPlayFinished(*this, DfMp3_PlaySources_Flash, replyArg);
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:112:17: note: candidate: static void Mp3Notify::OnPlayFinished(DfMp3_PlaySources, uint16_t)
     static void OnPlayFinished(DfMp3_PlaySources source, uint16_t track)
                 ^~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:112:17: note:   candidate expects 2 arguments, 3 provided
In file included from C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.h:3:0,
                 from C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2:
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:612:66: error: no matching function for call to 'Mp3Notify::OnPlaySourceOnline(DFMiniMp3<SoftwareSerial, Mp3Notify>&, DfMp3_PlaySources)'
                         T_NOTIFICATION_METHOD::OnPlaySourceOnline(*this, static_cast<DfMp3_PlaySources>(replyArg));
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:94:17: note: candidate: static void Mp3Notify::OnPlaySourceOnline(DfMp3_PlaySources)
     static void OnPlaySourceOnline(DfMp3_PlaySources source)
                 ^~~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:94:17: note:   candidate expects 1 argument, 2 provided
In file included from C:\Users\Desktop\ToniBox\TonUINO-Affenbox-2.13\Affenbox\Affenbox.h:3:0,
                 from C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2:
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:617:68: error: no matching function for call to 'Mp3Notify::OnPlaySourceInserted(DFMiniMp3<SoftwareSerial, Mp3Notify>&, DfMp3_PlaySources)'
                         T_NOTIFICATION_METHOD::OnPlaySourceInserted(*this, static_cast<DfMp3_PlaySources>(replyArg));
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:100:17: note: candidate: static void Mp3Notify::OnPlaySourceInserted(DfMp3_PlaySources)
     static void OnPlaySourceInserted(DfMp3_PlaySources source)
                 ^~~~~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:100:17: note:   candidate expects 1 argument, 2 provided
In file included from C:\Users\Desktop\ToniBox\TonUINO-Affenbox-2.13\Affenbox\Affenbox.h:3:0,
                 from C:\Users\Desktop\ToniBox\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2:
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:622:67: error: no matching function for call to 'Mp3Notify::OnPlaySourceRemoved(DFMiniMp3<SoftwareSerial, Mp3Notify>&, DfMp3_PlaySources)'
                         T_NOTIFICATION_METHOD::OnPlaySourceRemoved(*this, static_cast<DfMp3_PlaySources>(replyArg));
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:106:17: note: candidate: static void Mp3Notify::OnPlaySourceRemoved(DfMp3_PlaySources)
     static void OnPlaySourceRemoved(DfMp3_PlaySources source)
                 ^~~~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:106:17: note:   candidate expects 1 argument, 2 provided
In file included from C:\Users\Desktop\ToniBox\TonUINO-Affenbox-2.13\Affenbox\Affenbox.h:3:0,
                 from C:\Users\Desktop\ToniBox\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2:
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:626:55: error: no matching function for call to 'Mp3Notify::OnError(DFMiniMp3<SoftwareSerial, Mp3Notify>&, uint16_t&)'
                         T_NOTIFICATION_METHOD::OnError(*this, replyArg);
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:7:17: note: candidate: static void Mp3Notify::OnError(uint16_t)
     static void OnError(uint16_t errorCode)
                 ^~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:7:17: note:   candidate expects 1 argument, 2 provided
In file included from C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.h:3:0,
                 from C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:2:
c:\Users\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:640:51: error: no matching function for call to 'Mp3Notify::OnError(DFMiniMp3<SoftwareSerial, Mp3Notify>&, uint16_t&)'
                     T_NOTIFICATION_METHOD::OnError(*this, replyArg);
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:7:17: note: candidate: static void Mp3Notify::OnError(uint16_t)
     static void OnError(uint16_t errorCode)
                 ^~~~~~~
C:\Users\TonUINO-Affenbox-2.13\Affenbox\Affenbox.ino:7:17: note:   candidate expects 1 argument, 2 provided

exit status 1

Compilation error: 'INTERNAL2V048' was not declared in this scope

Die AiO plus unterstützt keine Referenzspannung 2V048. Da wird 2V5 benutzt.
Du solltest aber speziell zum Affenboxfork bei Marco anfragen. Die 2V048 sind von der normalen AiO ohne Plus. Da ist eine andere MCU verbaut.

Der Affenboxfork ist noch nicht an die AiO Plus angepasst.
@Zhinox darauf wirst du letztendlich warten müssen.

Danke für euer Hilfe. Dann reicht es wenn ich nun neu mit Tonuino Updater neu flashe?
Oder muss ich die Platine neu reseten?

Sollte mit dem OnlineUpdater klappen.

Ich bin so ein Trottel… Seit Tagen versuche ich auf meine AIO Plus Platine die Software als 3 Button Version zu installieren.
Das Kompilieren ging immer schief. (hat immer bei dem DFPlayer software gemeckert…)

Hab mir alle Anleitungen 100 Mal durchgelesen.

Beim 101sten Mal jetzt das Kleingedruckte entdeckt:

Diesen Satz habe ich IMMER überlesen und es immer mit der 1.0.7 versucht.

Also, wer lesen kann ist klar im Vorteil.

PS.: Dieser Post soll eine Info sein für alle die genau so nicht lesen können wie ich.

2 „Gefällt mir“