ESP32 firmware vs Wipy firmware

All ESP32 boards running MicroPython.
Target audience: MicroPython users with an ESP32 board.
Post Reply
User avatar
liudr
Posts: 211
Joined: Tue Oct 17, 2017 5:18 am

ESP32 firmware vs Wipy firmware

Post by liudr » Tue Mar 20, 2018 6:08 am

I started my MicroPython on an ESP8266 dev board a few months ago. I'm moving to an ESP32 dev board made by doit.am so I can use its UART ports. I think it has 3 UART ports.

I found two firmware, one specifically saying ESP32. Only the latest version is posted. Another one says Wipy, with several versions including latest. I looked up Wipy and found out that Wipy is a dev board based on ESP32 with a number of addon boards. Since I don't have Wipy dev boards, I decided to flash the "ESP32" firmware. Then I realized that there is no doc for this port. The docs are only on pyboard, esp8266, Wipy, and unix. Am I better off just flashing the Wipy firmware and use its doc or can someone tell me what the major differences are between ESP32 and Wipy firmware?

I was reading this post on pycom saying that ESP32 has a multiplexer so many of the hardware features such as SPI, I2C, UART can be mapped to any pins you want. That sounds interesting to me, coming from Arduino experience where only analog input pins have analog multiplexers on a fixed set of digital pins.

https://forum.pycom.io/topic/1822/acces ... on-esp32/4

Just wishing to learn more and always feel amazed at how python was made to run on microcontrollers.

User avatar
Roberthh
Posts: 3667
Joined: Sat May 09, 2015 4:13 pm
Location: Rhineland, Europe

Re: ESP32 firmware vs Wipy firmware

Post by Roberthh » Tue Mar 20, 2018 6:50 am

WiPy is a product name of Pycom. There are three different models. Only the so called WiPy2 and WiPy3 (with PSRAM) use an ESP32. The WiPy software will not run on any generic ESP32 module. It runs on a module without PSRAM and a Rev0 esp32 chip, and a model with PSRAM and a Rev1 esp32. And the GPIO port numbering is genuine. And the Micropython core is somewhat outdated.
To make things even more confusing, there are two variants for ESP32 here: the one provided by micropython.org and the loboris port. Like the pycom branches, the latter develops fast in matter of features and is well documented, but does not incorporate changes to the language in a fast fashion. But at least both versions use the generic port numbering.

loboris
Posts: 344
Joined: Fri Oct 02, 2015 6:19 pm

Re: ESP32 firmware vs Wipy firmware

Post by loboris » Tue Mar 20, 2018 9:05 am

Roberthh wrote:
Tue Mar 20, 2018 6:50 am
Only the so called WiPy2 and WiPy3 (with PSRAM) use an ESP32
All Pycom's boards and OEM modules have ESP32.

User avatar
Roberthh
Posts: 3667
Joined: Sat May 09, 2015 4:13 pm
Location: Rhineland, Europe

Re: ESP32 firmware vs Wipy firmware

Post by Roberthh » Tue Mar 20, 2018 9:52 am

There is the WIPY1 board based on a CC3200. Even if this is not a board of the Pycom company, it's software was made by Daniel Campora, and the state is somewhat unclear. It is more or less an abadoned product, causing some confusion in both communities. I must say that did not try to recompile the firmware for that product since a while. I do not know whether it's possible. I could give it a try.

User avatar
liudr
Posts: 211
Joined: Tue Oct 17, 2017 5:18 am

Re: ESP32 firmware vs Wipy firmware

Post by liudr » Tue Mar 20, 2018 6:50 pm

Roberthh,

Thanks for the history lesson. It's always good to know not just the current state but also how they got here. So if I could distill your comments:
1. ESP32 firmware from micropython works on ESP 32 processors, maybe broader than the Wipy firmware that works on specific ESP 32 processor revisions.

2. ESP32 firmware from micropython may not have a number of latest ESP 32-specific features but does have the latest MicroPython language features.

This sounds like I should stick with ESP32 firmware from micropython. Where can I find pin mapping between this firmware version and the ESP32 processor module pins?

By ESP32 processor module, I mean the processor and everything else on a single PCB inside an EMP shield like this one:

https://www.banggood.com/Geekcreit-WiFi ... ehouse=USA

My guess is that the mapping is 1:1 i.e. say the IO5 on the module is the pin 5 in micropython firmware.

OutoftheBOTS_
Posts: 847
Joined: Mon Nov 20, 2017 10:18 am

Re: ESP32 firmware vs Wipy firmware

Post by OutoftheBOTS_ » Tue Mar 20, 2018 8:24 pm

I too started on ESP8266 but have changed because of the limitations of the ESP8266 (ram and number of I/O pins).

I would recomend getting the the ESP32 with both extended SPI flash but also the the extended psRAM. The Wrover modules have the extra psRAM and the Wroom modules you posted doesn't. The ESP32 has 520kb of Ram and the psRam on the Wrover extends it an extra 4mb on top of the 520kb so you will have lots of room for anything you want to do.

Laboris has written a port designed for the ESP32 psRAM that is much more featured and takes full advanatge of the extra psRAM. See his wiki https://github.com/loboris/MicroPython_ ... _LoBo/wiki and also he has a dedicated forum for that port here is a topic on that forum about new aviable ESP32 dev boards with psRAM https://loboris.eu/forum/Thread-Info-Bo ... 4-MB-psRAM

User avatar
Roberthh
Posts: 3667
Joined: Sat May 09, 2015 4:13 pm
Location: Rhineland, Europe

Re: ESP32 firmware vs Wipy firmware

Post by Roberthh » Tue Mar 20, 2018 9:09 pm

As @OutoftheBOTS_ said, taking a esp32 board with a wrover module is recommended. As long as you do not want to embed the module in your system, testing with a full build module like this one is more convenient: https://www.banggood.com/Wemos-TTGO-T8- ... rehouse=CN
That board would (probably) run all available firmware variants.
And yes, using the micropython.org firmware or the loboris firmware, the translstion between the CPU gpio pin number and the board number ing is 1/1. For the Pycom devices you have to look it up in the docs.

User avatar
liudr
Posts: 211
Joined: Tue Oct 17, 2017 5:18 am

Re: ESP32 firmware vs Wipy firmware

Post by liudr » Wed Mar 21, 2018 2:59 am

Great! Thanks for the pointers. I have found this wiki page that explained the different processors and PCB modules:

https://en.wikipedia.org/wiki/ESP32


It looks like the dev board I bought has an ESP-WROOM-32 module so there is no pSRAM on board.

Here is the link to the dev board I got:

https://www.banggood.com/ESP32-Developm ... rehouse=CN

512KB is a lot already! I might get a dev board with the ESP-WROVER module that Roberthh pointed to, next time I shop for some dev parts. Having 4MB memory is such a luxury. I had a 486 computer with 8MB memory. It was like infinite at the time, when great PC games used "Pentium" as ultimate level of details/effects. :lol:

I guess someone can create an NES emulator with that much memory! We used to run NES emulators on 486-SX-25. ESP32 has 2 DAC as I just found out (does micropython make use of those?).

I'll try the micropython.org firmware first despite its lack of documentation and might try the other firmware from Laboris once I get the better dev board. My ultimate goal is to replace the raspberry pi with an ESP32 in my data logging system. Raspberry pi's are great! But it doesn't take 1.xGHz quad-core processor with 1GM memory to do simple data logging and manipulation and networking.

My current objective is to test the functionality of ESP32 and firmware to see whether they offer enough features (I suspect so). Next objective is to place the module on my own PCB, as the dev boards are all bulky and I want to replace the CP210x chip with the FT232RL chip that I'm used to. I could also use an sd card slot and u.FL connector offered by one of the ESP32 PCB modules. So exciting!

User avatar
liudr
Posts: 211
Joined: Tue Oct 17, 2017 5:18 am

Re: ESP32 firmware vs Wipy firmware

Post by liudr » Wed Mar 21, 2018 8:31 pm

The Loboris firmware has lots of features! I read the list. They have curl too! I don't know if the official MicroPython has that or not. Just struggled through some sample code for pycurl on a PC. I am using curl in my data loggers to upload data so this may be great if I use pycurl in MicroPython and make the code compatible between PC/RPI and ESP32. The cross-platform compatibility of python is killing my C/C++ brain cells! :lol:

P.S.: I ordered the dev board Roberthh recommended with a few ESP-WROVER-32 modules. Hope they don't slap some "steel" tariff on it. :x

Post Reply