logo elektroda
logo elektroda
X
logo elektroda

ExtraStar A60WIFI-2 Smart Bulb (BK7231T, CB3L) Teardown and UART Flashing Guide

pavlicanikola 87 0
ADVERTISEMENT
📢 Listen (AI):
  • Hello, I'm back with an another smart bulb and this time it's a BK7231T-based device (The module inside is a CB3L). And... yes this one also came from a flea market

    The branding on it states it's a ExtraStar A60WIFI-2, the 2 is probably because they come in a package of two.

    Disassembled ExtraStar A60WIFI-2 smart bulb showing internal electronic components and PCB. Printed circuit board with TD-W83L chip inside a disassembled ExtraStar A60WIFI-2 smart bulb.

    It's basically the same as the Kanlux S A60, I'm guessing they ship these under many brands.

    Since I had previous experience with a W600-based lamp, this was a piece of cake in comparison to figure out.

    Ok, so first things first, in order to proceed we will need:
     - A soldering iron
     - A UART-to-USB adapter (Logic level MUST be set to 3v3), this includes having the supply of 3.3V as well
     - Some solder
     - Tweezers, a small pair of pliers, scalpel and a flat-head screwdriver (For destructive opening of the device)
     - Steady hands
     - And some small insulated wires (preferably AWG30 because that's what I used)

    Opening this device WILL damage the exterior housing so it's kinda an irreversible process sadly.

    1) Start by prying at the contact between the plastic lens and the housing, I recommend trying to cut the silicone using a scalpel then using a large flat-heat screwdriver to pry the top housing open.

    Once you succeed, you'll be met with this.

    Disassembled ExtraStar A60WIFI-2 smart bulb with exposed internal circuit board and wiring.

    2) The inner LED ring can be removed, but it's quite a tricky process. It involves you going around the perimeter of the board trying to slice and remove as much of that white silicone as you can.

    3) After you've removed a decent chunk of said silicone, use a pair of tweezers or mini pliers and try to pull out the board. You can also try prying with the screwdriver. But be VERY careful, you can rip the LED diodes straight off or damage any of the on-board components.

    If you succeed, you'll be met with the following:

    Close-up of the internal components of a disassembled ExtraStar A60WIFI-2 smart light bulb, showing wires and PCB. Disassembled ExtraStar A60WIFI-2 smart bulb with exposed PCB and wires attached for programming.

    We don't actually need the white board for anything, we just want to get to the microcontroller, which is the TD-W83L unit seen in the second picture.

    We still don't have clear access to the board to do our soldering job, in order to completely remove it we still need to remove some other bits. The thing preventing us from just removing the board are the live and neutral wires located on the bottom of the unit.

    4) Removing the tip of the Edison plug.

    This tip holds the live wire and can be released by just prying at the tip using a flat-head screwdriver and jamming it between the plastic and the tip like so:

    Disassembled ExtraStar A60WIFI-2 smart bulb with exposed CB3L module and internal components.

    5) Doing the same for the plug itself. I'd recommend prying at the part that has the pressed metal stamps against the housing of the lamp (the little metal dots)

    This will release the the neutral wire, however be aware that the plug is held on tight and you can possibly damage it, so I'd advise to be extra careful during this part of the procedure.

    Once you're successful, you'll be met with this:

    Disassembled ExtraStar A60WIFI-2 smart bulb with exposed PCB and CB3L module based on BK7231T chip.

    6) You should now be able to easily slide out the board for further soldering and then flashing of the device.

    Pulling it out from the front, you'll get the following:

    Disassembled ExtraStar A60WIFI-2 smart bulb with exposed electronics and soldered connection points.

    Following the datasheet I found about the board on the FCC's website, I've determined the following pins should be soldered to:

    Disassembled ExtraStar A60WIFI-2 smart bulb with exposed CB3L module and BK7231T microcontroller.


    The 3.3V toggle is quite important because it's EXTREMELY hard to enter the bootloader if you don't have the toggle present. The time this device spends in the bootloader is very small, so you'll have to be fast. For just that I recommend having the switch. This can even be a wire you can easily disconnect/connect, like you'll see in a moment.

    Take your time and solder these connection in whatever way you find most comfortable, but I find using tiny wires and a small tip extra helpful when making such small connections.

    Once done, you'll be met with something akin to this:

    Disassembled ExtraStar A60WIFI-2 LED bulb showing internal electronic components, including PCB with BK7231T microcontroller.
    The blue jumper wire there is for me just to be able to easily toggle the power.

    7) Flashing the thing

    DISCLAIMER: As I'm a Linux user, I prefer to do things with the command line but you're free to use other methods. This method I'm demonstrating is my own experience, so I'm going to retell that:

    7.1) Install bk7231tools

    This should be available through your package manager, if it's not, then unfortunately this is the part you'll be on your own.

    7.2) Back up the original firmware.

    This is a contingency measure, not really necessary, but I like to do it in order to prevent mistakes from being permanent.

    Now, before running a command, you want to remove power to the board. This is that switch I'm talking about. But be ready to plug it in once you execute it

    Code: Bash
    Log in, to see the code

    (Change the USB serial adapter name obviously)

    Annnd.... PLUG IT IN RIGHT AWAY. If you're lucky it will succeed the first try. If not, try a bunch of times until you get it right.

    7.3) Two is one and one is none

    Make sure you do multiple backups because doing just one may lead to a corrupted backup which you definitely don't want to have.

    So again, but this time change the filename:

    Code: Bash
    Log in, to see the code

    Same rules apply.

    7.4) Make sure the backups are the same.

    This way we can be sure that our backup job was valid:

    Code: Bash
    Log in, to see the code

    This should NOT result in extra output being emitted. If it does, we have a problem.

    7.5) My dumb solution for this problem
    Anyway since I was personally not able to get a clean backup like until my 50th try, I did the following:

    Made my own tool for comparing backups and creating a proper one

    7.5.1) To enter this rabbit hole, compile the thing first

    Code: Bash
    Log in, to see the code

    7.5.2) Make 3 or more backups

    This is just to ensure that we have enough backups so that the wrong parts can be filtered out. (2 good backups win against 1 bad one, right?)

    7.5.3) Merge them into one good one

    Code: Bash
    Log in, to see the code

    This will generate a new file called backup.bin that should be your good one.

    If that program crashes, you still have issues backing up. I'm sorry about that

    7.6) Downloading the firmware

    Assuming you actually got a good backup, lets proceed.

    Get the firmware from this link

    Find the one that corresponds to our setup. That would be BK7231T, the UART flash kind (.bin extension).

    7.7) Flashing said firmware

    Be VERY careful when flashing because this chip can be permanently bricked, so we need to add an offset to skip (the -s parameter) the bootloader section of the firmware, which is a sort-of fallback if the flashing operation were to fail.

    Using the same setup as the backup(s), execute the following:

    Code: Bash
    Log in, to see the code

    Change UART device name and flashing file as needed.

    Once you're done, YOU DID IT :D

    Now all that's left is to assemble and configure the device.

    8) Test the device. Remove power after flashing and plug it in again, it should appear as a new Wi-Fi access point. Connect to it and go to 192.168.4.1.

    Does it load? Great, we have a functional unit.

    Before configuring, however I'd like to continue with the assembly.

    9) Remove power

    10) De-solder all the wires we just put in because we don't want any stray shorts.

    11) Place the board back in the housing making sure that the two power wires go where they need to go.

    12) Placing the tip and the plug back where they need to go.

    There's a slightly confusing detail about the live wire being actually shorter than the neutral one, so when putting the plug back onto the housing, make sure to straighten the live wire so it actually goes through the hole for the pin on the plug.

    13) Make sure that when putting the plug and pin back in that both the wires are touching what they need to touch in order to make electrical contact with their respective contacts but then don't short (obviously)

    14) Don't forget to put the LED board back on, keeping in mind where the headers actually are and connecting them appropriately

    15) Put the cap back on.

    Since you've might've bent the housing a bit too much, like I did, you can use electrical tape around the perimeter of the housing and the cap to hold it on.


    Ok, so the setup:

    16) Screw the bulb onto the socket and turn the power on

    17) Connect to the wireless network and open the website at 192.168.4.1

    From here the procedure is the same as the Kanlux, but essentially go to:

    18) Navigate to Configuration > Pin Assignment

    19) And from there configure the following pins (the exact same as the Kanlux):

    Pin nameFuncitonIndex
    P6PWM4
    P7PWM3
    P8PWM0
    P24PWM1
    P26PWM2

    20) Click Save and return to the Home page.

    From there you'll be able to configure the lamps color and temperature.

    I'm sure you'll figure out the rest ;)

    Have a wonderful day 

    Also for that one guy who asks, here's the backup of my original firmware.

    Cool? Ranking DIY
    About Author
    pavlicanikola
    Level 3  
    Offline 
    pavlicanikola wrote 6 posts with rating 1. Been with us since 2024 year.
  • ADVERTISEMENT
📢 Listen (AI):
ADVERTISEMENT