logo elektroda
logo elektroda
X
logo elektroda

Inside a Tuya Doorbell: BK7252 Exploration and SPI Programming with Python/NeoProgrammer

divadiow 3030 17
ADVERTISEMENT
  • Helpful post
    #1 21213265
    divadiow
    Level 34  
    Grabbed this cheapie Tuya doorbell off Ali Express wondering if it would come with a BK7252 at its heart.

    Smart doorbell with camera and small speaker

    And while I know OpenBeken doesn't support the BK7252 or have a camera driver/wrapper, it'll still be interesting to see what's inside, checkout the UART boot log output and maybe take a backup of the firmware.

    Immediately upon opening we see the large QFN68 BK7252 and a nicely labelled group of test contacts - pretty much every one you could wish for.

    Photo of a circuit board with a BK7252 chip and marked test points.

    Both sets of UARTs are present, one for log collection (UART2_TX) and the other for flashing/backup of firmware (P10 UART1_RX and P11 UART1_TX).

    Pinout diagram of BK7252 chip in QFN68 package

    The log output was captured as

    Code: Text
    Log in, to see the code


    Some more pics of the PCB

    Camera module mounted on a circuit board labeled SENSOR. Close-up of a circuit board with electronic components. View of the bottom part of the circuit board with test point labels and buttons. Close-up of a circuit board featuring a Beken BK7252QN68 chip. Doorbell circuit board with Beken BK7252 chip Tuya doorbell circuit board with visible chips and connectors. PCB with BK7252 chip and UART test points.

    Unfortunately Easy UART Flasher was not able to backup the firmware in T or N mode, so rather than bother with BKWriter, I thought it would be easier to use the JTAG pads CE, TCK, TMS, TDI and TDO for SPI communications. BKFIL was not interested in BK7252.

    I was not aware of the relationship between JTAG and SPI, only that pins with those labels could be used for SPI. I looked it up:

    Code: Text
    Log in, to see the code

    Good stuff. But from previous experience I know that Beken chips need to be put into SPI mode before the flash can be read or written to. This process is explained here https://www.elektroda.com/rtvforum/topic3931424.html and I most recently used this to SPI backup some C-Chip C-8133U BK7231S modules. In weixin_44067125's blog they use a Python script to get the CH341A GPIO2 pin to get the BK7231S into SPI mode before firing up NeoProgrammer to detect and read the flash.

    In the case of the form factor of the CH341A used on the C-8133U module specifically, these were the pin mappings

    Code: Text
    Log in, to see the code

    At this point I only had a black PCB CH341 on which GPIO2 does not have a header.

    CH341A USB programmer module for Flash memory

    For the C-8133U I'd soldered directly to the leg of the chip, but this was less than ideal.

    Close-up of a circuit board with attached wires.

    A week after ordering from Ali, this arrived. It closely matches the device seen in the CSDN blog, complete with D2.

    Close-up of the CH341A USB programmer module from various angles.

    I wanted to see if I could use weixin_44067125's Python script but with fewer dependencies, prettier text, infinite retries (instead of 10) and perhaps package it up as a single exe.

    After a few hours toiling around with 32bit Python, ChatGPT, pyinstaller and the CH341 wrapper by jimjiang2 - https://github.com/jimjiang2/ch341dll_wrap_typical_app - I came up with the following that has got two of my Beken devices (so far) into SPI mode.

    Code: Python
    Log in, to see the code


    and when wrapped we get an exe that runs this

    Console screen showing attempts to enter SPI mode.

    when it finally (sometimes it takes a while) gets into SPI mode

    Screenshot of a console application introducing a Beken device into SPI mode.

    At which point NeoProgrammer will detect the SPI ID and you can read and write to the flash

    Screenshot of NeoProgrammer showing flash memory contents.

    in the case of the doorbell, the internal flash is:

    Code: Text
    Log in, to see the code


    And the flash dump is attached.

    A few images of my setup

    Test board with wires connected to an electronic module. Close-up of a circuit board with attached test probes. Close-up of a breadboard with an electronic module and wires attached on a wooden stand.

    I attach the Python exe for anyone else who'd like to use it. It could do with some more testing, especially on different machines, perhaps with no Python already installed. I'll do this too at some point. I haven't even begun to explore alternative firmwares or operation of the device in the Tuya app, so updates probably to follow.

    Suggestions welcome.




    April 2025 update

    See further down for better SPI flashing instructions.

    Here are some pictures of the packaging. Labelled as an ONENUO Tuya WiFi Doorbell - model MLT1T-B
    Tuya doorbell packaging with BK7252 marking. Box of a mini doorbell.
  • ADVERTISEMENT
  • ADVERTISEMENT
  • #5 21499790
    divadiow
    Level 34  
    BK7252 Tuya SDKs

    Code: Text
    Log in, to see the code
  • #6 21511270
    divadiow
    Level 34  
    some more info about this device.

    Tuya dev responses:

    Get Update Information
    Code: JSON
    Log in, to see the code


    Query device details
    Code: JSON
    Log in, to see the code


    Query things data model
    Code: JSON
    Log in, to see the code


    Tuya app paired experience
    Device addition screen showing successful addition of a smart doorbell. Close-up of a hand with five fingers spread out, seen on a smartphone screen in a doorbell app. Video segment from a smart doorbell showing part of a face. View from a smart doorbell camera with date and time in the corner. Screenshot of the Tuya Smart app requesting microphone access permission. App settings menu showing IR Night Vision options. Device update screen showing no available updates. Flag with Lidl logo in yellow, blue, and red colors.

    native screenshots and vid taken within Tuya app from cam as attachments
  • Helpful post
    #7 21512355
    divadiow
    Level 34  
    Just to flesh out the SPI method for read/write direct to flash in the BK7252, and for my own record because I didn't document it well enough last time.

    Using an LC Technology CH341A like this
    USB CH341A programmer module with front and back views.

    Device jumper must be in I2C position so that in Windows it shows as device type USB-EPP/I2C.... CH341A
    Close-up of a CH341A board with a jumper set to I2C.
    Properties window of USB-EPP/I2C CH341A device on Windows.

    Test pads on this Tuya doorbell were connected as:
    CE - CH341 D2
    TCK - CH341 SCK
    TMS - CH341 CS0
    TDI - CH341 MOSI
    TDO - CH341 MISO

    then run the Python wrapper exe script thing I made in last year's post until the correct response is received to indicate the BK7252 is in the correct mode. Today this look 398 attempts (the script/timings I'm sure can be better)
    Command prompt showing the results of attempts to switch to SPI mode for Beken IC microcontroller.

    When finally in SPI mode, open Neoprogrammer and detect/read/erase/program flash as desired.

    Screenshot of NeoProgrammer software showing SPI device configuration.

    Added after 10 [hours] 18 [minutes]:

    some observations comparing the partition layout in Tuya BK7252 SDK with what is seen in the flash dump
    https://github.com/divadiow/BK7252_1.1.23/blo..._os/beken378/func/user_driver/BkDriverFlash.c

    Code: C / C++
    Log in, to see the code


    Screenshot of a hex editor displaying flash memory contents.Screenshot of flash memory hex data with highlights.Screenshot of a hex view of flash memory in a programming software.

    totality of SIG=TUYA presence
    Screenshot showing data in hex and text format.

    Added after 26 [minutes]:

    the rbl file in @insmod's BK7252 build flashed to 1BA110 has been ignored on next boot

    Added after 5 [hours] 13 [minutes]:

    Here's something I think is a discovery about the OTA mechanism on Tuya BK7252

    tuya_os_adapt_ota_pingpong.c contains the function

    Code: C / C++
    Log in, to see the code


    I think this means:

    -It reads a magic number from flash
    -Verifies it matches 0x5A5A5A01 (which is the pingpong magic defined here
    -Then continues to check the rest of the OTA metadata

    The OTA stuff should start at F000 because

    Code: C / C++
    Log in, to see the code


    GPT says this works out as

    Code: Text
    Log in, to see the code


    so with this inserted into the original dump:

    Code: Text
    Log in, to see the code


    and flashed to the device, we get this on boot

    Code: Text
    Log in, to see the code


    which looks like the magic is correct and it's going somewhere to try for OTA
  • Helpful post
    #8 21513232
    insmod
    Level 24  
    Try that bootloader
    And it looks like standard tuya bootloader doesn't support rbl ota, but uses dual partition scheme instead.
    {
       "ota_mode": "pingpang",
       "flash_size": "4096KB",
    "dest_bin": "oem_bk7252_light_demo",
    "version": "1.0.1",
       "platform": "BK_ENC",
       "chip_type": "BK7251",
       "input_files": [
          {
             "name": "bootloader.bin",
             "partition": "boot1",
             "size": "68KB",
             "start_addr": "0x00000000"
          },
          {
    "name": "oem_bk7252_light_demo_1.0.1_low.bin",
             "partition": "app1",
             "size": "1740800",
             "start_addr": "0x00011000"
          },
          {
    "name": "oem_bk7252_light_demo_1.0.1_high.bin",
             "partition": "app2",
             "size": "1740800",
             "start_addr": "0x001BA000"
          },
       ],
    }
    
    
  • ADVERTISEMENT
  • #9 21513241
    divadiow
    Level 34  
    it does. loops only because nothing else on flash right now

    Code: Text
    Log in, to see the code


    Added after 2 [minutes]:

    insmod wrote:
    And it looks like standard tuya bootloader doesn't support rbl ota, but instead uses dual partition scheme

    ah. that makes more sense. hence the SIG=TUYA at x010 at each location
  • #11 21513416
    divadiow
    Level 34  
    second BL then fill to 0x11000 then Tuya OpenBK7252_Tuya_UA__7231u_t_c1b0ac146bf0.bin

    Spoiler:
    BK7251_1.0.13
    REG:cpsr spsr r13 r14
    SVC:0x000000D3 0xA8E0C462 0x53906404
    IRQ:0x000000D2 0x00000010 0x63791D41 0x0D8DA088
    FIR:0x000000D1 0x00000010 0x44BB9ADF 0xEC79B028
    SYS:0x000000DF 0xFEBFFFFF 0x2B08CCB0
    ST:0x8C9592C5
    [E/FAL] (fal_partition_init:262) Partition table NOT found on flash: beken_onchip_crc (len: 24) from offset: 0x00010000.
    [E/FAL] (fal_init:62) RT-Thread Flash Abstraction Layer (V0.4.0) initialize failed.
    [E/OTA] (rt_ota_init:98) Initialize failed! Don't found the partition table.
    [E/OTA] (rt_ota_init:115) RT-Thread OTA package(V0.2.8-beken-1133282d-20220604) initialize failed(-1).


    go os_addr(0x10000)..........
    prvHeapInit-start addr:0x418320, size:163040
    prvHeapInit-start addr:0x900000, size:262144
    [Flash]id:0xb4016
    --write status reg:4804,2--
    [Flash]init over
    QSPi_init
    QSPi_init1
    sctrl_sta_ps_init
    SDK Rev: 3.0.76 fecdcbd
    OSK Rev: F-3.0.49 fecdcbd
    cset:0 0 0 0
    No TLV header found in flash
    [FUNC]rwnxl_init
    chip id=7221a device id=18221020
    IP Rev: W4-3.0.76-P0
    txdesc flush
    [FUNC]intc_init
    [FUNC]calibration_main
    No TLV header found in flash

    rfcali_mode:1, 0
    *********** finally result **********
    gtx_dcorMod : 0x8
    gtx_dcorPA : 0xa
    gtx_pre_gain : 0x10
    gtx_i_dc_comp : 0x1fd
    gtx_q_dc_comp : 0x201
    gtx_i_gain_comp : 0x3ff
    gtx_q_gain_comp : 0x3ff
    gtx_ifilter_corner over: 0x12
    gtx_qfilter_corner over: 0x12
    gtx_phase_comp : 0x1ed
    gtx_phase_ty2 : 0x200
    gbias_after_cal : 0x15
    gav_tssi : 0x0
    g_rx_dc_gain_tab 0 over: 0x807c807c
    g_rx_dc_gain_tab 1 over: 0x82788078
    g_rx_dc_gain_tab 2 over: 0x846e8470
    g_rx_dc_gain_tab 3 over: 0x90448858
    g_rx_dc_gain_tab 4 over: 0x8e489046
    g_rx_dc_gain_tab 5 over: 0x92469048
    g_rx_dc_gain_tab 6 over: 0x92469244
    g_rx_dc_gain_tab 7 over: 0x94449343
    grx_amp_err_wr : 0x1f8
    grx_phase_err_wr : 0x3e1
    **************************************
    NO RF TLV in flash, write def tab
    calibration_main(07b911b30) over
    NO TXPWR_TAB_TAB found in flash
    Load default txpwr for b:0xd0049
    Load default txpwr for g:0xd007f
    fit n20 table with dist:2
    Load default txpwr for n40:0xd008d
    Load default txpwr for ble:0xd0057
    NO TXID found in flash, use lpf i&q:18, 18
    NO TXID found in flash, use def xtal:16
    xtal in flash is:16
    xtal_cali:16
    rwnx_tpc_pa_map_init
    [FUNC]ps_init
    int watchdog enabled, period=10000
    task watchdog enabled, period=60000
    [FUNC]func_init_extended OVER!!!

    start_type:0
    Initializing TCP/IP stack
    rf_thread_init okbk_wlan_app_init finished

    Entering initLog()...
    Commands registered!
    initLog() done!
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border

    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:DRV:DRV_BATTERY : Measure Battery volt en perc
    Info:DRV:DRV_BATTERY : ADC Value low device not on battery
    Info:DRV:DRV_BATTERY : battery voltage : -1.341797 and percentage 0.000000%
    Info:MAIN:Time 2, idle 0/s, free 391656, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/20
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:EnergyMeter:BL0937 pins have changed, will reset the interrupts
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 3, idle 0/s, free 391656, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/20
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:EnergyMeter:BL0937 pins have changed, will reset the interrupts
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 4, idle 0/s, free 391656, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/20
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Soft_AP_start
    [saap]MM_RESET_REQ
    txdesc flush
    [saap]ME_CONFIG_REQ
    [saap]ME_CHAN_CONFIG_REQ
    [saap]MM_START_REQ
    csa clear 0:0
    mm_add_if_req_handler:0
    hapd_intf_add_vif,type:3, s:0, id:0
    apm start with vif:0
    ------beacon_int_set:100 TU
    set_active param 0
    [msg]APM_STOP_CFM
    mm updating bcn
    mm_set_vif_state_req_handler
    vif_idx:0, ch_idx:0, bcmc_idx:2
    sending broadcast_deauth:5
    hapd_intf_del_key: mac ff:ff:ff:ff:ff:ff, hw key idx 65
    hapd_intf_del_key: mac ff:ff:ff:ff:ff:ff, hw key idx 65
    hapd_intf_del_key: mac ff:ff:ff:ff:ff:ff, hw key idx 65
    hapd_intf_del_key: mac ff:ff:ff:ff:ff:ff, hw key idx 65
    mm updating bcn
    enter low level!
    mac c8:47:8c:42:88:49
    leave low level!
    [net]addvif_idx:0
    uap_ip_start

    configuring interface uap (with Static IP)WARN: TCPIP mutex is NOT locked (1) caller A7FCB
    sending broadcast_deauth:5
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 5, idle 0/s, free 391656, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/20
    Info:MAIN:no flash configuration, use default
    Info:MAIN:set ip info: 192.168.4.1,255.255.255.0,192.168.4.1
    Info:MAIN:ssid:OpenBK7252_8C428848 key: mode:0
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    --write status reg:800,2--
    --write status reg:87c,2--
    Info:EnergyMeter:BL0937 pins have changed, will reset the interrupts
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 6, idle 0/s, free 384896, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    Info:MAIN:Boot complete time reached (5 seconds)
    Info:CFG:####### Set Boot Complete #######
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 7, idle 0/s, free 384896, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 8, idle 0/s, free 384896, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border

    Info:EnergyMeter:BL0937 pins have changed, will reset the interrupts
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 20, idle 0/s, free 384896, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    Info:GEN:dhcp=0 ip=0.0.0.0 gate=0.0.0.0 mask=0.0.0.0 mac=00:00:00:00:00:00
    Info:GEN:sta: 0, softap: 1, b/g/n
    Info:GEN:softap:ssid=OpenBK7252_8C428848,channel=1,dhcp=1,cipher_type:OPEN
    Info:GEN:ip=192.168.4.1,gate=192.168.4.1,mask=255.255.255.0,dns=192.168.4.1
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:EnergyMeter:BL0937 pins have changed, will reset the interrupts
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 21, idle 0/s, free 384896, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:DRV:DRV_BATTERY : Measure Battery volt en perc
    Info:DRV:DRV_BATTERY : ADC Value low device not on battery
    Info:DRV:DRV_BATTERY : battery voltage : -1.341797 and percentage 0.000000%
    Info:MAIN:Time 22, idle 0/s, free 384896, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 23, idle 0/s, free 384896, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 24, idle 0/s, free 384896, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    gpio_id_cross_border
    Info:GEN:CHANNEL_Set channel 0 has changed to -400 (flags 0)

    Info:MQTT:Channel has changed! Publishing -400 to channel 0
    Info:GEN:CHANNEL_Set channel 0 has changed to 0 (flags 0)

    Info:MQTT:Channel has changed! Publishing 0 to channel 0
    Info:SENSOR:DRV_CHT83XX_ReadEnv: Temperature:-40.000000C Humidity:0.000000%
    Info:MAIN:Time 25, idle 0/s, free 384896, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20


    Wi-Fi connection window for a network named OpenBK7252_8C428848 with information on data visibility.

    lots of odd things enabled initially.

    OpenBK7252 user interface with lighting settings and system data.
    joins AP OK

    Connecting devices to Wi-Fi, showing one connected named wlan0.

    Added after 57 [minutes]:

    curious about reading the efuse. is that worth doing? is there any point adding a read_efuse to boot log?
  • #12 21514822
    divadiow
    Level 34  
    not expecting it to work, but here's OpenBK7252 OTA result

    Spoiler:
    [Flash]id:0xb4016
    --write status reg:4804,2--
    [Flash]init over
    --write status reg:800,2--
    Info:OTA:init OTA, startaddr 0x132000
    Info:OTA:132000
    Info:OTA:133000
    Info:OTA:134000
    Info:OTA:135000
    Info:OTA:136000
    Info:OTA:137000
    Info:OTA:138000
    Info:OTA:139000
    Info:OTA:13a000
    Info:OTA:13b000
    Info:OTA:13c000
    Info:MAIN:Time 151, idle 0/s, free 343672, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 6/20
    Info:OTA:13d000
    Info:OTA:13e000
    Info:OTA:13f000
    Info:OTA:140000
    Info:OTA:141000
    Info:OTA:142000
    Info:OTA:143000
    Info:OTA:144000
    Info:OTA:145000
    Info:OTA:146000
    Info:OTA:147000
    Info:OTA:148000
    Info:OTA:149000
    Info:OTA:14a000
    Info:OTA:14b000
    Info:OTA:14c000
    Info:OTA:14d000
    Info:OTA:14e000
    Info:OTA:14f000
    Info:OTA:150000
    Info:OTA:151000
    Info:MAIN:Time 152, idle 0/s, free 342128, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 6/20
    Info:OTA:152000
    Info:OTA:153000
    Info:OTA:154000
    Info:OTA:155000
    Info:OTA:156000
    Info:OTA:157000
    Info:OTA:158000
    Info:OTA:159000
    Info:OTA:15a000
    Info:OTA:15b000
    Info:OTA:15c000
    Info:OTA:15d000
    Info:OTA:15e000
    Info:OTA:15f000
    ap_handle_timer
    Info:OTA:160000
    Info:OTA:161000
    Info:OTA:162000
    Info:OTA:163000
    Info:OTA:164000
    Info:OTA:165000
    Info:OTA:166000
    Info:OTA:167000
    Info:MAIN:Time 153, idle 0/s, free 343672, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 6/20
    Info:OTA:168000
    Info:OTA:169000
    Info:OTA:16a000
    Info:OTA:16b000
    Info:OTA:16c000
    Info:OTA:16d000
    Info:OTA:16e000
    Info:OTA:16f000
    Info:OTA:170000
    Info:OTA:171000
    Info:OTA:172000
    Info:OTA:173000
    Info:OTA:174000
    Info:OTA:175000
    Info:OTA:176000
    Info:OTA:177000
    Info:OTA:178000
    Info:OTA:179000
    Info:OTA:17a000
    Info:MAIN:Time 154, idle 0/s, free 333824, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 6/20
    Info:OTA:17b000
    Info:OTA:17c000
    Info:OTA:17d000
    Info:OTA:17e000
    Info:OTA:17f000
    Info:OTA:180000
    Info:OTA:181000
    Info:OTA:182000
    Info:OTA:183000
    Info:OTA:184000
    Info:OTA:185000
    Info:OTA:186000
    Info:OTA:187000
    Info:OTA:188000
    Info:OTA:189000
    Info:OTA:18a000
    Info:OTA:18b000
    Info:OTA:18c000
    Info:OTA:18d000
    Info:OTA:18e000
    Info:OTA:18f000
    Info:MAIN:Time 155, idle 0/s, free 343672, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 6/20
    Info:OTA:190000
    Info:OTA:191000
    Info:OTA:192000
    Info:OTA:193000
    Info:OTA:194000
    Info:OTA:195000
    Info:OTA:196000
    Info:OTA:197000
    Info:OTA:198000
    Info:OTA:199000
    Info:OTA:19a000
    Info:OTA:19b000
    Info:OTA:19c000
    Info:OTA:19d000
    Info:OTA:19e000
    Info:OTA:19f000
    Info:OTA:1a0000
    Info:OTA:1a1000
    Info:OTA:1a2000
    Info:MAIN:Time 156, idle 0/s, free 333824, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 6/20
    Info:OTA:1a3000
    Info:OTA:1a4000
    Info:OTA:1a5000
    Info:OTA:1a6000
    Info:OTA:1a7000
    Info:OTA:1a8000
    Info:OTA:1a9000
    Info:OTA:1aa000
    Info:OTA:1ab000
    Info:OTA:1ac000
    Info:OTA:1ad000
    Info:OTA:1ae000
    Info:OTA:1af000
    Info:OTA:1b0000
    Info:OTA:
    Info:OTA:close OTA, additional 0xee0 FF added
    Info:OTA:1b1000
    --write status reg:4804,2--
    Info:OTA:close OTA, addr 0x1b1400
    --write status reg:800,2--
    --write status reg:87c,2--
    Info:MAIN:Time 157, idle 0/s, free 372256, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    Info:MAIN:Module reboot in 2...
    Info:MAIN:Time 158, idle 0/s, free 372256, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 5/20
    Info:MAIN:Module reboot in 1...
    bk_reboot(1)
    wdt reboot
    BK7251_1.0.13
    REG:cpsr spsr r13 r14
    SVC:0x000000D3 0x00403BF8 0x000119A8
    IRQ:0x000000D2 0x00000010 0x00403420 0x000252F8
    FIR:0x000000D1 0x00000010 0x00402430 0x000112F0
    SYS:0x000000DF 0x0041AF40 0x00027DD3
    ST:0x00000001
    [E/FAL] (fal_partition_init:262) Partition table NOT found on flash: beken_onchip_crc (len: 24) from offset: 0x00010000.
    [E/FAL] (fal_init:62) RT-Thread Flash Abstraction Layer (V0.4.0) initialize failed.
    [E/OTA] (rt_ota_init:98) Initialize failed! Don't found the partition table.
    [E/OTA] (rt_ota_init:115) RT-Thread OTA package(V0.2.8-beken-1133282d-20220604) initialize failed(-1).


    go os_addr(0x10000)..........
  • Helpful post
    #13 21525243
    p.kaczmarek2
    Moderator Smart Home
    I've added BK7252 support here:
    https://github.com/openshwprojects/BK7231GUIFlashTool
    @insmod says it also works for him in BK7231T mode, but not for me. BK7252 is like BK7231T but without "wrap around 2MB" hack to read bootloader, and read/write just skips bootloader (0x11000 offset).
    Can you check if it's working for you?
    Related discussion: https://www.elektroda.com/rtvforum/topic4074636-90.html#21525230
    Related commits: https://github.com/openshwprojects/BK7231GUIF...mmit/f4ec7b644a666688d1de264ad3622e8022b8caa1
    https://github.com/openshwprojects/BK7231GUIF...mmit/da27241bea97fbbd1566e104cb8b75145e880393
    Helpful post? Buy me a coffee.
  • #14 21526046
    divadiow
    Level 34  
    I've hooked up the doorbell again to remind myself of the UART flashing experience and to try the new Easy Flasher V19 with BK7252 support. I don't think this doorbell is a good test device for UART backup. Maybe it seems there's something specific to this device causing an issue.

    Screenshot of the BK7231 Easy UART Flasher software with a red Reading failed error message. Terminal window showing memory read error using python uartprogram script.

    Wires are short and soldered. Same experience with pogo (which are all fine with SPI method). Same experience with different USB-TTL adaptors.

    A printed circuit board with connected wires and a USB programmer on a wooden table.

    Added after 2 [minutes]:

    I'll SPI factory back to see if the same
  • #15 21526049
    p.kaczmarek2
    Moderator Smart Home
    Try hid_download_py method from new tutorial: https://www.elektroda.com/rtvforum/topic4118348.html
    Helpful post? Buy me a coffee.
  • #16 21526057
    divadiow
    Level 34  
    yes, that is second blue powershell screenshot in post. BUT WAIT, I guess I missed out FT232R (!)

    Screenshot of BK7231 Easy UART Flasher showing Reading success! and detailed memory read log.

    Spoiler:
    Now is: 21 April 2025 10:42:10.
    Flasher mode: BK7252
    Going to open port: COM48.
    Serial port open!
    Getting bus... (now, please do reboot by CEN or by power off/on)
    Getting bus failed, will try again - 0/100!
    Getting bus success!
    Going to set baud rate setting (115200)!
    Going to start reading at offset 0x11000...
    Reading 0x11000... Ok! Reading 0x12000... Ok! Reading 0x13000... Ok! Reading 0x14000... Ok! Reading 0x15000... Ok! Reading 0x16000... Ok! Reading 0x17000... Ok! Reading 0x18000... Ok! Reading 0x19000... Ok! Reading 0x1A000... Ok! Reading 0x1B000... Ok! Reading 0x1C000... Ok! Reading 0x1D000... Ok! Reading 0x1E000... Ok! Reading 0x1F000... Ok! Reading 0x20000... Ok! Reading 0x21000... Ok! Reading 0x22000... Ok! Reading 0x23000... Ok! Reading 0x24000... Ok! Reading 0x25000... Ok! Reading 0x26000... Ok! Reading 0x27000... Ok! Reading 0x28000... Ok! Reading 0x29000... Ok! Reading 0x2A000... Ok! Reading 0x2B000... Ok! Reading 0x2C000... Ok! Reading 0x2D000... Ok! Reading 0x2E000... Ok! Reading 0x2F000... Ok! Reading 0x30000... Ok! Reading 0x31000... Ok! Reading 0x32000... Ok! Reading 0x33000... Ok! Reading 0x34000... Ok! Reading 0x35000... Ok! Reading 0x36000... Ok! Reading 0x37000... Ok! Reading 0x38000... Ok! Reading 0x39000... Ok! Reading 0x3A000... Ok! Reading 0x3B000... Ok! Reading 0x3C000... Ok! Reading 0x3D000... Ok! Reading 0x3E000... Ok! Reading 0x3F000... Ok! Reading 0x40000... Ok! Reading 0x41000... Ok! Reading 0x42000... Ok! Reading 0x43000... Ok! Reading 0x44000... Ok! Reading 0x45000... Ok! Reading 0x46000... Ok! Reading 0x47000... Ok! Reading 0x48000... Ok! Reading 0x49000... Ok! Reading 0x4A000... Ok! Reading 0x4B000... Ok! Reading 0x4C000... Ok! Reading 0x4D000... Ok! Reading 0x4E000... Ok! Reading 0x4F000... Ok! Reading 0x50000... Ok! Reading 0x51000... Ok! Reading 0x52000... Ok! Reading 0x53000... Ok! Reading 0x54000... Ok! Reading 0x55000... Ok! Reading 0x56000... Ok! Reading 0x57000... Ok! Reading 0x58000... Ok! Reading 0x59000... Ok! Reading 0x5A000... Ok! Reading 0x5B000... Ok! Reading 0x5C000... Ok! Reading 0x5D000... Ok! Reading 0x5E000... Ok! Reading 0x5F000... Ok! Reading 0x60000... Ok! Reading 0x61000... Ok! Reading 0x62000... Ok! Reading 0x63000... Ok! Reading 0x64000... Ok! Reading 0x65000... Ok! Reading 0x66000... Ok! Reading 0x67000... Ok! Reading 0x68000... Ok! Reading 0x69000... Ok! Reading 0x6A000... Ok! Reading 0x6B000... Ok! Reading 0x6C000... Ok! Reading 0x6D000... Ok! Reading 0x6E000... Ok! Reading 0x6F000... Ok! Reading 0x70000... Ok! Reading 0x71000... Ok! Reading 0x72000... Ok! Reading 0x73000... Ok! Reading 0x74000... Ok! Reading 0x75000... Ok! Reading 0x76000... Ok! Reading 0x77000... Ok! Reading 0x78000... Ok! Reading 0x79000... Ok! Reading 0x7A000... Ok! Reading 0x7B000... Ok! Reading 0x7C000... Ok! Reading 0x7D000... Ok! Reading 0x7E000... Ok! Reading 0x7F000... Ok! Reading 0x80000... Ok! Reading 0x81000... Ok! Reading 0x82000... Ok! Reading 0x83000... Ok! Reading 0x84000... Ok! Reading 0x85000... Ok! Reading 0x86000... Ok! Reading 0x87000... Ok! Reading 0x88000... Ok! Reading 0x89000... Ok! Reading 0x8A000... Ok! Reading 0x8B000... Ok! Reading 0x8C000... Ok! Reading 0x8D000... Ok! Reading 0x8E000... Ok! Reading 0x8F000... Ok! Reading 0x90000... Ok! Reading 0x91000... Ok! Reading 0x92000... Ok! Reading 0x93000... Ok! Reading 0x94000... Ok! Reading 0x95000... Ok! Reading 0x96000... Ok! Reading 0x97000... Ok! Reading 0x98000... Ok! Reading 0x99000... Ok! Reading 0x9A000... Ok! Reading 0x9B000... Ok! Reading 0x9C000... Ok! Reading 0x9D000... Ok! Reading 0x9E000... Ok! Reading 0x9F000... Ok! Reading 0xA0000... Ok! Reading 0xA1000... Ok! Reading 0xA2000... Ok! Reading 0xA3000... Ok! Reading 0xA4000... Ok! Reading 0xA5000... Ok! Reading 0xA6000... Ok! Reading 0xA7000... Ok! Reading 0xA8000... Ok! Reading 0xA9000... Ok! Reading 0xAA000... Ok! Reading 0xAB000... Ok! Reading 0xAC000... Ok! Reading 0xAD000... Ok! Reading 0xAE000... Ok! Reading 0xAF000... Ok! Reading 0xB0000... Ok! Reading 0xB1000... Ok! Reading 0xB2000... Ok! Reading 0xB3000... Ok! Reading 0xB4000... Ok! Reading 0xB5000... Ok! Reading 0xB6000... Ok! Reading 0xB7000... Ok! Reading 0xB8000... Ok! Reading 0xB9000... Ok! Reading 0xBA000... Ok! Reading 0xBB000... Ok! Reading 0xBC000... Ok! Reading 0xBD000... Ok! Reading 0xBE000... Ok! Reading 0xBF000... Ok! Reading 0xC0000... Ok! Reading 0xC1000... Ok! Reading 0xC2000... Ok! Reading 0xC3000... Ok! Reading 0xC4000... Ok! Reading 0xC5000... Ok! Reading 0xC6000... Ok! Reading 0xC7000... Ok! Reading 0xC8000... Ok! Reading 0xC9000... Ok! Reading 0xCA000... Ok! Reading 0xCB000... Ok! Reading 0xCC000... Ok! Reading 0xCD000... Ok! Reading 0xCE000... Ok! Reading 0xCF000... Ok! Reading 0xD0000... Ok! Reading 0xD1000... Ok! Reading 0xD2000... Ok! Reading 0xD3000... Ok! Reading 0xD4000... Ok! Reading 0xD5000... Ok! Reading 0xD6000... Ok! Reading 0xD7000... Ok! Reading 0xD8000... Ok! Reading 0xD9000... Ok! Reading 0xDA000... Ok! Reading 0xDB000... Ok! Reading 0xDC000... Ok! Reading 0xDD000... Ok! Reading 0xDE000... Ok! Reading 0xDF000... Ok! Reading 0xE0000... Ok! Reading 0xE1000... Ok! Reading 0xE2000... Ok! Reading 0xE3000... Ok! Reading 0xE4000... Ok! Reading 0xE5000... Ok! Reading 0xE6000... Ok! Reading 0xE7000... Ok! Reading 0xE8000... Ok! Reading 0xE9000... Ok! Reading 0xEA000... Ok! Reading 0xEB000... Ok! Reading 0xEC000... Ok! Reading 0xED000... Ok! Reading 0xEE000... Ok! Reading 0xEF000... Ok! Reading 0xF0000... Ok! Reading 0xF1000... Ok! Reading 0xF2000... Ok! Reading 0xF3000... Ok! Reading 0xF4000... Ok! Reading 0xF5000... Ok! Reading 0xF6000... Ok! Reading 0xF7000... Ok! Reading 0xF8000... Ok! Reading 0xF9000... Ok! Reading 0xFA000... Ok! Reading 0xFB000... Ok! Reading 0xFC000... Ok! Reading 0xFD000... Ok! Reading 0xFE000... Ok! Reading 0xFF000... Ok! Reading 0x100000... Ok! Reading 0x101000... Ok! Reading 0x102000... Ok! Reading 0x103000... Ok! Reading 0x104000... Ok! Reading 0x105000... Ok! Reading 0x106000... Ok! Reading 0x107000... Ok! Reading 0x108000... Ok! Reading 0x109000... Ok! Reading 0x10A000... Ok! Reading 0x10B000... Ok! Reading 0x10C000... Ok! Reading 0x10D000... Ok! Reading 0x10E000... Ok! Reading 0x10F000... Ok! Reading 0x110000... Ok! Reading 0x111000... Ok! Reading 0x112000... Ok! Reading 0x113000... Ok! Reading 0x114000... Ok! Reading 0x115000... Ok! Reading 0x116000... Ok! Reading 0x117000... Ok! Reading 0x118000... Ok! Reading 0x119000... Ok! Reading 0x11A000... Ok! Reading 0x11B000... Ok! Reading 0x11C000... Ok! Reading 0x11D000... Ok! Reading 0x11E000... Ok! Reading 0x11F000... Ok! Reading 0x120000... Ok! Reading 0x121000... Ok! Reading 0x122000... Ok! Reading 0x123000... Ok! Reading 0x124000... Ok! Reading 0x125000... Ok! Reading 0x126000... Ok! Reading 0x127000... Ok! Reading 0x128000... Ok! Reading 0x129000... Ok! Reading 0x12A000... Ok! Reading 0x12B000... Ok! Reading 0x12C000... Ok! Reading 0x12D000... Ok! Reading 0x12E000... Ok! Reading 0x12F000... Ok! Reading 0x130000... Ok! Reading 0x131000... Ok! Reading 0x132000... Ok! Reading 0x133000... Ok! Reading 0x134000... Ok! Reading 0x135000... Ok! Reading 0x136000... Ok! Reading 0x137000... Ok! Reading 0x138000... Ok! Reading 0x139000... Ok! Reading 0x13A000... Ok! Reading 0x13B000... Ok! Reading 0x13C000... Ok! Reading 0x13D000... Ok! Reading 0x13E000... Ok! Reading 0x13F000... Ok! Reading 0x140000... Ok! Reading 0x141000... Ok! Reading 0x142000... Ok! Reading 0x143000... Ok! Reading 0x144000... Ok! Reading 0x145000... Ok! Reading 0x146000... Ok! Reading 0x147000... Ok! Reading 0x148000... Ok! Reading 0x149000... Ok! Reading 0x14A000... Ok! Reading 0x14B000... Ok! Reading 0x14C000... Ok! Reading 0x14D000... Ok! Reading 0x14E000... Ok! Reading 0x14F000... Ok! Reading 0x150000... Ok! Reading 0x151000... Ok! Reading 0x152000... Ok! Reading 0x153000... Ok! Reading 0x154000... Ok! Reading 0x155000... Ok! Reading 0x156000... Ok! Reading 0x157000... Ok! Reading 0x158000... Ok! Reading 0x159000... Ok! Reading 0x15A000... Ok! Reading 0x15B000... Ok! Reading 0x15C000... Ok! Reading 0x15D000... Ok! Reading 0x15E000... Ok! Reading 0x15F000... Ok! Reading 0x160000... Ok! Reading 0x161000... Ok! Reading 0x162000... Ok! Reading 0x163000... Ok! Reading 0x164000... Ok! Reading 0x165000... Ok! Reading 0x166000... Ok! Reading 0x167000... Ok! Reading 0x168000... Ok! Reading 0x169000... Ok! Reading 0x16A000... Ok! Reading 0x16B000... Ok! Reading 0x16C000... Ok! Reading 0x16D000... Ok! Reading 0x16E000... Ok! Reading 0x16F000... Ok! Reading 0x170000... Ok! Reading 0x171000... Ok! Reading 0x172000... Ok! Reading 0x173000... Ok! Reading 0x174000... Ok! Reading 0x175000... Ok! Reading 0x176000... Ok! Reading 0x177000... Ok! Reading 0x178000... Ok! Reading 0x179000... Ok! Reading 0x17A000... Ok! Reading 0x17B000... Ok! Reading 0x17C000... Ok! Reading 0x17D000... Ok! Reading 0x17E000... Ok! Reading 0x17F000... Ok! Reading 0x180000... Ok! Reading 0x181000... Ok! Reading 0x182000... Ok! Reading 0x183000... Ok! Reading 0x184000... Ok! Reading 0x185000... Ok! Reading 0x186000... Ok! Reading 0x187000... Ok! Reading 0x188000... Ok! Reading 0x189000... Ok! Reading 0x18A000... Ok! Reading 0x18B000... Ok! Reading 0x18C000... Ok! Reading 0x18D000... Ok! Reading 0x18E000... Ok! Reading 0x18F000... Ok! Reading 0x190000... Ok! Reading 0x191000... Ok! Reading 0x192000... Ok! Reading 0x193000... Ok! Reading 0x194000... Ok! Reading 0x195000... Ok! Reading 0x196000... Ok! Reading 0x197000... Ok! Reading 0x198000... Ok! Reading 0x199000... Ok! Reading 0x19A000... Ok! Reading 0x19B000... Ok! Reading 0x19C000... Ok! Reading 0x19D000... Ok! Reading 0x19E000... Ok! Reading 0x19F000... Ok! Reading 0x1A0000... Ok! Reading 0x1A1000... Ok! Reading 0x1A2000... Ok! Reading 0x1A3000... Ok! Reading 0x1A4000... Ok! Reading 0x1A5000... Ok! Reading 0x1A6000... Ok! Reading 0x1A7000... Ok! Reading 0x1A8000... Ok! Reading 0x1A9000... Ok! Reading 0x1AA000... Ok! Reading 0x1AB000... Ok! Reading 0x1AC000... Ok! Reading 0x1AD000... Ok! Reading 0x1AE000... Ok! Reading 0x1AF000... Ok! Reading 0x1B0000... Ok! Reading 0x1B1000... Ok! Reading 0x1B2000... Ok! Reading 0x1B3000... Ok! Reading 0x1B4000... Ok! Reading 0x1B5000... Ok! Reading 0x1B6000... Ok! Reading 0x1B7000... Ok! Reading 0x1B8000... Ok! Reading 0x1B9000... Ok! Reading 0x1BA000... Ok! Reading 0x1BB000... Ok! Reading 0x1BC000... Ok! Reading 0x1BD000... Ok! Reading 0x1BE000... Ok! Reading 0x1BF000... Ok! Reading 0x1C0000... Ok! Reading 0x1C1000... Ok! Reading 0x1C2000... Ok! Reading 0x1C3000... Ok! Reading 0x1C4000... Ok! Reading 0x1C5000... Ok! Reading 0x1C6000... Ok! Reading 0x1C7000... Ok! Reading 0x1C8000... Ok! Reading 0x1C9000... Ok! Reading 0x1CA000... Ok! Reading 0x1CB000... Ok! Reading 0x1CC000... Ok! Reading 0x1CD000... Ok! Reading 0x1CE000... Ok! Reading 0x1CF000... Ok! Reading 0x1D0000... Ok! Reading 0x1D1000... Ok! Reading 0x1D2000... Ok! Reading 0x1D3000... Ok! Reading 0x1D4000... Ok! Reading 0x1D5000... Ok! Reading 0x1D6000... Ok! Reading 0x1D7000... Ok! Reading 0x1D8000... Ok! Reading 0x1D9000... Ok! Reading 0x1DA000... Ok! Reading 0x1DB000... Ok! Reading 0x1DC000... Ok! Reading 0x1DD000... Ok! Reading 0x1DE000... Ok! Reading 0x1DF000... Ok! Reading 0x1E0000... Ok! Reading 0x1E1000... Ok! Reading 0x1E2000... Ok! Reading 0x1E3000... Ok! Reading 0x1E4000... Ok! Reading 0x1E5000... Ok! Reading 0x1E6000... Ok! Reading 0x1E7000... Ok! Reading 0x1E8000... Ok! Reading 0x1E9000... Ok! Reading 0x1EA000... Ok! Reading 0x1EB000... Ok! Reading 0x1EC000... Ok! Reading 0x1ED000... Ok! Reading 0x1EE000... Ok! Reading 0x1EF000... Ok! Reading 0x1F0000... Ok! Reading 0x1F1000... Ok! Reading 0x1F2000... Ok! Reading 0x1F3000... Ok! Reading 0x1F4000... Ok! Reading 0x1F5000... Ok! Reading 0x1F6000... Ok! Reading 0x1F7000... Ok! Reading 0x1F8000... Ok! Reading 0x1F9000... Ok! Reading 0x1FA000... Ok! Reading 0x1FB000... Ok! Reading 0x1FC000... Ok! Reading 0x1FD000... Ok! Reading 0x1FE000... Ok! Reading 0x1FF000... Ok!
    Basic read operation finished, but now it's time to verify...
    Starting CRC check for 495 sectors, starting at offset 0x11000
    CRC matches 0x64E354DE!
    All read!
    Loaded total 0x1EF000 bytes
    Wrote 2027520 to readResult_BK7252_UA_2025-21-4-10-45-28.bin
    Backup 2MB created, now will attempt to extract OBK config.
    It's not an OBK config, header is bad
    OBK config not found.
    Backup 2MB created, now will attempt to extract Tuya config.
    Failed to extract Tuya keys - magic constant header not found in binary
    Sorry, failed to find Tuya Config in backup binary.


    Added after 5 [minutes]:

    just trying things. Erase all
    Screenshot of the BK7231 Easy UART Flasher program showing an Erase failed. error message on a red background.

    Added after 8 [minutes]:

    UA and QIO write test
    Screenshot of BK7231 Easy UART Flasher software with a red Erase failed message displayed.

    Added after 1 [minutes]:

    I need to try other BK7252 to see how experience compares. I have some cams not looked into yet.
  • ADVERTISEMENT
  • #18 21578866
    divadiow
    Level 34  
    patbonamy76 wrote:
    Now I want to flash a new one where can I find it?

    there is no fully-functioning replacement firmware for BK7252U and definitely not one that will mimic all needed to achieve a cloud-free doorbell.

    The screenshot above is from an early build available from here:
    https://github.com/NonPIayerCharacter/OpenBK7231T_App/actions/runs/14322039247

    but with bootloader spliced in. ref: https://www.elektroda.com/rtvforum/topic4073760.html#21513416

    If you do experiment, it's probably worth taking a full flash backup to include your bootloader, should you wish to return to factory functionality. Also that backup is only half the flash - 4mb dump required (maybe @p.kaczmarek2 or @DeDaMrAz could add a 4mb option to BK7252U in EF and include BL if possible :)🙏🏻).

    other recent BK7252U adventure: https://www.elektroda.com/rtvforum/topic4123266.html

Topic summary

The discussion revolves around the exploration of a Tuya doorbell featuring the BK7252 chip. The user expresses interest in examining the internal components, specifically the UART boot log and firmware backup capabilities. Initial findings reveal the presence of a QFN68 BK7252 chip and multiple UART connections for logging and firmware flashing. Additional resources are shared, including links to discussions on libretiny and Home Assistant, highlighting the challenges of developing for the BK7252, with some users noting their experiences with similar devices like the A9 cameras that utilize different chips. The overall sentiment reflects skepticism about the progress of BK7252 projects.
Summary generated by the language model.
ADVERTISEMENT