ESP32 C3 super mini flashen + Oled 1306 + Max31865

  • Grüß euch,

    Ich habe folgende Problematiken

    1. ich bekomme grundsätzlich auf dem ESP32 C3 super mini kein anderes Image via USB zum laufen als das was Tasmota Web Installer installiert.
    wie flasht man die ESP32 C3 super mini ohne die Vollautomatik vom Tasmota Web Installer? /Jason2866/ESP_Flasher war fruchtlos

    2. Habe ich das Problem das die Anleitungen für Oled und Tasmota irgendwie alle für 13.4 oder älter ausgelegt sind.

    3. Ich bekomme Tasmota 14.6 vom Webinstaller nicht auf 13.3 gedowngraded hin.

    4. Ich bekomme auf 14.6 Eigenbau FW das Display nicht zum laufen

    #define USE_UNIVERSAL_DISPLAY
    #define USE_DISPLAY_MODES1TO5 // Damit kannst du DisplayMode 1 bis 5 verwenden
    Das Display leuchtet Inzwischen und schreibt seine Modellbezeichnung hin jedoch geht Displaytext command gar nicht und DisplayMode auch nicht.

    wahrscheinlich fehlt was

    versucht habe ich via rule3

    Rule3 :H,SSD1306,128,64,1,I2C,3c,*,*,* :S,0,2,1,0,30,20 :I AE D5,80 A8,3F D3,00 40 8D,14 20,00 A1 C8 DA,12 81,9F D9,F1 DB,40 A4 A6 AF :o,AE :O,AF :A,00,10,40,00,00 :i,A6,A7 #


    und GPIO1 auf Variante A 3

    16:36:56.676 RSL: RESULT = {"I2CScan":"Device(s) found at 0x3c"}

    16:40:33.713 CMD: Display

    16:40:33.717 RSL: RESULT = {"Command":"Unknown","Input":"DISPLAY"}

    16:41:00.887 CMD: DisplayMode 1

    16:41:00.891 RSL: RESULT = {"Command":"Unknown","Input":"DISPLAYMODE 1"}

    18:53:44.929 CMD: DisplayModel 2
    18:53:44.933 RSL: RESULT = {"DisplayModel":11}

    21:05:34.403 CMD: DispalyText testABC123 21:05:34.407 RSL: RESULT = {"Command":"Unknown","Input":"DISPALYTEXT testABC123"}

    21:07:32.206 CMD: displaytext 21:07:32.209 RSL: RESULT = {"Command":"Error","Input":"DISPLAYTEXT"}

    Spoiler anzeigen

    18:57:51.978 CMD: Status 0 18:57:51.981 RSL: STATUS = {"Status":{"Module":1,"DeviceName":"Tasmota","FriendlyName":["Tasmota"],"Topic":"tasmota_08A404","ButtonTopic":"0","Power":"1","PowerLock":"0","PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0,"InfoRetain":0,"StateRetain":0,"StatusRetain":0}} 18:57:51.983 RSL: STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota32/rele…%22:%22Software reset CPU","Uptime":"0T00:12:54","StartupUTC":"2025-04-23T17:44:57","Sleep":50,"CfgHolder":4617,"BootCount":39,"BCResetTime":"2025-04-17T17:47:25","SaveCount":70}} 18:57:51.985 RSL: STATUS2 = {"StatusFWR":{"Version":"14.6.0.1(tasmota32)","BuildDateTime":"2025-04-23T19:02:08","Core":"3_1_3","SDK":"5.3.2.250403","CpuFrequency":160,"Hardware":"ESP32-C3 v0.4","CR":"415/699"}} 18:57:51.988 RSL: STATUS3 = {"StatusLOG":{"SerialLog":2,"WebLog":2,"MqttLog":0,"FileLog":0,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["XXXX",""],"TelePeriod":300,"Resolution":"558180C0","SetOption":["00008009","2805C80001000600003C5A0A192800000000","00000080","00006000","00004000","00000000"]}} 18:57:51.000 RSL: STATUS4 = {"StatusMEM":{"ProgramSize":2067,"Free":812,"Heap":177,"StackLowMark":4,"PsrMax":0,"PsrFree":0,"ProgramFlashSize":4096,"FlashSize":4096,"FlashChipId":"164020","FlashFrequency":80,"FlashMode":"DIO","Features":["0809","9FBAD7DF","0015A2A1","B7F7BFCF","15DA9BC4","E0360DC7","480840F2","20200000","D4BC482D","810A80F1","00000815"],"Drivers":"1,2,!3,!4,!5,7,!8,9,10,11,12,13,!14,!16,!17,!20,!21,!24,26,!27,29,!34,!35,38,50,52,!59,!60,62,!63,!66,!67,!68,!71,!73,!75,82,!86,!87,!88,!91,121","Sensors":"1,2,3,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,26,31,34,37,39,40,42,43,45,47,51,52,55,56,58,59,64,66,67,74,85,92,95,98,103,105,109,127","I2CDriver":"3,5,7,8,9,10,11,12,13,14,15,17,18,20,24,29,31,36,41,42,44,46,47,48,58,62,65,69,76,77,82,89"}} 18:57:52.010 RSL: STATUS5 = {"StatusNET":{"Hostname":"tasmota-08A404-1028","IPAddress":"192.168.0.35","Gateway":"192.168.0.1","Subnetmask":"255.255.255.0","DNSServer1":"212.33.36.155","DNSServer2":"212.33.55.5","Mac":"10:00:3B:08:A4:04","IP6Global":"","IP6Local":"fe80::1200:3bff:fe08:a404%st1","Ethernet":{"Hostname":"","IPAddress":"0.0.0.0","Gateway":"0.0.0.0","Subnetmask":"0.0.0.0","DNSServer1":"212.33.36.155","DNSServer2":"212.33.55.5","Mac":"00:00:00:00:00:00","IP6Global":"","IP6Local":""},"Webserver":2,"HTTP_API":1,"WifiConfig":4,"WifiPower":19.0}} 18:57:52.017 RSL: STATUS6 = {"StatusMQT":{"MqttHost":"","MqttPort":1883,"MqttClientMask":"DVES_%06X","MqttClient":"DVES_08A404","MqttUser":"DVES_USER","MqttCount":0,"MqttTLS":0,"MAX_PACKET_SIZE":1200,"KEEPALIVE":30,"SOCKET_TIMEOUT":4}} 18:57:52.022 RSL: STATUS7 = {"StatusTIM":{"UTC":"2025-04-23T17:57:52Z","Local":"2025-04-23T18:57:52","StartDST":"2025-03-30T02:00:00","EndDST":"2025-10-26T03:00:00","Timezone":"+01:00","Sunrise":"05:43","Sunset":"19:53"}} 18:57:52.028 RSL: STATUS10 = {"StatusSNS":{"Time":"2025-04-23T18:57:52","MAX31865-0":{"Temperature":23.0,"Resistance":108.0,"Error":0},"TempUnit":"C"}} 18:57:52.034 RSL: STATUS11 = {"StatusSTS":{"Time":"2025-04-23T18:57:52","Uptime":"0T00:12:55","UptimeSec":775,"Heap":175,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":27,"MqttCount":0,"Berry":{"HeapUsed":4,"Objects":45},"POWER":"ON","Wifi":{"AP":1,"SSId":"XXXX","BSSId":"38:70:0C:DE:7C:40","Channel":6,"Mode":"HT40","RSSI":100,"Signal":-36,"LinkCount":1,"Downtime":"0T00:00:03"}}}

    Spoiler anzeigen

    19:15:46.233 CMD: i2cscan 19:15:46.265 RSL: RESULT = {"I2CScan":"Device(s) found at 0x3c"} 19:15:46.749 RSL: STATE = {"Time":"2025-04-23T19:15:46","Uptime":"0T00:05:08","UptimeSec":308,"Heap":166,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Berry":{"HeapUsed":4,"Objects":45},"Wifi":{"AP":1,"SSId":"XXXX","BSSId":"38:70:0C:DE:7C:40","Channel":6,"Mode":"HT40","RSSI":100,"Signal":-36,"LinkCount":1,"Downtime":"0T00:00:03"}} 19:15:46.775 RSL: SENSOR = {"Time":"2025-04-23T19:15:46","MAX31865-0":{"Temperature":20.6,"Resistance":108.0,"Error":0},"TempUnit":"C"} 19:15:59.406 CMD: DisplayAddress 0x3c 19:15:59.408 RSL: RESULT = {"DisplayAddress1":60} 19:16:11.327 CMD: DisplayModel 2 19:16:11.331 RSL: RESULT = {"DisplayModel":0}#


    Wie bekomme ich das zum Laufen? Ich übersehe irgendetwas (hoffentlich) einfaches.

  • Problem so gelöst

    1 Flash 0815 tasmota32c3cdc.factory.bin 2763k 20231212 15:54 Tasmota 13.3

    2 AP Einrichten WLAN

    2a merken das der DHCP Router vom Internet Provider es sogar nicht mag das mehrmals das selbe Gerät sich verbinden will (Connect failed with AP timeout) (Router neustarten)

    3. Custom FW Bauen

    Platformio PIPX

    root@pc:/home/user# sudo apt update
    root@pc:/home/user# sudo apt install pipx
    root@pc:/home/user# pipx ensurepath
    root@pc:/home/user# exit

    user@pc:~$ pipx install platformio

    GIT Tasmota 13.3

    user@pc:~$ git clone https://github.com/arendst/Tasmota.git
    user@pc:~$ cd Tasmota
    user@pc:~$ git checkout v13.3.0
    USER Override File von /home/user/Tasmota/tasmota/user_config_override_sample.h speichern unter als /home/user/Tasmota/tasmota/user_config_override.h
    Ergänzungen siehe nächsten Spoiler
    user@pc:~$ platformio run -e tasmota32c3

    Ergänzung user_config_override.h

    // Display-Definition für SSD1306 (OLED)
    #define USE_DISPLAY // Display-Funktionalität aktivieren
    #define USE_I2C // I2C-Protokoll aktivieren

    #define USE_DISPLAY_SSD1306 // SSD1306 OLED-Display
    // #define USE_TM1637 // TM1637 LED-Display
    #define USE_DISPLAY_MODES1TO5 // Damit kannst du DisplayMode 1 bis 5 verwenden
    #define SHOW_SPLASH // Optional: Startbildschirm kurz anzeigen
    //#define USE_UNIVERSAL_DISPLAY


    // Enable SPI support for hardware SPI
    #define USE_SPI // Hardware SPI using GPIO12(MISO), GPIO13(MOSI), GPIO14(CLK) in addition to two user selectable GPIOs(CS and DC)

    // Enable MAX31865 RTD sensor support
    #define USE_MAX31865 // Add support for MAX31865 RTD sensors using softSPI

    // MAX31865 configuration (example with PT100 sensor settings)
    #define MAX31865_PTD_WIRES 3 // PTDs come in several flavors, pick yours. Specific settings per sensor possible with MAX31865_PTD_WIRES1..MAX31865_PTD_WIRES6
    #define MAX31865_PTD_RES 100 // Nominal PTD resistance at 0°C (100Ω for a PT100, 1000Ω for a PT1000, YMMV!)
    #define MAX31865_REF_RES 430 // Reference resistor (Usually 430Ω for a PT100, 4300Ω for a PT1000)
    #define MAX31865_PTD_BIAS 0 // To calibrate your not-so-good PTD. Specific settings per sensor possible with MAX31865_PTD_BIAS1..MAX31865_PTD_BIAS6

    Auf Tasmota IP gehen und auf costum FW upgraden.

    Tasmota einrichten Bild als Muster

    In Tasmota Console dann

    Display aktivieren

    Anleitung aus https://www.androegg.de/2024/04/10/tas…m2301-tutorial/
    In Tasmota Konsole
    I2CScan
    DisplayModel 2
    DisplayMode 2
    DisplayDimmer 100

    Nun sollte der Wert des MAX Sensors auf dem Display klein erscheinen