-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Xiaomi Smart Speaker #9
Comments
Also how did you obtain the programmer.bin file? |
This tool is intended for the PineBuds Pro, but there's no guarantee this tool will work on other BES devices. The I'm working on my fork on splitting The PineBuds don't use |
It is the The runtime code wont matter for how this software works; as we are loading the programmer into ram and booting it. I've tested locally on 3 revisions of the bes2300; however there are lots. Any chance you can get a logic analyser capture of the uart bus during the boot + run firmware?
Any chance you can crapture a higher resolution closeup of the beschip; as a quick look indicates this is a different spin of the chip. |
Sure, I was just wondering if it would be possible to also to use it. I also have the PineBuds so that's why I knew about this tool. I guess it does not really matter what firmware runs there. The point is to be able to enter the bootloader and dump/flash new firmware there. Reverse engineering the firmware might help with porting to this platform. For start the login credentials would help - not sure if they are hardcoded in the firmware itself or computer from e.g. Serial Number. I'll check also the official BES flashing utility |
Okay, not sure if it does enable the watchdog as I don't have the firmware. But it might be possible to get it as the only way to update the speaker is Bluetooth OTA. So I could capture the binary. However, it will take me some time to setup.
Could you share what devices/evaluation boards did you encounter?
Here's the hex dump from Analog Discovery 2. hex dump
I just build the tool so I'll also check the code.
What do you mean? Closeup picture of the text on the SoC? |
I assume the firmware is in the internal flash so dumping the code off the chip (like desoldering emmc) is out of the question, right? Is it possible to use JTAG/SWD? Not sure what are the TPs or if the fuses are burnt but might help us if there's support in OpenOCD. |
Nobody got JTAG working on BES2300 yet (afaik) |
Of which (2) has a different silicon rev compared to the others; and works better with one programmer.bin compared to the others. Even though the markings on the top of the chip are the same.
Is it possible to get a timstamped log?
yeah, just a closeup of the test (or a transcribe).
Yes, I suspect there is an SPI flash die inside that holds the firmware and that is linked to a processing die. Only way I know of to dump firmware is via the ram running code; I havent gotten stable JTAG/SWD to come up. I think I got a probe once but never stable :/ |
@Ralim here's the closeup image of the BES2300 |
Thank you. I think a timestamped log / uart capture would be good. I'll also try and improve logging when I get a chance :/ |
Hi @Ralim,
thanks for the tool. I've recently bought the Xiaomi Smart Speaker and peeked under the hood.
The hearth of the device is BES2300 and after looking on the internet I found this repo.
So I soldered the wires for UART, dumped the init sequence to learn it runs NuttX.
The I used your tool to attempt to dump the firmware off the board.
Could you please help me as the file is not dumped but it appears the device enters into the bootloader?
https://gitlab.com/phodina/xiaomi-mi-smart-speaker
The text was updated successfully, but these errors were encountered: