ESP8266

De HLK-RM04 draait inmiddels probleemloos op de boot en ik ben verder aan het experimenteren met de ESP8266. Deze chip wordt veel gebruikt voor IoT (Internet of Things) toepassingen en kan als Access-Point (AP) en/of als Wifi-client (Station) gebruikt worden. De chip is verkrijgbaar op een aantal verschillende modules (ESP-01 t/m ESP-14). Deze modules hebben meer/ minder geheugen, andere antennes en meer/ minder IO-aansluitingen maar gebruiken allemaal de ESP-8266 chip als basis. Omdat ik de module uitsluitend wil gaan gebruiken als serieel/ wifi converter zijn veel I/O aansluitingen niet zo belangrijk en heb ik gekozen voor de eenvoudigste module, de ESP-01.

 

De module is te programmeren via AT-commando’s die met een terminal programma (b.v. Termite) en een USB-serieel converter verstuurd kunnen worden. Voor wat meer complexe programma’s  (C++) kan de module worden geprogrammeerd via een Arduino-board maar ook rechtstreeks via de Arduino software waarop een speciale ESP-8266 library kan draaien.

 

 

 

Op de boot is het ook weer een leuke serieel/ wifi converter die AIS/ GPS kan uitzenden via een AP. Ik ben aan het experimenteren geweest met bestaande C++ programma’s maar die waren of veel te ingewikkeld of ik kreeg ze niet echt lekker aan de praat. Programmeren via AT-commando’s is erg omslachtig en lukte ook niet goed.

 

Toen kwam ik speciale firmware tegen die van de modules een transparante serieel/ wifi bridge kan maken en daarmee vice-versa alle data transparant doorstuurt. Via een simpele webbrowser zijn een aantal basic instellingen te wijzigen zoals SSID, beveiliging en baudrate. De firmware heet ESP-link en kan via een speciale flash-tool in de module geprogrammeerd worden.

Aansluiten van de module op een PC gaat via een USB-serieel converter. Hiervoor kun je verschillende converters gebruiken. Ik heb goede ervaringen met de converter die gebaseerd is op de PL2303 chipset. Nadeel van deze module is dat Windows standaard niet over de correcte driver beschikt. Deze driver kun je onderaan de pagina downloaden. Bij een update kan Windows de driver overschrijven met een niet werkende driver. Er zijn ook converters die draaien op de FTDI-chipset maar die kreeg ik niet goed aan de praat. Meest eenvoudig is het gebruik van een speciaal ontworpen USB/ ESP-01 converter. Op deze converter zit een schuifschakelaar waarmee de module in UART- of Flash-mode is te zetten.

 

 

Je kunt de ESP-01 module ook gebruiken om een sample AIS-NMEA signaal uit te zenden via wifi waarmee je kunt testen of het signaal correct binnenkomt in navigatieprogramma’s zoals OpenCPN, NV-charts en Isailor. Onderaan deze pagina kun je deze AIS-sample downloaden. Via de VDR-plugin van OpenCPN stuur je de test-stream naar een externe com-poort waarop de ESP-01 module draait.

Alle hardware die genoemd wordt op deze pagina is verkrijgbaar op AliExpress.

 

Flashen ESP-link:

Gebruik voor het flashen een USB-serial converter (b.v. Prolific PL2303) of de USB/ ESP-01 converter
Installeer Flash-tool 2.4
Verbindt GPIO0 met GND
Zet voedingsspanning op de ESP-01 (Let op 3,3V !!)
Start het programma “Flash-tool”
Instellingen Flash-tool:

  • 26M
  • 40 Mhz
  • QIO
  • 8 Mbit
  • 115200 baud

Laad de Flash-tool met nieuwe firmware (in dit geval esp-link v3.0.alpha0- 2016-10-23). Neem de adressen exact over:

  • 0X0000 : boot_v1.6.bin
  • 0X3FE000 : blank.bin
  • 0X7C000 : esp_init_data_default.bin
  • 0X01000 :  user1.bin

Start de Flash-tool, nieuwe firmware wordt nu geladen
Schakel na update de ESP-01 uit
Verbindt GPIO0 met Vcc en zet de ESP-01 weer aan
Zoek nieuw wifi-netwerk met naam ESPxxxxx (open netwerk)
Login op IP-adres 192.168.4.1
Via de GUI is de module naar wens in te stellen
Seriële informatie loopt via poort 23

Aansluitingen:

TX :  UART zenden
CH-PD :   Chip enable – Hoog (Vcc) bij normaal gebruik
RST :  External reset: Hoog (Vcc) normaal,  laag (GND) reset
Vcc : 3,3 V (Module kan slecht tegen 5V !)
RX : UART ontvangen
GPIO0 : Hoog voor normaal gebruik, Laag voor flash-update
GPIO2 : Hoog bij opstarten
GND :  Ground (0V)

Aansluiten hardware

Houd er rekening mee dat de ESP-01 draait op een voedingsspanning van 3,3V en dat ook de data-ingang (RX) met max. 3,3V aangestuurd mag worden. Voor testdoeleinden kan wel even 5V gebruikt worden maar dat zal zeker invloed hebben op de betrouwbaarheid op langere termijn. Op AliExpress zijn diverse (buck) converters te vinden die 5/12V kunnen omzetten naar 3,3V.

 

 

Voor het aansluiten van NMEA-signalen zou ik zeker gebruik maken van een opto-coupler zoals aangegeven op de pagina van de HLK-RM04.  Deze opto-coupler zorgt voor een goede galvanische scheiding in het NMEA data-circuit.

 

 

 

 

Zip-bestanden van de Flash-tool en de ESP-link firmware kun je hieronder downloaden:

Flash tool 2.4
esp-link-v3.0.alpha0

Aanvullende en meer gedetailleerde informatie over de ESP8266 kun je hieronder downloaden:

ESP8266-Getting Started
ESP8266-Datasheet
ESP8266-AT Commands Set
ESP8266_ESP32 Kolban
ESP8266_AT instruction set

Windows drivers (W7 & W8/10) voor de USB-serial converter die draait op de Prolific PL2303 chipset kun je hieronder downloaden:

Prolific PL2303

AIS sample:

AIS nmea sample

Schematic diagram USB/ ESP-01 converter en het terminal-programma Termite:

USB to ESP-01 Adapter schematic
Termite