Skip to content

Atom VoiceS3R detected as wrong device #330

Description

@CollinKasbergen

Hi!

I just received my Atom VoiceS3R today and noticed an issue with the latest version of M5Unified. With version 0.2.20, basically none of the examples worked. I think it has to do with the device been picked up as an AtomS3R-Ext instead of a Atom VoiceS3R, I wrote this debug script:

`#include "M5Unified.hpp"

// Override the board detection by reinitializing with a fresh config
void setup() {
// First, initialize with minimal config to avoid I2C conflicts
m5::M5Unified::config_t cfg;
cfg.clear_display = false; // Skip display init
cfg.external_display_value = 0; // Disable all displays
M5.begin(cfg);

// Now, reinitialize with the CORRECT board (145) and speaker flags
cfg.fallback_board = lgfx::boards::board_t::board_M5AtomVoiceS3R;
cfg.external_speaker.atomic_echo = 1;  // Enable NS4168 speaker
cfg.internal_spk = true;             // Enable internal speaker
M5.begin(cfg);  // Reinitialize with the correct board

Serial.begin(115200);
delay(5000);
Serial.println("Board ID: " + String(int(M5.getBoard())));  // Should now be 145
Serial.println("Speaker enabled: " + String(M5.Speaker.isEnabled() ? "YES" : "NO"));
M5.Speaker.setVolume(255);

}

void loop() {
Serial.println("Playing tone...");
M5.Speaker.tone(1000, 1000);
delay(2000);
}`

Logs on 0.2.20(No tone being played of the device):

Board ID: 143 Speaker enabled: YES Playing tone... [ 5820][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=38 scl=39 freq=100000 [ 5829][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5836][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5843][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5850][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5857][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5864][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5871][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5878][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5885][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5892][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5899][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5906][V][common.cpp:2088] writeBytes(): [LGFX] i2c write error : ack wait [ 5913][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=45 scl=0 freq=100000 [ 5921][E][Wire.cpp:137] setPins(): bus already initialized. change pins only when not. [ 5929][W][Wire.cpp:301] begin(): Bus already started in Master Mode. Playing tone... Playing tone...

Then I tried downgrading to 0.2.15, which works perfectly(Tone gets played on the device):

Board ID: 145 Speaker enabled: YES Playing tone... Playing tone...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions