Fehler beim Kompilieren (TonUINO-TNG-3.3.3_2026.02.25) - Gelöst

Hallo alle zusammen.

Nach Jahren des mitlesens und Teile kaufens habe ich endlich mal etwas Zeit (und Platz) mich mit dem Bau unseres ersten Tonuinos zu beschäftigen.

Ich nutze die Aio-Platine (ohne Plus) mit 5-Button Platine bzw. der 3x3-Button Platine und einen LiFePo4 Akku von Eremit.

De rAkku ist aufgeladen und die aktuellste Version der Arduino IDE ist als Flatpak installiert. Die IDE habe ich nach der Anleitung unter TonUINO All-In-One – Die Arduino IDE einrichten – Leiterkartenpiraten GmbH i.L
eingerichtet.

Ich habe mir die aktuelle Verson der Firmware von Release V3.3.3_2026.02.25 · tonuino/TonUINO-TNG · GitHub heruntergezogen.
Die Datei constants.hpp habe ich wie folgt angepasst:

//#define TonUINO_Classic
//#define TonUINO_Every
//#define TonUINO_Every_4808
#define ALLinONE
//#define ALLinONE_Plus
//#define TonUINO_Esp32 100 // Esp32 Nano
//#define TonUINO_Esp32 200 // Esp32 Wroom 32

...

//#define THREEBUTTONS
#define FIVEBUTTONS
//#define BUTTONS3X3

Alle anderen Einstellungen habe ich so belassen.

Mit den Einstellungen THREEBUTTONS und FIVEBUTTONS kann ich das Programm ohne Probleme kompilieren und auf die Aio flashen. Mit der Einstellung BUTTONS3X3 erhalte ich folgende Fehlermeldung:

/home/steren/Downloads/Tonuino/TonUINO-TNG/TonUINO-TNG.ino:72:18: error: #elif with no expression
 #elif  BUTTONS3X3
                  ^
exit status 1

Compilation error: #elif with no expression

und in der IDE wird mir die Zeile 72 aus der Datei TonUINO-TNG.ino markiert.

70  #ifdef FIVEBUTTONS
71    LOG(init_log, s_error, F("5"));
72  #elif  BUTTONS3X3
73    LOG(init_log, s_error, F("3x3"));
74  #else
75    LOG(init_log, s_error, F("3"));
76  #endif

Hier im Forum habe ich schon geschaut, ob jemand dieses Problem auch schon hatte. Leider habe ich aber nichts dazu gefunden.

Hier ein Screenshot, mit den installierten Libraries.

Hat jemand eine Idee, was bei der Kompilierung für das 3x3 schief geht, während es mit 3-Button und 5-Button funktioniert?

Vielen Dank für die Hilfe.

In meiner aktuellen TonUINO.ino steht es so:

#ifdef FIVEBUTTONS
  LOG(init_log, s_error, F("5"));
#elif defined(BUTTONS3X3)
  LOG(init_log, s_error, F("3x3"));
#else
  LOG(init_log, s_error, F("3"));
#endif

Die elif-Abfrage benötigt noch das zusätzliche „defined“

Danke für die Hilfe.

Das Kompilieren und Hochladen hat funktioniert.

Nachher probiere ich die 3x3-Buttons aus.

Das defined fehlt dann in der Datei TonUINO-TNG.ino.
Ich habe es nicht entfernt.

Ich hab’s auch nicht eingefügt. Anscheinend hatte @Boerge1 das für folgende Versionen schon unbemerkt gefixt. Das Matrix-Buttonboard scheint nicht (mehr) oft verbaut zu werden.

Bei mir läuft gerade ein Versuchsaufbau mit 5 Tasten und einer zusätzlichen 3x5 Matrix über die unterschiedliche Spiele ohne Karte gestartet werden sollen.

Spannend.

Bitte berichte, wenn es funktioniert.

Das 3x3 und weiteres von den Leiterplattenpiraten gibt es ja leider nicht mehr zu kaufen. Ich hatte mich in den letzten Jahren mit einigen Sache eingedeckt.

Lade doch einfach die letzte Version auf dem main Branch. Ich habe lange keine Version mehr released, muss ich mal wieder machen.

Läuft gut und zuverlässig, aktuell in Verbindung mit einem Nano ESP32.
Den Aufbau und die erforderlichen Widerstandswerte kannst Du hier sehen.
Da der Nano ESP32 mit 3,3 V arbeitet, musste auch die Widerstandsmatrix an 3,3 V angeschlossen werden.
Im Code waren außerdem noch leichte Anpassungen für die 3x5 Matrix und die 5-Tasten Bedienung erforderlich.