Last Updated on 1. April 2022 by sfambach
Es handelt sich hierbei um ein hybrides Board aus Atmega 2560 und einem Espressiv Chip (ESP8266) für die WLan Kommunikation.
Ansicht
Überblick
[table id=6 show_columns="1,16" hide_columns="2-30" /]
Board Funktionen
Zusätzlich sind einige Pins des ESP herausgeführt. Die Beschriftung ist auf der Rückseite des Boards zu finden.
Dipschalter Belegung
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
ATMega <->ESP | An | An | Aus | Aus | Aus | Aus | Aus |
USB <-> ATMega | Aus | Aus | An | An | Aus | Aus | Aus |
USB <-> ESP Firmware | Aus | Aus | Aus | Aus | An | An | An |
USB <-> ESP Kom. | Aus | Aus | Aus | Aus | An | An | Aus |
Keine Verbindungen | Aus | Aus | Aus | Aus | Aus | Aus | Aus |
Spezielle Pin-Belegungen
Funktion | Pins |
Interrupt | 2, 3, 18, 19, 20, 21 |
Serialport 1 Serialport 2 Serialport 3 Serialport 4 | 0(RX), 1(TX) 19(RX), 18(TX) 17(RX), 16(TX) 15(RX), 14(TX) |
Led | 13 |
Genauer hingesehen
Hier ein paar Schnappschüsse mit dem Mikroskop.
Programmierumgebung
Mega Einstellungen
Dipschalter 3,4 auf ON Rest auf OFF
ESP Einstellungen
Evtl. vorher noch die ESP8266 Programmierumgebung einrichten. Ich verwendete hier die Version 2.7.1 der Boardtreiber.
Dipschalter 5,6,7 auf ON Rest auf OFF. Sollte das programmieren nicht beginne ist ein Reset des Boards nötig. Das spielen mit der Reset Methode im Menü brachte hier leider keine Besserung.
Test Programme
Als Testprogramme können die, des hier gelinkten Beitrags verwendet werden.
Sonstiges
AT-Lib Verwenden
Wenn man noch nicht so genau weiss wo die Reise hin geht und für was der ESP auf dem Board gebraucht wird, kann man erst einmal eine Maximalkonfiguration aufspielen. Dh. man spielt die sogenannte AT-Firmware auf, die durch Steuerkommandos (die auf komischerweise alle mit AT beginnen) konfiguriert wird ohne jedes mal neu programmiert zu müssen. Wer jetzt glaubt vom Regen in die Traufe zu kommen und AT Kommandos lernen zu müssen hat Glück, es gibt eine gegestück für den Arduino. Ein paar Klassen erlauben es den ESP mit einfachen Methodenaufrufen zu steuern ohne die AT Kommandos verwenden zu müssen. Somit ist sind die Ziele:
- Aufspielen der AT-Firwmare auf den ESP
- Programm auf dem Arduino erstellen welches den ESP als WLAN Adapter nutzt
HINWEIS: Schaut mal vorba ob nicht schon die AT Firmware auf dem dem ESP vorhanden ist, solltet ihr sie überschrieben haben, kein Problem hier erfahrt ihr wie ihr sie wieder herstellen könnt.
Den ESP vorbereiten
Den ESP sebst auf Programmierung einstellen:
Für den ESP benötigen wir eine Version der AT Bibliothek. Diese gibts als Binärdatei auf der Espressif Homepage.
https://www.espressif.com/en/support/download/at
Sollte die gewählte Firmware nicht funktionieren, probiert mal ältere Versionen aus. Auch ich habe mehrere ausprobiert und ich bin bei Version 1.6 in dieser Konstellation gelandet.
Zum flashen der Binärdatei auf den ESP kann jedes beliebige Tool verwendet werden, hier das vom Hersteller.
Tool und Binärdatei entpacken. Geladen wird mit der 1.6 Version wie folgt. In den README Dateien der Zip’s ist meist beschrieben wie diese zu flashen sind (hat bei mir alles nicht funktioniert, habe nach unzählig Versuchen eine Kombi gefunden die bei diesem Board funktionierte).
Dateien Auswählen, Speicherbereiche eingeben, Einstellungen anpassen und noch die richtige Verbindung zum Board wählen. Danach auf Start und warten was passiert.
Ob die Firmware richtig installiert ist kann in der Arduino IDE Konsole überprüft werden. (Nicht vergessen Dipschalter 7 wieder aus zu schalten, sonst geht nichts). Boud Rate ist 115200 als Zeilendend NL/CR auswählen und oben in die Sendezeile AT eingeben. Kommt ein OK zurück klappt erstmal alles.
Wer noch mehr über die vorhandenen AT Kommandos wissen will kann sich auf der folgenden Seite informieren.
https://docs.espressif.com/projects/esp-at/en/latest/AT_Command_Set/index.html
Da im Arduino auf das Netzwerk zugegriffen werden soll möchte ich das vorab mal mit AT Kommandos prüfen:
AT+CWMODE=1 -> Station Mode einschalten
AT+CWLAP -> Netzwerk scannen gibt ne liste zurück
AT+CWJAP=“NODES“,“HappyNodes1234″ -> Mit Accesspoint verbinden
AT+CIFSR -> Infos zur Verbindung abrufen
AT+CWDHCP? -> DHCP aktiviert ? wenn nicht mit AT+CWDHCP:1 aktivieren hier gehts bald weiter ....
Externe Antenne anschliessen
Wie ihr im Bild seht ist mein Mega+Wifi etwas eingestaubt. Nichts desto trotz kam die Frage auf, was zu tun ist um eine extene Antenne anzuschliessen. Hierfür muss die Brücke (0 Ohm Widerstand) aus dem Bild umgelötet werden auf die freie Position (2).
Fazit
Wer ein Arduino Uno kompatibles Board, eine Menge zusätzlicher Ports und eine WLan Anbindung benötigt, ist mit diesem Board richtig gut bedient. Der Antennenanschluss vergoldet das Board zusätlich, da hierdurch höhere Reichweiten erreicht werden können.
Zudem ist das Board recht günstig, seit dem der ESP32 draussen ist, wird das Board zum Teil unter 10€ gehandelt (schaue beim schnellen Ali oder beim guten Beng nach 😉 ).
Quellen:
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/
https://www.arduino.cc/en/Hacking/PinMapping2560
https://www.instructables.com/id/Arduino-MEGA-2560-With-WiFi-Built-in-ESP8266/
https://docs.espressif.com/projects/esp-at/en/latest/AT_Command_Set/index.html
Hat jemand für das robotdyn Board ein kompatibles Gehäuse gefunden?
Hi Kai sollte eigentlich jedes AT-Mega Gehäuse passen, ist der gleiche Formfaktor. Bei den Abständen bspw. zwischen USB Ports und Strom sollte man aber mal genauer hinsehen.
https://www.thingiverse.com/search?q=arduino+mega+&page=1&type=things&sort=relevant
Hi,
wollte dieses Board ESP-mäßig gerade nach deiner Anleitung einrichten. Leider ist auf der Espressif-Seite die Version die du in deiner Anleitung verwendest nicht mehr verfügbar. In der aktuellen Version stehen nicht die von dir verwendeten Bin-Dateien. Kennst du eine andere Downloadmöglichkeit oder kannst du mir diese Version per Mail zukommen lassen?
Vielen Dank
Thomas
Hallo Thomas, Schau mal auf der Seite https://robertoostenveld.nl/esp8266-at-firmware/ da sind auch alte soweit ich weiss gelinkt.
Gruß Stefan
p.s. Habe leider keine Version mehr auf der Platte.
Hallo Stefan,
vielen Dank für die schnelle Antwort. Habe es auch mit der aktuellen Firmware hinbekommen. DIP-Schalter 5 und 6 sind nun auf ON der Rest OFF. AT-Befehle funktionieren und Verbindung zur FritzBox funktioniert auch. Wenn die Verbindung steht ist sie auch stabil. Nur braucht es manchmal einige Boardresets bis der eine IP-Adresse bekommt. Obwohl in der FritzBox eingestellt ist das immer dieselbe IP-Adresse zugewiesen werden soll.
Problem ist nun das ich keinen Sketch auf den ESP bekomme. Habe mir zum testen einen kleinen Sketch für einen Miniwebserver runtergeladen. Kompilierung läuft auch ohne Fehler. Nur ist in der Arduino IDE bei dem ausgewählten Board Generic ESP8266 unter Programmer „No Programmer available“. Bei dir in der obrigen Anleitung steht jedoch einer. Bekomme somit natürlich immer die Mitteilung das der Sketch aufgrund eines Timeouts nicht hochgeladen werden kann.
Irgendeine schlaue Idee wo das Problem liegen könnte?
Vielen Dank
Thomas
Hallo Thomas,
habe es gerade mal bei mir gecheckt. Da steht mittlerweile wirklich kein Programmer komisch, Programmierung meines Boards ist aber möglich. Allerdings muss bei mir zum programmieren Dipschalter 567 aktiviert sein. nach dem Programmieren 7 wieder rausnehmen. ( Wenn nicht sowieso vom Strom abgezogen ESP dann nochmal in beiden Fällen resetten).
Gruß Stefan
Danke, guter Artikel
Ich habe ein solches Board laufen, um RFLink über MQTT und Wifi mit meinem MQTT-Broker zu verbinden.
Ich stelle fest, dass die Stabilität der Wifi Verbindung extrem Stao-abhängig ist. Ich habe eine Wifi Installation basierend auf Fritz 7560 und 2 Repeatern als Mesh. Ich nutze im Moment die PCB-Antenne.
Hat jemand schon erfolgreich eine externe Antenne angeschlossen? Muss dafür etwas umgelötet werden?
Hi, bin gerade im Urlaub und habe das Board nicht vor mir. Aber dachte immer dass zumindest meines nur mit externer Antenne funktioniert. Sehe weder eine aufgedampfte Antenne auf den Bildern noch die charakteristische 0 Ohm Brücke.
Gruss Stefan
Hey! Sehr guter artikel, vielen Dank. Welche Version der esp8266 lib wurde verwendet? Habe 2.7.4 von http://arduino.esp8266.com/stable/package_esp8266com_index.json, viele weitere optionen, die mich momentan übervordern.
Hallo Michi,
guter Hinweis, die Version sollte man immer dazu schreiben :(. Werde ich gleich noch verbessern, ich habe die Version 2.7.1 verwendet, sollten keine Methoden umbenannt oder neu Bugs hinzugekommen sein, müsste es aber auch mit der 2.7.4 funktionieren :).
Gruß
Stefan
Sehr hilfreich!
Vielen Dank!