Open rolfz opened 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 :
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.
Si vous avez le temps, allez faire un tour sur http://esp32.net/. Il y a une foultitude d’infos intéressantes.
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,...
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...
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....
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 :
La fiche technique du module WROVER-B se trouve ici :
https://www.espressif.com/sites/default/files/documentation/esp32-wrover-b_datasheet_en.pdf
Pour mémoire, les Chinois fêtent leur Nouvel An du 29 janvier 2019 au 10 février 2019. Donc ça commence aujourd’hui...
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.
Le circuit Heltec V2 a environ 300kB de RAM, plus précisément 294912 octets.
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 |
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.
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?
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.
Partie schéma côté processeur
@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.
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... .
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 !
. 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! )
Donc on exclut le WROVER et il reste le WROOM et le WROVER-B, c'est bien cela?
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.
Je suis prêt.
@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.
@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.
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
... 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.
@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.
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