What to buy?

All ESP32 boards running MicroPython.
Target audience: MicroPython users with an ESP32 board.
Post Reply
c22
Posts: 11
Joined: Tue Sep 29, 2020 8:03 pm

What to buy?

Post by c22 » Tue Sep 29, 2020 8:28 pm

Hi all.

I'm a full-time software developer and I'd like to test what I remember of my electronics classes of... 20 years ago, give or take.
So I'm planning to buy a board to run MicroPython for a personal project. A quick look into Amazon shows a lot of different vendors offering a variety of different boards in a wide range of prices, some of them suspiciously low. I'm a little bit confused. So let me please to ask you some questions.

1. Every ESP32 or ESP8266 is eligible to run MicroPython?
2. What are the basic differences between ESP32 and ESP8266?
3. There are brands that should be avoided? And brands known to be safe choices?
4. Aside Amazon, there are equivalent or better online stores to buy (Europe / Italy)?
5. I read/saw some MicroPython tutorial and usually they use the REPL through the serial-over-USB interface over the USB cable that also powers the board. Is it possible to get rid of the REPL and freely use that serial interface through MicroPython to talk to the PC, just like Arduino?

Thanks in advance.

davef
Posts: 811
Joined: Thu Apr 30, 2020 1:03 am
Location: Christchurch, NZ

Re: What to buy?

Post by davef » Tue Sep 29, 2020 11:17 pm

1) As far as I am aware but then again I have only used two different ESP32 dev boards
2) viewtopic.php?f=18&t=3697
3)
4) China? Aliexpress
5) WebREPL

User avatar
rcolistete
Posts: 352
Joined: Thu Dec 31, 2015 3:12 pm
Location: Brazil
Contact:

Re: What to buy?

Post by rcolistete » Wed Sep 30, 2020 12:21 am

I recommed because these boards have official support, good documentation, high production quality :
- ESP32 : TinyPico (https://www.tinypico.com/);
- STM32 : Pyboard D SF2 (https://store.micropython.org/product/PYBD-SF2-W4F2) + WBUS-DIP28/68, see :
https://pybd.io/hw/pybd_sfxw.html
My "MicroPython Samples". My "MicroPython Firmwares" with many options (double precision, ulab, etc).

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: What to buy?

Post by pythoncoder » Wed Sep 30, 2020 7:23 am

@c22 given your mention of serial communications I'd avoid ESP8266 which only has one proper UART.

I'd agree with @rcolistete re Pyboard D SF2/WBUS_DIP28 (or Pyboard 1.1 if you don't need WiFi). Pyboards are in a different league if you care about ADC and DAC accuracy, interrupt latency and reliability without spontaneous reboots. Professional kit :!:
Peter Hinch
Index to my micropython libraries.

c22
Posts: 11
Joined: Tue Sep 29, 2020 8:03 pm

Re: What to buy?

Post by c22 » Wed Sep 30, 2020 5:22 pm

@pythoncoder Yes, reliability does matter to me, and ADCs too. Regarding the serial communication I'm planning to connect to board to a PC (Raspberry PI or other, still to be decided, but it doesn't matter) and I want to have communication and power on the same USB cable, so I'm wondering weather the REPL accessible over the USB cable can be put aside and leave the serial communication to my programs. I need on this communication channel.

Thanks for your advice.

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: What to buy?

Post by pythoncoder » Thu Oct 01, 2020 7:43 am

c22 wrote:
Wed Sep 30, 2020 5:22 pm
...I want to have communication and power on the same USB cable, so I'm wondering weather the REPL accessible over the USB cable can be put aside and leave the serial communication to my programs. I need on this communication channel...
This is possible, and from a reliability perspective a physical connection is preferable to a wireless one. Alas I lack experience of this feature - perhaps others will advise. A few pointers:

See the pyboard.py utility. As a minimum this lets you start an application on the Pyboard programmatically. When running, any output can be intercepted on the PC. If you look in the micropython tests directory you'll find instances of tests which are run in this way.
Peter Hinch
Index to my micropython libraries.

User avatar
jimmo
Posts: 2754
Joined: Tue Aug 08, 2017 1:57 am
Location: Sydney, Australia
Contact:

Re: What to buy?

Post by jimmo » Thu Oct 01, 2020 12:36 pm

c22 wrote:
Tue Sep 29, 2020 8:28 pm
1. Every ESP32 or ESP8266 is eligible to run MicroPython?
Every ESP32, but not (yet) the ESP32S2. I highly recommend the PSRAM variants... more RAM always more better.

With ESP8266, technically yes, but I would recommend a module with more than 1MiB of flash, and ideally more than 2MiB. However, if you don't already own any ESP boards, definitely start with ESP32 instead of ESP8266.
c22 wrote:
Tue Sep 29, 2020 8:28 pm
2. What are the basic differences between ESP32 and ESP8266?
ESP32 also has Bluetooth (although only BLE supported on MicroPython), much more RAM, faster, and more active development.
c22 wrote:
Tue Sep 29, 2020 8:28 pm
3. There are brands that should be avoided? And brands known to be safe choices?
There are many ESP boards (especially ESP8266) with bad power regulation leading to brown-outs during high-power operaitons (like WiFi). It's a bit of a FAQ on this forum!

For ESP32 I have a lot of experience with the TinyPico and use it for all my day-to-day MicroPython development and testing. Not a single issue.

For ESP8266 I have had no issues with the Adafruit boards.
c22 wrote:
Tue Sep 29, 2020 8:28 pm
5. I read/saw some MicroPython tutorial and usually they use the REPL through the serial-over-USB interface over the USB cable that also powers the board. Is it possible to get rid of the REPL and freely use that serial interface through MicroPython to talk to the PC, just like Arduino?
On ESP32, most boards typically have a dedicated FTDI (or equivalent) UART/USB interface. On the ESP8266, some boards do but many don't. By default the REPL is connected to the UART that the FTDI is on. On ESP8266 there are only two UARTs (and the second one is TX-only).

On all Pyboards (v1.x and D), the USB interface is handled by the main processor and a software CDC ACM device is implemented.

I guess the clarifying question I should ask is why you want to disable the REPL -- once your program is running you can just use print/input (or access the UART or VCP instance directly) to send/receive data. But yes, you can detach the REPL from a given UART (or the VCP) and attach it to a different UART or disconnect. See uos.dupterm.

Peter mentioned pyboard.py which is worth taking a look at - it uses the REPL as an "RPC" mechanism to send/receive files and commands, as well as the ability to start programs.

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: What to buy?

Post by pythoncoder » Sat Oct 03, 2020 9:26 am

jimmo wrote:
Thu Oct 01, 2020 12:36 pm
...I highly recommend the PSRAM variants... more RAM always more better...
There are two tradeoffs, speed and stability. PSRAM is significantly slower. I and @kevinkk525 have found that PSRAM units are prone to crashing on occasion. I have seen references on GitHub to a known hardware issue with these devices.
Peter Hinch
Index to my micropython libraries.

c22
Posts: 11
Joined: Tue Sep 29, 2020 8:03 pm

Re: What to buy?

Post by c22 » Sun Oct 04, 2020 8:59 pm

@jimmo Thanks a lot for the clear explaination.

Post Reply