M5Atom

All ESP32 boards running MicroPython.
Target audience: MicroPython users with an ESP32 board.
fstengel
Posts: 55
Joined: Tue Apr 17, 2018 4:37 pm

M5Atom

Post by fstengel » Sun Feb 02, 2020 8:50 pm

I just bought two M5Atoms: a lite and a matrix. I flashed both with the latest binary. In my case esp32-idf3-20200130-v1.12-98-gb72cb0ca1. I can access both, play around with micropython. However, there is something weird: I can use the network (Wifi or Bluetooth) on the lite, but as soon as I try to turn the RF part of the chip on the matrix one, it reboots. If I try:

Code: Select all

import network # Ok
wlan = network.wlan(network.STA_IF) # Ok
wlan.active(True) # Reboot on the matrix, Ok with the lite
So basically, if anybody else has bought an M5Atom matrix, are you able to turn on the radio part of the chip?

User avatar
mattyt
Posts: 410
Joined: Mon Jan 23, 2017 6:39 am

Re: M5Atom

Post by mattyt » Sun Feb 02, 2020 10:05 pm

I've got one each of the Matrix and the Lite but haven't yet tried connecting them to the network. I'm at work now but will try at lunch in a couple of hours!

User avatar
mattyt
Posts: 410
Joined: Mon Jan 23, 2017 6:39 am

Re: M5Atom

Post by mattyt » Mon Feb 03, 2020 3:02 am

Seems to work for me:

Code: Select all

MicroPython v1.12-96-gc3095b37e on 2020-01-29; ESP32 module with ESP32
Type "help()" for more information.
>>> import network
>>> wlan = network.WLAN(network.STA_IF)
I (57590) wifi: wifi driver task: 3ffbd98c, prio:23, stack:3584, core=0
I (61791) system_api: Base MAC address is not set, read default base MAC address                                                             from BLK0 of EFUSE
I (61791) system_api: Base MAC address is not set, read default base MAC address                                                             from BLK0 of EFUSE
I (61861) wifi: wifi firmware version: ac331d7
I (61861) wifi: config NVS flash: enabled
I (61861) wifi: config nano formating: disabled
I (61861) wifi: Init dynamic tx buffer num: 32
I (61861) wifi: Init data frame dynamic rx buffer num: 32
I (61871) wifi: Init management frame dynamic rx buffer num: 32
I (61871) wifi: Init management short buffer num: 32
I (61881) wifi: Init static rx buffer size: 1600
I (61881) wifi: Init static rx buffer num: 10
I (61891) wifi: Init dynamic rx buffer num: 32
>>> wlan.active()
False
>>> wlan.active(True)
W (70711) phy_init: failed to load RF calibration data (0x1102), falling back to                                                             full calibration
I (70881) phy: phy_version: 4102, 2fa7a43, Jul 15 2019, 13:06:06, 0, 2
I (70901) wifi: mode : sta (d8:a0:1d:5e:73:7c)
True
>>> I (70901) wifi: STA_START
>>> wlan.active()
True
>>>

fstengel
Posts: 55
Joined: Tue Apr 17, 2018 4:37 pm

Re: M5Atom

Post by fstengel » Mon Feb 03, 2020 7:09 am

Well, this is as I feared: I must have a faulty board. I tried with older versions (1.10 an 1.10) and got the same sequence: reboot when activating the RF part.

Code: Select all

>>> wlan.active(True)
W (41515) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:4928
ho 0 tail 12 room 4
load:0x40078000,len:9332
load:0x40080400,len:6216
entry 0x400806e8

User avatar
mattyt
Posts: 410
Joined: Mon Jan 23, 2017 6:39 am

Re: M5Atom

Post by mattyt » Mon Feb 03, 2020 8:28 am

Something else to check first - when the radio is active the ESP32 draws the most amount of current. It can sometimes spike to above 500mA and can reset if the power supply is inadequate. So perhaps quickly try a different USB power source and possibly even cable...

fstengel
Posts: 55
Joined: Tue Apr 17, 2018 4:37 pm

Re: M5Atom

Post by fstengel » Mon Feb 03, 2020 1:11 pm

mattyt wrote:
Mon Feb 03, 2020 8:28 am
Something else to check first - when the radio is active the ESP32 draws the most amount of current. It can sometimes spike to above 500mA and can reset if the power supply is inadequate. So perhaps quickly try a different USB power source and possibly even cable...
Shame on me :oops:. It was the cable. The idea had crossed my mind and I forgot to try :shock:. I had three usb C cables and only one works without using a powered hub: the very short one I got with my M5Stack Core. Anyway, trying on a powered hub showed that the issue is power: every cable works... It remains weird since my "big" M5Stack core with PSRam works with any cable straight from the computer.

fstengel
Posts: 55
Joined: Tue Apr 17, 2018 4:37 pm

Re: M5Atom

Post by fstengel » Mon Feb 03, 2020 1:15 pm

That reminds me: why does one brown out (matrix) and not the other (lite)? Is it because there is an IMU added?

User avatar
mattyt
Posts: 410
Joined: Mon Jan 23, 2017 6:39 am

Re: M5Atom

Post by mattyt » Mon Feb 03, 2020 8:37 pm

If I were to guess it would be because the Matrix has 25x Neopixels, each of which consumes ~1mA even when off. An additional 25mA could make all the difference.

Each board can behave differently with regards to power; for example your 'big' M5Stack Core may not exhibit problems if it has more capacitance in the power circuitry.

Glad to hear the Matrix is working though!

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

Re: M5Atom

Post by OutoftheBOTS_ » Mon Feb 03, 2020 9:15 pm

When they r designing these dev boards they r not following Espressif recommended supporting circuits with recommended caps so many of the ESP32 dev boards are having power issues.

Christian
Posts: 4
Joined: Thu Jul 28, 2016 6:32 am

Re: M5Atom

Post by Christian » Sat Aug 22, 2020 11:30 pm

Today I got my M5Atom Matrix and tried to run a test program after flashing it with esp32-idf3-20191220-v1.12.bin.

Code: Select all

from neopixel import NeoPixel
from machine import Pin
from time import sleep
np = NeoPixel(Pin(27), 25)
n = 0
while True:
    np[n] = (0, 0, 0)
    if n < 24:
        n += 1
    else:
        n = 0
    np[n] = (10, 0, 0)
    np.write()
    sleep(0.1)
The red pixel moves forward as expected but additionally other pixels are flashing up randomly (once every 10 to 30 second or so). Interestingly those differ in color and intensity but follow the same cycle.

Has anyone experienced this as well?

Post Reply