Was tun, wenn der Nano zu klein wird?

Ich habe bereits diverse Projekte auf Basis des Arduino Nanos umgesetzt.
Der Formfaktor des Nano passt gut auf selbstentwickelte THT-Platinen.

Nun komme ich bei einem komplexeren Projekt an die Speichergrenzen. Aktuell ist der Programmspeicher zu knapp und ich muss mich z.B. bei OLED-Anzeigen textual oder auch bei der
Font-Größe einschränken. Debugging ist auch lästig, da ich dann ganze Programmteile ausblenden muss, um Debug-Text-Ausgaben unterzubringen.

Der Nano wird schon mit dem OPTIBOOT-Bootloader betrieben, was ja schon zusätzliche 1,5 KByte bringt. Die Anzahl der Ein-/Ausgänge ist nicht das Problem, das könnte man ja über Portexpander hinbekommen. Ein paar mehr Interrupt-Pins wären nicht schlecht.

Beim Mega stört mich das Format.

Was könnte ich alternativ einsetzen, was wäre kostenmäßig vergleichbar und was wäre aktuell verfügbar? STM? ESP32? Teensy?

Der RP2040 ist verfügbar
Die meisten aus der Teensy Reihe wohl auch.
STM eher nicht, nur Nachbauten und Fälschungen

Boards mit dem W806 gibts gerade für einen Appel ohne Ei, werden aber bisher nicht gut von der Arduino IDE unterstützt. (rudimentäre Boarddefinition, Framework implementierung)

Es sind auch Boards mit dem K210 von Kendryte erhältlich.

Und es kommt sicher auch auf deine Verwendung an. Auch den Mega gibt es in einem "mini"-Format.

Eine SD Karte könnte OLED Bilder aufbewahren.
Wemos D1 ist eine bequeme Lösung für 4MB Speicher. ESP-12E/F/S weniger bequem.

der "neue" Nano 33?

1 Like

Da stellst Du momentan schwierig zu beantwotende Fragen. Besonders hinsichtlich Lieferfähigkeit bin ich bei manchen Angeboten unsicher.

Kennst Du den MEGA 2560PRO? Größer als der Nano, aber kleiner als der Arduino. Der Preis war in Fernost mal richtig günstig, derzeit haben die angezogen und hinter der Lieferzeit steht ein großes Fragezeichen. Aber Anbieter in D freuen sich auch über Kunden :slightly_smiling_face:

grafik
Von oben nach unten: Teensy 3.2, Nano ESP32

Ich mag ja den ESP32, der kleiner und günstiger ist, aber mit 3,3 V an den IOs werkelt. Ein OLED läßt sich problemlos anschließen:

Allerdings braucht es auch ganz ohne WLAN und dergleichen eine Umgewöhnung, aber hier im Forum gibt es glücklicherweise Hilfe.

Ich habe noch einen Teensy 3.2, der hinsichtlich Abmessungen zum Nano paßt. Der werkelt auch mit 3,3 V, benötigt wie der ESP32 eine Erweiterung der Arduino-IDE, ist aber recht teuer und derzeit auch in der Beschaffung problematisch. Der Teensy 3.6 mit SD-Karte würde gut passen, ist aber noch teurer, hat aber auch deutlich mehr Wupps.

Bei Fragen bitte fragen!

Generell wäre zu überlegen, den ganzen Display-Kram auf Handy/WLAN auszulagern und einen ESP zu nehmen. Bei wenig I/O reicht evtl. ein ESP8266.

Hallo,

ich werfe den Nano Every in den Ring. :wink:
Alle anderen wie Teensy, ESP und RP2040 spielen in einer anderen Liga.
Man muss wissen was man benötigt. Also wie immer.
Wenn du dich nicht umgewöhnen möchtest, wäre ein geschrumpfter Mega2560 interessant. Alle anderen sind dann quasi Neuland wenn das Arduino Framework verlassen wird. Solange man immer nur das Arduino Framework verwendet sollte es egal sein, solange die Packages alles unterstützen.

1 Like

Vielen Dank für die vielen konstruktiven Vorschläge!

Bei einem Umstieg auf anderen Prozessor/Board stellt sich zum einen die Frage nach der Kompatibilität der Libraries und des verwendeten Codings. Da fehlen mir noch die Erfahrungswerte, also welche lib wie gut zusammenspielt. Gibt es hier Übersichten oder hilft nur ausprobieren?

Die 2. Hürde ist ggf. der Umstieg auf 3,3V. Anbindung der Pins über Level-shifter oder über einfache Spannungsteiler (1k/2,2K) sollte ja funktionieren. Oder gibt es weiteres zu beachten?
Wie macht man die Stromversorgung? 2 Festspannungsregler (3,3V, 5V für den Rest) oder betreibt man manche Boards an Vin 5V?

Beim Nano Every stört mich das zu kleine EEPROM. Da müsste ich ggf. externes EEPROM anbinden, weiß aber nicht, ob das dann über I²C zu langsam wird im Vgl. zum internen EEPROM.

Die Nano 33 gefallen mir gut. Allerdings ist mit nicht klar, wie hier der Speicher als EEPROM genutzt werden kann (soll auch nach einem neuen Upload erhalten bleiben).

Der RP2040 sieht auch recht gut aus. Den Umstiegsaufwand auf PI kann ich nicht abschätzen.
Und der Mega ist schon recht groß. Die Teensys haben schon ordentlich Wummmms, sind aber noch recht teuer.

Habe gestern noch einen längst vergessenen ESP32 in der Bastelkiste gefunden, den habe ich mir vor längerer Zeit schon mal besorgt. Evtl. steige ich hier ein.

Da hat man die Qual der Wahl!

Ein Nano mit mind. 64 k Flash, 4k SRAM und 2k EEPROM, das wärs :nerd_face:

Da gibts (gabs mal) Arduino-Unterstützung für atmega1284 und atmega644, die sind dem atmega328 noch am ähnlichsten. Ist aber seit ESP ein toter Pfad.

Dann würde ich mit dem erstmal ein paar Erfahrungen sammeln. So wird beim ESP32 analogWrite für den DAC verwendet, während PWM mittels sigmaDeltaWrite() erzeugt wird (packages\esp32\hardware\esp32\2.0.2\libraries\ESP32\examples\AnalogOut\SigmaDelta\SigmaDelta.ino).

Der Schwerpunkt liegt beim Funken, also WLAN und sowas, das kannst Du erstmal zur Seite legen. Versorgen kannst Du das Board mittels der 5 V von USB. Der Regler auf 3,3 V ist - zumindest bei meinen ESPs - recht schlapp. Für ein OLED reicht es, bei mehr 3,3 V Peripherie brauchst Du einen StepDown auf 3,3 V.

Welchen ESP32 hast Du? Bei mir sieht das so aus:

Arduino-SPI verwendet VSPI und für I²C Wire-SCL und Wire-SDA.

Meine Lieblingsbibliothek für LCDs ist NoiascaLiquidCrystal und für OLEDs U8g2 von Oli Kraus.

Sehr nützlich: ESP32 Pinout Reference: Which GPIO pins should you use?

Die meisten Libraries werden mit den ESP's auch funktionieren.
Im Prinzip ist es echt nur das Auswählen des anderen Boards. Im Hintergrund passiert dann viel Magie und soll trotzdem funktionieren.

Wenns nur um mehr Speicher geht: dann die bereits erwähnten Mega Pro Platinchen.
Wenns etwas mit wifi werden soll ESP8266/ESP32.
Wenn ein ESP32 in der Bastelkiste ist - dann erübrigt sich deine Frage ohnehin --> ausprobieren!

Ansonsten - wenn Speicher knapp wird ruhig auch mal kritisch den eigenen Sketch hinterfragen. Was gibt es an eingeschlichenen Code-Duplikaten, was lässt sich vereinfachen?

1 Like

Eigentlich ist das keine Hürde mehr. Fast alle Baugruppen (Module) werden schon in 3,3V-Technik gebaut, sind somit direkt an den 3,3V-Controllern zu betreiben.

Für kleinere Projekte ist auch der ESP8266 gut zu verwenden. Auch als ESP-01.
Man muss nicht alles mit dem ESP32 erschlagen. Da du ihn hast, ist der natürlich gut zum Üben. Als Betriebsspannung der Controller würde ich immer die 3,3V verwenden.

Für externe Module, die höhere Spannung benötigen, dann ein entsprechendes Netzteil vorsehen und die 3,3V per Stepdown erzeugen.

1 Like

Ich habe einen mit 30 Pins rumliegen: DEBO JT ESP32: NodeMCU ESP32 WiFi- und Bluetooth-Modul bei reichelt elektronik

Zum Testen habe ich mir mal einen Nano Every bestellt, der könnte 1:1 eingesetzt werden. Evtl. brauche ich noch einen zusätzlichen externen EEPROM, der über I2C angesteuert wird, z.B. ein AT24C256.

@noiasca: der Sketch ist schon ziemlich kompakt. Selbst pinMode und digitalWrite etc. wurden durch Bitmanipulationen ersetzt. Die nächste Stufe wäre, einiges in Assembler umzusetzen …

Zahlreiche Bibliotheken fordern jedoch ihren Tribut, u.a. JQ6500, softwareserialtx, NMRA DCC , Mobatools, Encoder, EEPROM und U8g2

Der hat eine etwas andere Pinbelegung, beispielsweise die 3V3 sind diagonal auf der anderen Seite, auch fehlen ein paar GND-Pins. Aber die IOs sind in derselben Reihenfolge. Serial1-Pins gibt es bei Dir nicht, sind auch nicht nutzbar, da sie am Speicher hängen, aber die können dank Matrix zu anderen Pins verlegt werden. Es sei nur mal erwähnt.

Zugängliches EEPROM hat der ESP32 nicht, dafür aber ein eigenes Dateisystem, wo Du über Reset zu sichernde Informationen ablegen kannst. Siehe packages\esp32\hardware\esp32\2.0.2\libraries\Preferences.

Die Bibliothek softwareserialtx benötigst Du dank Hardwareserial Serial1 und Serial2 nicht. MobaTools, Encoder und U8g2 laufen auf ESP32, die anderen Bibs kenne ich nicht.

1 Like

Suche mal nach i2c fram.

1 Like

Aber aufpassen, dass Du einen 3,3V-Typ hast.
Und denke daran, dass int auf den ESP nicht 16 sondern 32 Bit lang ist.

Gruß Tommy

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.