Mise en route de la carte Olimex ESP 32 Dev Kit Lipo

La carte

Il s'agit d'une carte au format dev kit C usuel expressif. L'intérêt de cette carte, c'est qu'elle dispose d'un connecteur / chargeur lipo intégré.

Infos techniques

  • Carte propulsée par un ESP32
  • Flash : 2MB à priori. Pas très clair les différences intermodèles. Pas de PSRAM sur mon modèle.

  • Lipo : à priori utilisable avec un Lipo 3.7V. Sur le site, conseille Lipo 3.7V en 1400 mAh.

Brochage

Le Wroom ne dispose pas de SRAM alors que le Wrover si. Toutes les broches idem sauf 2 en moins sur le Wrover ( la 16 et la 17).

Wroom : 4Mo de Flash + 512K de RAM Wrover : 4 Mo de Flash + 512K RAM + 8Mo SPIRAM (+++)

Info

La différence de prix entre les 2 n'est que de 1 ou 2 €... mais clairement, disposer de SPIRAM offre une possibilité de développements beaucoup plus grande, la limite principale d'un développement sur ESP étant la RAM, notamment lors du chargement de fichiers, etc.

Wroom

Wrover

Pour les 2 :

Bon à savoir : d'après le datasheet de la carte :

  • VBAT sur GP35
  • VIN sur GP39
  • pas de LED onboard ?
  • RX/TX sur GPIO01 et GPIO03

Alim :

  • 5V : 5V In/out
  • 3.3V : Out only à 600mA max (pas mal).

ESP32-DevKit-Lipo_Rev_B.pdf

Note sur VBatt Lipo sur GP35

On dispose de VBatt Lipo sur GP 35 mais il faut pour cela faire 2 soudures :

  • une en face de GP 35
  • une à côté du lipo

On a alors accès à la tension de VBat/2 (pont diviseur par 2 R de 470K) sur GP 35. Cela donne donc indirectement un état de la charge du Lipo.

Voir ici pour les tensions du Lipo en fonction de la charge. Ici, le Lipo est un 1S = 3.7V. https://blog.ampow.com/lipo-voltage-chart/

Drivers CH3040

Les cartes ESP 32 vont utiliser pour communiquer un driver CH340 qui va fournir un port série au format ttyUSB0 sur Gnu/Linux.

Ces drivers sont directement présents sous Gnu/Linux. Mais doivent à priori être installés sous WIndows et Os X.

Flasher MicroPython

Pour cela on utilise un outil dédié écrit en python, esptool.py et qui s'installe logiquement avec l'installateur python pip :

sudo apt-get install python3-pip
sudo pip3 install esptool

Télécharger la version adaptée de MicroPython : https://micropython.org/download/esp32/ La version générique fonctionne que la carte dispose ou non de SRAM externe.

Ensuite, on peut flasher facilement le firmware micropython dans l'ESP 32. Ouvrir un terminal dans le répertoire où se trouve le binaire puis successivement :

  • on efface la mémoire flash de la carte :
esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash
  • on flashe micropython :
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp32-20210416-unstable-v1.14-170-ga9bbf7083.bin

Une fois fait, on peut tester que tout est OK en se connectant avec un terminal série sur /dev/ttyUSB0

Avec Thonny par exemple, aller dans Tools > Options > Interpreter > sélectionner la bonne carte

Test de micropython

>>> import machine
>>> machine.freq()
160000000 # 160 Mhz
>>> from machine import Pin
>>> led=Pin(23, Pin.OUT)
>>> led.on()
>>> led.off()

Liens utiles