Shelly Wall Display

I think he has the device, not sure he has extracted the firmware

I managed to get adb working. Here is a small how-to:

  • Make sure you have wifi configured (you can also configure it directly from the serial)
  • Solder TX/RX testpoint to a USB-to-serial adapter
  • Power the device on
  • When you have the prompt on the serial console write:
settings put global development_settings_enabled 1
settings put global adb_enabled 1
setprop service.adb.tcp.port 5555
stop adbd
start adbd
  • On your computer you can then connect to adb using adb connect <Device Wifi IP>:5555
4 Likes

After manually installing Chrome (the default browser does not work with HA), I can finally get HA running on it :smiley:

5 Likes

wow, interesting u can access adb via the TX/RX pins but not via USB. GREAT FINDING

and with the above and a USB-C to USB-A cable (USB-C to USB-C doesn’t work for me on a Mac) you can get ADB through USB as well.

1 Like

Wondering if the same could work for the newer T6E displays, that have “Linux” (it’s some kind of Android branch) and have a password on the adb… Sadly the PCB has no labellings, so can’t find the TX/RX pins

Nice find! Is chrome always in foreground then? Did you also try to install the Home Assistant App?
How is the look and feel? This could be a gamechanger for this device…


Found way without soldering!

1 Like

Thanks for describing how.

3 Likes

I would be really interested into this! One stupid question: I know the dev team had a lot of trouble by getting the temp measurements not corrupted by the internal heating of the device. Did you check if when running Chroma/HA is getting hotter? Potentially you could also run HA companion app, right?

I didnt test much, BUT mt6580 is very basic low power platform. From my tests it takes around 2.5w when playing 360p video from YT so kinda hard load for this kind of device. So i hope it should not be an issue. Idle power is around 0.78w. All the tests do not include looses in psu as they are done with my bench psu

there is a more pressing topic :slight_smile:
maybe you misread nickrout`s ironic message: we all would like to know how you achieved ADB without soldering.

thanks!

1 Like

Well i can describe in general. But keep in mind I do not take any responsibility of any kind. Even more this will break stock Shelly app, it is likely trivial to restore but i didn’t try. First of all you will have to disassemble a device to get to usb c hidden inside. When you get to blue main board inside, unscrew it, remove the microphone on top and make sure not to destroy cable. Then pull top part out while making sure not to destory FPC’s on bottom, if you are not brave enough (or you dont want to risk) just disconnect both FPC’s on bottom (one is LCD another one is temp sensor). Then follow instruction in mtkclient/README.md at main · bkerler/mtkclient · GitHub to install mtkclient, it is avalible for Linux and Windows after doing so run:

/path/to/mtkclient/mtk rl dump

Make sure folder you are currently in have 8GB free space. While that is running connect usb C to a cable to pc and device, after that connect power to device. After that you should see backup progress, it will take a long while, around 20 minutes. Disconnect power, run

/path/to/mtkclient/mtk da seccfg unlock

Connect power back, after that command finished, disconnect usb and reconnect power. Device should show “Erasing” for a moment and reboot itself, after boot you will see shelly app with error message, but this time navigation bar on bottom and status bar on top will appear. Swipe from top to open quick settings, in there on bottom right there is a gear icon, click on it to open android settings, got to the bottom and open “About tablet” click on build number 7 times, go back and open an entry “Developer options” that did just appear. Here you can enable USB debugging, and use adb normally. So you can install apps. To restore shelly app you likely need to copying stuff from your backup, specifically a userdata. It is unencrypted so should be easy. Sorry for bad English. Anyway i will work to make process simpler. And i will likely build custom rom based on newer android, and one that will be easier to work with.

5 Likes

Thank you. A good write-up with pics would be great. I can give you a hand with the English if that helps.

The Community Guides section is editable, so if you start a post there, anyone can edit and help.

3 Likes

Sure here is the page, currently under construction: Installing 3rd party apps/firmware on Shelly Wall Display

1 Like

My few notes to the RX/TX version - I utilized the 0V and 5V pins as documented in the MTK version, soldered the pads RX1 and TX1 on the board to USB-2-TTL device and turned the device on.
The serial link is set to 921600bps, 8 data bits, 1 stop bit and with no parity.
Using that I have the prompts and can try to send the commands. My only problem - the prompt is running under user 127, so I cannot start/stop the adbd.
Any ideas how to proceed?

Huh 5V? No, i would suggest to stop right now. It is very dangerous for this kind of SoC. All logic is at 1.8v and even 3.3 can cause issues. And yes i did fry one mtk soc with 3.3.

No worries, the 5V come from the plug at the back, there is DC2DC converter on the board and the serial uses 3.3V signalling.

Ah sure, i thought you used 5 for uart. Actually user 127 sounds reasonable as for android, can you run getprop and share output

1 Like

So, minor progress.
I’ve run the commands

settings put global development_settings_enabled 1
settings put global adb_enabled 1
setprop service.adb.tcp.port 5555

but I did not have enough rights to stop adbd.
Instead, what I did was to issue killall -9 adbd - this killed and restarted the adb daemon with the new tcp port.
After it started, I can do on my PC adb connect <ipaddress>:5555.
The only “problem” is that this only survives until restart :slight_smile:
Now, I can try to upload HA or something…