I'm using the latest versions of micropython stable edition, esp32-idf3-20191220-v1.12.bin, and it seems there is a problem with the neopixel implementation on the M5 Atom.
When I run the following program, there are random errors in the display of the pixels.
from machine import Pin, lightsleep
from neopixel import NeoPixel
np = NeoPixel(Pin(27),25)
black = (0,0,0)
while True:
np.fill(black)
lightsleep(10)
np.write()
https://www.youtube.com/watch?v=vvI9tY6uXHI
From other places I hear this might be a problem with the power supply to the neopixel array, and might disappear if I supplied external voltage lower than 4.7V, because there is a problem with the voltage range on USB. That might work, it might not... but I wonder if there is a better solution, or a product modification, that might fix this?
http://micropython.org/download/esp32/
http://micropython.org/resources/firmware/esp32-idf3-20191220-v1.12.bin