Difference between revisions of "Projets:Perso:2015:LedTube:ESP12Q"

From Electrolab
Jump to: navigation, search
(Documents Essentiels)
 
(8 intermediate revisions by one user not shown)
Line 30: Line 30:
  
 
----
 
----
 +
 +
=== Le brochage ===
 +
 +
 
[[File:ESP12Q_pindef.png|Définition des broches]]
 
[[File:ESP12Q_pindef.png|Définition des broches]]
 
----
 
----
Le module dans son sachet
+
 
 +
=== Le module dans son sachet ===
 +
 
 
[[File:ESP12Q_top.jpg|400px]]
 
[[File:ESP12Q_top.jpg|400px]]
 
[[File:ESP12Q_bottom.jpg|400px]]
 
[[File:ESP12Q_bottom.jpg|400px]]
 
----
 
----
Le schéma interne du module.
+
 
 +
=== Le schéma interne du module ===
 +
 
  
 
Important :  
 
Important :  
Line 47: Line 55:
  
 
----
 
----
Comment je l'ai intégré dans mon schéma:
+
 
 +
=== Comment je l'ai intégré dans mon schéma ===
 +
 
  
 
[[File:Projets_perso_2015_ledtube_esp-12-q-module.png|800px]]
 
[[File:Projets_perso_2015_ledtube_esp-12-q-module.png|800px]]
Line 56: Line 66:
 
* Flash Boot mode est le mode de fonctionnement normal, le processeur exécute son application
 
* Flash Boot mode est le mode de fonctionnement normal, le processeur exécute son application
  
Choses à télécharger sur le site web espressif
+
Librairie Eagle pour l'intégrer à votre schéma : [http://ufowaves.org/electrolab/sphere/ESP12Q.lbr ESP12Q.lbr]
  
Documents importants
+
=== Choses à télécharger sur le site web espressif ===
* Le protocole AT, : 4A-ESP8266__AT Instruction Set__EN_v1.4.pdf
+
   
* Le 0B-ESP8266__Hardware_User_Guide__EN_v1.1.pdf peut aider si on se pose des questions
+
  
http://bbs.espressif.com/viewtopic.php?f=51&t=1022
 
http://bbs.espressif.com/viewtopic.php?f=51&t=818
 
  
Logiciels Essentiels
+
==== Documents Essentiels ====
* Le FLASH_DOWNLOAD_TOOLS_v1.2_150512 est l'outil pour reflasher le ESP8266 par sa liaison série
+
* esp_iot_sdk_v1.4.0_15_09_18.zip (contient les binaires à flasher avec l'outil, sont dans le rep bin/at et bin/)
+
  
 +
* Le protocole AT,  : [https://github.com/boseji/ESP-Store/raw/master/manuals/Archive/4A-ESP8266__AT%20Instruction%20Set__EN_v1.4.pdf 4A-ESP8266__AT Instruction Set__EN_v1.4.pdf]
 +
* Le [https://github.com/boseji/ESP-Store/raw/master/manuals/Archive/0B-ESP8266__Hardware_User_Guide__EN_v1.1.pdf 0B-ESP8266__Hardware_User_Guide__EN_v1.1.pdf] peut aider si on se pose des questions. Devenu deux documents. Datasheet et System Description.
 +
 +
==== Logiciels Essentiels ====
 +
 +
* Le FLASH_DOWNLOAD_TOOLS_v1.2_150512 est l'outil pour reflasher le ESP8266 par sa liaison série
 
* http://bbs.espressif.com/viewtopic.php?f=57&t=433
 
* http://bbs.espressif.com/viewtopic.php?f=57&t=433
 
* http://bbs.espressif.com/download/file.php?id=385
 
* http://bbs.espressif.com/download/file.php?id=385
 +
 +
* Les binaires pour le protocole AT (doivent être flashés car pas dedans par défaut)
 +
* esp_iot_sdk_v1.4.0_15_09_18.zip (les binaires sont dans le rep bin/at et bin/)
 
* http://bbs.espressif.com/viewtopic.php?f=46&t=1702
 
* http://bbs.espressif.com/viewtopic.php?f=46&t=1702
  
Terminal pour vérifier que le flashage a bien marché.
+
Le flashage se fait par les broches TX, RX, sans contrôle de flux.
* Terraterm (pas un outil de expressif)
+
  
 +
Terminal pour vérifier que le flashage a bien marché.
 +
* Tera Term (pas un outil de expressif)
 
* http://ttssh2.osdn.jp/index.html.en
 
* http://ttssh2.osdn.jp/index.html.en
  
Les binaire pour le protocole AT (doit être flashé car pas dedans par défaut)
+
Pour les essais avec tera term, il faut changer setup>terminal>New-Line>Transmit>CR+LF
 +
 
 +
Et setup>terminal> cocher local echo est pratique.
 +
 
 +
=== Config de l'appli pour le flashage ===
  
 
Voici la config qui a marché pour moi, ce n'est surement pas la config optimale, mais elle fait le job
 
Voici la config qui a marché pour moi, ce n'est surement pas la config optimale, mais elle fait le job
Line 84: Line 103:
 
[[File:ESP12Q_flash_config.png]]
 
[[File:ESP12Q_flash_config.png]]
  
Vu sur ma carte shield pour Nucleo64
+
 
 +
=== Vu sur ma carte shield pour Nucleo64 ===
 +
 
  
 
[[File:Projets_perso_2015_ledtube_shield.jpg|1024px]]
 
[[File:Projets_perso_2015_ledtube_shield.jpg|1024px]]
  
Cf http://bbs.espressif.com
+
=== Exemple de dialogue exact ===
 +
 
 +
Pour une réception UDP transparente sur port 5125. Après ça, le module ressort sur sa liaison série tout ce qu'il reçoit en UDP de ceux qui se sont connectés sur le port 5125.
 +
 
 +
Cf 4A-ESP8266__AT Instruction Set__EN_v1.4.pdf
 +
 
 +
Cet exemple est précieux car il montre des choses non documentées par espressif : en particulier combien de \r\n il se met à répondre...
 +
 
 +
 
 +
String envoyées (on doit rajouter"\r\n" à la fin de chaque chaîne)
 +
 
 +
char *wifiS[NB_WF_CMD_STARTUP] = {
 +
"ATE0", // do not echo, just reply !
 +
"AT+CWMODE_CUR=2", // soft ap
 +
"AT+CIPMUX=0", //
 +
"AT+CWSAP_CUR=\"LEDTUBE\",\"\",5,0",
 +
"AT+CWDHCP_CUR=0,1", // softAP DHCP enable
 +
"AT+CIPAP_CUR=\"192.168.1.0\",\"192.168.1.0\",\"255.255.255.0\"",
 +
"AT+CIPSTART=\"UDP\",\"192.168.1.1\",5125,5125,0", //response : CONNECT\r\nOK\r\n
 +
"AT+CIPMODE=1"
 +
};
 +
 
 +
Ce qui est répondu exactement
 +
 
 +
char *expectedWifiReplieS[] = {
 +
"ATE0\r\r\n\r\nOK\r\n",
 +
"\r\nOK\r\n",
 +
"\r\nOK\r\n",
 +
"\r\nOK\r\n",
 +
"\r\nOK\r\n",
 +
"\r\nOK\r\n",
 +
"CONNECT\r\n\r\nOK\r\n",
 +
"\r\nOK\r\n"
 +
};

Latest revision as of 18:09, 2 February 2019

Module ESP-12-Q

Ce module porte, dans un boitier métallique faisant office de blindage, un chip WIFI ESP8266 de "Espressif Systems" (chinois)

Ce module est exceptionnel pour ce qu'il permet de faire à son prix. Il a une bonne portée.

Il peut par exemple créer un hotspot wifi (soft access point), et permettre à jusqu'à 4 devices de s'y connecter simultanément (marche au moins avec android, win).

Il y a du firmware dans le ESP8266. Il peut-être mis à jour.

Ce chip ESP8266 peut être utilisé de plusieurs façons.

  • Soit on dialogue avec le module par la liaison série (typiquement à 115200 bauds) en envoyant des commandes AT. Mais cela suppose d'avoir flashé dans le module le firmware AT de Espressif, ou un de ses dérivés
  • Soit on développe sois même du firmware, on le compile, on le flashe dans le module. Ca permet de faire une solution WIFI sans processeur externe.

Les modules dans le distributeur sont flashés avec un firmware type "internet of things" qui permet de se connecter directement avec un browser internet au module. J'ai pas perdu de temps avec ça. Pour les geeks.

En ce qui concerne le projet LedTube, je l'ai utilisé en mode AT.

J'ai donc reflashé le module, avec le firmware AT officiel de Espressif.

Ce qu'on appelle des commandes AT : c'est juste un protocole où on envoie vers le module des commandes par la liaison série en ASCII et on obtient des réponses. On peut ainsi par exemple depuis un PC, avec un simple logiciel terminal (terraterm par exemple) dialoguer "à la main" avec le module, envoyer des trames TCP, UDP, recevoir des trames. C'est pratique pour le debuggage. Ensuite dans le circuit final, votre processeur fait la même chose.

Selon le niveau électrique sur des broches en sortie de RESET, le module va booter normalement, ou bien passer en mode re-flashage. Voir plus bas

Voici les images utiles pour réaliser un schéma électronique



Le brochage

Définition des broches


Le module dans son sachet

ESP12Q top.jpg ESP12Q bottom.jpg


Le schéma interne du module

Important :

  • On voit qu'il y a une pull up sur le RESET. Pour bloquer en RESET, mettre cette broche à 0V.
  • La broche ENABLE est active à 3.3V.
  • On voit que le GPIO2 est connecté au + par LED + résistance. Si bien qu'il n'est pas requis de le contrôler en sortie de RESET car il aura le bon niveau (Haut).

ESP12Q schematic esp-12e.png Schéma interne au module


Comment je l'ai intégré dans mon schéma

Projets perso 2015 ledtube esp-12-q-module.png

Selon le niveau électrique sur des broches en sortie de RESET, le module va passer en mode normal (flash boot mode), ou bien re-flashage (Uart download mode). Dans le schéma,

  • UART Download Mode est le mode re-flashage
  • Flash Boot mode est le mode de fonctionnement normal, le processeur exécute son application

Librairie Eagle pour l'intégrer à votre schéma : ESP12Q.lbr

Choses à télécharger sur le site web espressif

Documents Essentiels

Logiciels Essentiels

Le flashage se fait par les broches TX, RX, sans contrôle de flux.

Terminal pour vérifier que le flashage a bien marché.

Pour les essais avec tera term, il faut changer setup>terminal>New-Line>Transmit>CR+LF

Et setup>terminal> cocher local echo est pratique.

Config de l'appli pour le flashage

Voici la config qui a marché pour moi, ce n'est surement pas la config optimale, mais elle fait le job

ESP12Q flash config.png


Vu sur ma carte shield pour Nucleo64

Projets perso 2015 ledtube shield.jpg

Exemple de dialogue exact

Pour une réception UDP transparente sur port 5125. Après ça, le module ressort sur sa liaison série tout ce qu'il reçoit en UDP de ceux qui se sont connectés sur le port 5125.

Cf 4A-ESP8266__AT Instruction Set__EN_v1.4.pdf

Cet exemple est précieux car il montre des choses non documentées par espressif : en particulier combien de \r\n il se met à répondre...


String envoyées (on doit rajouter"\r\n" à la fin de chaque chaîne)

char *wifiS[NB_WF_CMD_STARTUP] = {
"ATE0", // do not echo, just reply !
"AT+CWMODE_CUR=2", // soft ap
"AT+CIPMUX=0", //
"AT+CWSAP_CUR=\"LEDTUBE\",\"\",5,0",
"AT+CWDHCP_CUR=0,1", // softAP DHCP enable 
"AT+CIPAP_CUR=\"192.168.1.0\",\"192.168.1.0\",\"255.255.255.0\"",
"AT+CIPSTART=\"UDP\",\"192.168.1.1\",5125,5125,0", //response : CONNECT\r\nOK\r\n
"AT+CIPMODE=1"	
};

Ce qui est répondu exactement

char *expectedWifiReplieS[] = {
"ATE0\r\r\n\r\nOK\r\n",
"\r\nOK\r\n",
"\r\nOK\r\n",
"\r\nOK\r\n",
"\r\nOK\r\n",
"\r\nOK\r\n",
"CONNECT\r\n\r\nOK\r\n",
"\r\nOK\r\n"
};