Sonoff S60
Sonoff’s ESP32-C3 smart plug: the S60TPG (UK, Type G) and the S60TPF
(Europe, Type E/F), the same board behind different pins. The stock firmware
calls it SN-ESP32C3-S60-01. This folder holds or links everything specific
to the S60; the tooling it shares with other Espressif plugs is in
tools/espressif/.
| Chip | ESP32-C3 (4 MB flash) |
| Relay | GPIO4 |
| Status LED | GPIO5, not inverted |
| Power meter | CSE7766 on UART, RX GPIO7, 4800 baud, even parity |
| Button | GPIO9, active low, pull-up |
| Board variant | read from GPIO6, GPIO10 and GPIO19 with pull-ups at start-up; it chooses the meter’s correction factor (1.02 or 1.00) |
- Tasmota: the official release, unchanged, given this template -
{"NAME":"Sonoff S60TPG","GPIO":[1,1,1,1,224,544,1,3104,1,32,1,0,0,0,0,0,0,0,1,1,1,1],"FLAG":0,"BASE":1}- and a settings record the bridge fills the Wi-Fi into, fromartifacts/tasmota-settings-template-*.bin, captured from a plug on the pinned release bytools/espressif/capture_tasmota_template.pywhen a release changes its layout (docs/updating-firmware.md). Its names on the network: docs/device-names.md. - ESPHome:
esphome.yaml; what it reports and how to change it:esphome.md. Home Assistant adopts a converted plug from this file’s path, itspackage_import_url, so moving the file means building a new image, as in 2.3.0. The mover that changes a plug’s memory layout ismover.yaml. - Flash layout: Sonoff’s, which ESPHome keeps and Tasmota replaces with its own
(
artifacts/sonoff-s60-partition-table.bin); the recovery Safeboot and the repartitioning route aretools/espressif/safeboot/. - Calibration: the factory values in the stock NVS and the board’s factor,
read by
tools/autoflash/calibration.py. - How it is converted and what happens on the plug:
docs/what-happens.md,docs/technical-details.md.