microclub-ch / P19-projets-microclub-2019

Projet Robotique/Domotique du Microclub de Lausanne, partage d'idées et de questions
0 stars 0 forks source link

Alternative pour le module ESP32 proposé, version avec PSRAM #2

Open rolfz opened 5 years ago

rolfz commented 5 years ago

Module intéressant pour les modus du python, mais pas pin-compatible avec le module actuellement prévu. A vérifier si on peut combiner les 2 modules.

https://www.banggood.com/Geekworm-ESP32-WORVER-Development-Board-With-4MB-PSRAM-WiFiBluetooth-Low-Power-Consumption-p-1331676.html?rmmds=search&cur_warehouse=CN

NicHub commented 5 years ago

Il a l’air bien ce module Geekworm Rolf.

De mon côté, le module avec psRAM le plus intéressant que j’ai trouvé pour l’instant est l’Espressif ESP32-DevKitC-VIB :

https://www.mouser.ch/ProductDetail/Espressif-Systems/ESP32-DevKitC-VIB?qs=sGAEpiMZZMve4%2fbfQkoj%252bOPQQxxv5be9DpEa9draprU=

Il a l’avantage d’être vendu sous le nom Espressif, ce qui permet de penser que tout le monde recevra le même module, ce qui est loin d’être garanti si on choisit une marque plus exotique.

Un autre module intéressant est celui-ci :

https://www.analoglamb.com/product/esp32-wrover-mini-esp32-development-board-with-4mb-psram/

Je me demande quand même si c’est une bonne idée de faire un développement basé sur des modules qu’on n’est pas sûrs de pouvoir trouver sur le marché dans 6 mois... Bon on fait ça en amateurs donc on n’a pas forcément besoin d’avoir toutes les garanties comme une entreprise. Mais peut-être qu’il vaudrait mieux créer notre propre module ce qui ferait un développement de PCB supplémentaire, mais qui aurait pour avantage de garantir la pérennité du projet.

NicHub commented 5 years ago

Si vous avez le temps, allez faire un tour sur http://esp32.net/. Il y a une foultitude d’infos intéressantes.

jmparatte commented 5 years ago

Je verrais bien une compatibilité avec un EPS32 LoRa, par le Heltec V2. On pourrait aménager des rangs de pins à la façon "breadbord" et à l'aide de fils connectés les fonctionnalités qui intéresse: I2C, DAC,...

rolfz commented 5 years ago

Les circuits LORA n'ont pas de mémoire RAM pour l'instant et l'écran OLED n'est pas dans un sense pratique, Le circuit proposé par Nicolas n'est pas livrable pour l'instan chez Mouser, par contre il est compatible avec le suivant de chez Bang: https://www.banggood.com/fr/WeMos-ESP32-WiFi-Bluetooth-Development-Board-Ultra-Low-Power-Consumption-Dual-Core-ESP-32-ESP-32S-p-1175488.html?rmmds=search&cur_warehouse=CN. JM, que veux tu dire des rangs de pins façon breadboard ? J'ai ajouté 2 rangée de pins à côté du circuit, histoire de pouvoir mesurer ou de connecter des fils, mais pas de place pour un champ de pins style veroboard pour l'instant. Par contre on peut s'imaginer faire un circuit plug-in style veroboard. Dessin va suivre...

rolfz commented 5 years ago

Circuit intéressant WROVER avec quelques options que nous n'avons pas sur notre liste LCD couleur, camera, " An external precision 32.768 kHz crystal oscillator provides a low-power consumption clock used during Deep-Sleep mode"! https://docs.espressif.com/projects/esp-idf/en/latest/get-started/get-started-wrover-kit.html Nous allons nous inspirer de ces fonctions pour notre circuit ! mais si nous ajoutons une camer, il ne reste plus de pins pour des moteurs etc....

NicHub commented 5 years ago

Ce circuit est effectivement intéressant. Pour info, Espressif a une page avec tous leurs boards. En ce qui concerne l’usage de la caméra, je pense que c’est plus plaisant de travailler avec un Raspberry qu’avec un ESP32. Donc je ne pense pas que le PCB devrait prévoir de caméra.

J’ai vu hier que le board Espressif ESP32-DevKitC-VIB chez Mouser (38 pins) n’est livrable qu’en 7 semaines. Et c’est le seul endroit où je l’ai trouvé. Finalement ça ne fait “que” le double de temps d’une commande dans un autre magasin en Chine, donc ça vaut peut-être la peine.

Sinon, Geekworm propose un board avec 8 MiB de psRAM, mais il a 40 pins.

De ce que je comprends, la quantité de psRAM est nommée de la façon suivante :

DÉNOMINATION RAM
WROOM 500 KiB
WROVER 4 MiB
WROVER-B 8 MiB

Ce qui me fait penser que le board Espressif ESP32-DevKitC-VIB chez Mouser a peut-être 8 MiB de psRAM, puisqu’il a la lettre B dans son code.


Edit : Je réponds à ma propre question.

Le board ESP32-DevKitCVIB est équipé d’un module WROVER-B avec 8 MiB de psRAM d’après ce document PDF :

https://www.espressif.com/sites/default/files/documentation/espressif_products_ordering_information_en.pdf

La fiche technique du module WROVER-B se trouve ici :

https://www.espressif.com/sites/default/files/documentation/esp32-wrover-b_datasheet_en.pdf

NicHub commented 5 years ago

Pour mémoire, les Chinois fêtent leur Nouvel An du 29 janvier 2019 au 10 février 2019. Donc ça commence aujourd’hui...

rolfz commented 5 years ago

Pas d'inquiétude, j'ai déjà modifié mon PCB pour ta carte de chez Mouser qui sera le choix pour les adeptes du Python. Pour les adeptes du C, la version normale est bien suffisante, et après recherche et comparaison, j'ai trouvé une pin-compatible chez BG https://www.banggood.com/fr/WeMos-ESP32-WiFi-Bluetooth-Development-Board-Ultra-Low-Power-Consumption-Dual-Core-ESP-32-ESP-32S-p-1175488.html?rmmds=search&cur_warehouse=CN De cette façon nous avons le choix entre 2 cartes 38 pins, et je suis persuadé que BG aura prochainement la WRover disponible également! Pour la camera video, pas d'inquiétude, nous n'avons pas assez de pins et de puissance sur ces processeurs, donc pas de connecteur video ! et pour l'instant. Il me reste à connecter les capeurs IR et le module Audio.

jmparatte commented 5 years ago

Le circuit Heltec V2 a environ 300kB de RAM, plus précisément 294912 octets.

NicHub commented 5 years ago

J’ai fait un tableau de comparaison pin à pin des boards Espressif (Mouser) et WeMos (Banggood). La pin 2 à droite n’a pas la même dénomination sur les deux boards. Bon, on peut se demander si EN et RST ne sont pas finalement la même chose pour des Chinois...

J’ai aussi fait une colonne avec les pins du module lui-même (sans board). Il a 3 pins qui ne sont pas connectées. Par chance, Espressif et WeMos ont choisi de mettre GND, 17 et 16 aux mêmes endroits. Mais il se peut que d’autres fabricants fassent d’autres choix.

# NOM & URL
1 module ESP32-WROVER
2 board Espressif ESP32-DevKitC-VIB (8 MiB psRAM) Mouser
3 board WeMos (500 KiB RAM) Banggood
 
PIN
#
1
MODULE
GAUCHE
2
ESPRESSIF
GAUCHE
3
WEMOS
GAUCHE
1
MODULE
DROITE
2
ESPRESSIF
DROITE
3
WEMOS
DROITE
1 GND GND GND GND 3V3 3V3
2 IO23 23 IO23 VDD33 :boom: EN :boom: RST
3 IO22 22 IO22 EN VP SVP
4 TXD0 TX TXD SENSOR_VP VN SVN
5 RXD0 RX RXD SENSOR_VN 34 IO34
6 IO21 21 IO21 IO34 35 IO35
7 :warning: NC GND GND IO35 32 IO32
8 IO19 19 IO19 IO32 33 IO33
9 IO18 18 IO18 IO33 25 IO25
10 IO5 5 IO5 IO25 26 IO26
11 :boom: NC :boom: NC :boom: IO17 (TX2) IO26 27 IO27
12 :boom: NC :boom: NC :boom: IO16 (RX2) IO27 14 IO14
13 IO4 4 IO4 IO14 12 IO12
14 IO0 0 IO0 IO12 GND GND
15 IO2 2 IO2 GND 13 IO13
16 IO15 15 IO15 IO13 D2 SD2
17 SD1 D1 SD1 SD2 D3 SD3
18 SD0 D0 SD0 SD3 CMD CMD
19 CLK CLK SCK CMD 5V 5V
rolfz commented 5 years ago

Merci Nicolas, Je suis assez confient que ces 2 circuits sont compatible, il suffira d'en commander 1 de chaque avant de fabriquer le circuit. Pour ce qui est des pins, tu peux ajouter à ta tabelle que 17= TX2 et 16 = RX2. JE viens de vérifier mon schéma actuel, ces 2 pins ne sont pas utilisée (par chance). Je vais connecter le module Audio dessus + ajouter 4 pins pour une extension.

jmparatte commented 5 years ago

Je suis complètement perdu avec toutes ces versions de ESP et de RAM. Je possède: WeMos® ESP32 WiFi + Bluetooth Development Board Ultra Low Power Consumption Dual Core ESP-32 ESP-32S Similar ESP8266 (et des TTGO Wemos et Heltec V2.) Q1: Est-ce que mon ESP32 Wemos est compatible avec le projet ? Q2: Quel est l'intérêt d'avoir 4 ou 8MB de PSRAM ? Q3: Et WROVER ?

Rolf: Est-ce que tu as déjà des ESP32 en stock - les meilleurs que tu envisages pour le projet - quels sont-ils? Est-ce que tu peux m'en vendre 1?

rolfz commented 5 years ago

Tous les ESP32 semblent avoir le même CPU, donc Dual Core. Les diverses versions sont compatible au niveau CPU, mais pas toujours que niveau des composants sur le breakout et au niveau Pinout du breakout. Selon ton lien, tu as une version 38 pins (2x19) et ceci correspond à la version que j'ai actuellement sur le PCB du projet. Cette version est d'après moi compatible avec la version WROVER mentionnée par Nicolas avec 4MB de PSRAM. D'après moi, la version que tu possède devrait faire l'affaire pour de nombreux projets NEO-PIXEL ou Robotique programmées en C. Mon robot 2 roues utilise 50% de la mémoire flash et 30% de la mémoire RAM (512kB). Je ne vois donc pas l'urgence d'utiliser la version WROVER même si le PCB sera compatible. Je m'attends à voir d'autres cartes apparaitre sur le marché ces prochains mois. Ton processeur doit donc faire l'affaire.

rolfz commented 5 years ago

Partie schéma côté processeur

image

NicHub commented 5 years ago

@jmparatte. Si on compare les pins de ta carte Wemos, on voit que ce sont les mêmes que celles de mon tableau ci-dessus. Donc c’est tout bon.

C’est surtout pour la programmation en Python que la quantité de RAM fera la différence. Cela dit, avoir beaucoup de RAM permet de s’affranchir de pas mal de problèmes qui peuvent être des vrais casse-têtes pour les novices. Donc je suis assez partisan de choisir des boards avec plus de RAM.

WROOM, WROVER et WROVER-B sont les noms commerciaux pour spécifier la quantité de RAM. Tu peux voir le récapitulatif dans mon tableau ci-dessus : #issuecomment-458462210

À mon avis, le meilleur ESP pour l’instant est le ESP32-DevKitC-VIB d’Espressif. C’est un modèle WROVER-B : https://www.mouser.ch/ProductDetail/Espressif-Systems/ESP32-DevKitC-VIB?qs=sGAEpiMZZMve4%2fbfQkoj%252bOPQQxxv5be9DpEa9draprU=

Le délai de livraison est de 7 semaines, mais ce n’est pas forcément un gros problème pour un projet qui doit durer une année.

Quel que soit le board que l’on choisira, je pense que le plus sage est que l’on fasse une commande groupée pour que tous les participants aient le même board et qu’on ne se prenne pas la tête avec les différences entre les modèles.

jmparatte commented 5 years ago

2019-02-05: v. commentaire qui annule mon avis ci-dessous.

Au vu de tout de qui précède, je serai partisan du choix du dernier kit Expressif à commander chez Mouser, ça devrait être une valeur sûre, j'en ai marre des pins et copies parasites... .

rolfz commented 5 years ago

Je suis finalement surpris du module WRover concernant les pattes 27 et 28 (GPIO 16/17). Les 2 pins ont dans la version standard RX2 et TX2 et les signaux ne figurent pas sur la version WRover ! image. GPIO 16 est utilisé comme chipselect pour le chip PSRAM, GPIO 17 est utilisé comme SRAM-CLOCK du même chip. Donc pas de RX2/TX2 sur WRover. référence: schémas: https://www.espressif.com/sites/default/files/documentation/esp32-wrover_datasheet_en.pdf

WRover donc pas conseillé par Rolf, en tout cas pas pour de la robotique (512k RAM seront amplement suffisants en programmation en C! )

jmparatte commented 5 years ago

Donc on exclut le WROVER et il reste le WROOM et le WROVER-B, c'est bien cela?

rolfz commented 5 years ago

Dès qu'il y a du PSRAM, les lignes GPIO16 et GPIO17 sont utilisées pour la mémoire. Selon le document ESP32-WRover-B, ces lignes sont également condamnées. https://www.espressif.com/en/media_overview/news/new-espressif-module-esp32-wrover-b. Je ne change donc pas le PCB, il faut juste noter que pour la robotique/domotique ou l'on veut utiliser RX2-TX2 il faut donc rester avec le WROOM. Je vais commander [WROOM 38 pattes] LIEN_BG pour tester.

jmparatte commented 5 years ago

Je suis prêt.

jmparatte commented 5 years ago

@NicHub, je te propose de corriger le tableau en conséquence des dernières analyses du WROVER-B avec lequel les pins 7, 11, 12 sont malheureusement NC comme le WROVER.

NicHub commented 5 years ago

@jmparatte J’ai corrigé le tableau.

C’est embêtant cette histoire de RX2/TX2 qui manquent sur les WROVER, mais on peut toujours faire du soft serial. C’est d’ailleurs ce que j’avais fait quand j’ai testé le module DFPlayer avec un Arduino nano.

Personnellement je préfère avoir beaucoup de RAM que d’avoir deux ports série. Mais surtout, je viens de découvrir que la lettre B de WROVER-B signifie beacon (balise en français). C’est-à-dire que le WROVER‑B peut broadcaster des services via BLE. Et ça, c’est vraiment cool. Pour info, c’est ce système de beacon qui permet de nous suivre à la trace dans les rayons des magasins.

Donc pour moi, il n’y a pas photo, c’est le WROVER-B qui l’emporte.

Edit : Tous les modèles d’ESP semblent avoir la fonctionnalité beacon. Donc la lettre B n’est pas prévue pour ça, et il n’y a plus que l’avantage de la quantité de RAM qui distingue le WROVER-B.

NicHub commented 5 years ago

Autre point à propos des pins inutilisables, je vois que pour les 3 modèles d’ESP (WROOM, WROVER et WROVER-B), Espressif recommande de ne pas utiliser CLK, SD0, SD1, SD2, SD3 et CMD. Ce sont les 2×3 pins en bas de mon tableau.

Voilà ce qu’Espressif dit :

Pins SCK/CLK, SDO/SD0, SDI/SD1, SHD/SD2, SWP/SD3 and SCS/CMD, namely, GPIO6 to GPIO11 are connected to the SPI flash integrated on the module and are not recommended for other uses.

Ça fait quand même 6 pins qui prennent de la place pour rien et je me demande pourquoi elles sont implémentées sur les boards s’il vaut mieux ne pas les utiliser. L’info vient de ces 3 fiches techniques, à la fin du chapitre 2.2 :

https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf https://www.espressif.com/sites/default/files/documentation/esp32-wrover_datasheet_en.pdf https://www.espressif.com/sites/default/files/documentation/esp32-wrover-b_datasheet_en.pdf

edit : je vois maintenant que @rolfz avait vu ce problème avant moi

jmparatte commented 5 years ago

... Mais surtout, je viens de découvrir que la lettre B de WROVER-B signifie beacon (balise en français). C’est-à-dire que le WROVER‑B peut broadcaster des services via BLE. Et ça, c’est vraiment cool. Pour info, c’est ce système de beacon qui permet de nous suivre à la trace dans les rayons des magasins.

Donc pour moi, il n’y a pas photo, c’est le WROVER-B qui l’emporte.

Je ne sais pas si ta remarque est exacte! Il me semble que les 3 modèles ont les capacités beacon.

NicHub commented 5 years ago

@jmparatte Juste, il semble qu’effectivement tous les modèles ont la fonctionnalité beacon. J’ai édité mon post précédent en conséquence.