AtomS3 Lite Programming

I’ve been unable to program my new AtomS3 Lite devices with ESPHome.

The ESPHome Webtools page seems to erase and program the device, but it does not appear in the ESPHome page in HA. Logs do not show any info.

Has anyone be able to do this, if so how?

Cheers!

Have you added it in integrations page?

It doesn’t appear there automatically as a discovered device. Do I need to click the + ADD INTEGRATION button and add another instance of ESPHome to bring it in?

Overall, I get the sense that this device needs some different treatment compared to other ESP32 devices that I have added. The process just does not seem to progess in the same way.

I get the ‘wrapping up’ message followed by ‘Installation Complete’ which is a good sign. But that’s it.

Yes.

What is in the log after that?

When I add another instance of ESPHome, I get the following message:

Can't connect to ESP. Please make sure your YAML file contains an 'api:' line.

I’ve tried using ESP Web Tools page and via the ESPHome Web page.

Below are the steps I’ve taken using ESPHome Web:


Screenshot 2023-02-18 180659
Screenshot 2023-02-18 180724
Screenshot 2023-02-18 180748

I’ve tried creating a .bin file and uploading that, but it didn’t work.

Initially, the logs show nothing, when I reset the device I get this:

ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0x20 (DOWNLOAD(USB/UART0))
Saved PC:0x40041a76
waiting for download

What do the logs show on esphome?

The esphome log only shows a running list of polling devices such as below:

2023-02-19 06:04:34,419 INFO 304 GET /devices (192.168.0.120) 2.23ms

Throughout the process, I have not been asked to provide an esphome hostname.
I’m starting to question whether I am doing something wrong, or the devices are simply not compatible with esphome. I’ve used esphome for a few years and I have added many devices, but this one seems strange.

It seems like esphome reports that it has loaded, but infact it has not loaded anything and the default bootloader remains intact, which would explain why it’s not communicating with esphome.

I wonder what checks and verifications esphome does as it goes through it’s process?

BTW, I have another AtomS3 Lite and it gives the same result. I’ve successfully loaded an example sketch using the Arduino IDE to confirm that the devices are good.

I am talking about the log you get when you go to the esphome dashboard and click ‘Log’. It is more than one line.

You could load it with the blue tooth proxy for the m5Stack found here: ESPHome Bluetooth Proxy to get started.

I did try that, but it seems that my device is not compatible because it is esp32s3.

Got you, thanks.
There is no entry for the device on the esphome dashboard and I cannot see any other way to view logs from there.
As I mentioned in an earlier post, I am not being prompted for, or seeing a default esphome hostname as I go through the process.

BTW, I’m using a Docker container for esphome (not sure if that makes any difference) and I am attempting to add the device from a Chrome or Edge browser on a PC separate from the host running esphome.

The esp32s3 is compatible - see ESP32 Platform — ESPHome

What is your yaml?

1 Like

I tried loading the following yaml (adopted from another post as being successful for M5 Atom Lite). I did a manual download of a .bin file from this just now and used it

esphome:
  name: atoms3-lite-03
  platform: ESP32
  board: m5stack-atom
  friendly_name: AtomS3-Lite-03

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "REDACTED"

ota:
  password: "REDACTED"

wifi:
  ssid: "REDACTED"
  password: "REDACTED"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Atoms3-Lite-03 Fallback Hotspot"
    password: "REDACTED"

captive_portal:

The log I was given for this was:

INFO Reading configuration /config/atoms3-lite-03.yaml...
INFO Starting log output from atoms3-lite-03.local using esphome API
WARNING Can't connect to ESPHome API for atoms3-lite-03.local: Error resolving IP address: [Errno -2] Name or service not known
INFO Trying to reconnect to atoms3-lite-03.local in the background

Perhaps I’ve got a network issue?

So can you ping atoms3-lite-03.local?

Have you tried use-ping in esphome?

That is for the atom not the atoms3

Try board: esp32-s3-devkitc-1

1 Like

No I can’t ping it. I’m not sure whether mDNS is working, so I am investigating that as a side-issue.

I set the board type as you suggested, but it didn’t make any difference.

Just for interest, I tried flashing using esphome-flasher on Windows. It appears to complete successfully, but it didn’t get me any further.

After clicking View Logs, the log is empty.

I’ll investigate mDNS further and report back.
Thanks for your help so far, if anything, I have learnt a few things!

I’ve just learnt that I can use avahi-browse to check hosts using mDNS. I can see a bunch of my existing esphome devices, but not the AtomS3 Lite device I’m trying to add.

I tried setting a static ip address for the device, but still no joy. My DHCP server on my router doesn’t list the device.

I’m not convinced that the yaml config is being picked up.

FYI, I was able to get the Atoms3 Lite to program by loading a .bin file. I used a static IP address.
However, it seems that this board type is not supported. I have not been able to get the RGB LED or built-in button to work.

Yaml, logs are the bare minimum for support.

That’s fair, I’ll provide as much as I can.
ESPHome Log:

INFO Reading configuration /config/atoms3-07.yaml...
INFO Starting log output from 192.168.50.65 using esphome API
INFO Successfully connected to 192.168.50.65
[19:29:40][I][app:102]: ESPHome version 2023.2.1 compiled on Feb 20 2023, 21:07:54
[19:29:40][C][wifi:504]: WiFi:
[19:29:40][C][wifi:362]:   Local MAC: [redacted]
[19:29:40][C][wifi:363]:   SSID: [redacted]
[19:29:40][C][wifi:364]:   IP Address: 192.168.50.65
[19:29:40][C][wifi:366]:   BSSID: [redacted]
[19:29:40][C][wifi:367]:   Hostname: 'atoms3-07'
[19:29:40][C][wifi:369]:   Signal strength: -32 dB ▂▄▆█
[19:29:40][C][wifi:373]:   Channel: 9
[19:29:40][C][wifi:374]:   Subnet: 255.255.255.0
[19:29:40][C][wifi:375]:   Gateway: [redacted]
[19:29:40][C][wifi:376]:   DNS1: 0.0.0.0
[19:29:40][C][wifi:377]:   DNS2: 0.0.0.0
[19:29:40][C][logger:293]: Logger:
[19:29:40][C][logger:294]:   Level: DEBUG
[19:29:40][C][logger:295]:   Log Baud Rate: 115200
[19:29:40][C][logger:296]:   Hardware UART: UART0
[19:29:40][C][bluetooth_proxy:065]: Bluetooth Proxy:
[19:29:40][C][bluetooth_proxy:066]:   Active: YES
[19:29:40][C][esp32_ble:214]: ESP32 BLE:
[19:29:41][C][esp32_ble_tracker:583]: BLE Tracker:
[19:29:41][C][esp32_ble_tracker:584]:   Scan Duration: 300 s
[19:29:41][C][esp32_ble_tracker:585]:   Scan Interval: 1100.0 ms
[19:29:41][C][esp32_ble_tracker:586]:   Scan Window: 1100.0 ms
[19:29:41][C][esp32_ble_tracker:587]:   Scan Type: ACTIVE
[19:29:41][C][esp32_ble_tracker:588]:   Continuous Scanning: True
[19:29:41][C][captive_portal:088]: Captive Portal:
[19:29:41][C][mdns:108]: mDNS:
[19:29:41][C][mdns:109]:   Hostname: atoms3-07
[19:29:41][C][ota:093]: Over-The-Air Updates:
[19:29:41][C][ota:094]:   Address: 192.168.50.65:3232
[19:29:41][C][ota:097]:   Using Password.
[19:29:41][C][api:138]: API Server:
[19:29:41][C][api:139]:   Address: 192.168.50.65:6053
[19:29:41][C][api:141]:   Using noise encryption: YES
[19:30:17][D][esp32_ble_tracker:238]: Starting scan...

My yaml is:

esphome:
  name: atoms3-07
  friendly_name: atoms3-07

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "[redacted]"

ota:
  password: "[redacted]"

wifi:
  ssid: "[redacted]"
  password: "[redacted]"
  manual_ip:
    static_ip: 192.168.50.65
    gateway: [redacted]
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "[redacted]"
    password: "[redacted]"

captive_portal:

esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

bluetooth_proxy:
  active: true


light:
  - platform: fastled_clockless
    chipset: WS2812B
    pin: 35
    num_leds: 1
    rgb_order: GRB
    id: status_led
    name: ${friendly_name} RGB LED
    effects:
      - random:
      - flicker:
      - addressable_rainbow:

binary_sensor:
  - platform: gpio
    pin:
      number: 41
      inverted: true
    name: ${friendly_name} Button
    on_press:
      then:
        - light.toggle: status_led

The relevant bit of the message that relates to the RGB LED:

In file included from .piolibdeps/atoms3-07/FastLED/FastLED.h:48,
                 from src/esphome/components/fastled_base/fastled_light.h:16,
                 from src/esphome.h:35,
                 from src/main.cpp:3:
.piolibdeps/atoms3-07/FastLED/fastpin.h: In instantiation of 'class FastPin<35>':
.piolibdeps/atoms3-07/FastLED/platforms/esp/32/clockless_rmt_esp32.h:178:23:   required from 'class ClocklessController<35, 60, 150, 90, (EOrder)66, 0, false, 5>'
.piolibdeps/atoms3-07/FastLED/chipsets.h:582:7:   required from 'class WS2812Controller800Khz<35, (EOrder)66>'
.piolibdeps/atoms3-07/FastLED/FastLED.h:105:52:   required from 'class WS2812B<35, (EOrder)66>'
src/esphome/components/fastled_base/fastled_light.h:150:41:   required from 'CLEDController& esphome::fastled_base::FastLEDLightOutput::add_leds(int) [with CHIPSET = WS2812B; unsigned char DATA_PIN = 35; EOrder RGB_ORDER = (EOrder)66]'
src/main.cpp:278:64:   required from here
.piolibdeps/atoms3-07/FastLED/fastpin.h:207:24: error: static assertion failed: Invalid pin specified
  static_assert(validpin(), "Invalid pin specified");

I’ve come to the conclusion that the AtomS3 Lite may not be supported yet or I am using the wrong board type.

1 Like