logo elektroda
logo elektroda
X
logo elektroda

[BK7231N] How to Flash S01 Pro IR Blaster with BK7231N and CB3S Chip

BenAndo 594 0
ADVERTISEMENT
  • #1 21333550
    BenAndo
    Level 4  
    With this S01 Pro I liked how it has usb-c, temp & humidity and a programmable button when using ESPHome or OpenBeken.
    This was very easy to open and flash. There are no screws so I simply pried it open with my two thumbs fingernails starting from near the button and moving them left and right. Open S01 Pro device on a wooden table with visible PCB.

    Once inside simply remove the PCB.
    Close-up of the S01 Pro device PCB with visible electronic components, including a USB-C port and a CB3S chip.

    It has a CB3S chip with firmware V2.1.17 which is patched. Fortunately serial flashing was incredibly easy. On the board there are RX and TX pads that can be used for flashing. So I plugged the S01 Pro into power via its USB port, then put RX to TX on serial flasher and TX to RX. Then in BK7231Flasher or ltchiptool select to start flashing. Then remove and plug in again the USB port to the S01 Pro and it'll start flashing! Super easy with no soldering required. Just hold the RX and TX steady.
    Close-up of S01 Pro PCB during flashing procedure.

    Here is the Tuya bin file
    readResult...r-tuya.bin Download (2 MB)

    Tuya Datapoints
    temperature: 101
    humidity: 102

    IR transmitter: GPIO 26
    IR receiver:GPIO 7

    Status LED: GPIO 8
    Button: GPIO 6

    Tuya icon: https://images.tuyaeu.com/smart/icon/ay152574...414yotNt/2cd0db38a7acee7f1b07bac9c90d0486.png

    ESPHome config. You can set up Home Assistant to do automation based on button press, or modify to make ESPHome do actions based on button press. I also tested with OpenBeken and it worked quite well.

    
    esphome:
      name: s01-pro-ir-blaster
      friendly_name: S01 Pro IR Blaster
    
    bk72xx:
      board: cb3s
    
    # Enable logging
    logger:
    #  level: VERBOSE
    
    # Enable Home Assistant API
    api:
      services:
        - service: send_raw_command
          variables:
            command: int[]
          then:
            - remote_transmitter.transmit_raw:
                code: !lambda "return command;"
    
    ota:
      - platform: esphome
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
      ap:
    web_server:
    
    captive_portal:
    
    tuya:
    
    sensor:
      - platform: uptime
        name: Uptime
    
      - platform: tuya
        sensor_datapoint: 101
        name: Temperature
        unit_of_measurement: "°C"
        accuracy_decimals: 1
        filters:
          - multiply: 0.1
          #- lambda: return (x * 0.1);
    
      - platform: tuya
        sensor_datapoint: 102
        name: Humidity
        unit_of_measurement: "%"
    
    remote_transmitter:
      id: transmitter_ir
      pin: 26 # from IRSend line
      carrier_duty_percent: 50%
    
    remote_receiver:
      id: receiver_ir
      dump: all
      pin:
        number: 7
        inverted: True # from IRRecv line
        mode:
          input: true
          pullup: true
      # high 55% tolerance is recommended for some remote control units
      tolerance: 55%
    
    status_led:
      pin: 8
    
    climate:
      - platform: heatpumpir
        protocol: panasonic_ckp
        name: "ESPHome AC Panasonic CKP"
        receiver_id: receiver_ir
        transmitter_id: transmitter_ir
        horizontal_default: auto
        vertical_default: auto
        max_temperature: 30
        min_temperature: 16
    
    binary_sensor:
      - platform: gpio
        pin: 6
        name: "Physical Button"
        filters:
          - invert:
    
    uart:
      rx_pin: RX1
      tx_pin: TX1
      baud_rate: 9600
    
    switch:
      - platform: template
        name: Raw Code Power Off AC Button
        turn_on_action:
          - remote_transmitter.transmit_raw:
              carrier_frequency: 38kHz
              code: [3665,-3697,932,-2764,900,-2764,868,-2829,900,-2764,900,-2764,900,-2796,868,-2796,900,-2764,932,-2764,900,-2764,900,-2796,868,-2796,900,-2764,932,-2764,868,-2796,868,-2829,868,-965,900,-932,868,-2796,900,-932,900,-932,900,-932,932,-932,868,-965,900,-932,900,-932,900,-2764,900,-932,900,-932,900,-932,932,-932,868,-965,3665,-3697,900,-2764,868,-2796,900,-2796,900,-2764,868,-2829,900,-2764,900,-2764,900,-2796,900,-2764,900,-2764,932,-2764,900,-2764,900,-2764,900,-2796,900,-2764,900,-2796,900,-932,868,-965,900,-2764,900,-932,900,-932,932,-900,932,-932,868,-965,900,-932,900,-932,868,-2796,900,-932,900,-932,932,-932,900,-932,900,-932,3665,-3697,900,-14690,3697,-3665,900,-965,900,-932,900,-932,900,-932,900,-2764,868,-965,900,-932,932,-2764,868,-965,900,-932,868,-965,868,-965,900,-2796,900,-932,900,-932,900,-2764,900,-932,900,-2796,900,-2764,900,-932,868,-2796,932,-2764,900,-932,900,-932,900,-932,900,-2764,932,-2764,900,-932,868,-2796,900,-2796,900,-932,900,-932,3665,-3697,900,-932,900,-932,868,-965,900,-932,868,-2829,900,-932,900,-932,868,-2796,900,-932,868,-965,900,-965,900,-932,868,-2796,868,-965,900,-932,868,-2796,932,-932,868,-2796,900,-2764,900,-932,932,-2764,900,-2764,868,-965,868,-965,900,-965,900,-2764,900,-2764,932,-900,900,-2796,900,-2764,868,-965,900,-932,3729,-3632,900]
     
      - platform: template
        name: NEC Code Power On Button
        turn_on_action:
          - remote_transmitter.transmit_nec:
              address: 0x0
              command: 0x31
              command_repeats: 1
    
      - platform: template
        name: NEC Code Power Off Button
        turn_on_action:
          - remote_transmitter.transmit_nec:
              address: 0x0
              command: 0x32
              command_repeats: 1
    
  • ADVERTISEMENT
ADVERTISEMENT