
AtomS3R-M12 is a compact IoT programmable controller (24×24×22.1mm) with an M12 3MP OV3660 wide-angle camera. Powered by ESP32-S3-PICO-1-N8R8 (Wi-Fi, 8MB Flash + 8MB PSRAM), it features a 5V→3.3V power circuit, BMM150 geomagnetic and BMI270 six-axis sensors, UVC driver-free USB camera, infrared control, enhanced 3D antenna for stable connectivity, USB-C for power/firmware, a HY2.0-4P expansion port, and six GPIO/power pins for easy expansion—ideal for IoT monitoring and educational development.
See the latest configuration examples on ESPHome
Step 1. Create New Device

Step 2. Create Device Name
CONTINUE.
New Device Setup.
NEXT.
Step 3. Choose Device Type
ESP32-S3.
SKIP.
Step 4. Start Edit YAML File
EDIT. We can customize device functionality through YAML files.
The following is the core part of the code. Relevant references and explanations are provided below.
esphome:
name: atoms3r-m12
friendly_name: AtomS3R-M12
on_boot:
priority: 800
then:
- lambda: |-
gpio_set_direction(GPIO_NUM_18, GPIO_MODE_OUTPUT);
gpio_set_level(GPIO_NUM_18, 0);
vTaskDelay(pdMS_TO_TICKS(1500)); psram:
mode: octal
speed: 80MHz external_components:
- source: github://DennisGaida/m5stack-atoms3r-components/components@main
components: [bmi270_bmm150] Add the I2C components
i2c:
- id: BMI270_150
sda: GPIO45
scl: GPIO0
- id: camera_i2c
sda: GPIO12
scl: GPIO9
frequency: 100kHz
timeout: 10ms Add the Sensor components
sensor:
- platform: bmi270_bmm150
i2c_id: BMI270_150
address: 0x68
update_interval: 3s
acceleration_x:
name: "BMI270 Accel X"
acceleration_y:
name: "BMI270 Accel Y"
acceleration_z:
name: "BMI270 Accel Z"
gyroscope_x:
name: "BMI270 Gyro X"
gyroscope_y:
name: "BMI270 Gyro Y"
gyroscope_z:
name: "BMI270 Gyro Z"
temperature:
name: "BMI270 Temperature" esp32_camera:
name: "OV3660 Camera"
external_clock:
pin: GPIO21
frequency: 20MHz
i2c_id: camera_i2c
data_pins: [GPIO3, GPIO42, GPIO46, GPIO48, GPIO4, GPIO17, GPIO11, GPIO13]
vsync_pin: GPIO10
href_pin: GPIO14
pixel_clock_pin: GPIO40
resolution: 640X480
jpeg_quality: 10 INSTALL again to flash and wait for it to complete.
SAVE and INSTALL in the top-right corner, then choose Manual Download in the popup.
Factory format(Previously Modern)
CONNECT to connect to the device.

INSTALL

Settings -> Device & services to check the device.
Discover section.


