Crestron TSW 1060. POE HA dash for $30. Firmware

Just FYI anything even remotely ‘heavy’ running under the EMS app (as browser) which writes to the little internal SD card will destroy it very rapidly (<1mo). I’ve killed about 3 panels. One of the worst offending cards on my dashboard for some reason is the mini graph card (HACS): GitHub - kalkih/mini-graph-card: Minimalistic graph card for Home Assistant Lovelace UI. Works beautifully on mobile and laptop, but seems to really eat these tablets’ SD cards. It might also just be that’s the final straw because I have ‘picture’ cards showing cameras which seem to also be pretty heavy. ANybody had success in reducing internal storage writes on these things?
Relevant log:

Notice: /system/bin/crestErrorLogServer # 2025-06-10 07:32:40 # SDCard Write COUNTER: 246782728
Notice: /system/bin/crestErrorLogServer # 2025-06-11 07:33:14 # SDCard Write COUNTER: 248309944
Notice: /system/bin/crestErrorLogServer # 2025-06-12 07:33:35 # SDCard Write COUNTER: 249446956
Notice: /system/bin/crestErrorLogServer # 2025-06-13 07:33:47 # SDCard Write COUNTER: 249466684
Notice: /system/bin/crestErrorLogServer # 2025-06-14 07:33:59 # SDCard Write COUNTER: 249493280
Notice: /system/bin/crestErrorLogServer # 2025-06-15 07:34:18 # SDCard Write COUNTER: 250137326
...

650k writes per day seems very extreme… That SD card should be dead on a daily basis if that’s true write cycle counts. My own 1060 for record:

TSW-1060>SDCARDSTATUS -vv
SD Card Counter is: ON
Initial Counter On Boot = 220888416
Current Boot Counter = 17274688
Max Hour Counter = 929038
 goodBlockPercent = 099.67
 endurancePercent = 095.93
 averageEraseCount = 814
 minEraseCount = 3
 maxEraseCount = 821

I wonder what those values actually mean… time to dig!

Hi all, following this thread with great interest, amazing amount of work done so far for these screens! :slight_smile:

I have TSW-1060 and after I did the 10-step reboot sequence it reset to defaults and I was able to run HA dashboard using EMS. But just stop using that because of the issue with SD card writes mentioned. But will try other methods of running HA soon!

Anyway, I was in the office today and noticed that we are using meeting screens from CONDECO. Accoring the info I gathered they are quite old ones running Win CE 7, but have the same screen and resolution as 1060, more info here https://fccid.io/2ACMLT201502/Users-Manual/User-manual-2750270

I found few on Ebay with some as low as 18USD per unit! So I thought I will just mention it here in case somebody will find it easier to get to these panels, since its running CE it have a IE embedded. However question is how that old IE will work with latest web technologies :slight_smile:

EDIT: I found listing for one of the screens and noticed it have “Android” sticker on the back. It seems there were two versions of these screens, one with CE and one with Android? There seems to be discussion here about rooting them https://www.reddit.com/r/embedded/comments/ks7oy1/flashing_a_new_os_on_a_formely_used_booking_panel/

1 Like

Those Condecos look interesting, though also not quite as polished as the Crestrons.

The WinCE tablets might be converted to run some very light version of Linux, perhaps? The Android ones I’d honestly probably skip in favor of buying some newer unbranded meeting panels from Aliexpress, though YMMV.

I wonder if this would have the same effect to the xx70 panels. 70 series ones don’t have SD cards but I doubt the flash storage is “robust” by any means. I’d hate to kill one of my 770s since they’re still a little pricy. My dashboard is mainly just bubble cards and a couple default graphs though lol.

Maybe a decent temporary solution would be to sideload the fully kiosk browser? Anyone have any pointers for ADB access on the xx60 panels? I had a hard time finding instructions on here for those who already did it.

TSW xx70 v3 Firmware Info

Been doing some testing on the 3.x firmware for the xx70 panels. Here’s what I’ve noticed so far. (These are basic findings, most of which are already posted here.)

ADB
Access to ADB works using the “Wireless Debugging” option in developer options. (appmode com.android.settings). To enable it, you’ll have to disable the ethernet interface through the management web ui. After that you can connect to wifi and enable the adb option. You won’t be able to access a root console, but you can sideload apps and do basic non-root activities.

Firmware Downgrades
Not possible. Don’t even try. I attempted to downgrade using all available methods with no luck.

HA Companion App
Launches totally fine in the new firmware but gets closed due to the crestron “HomeService” or “Splash” app. I forget which one, but it’s one of the two. I suppose you could disable them using ADB, up to you. You can also set the HA companion app as the launcher using it’s settings menu. This may be another way to get around the crestron protections.

Performance
My panel feels slightly better with the new firmware, especially on larger dashboards, but it’s not enough of a difference to recommend upgrading just for the slight boost you may see.

Bluetooth
Looks like bluetooth works now. I couldn’t ever get bluetooth to work properly with the old firmware. Not sure if this means anything to anyone.

Is the 3.x update worth it?
No, unless you want the companion app for some reason. Otherwise, stay on 2.x firmware. You aren’t going to gain anything significant other than possibly a slightly newer webview version and a fancy new settings app.

Let me know if y’all want me to do any further testing on the 3.x firmware. If anyone finds a way to downgrade back to 2.x, let me know and I’ll update this post for future viewers.

For my xx60s, I patched my sshShell.sh file to easily escape into a bash prompt, but this does require re-application on updates.

For xx70 units, I updated /data/crestron/config/rc.conf to have TELNETPORT="2" (see around that link for instructions) to permanently enable SSH port 6022, which also dumps you into a root shell.

In either case, I can just run stop adbd; start adbd in the root shell to gain full access via ADB and do whatever I need to do.

I will note both of these options do open a security vulnerability as it means anyone who can log in to your device can access a root shell and perform a privilege escalation to root, but I deemed this specific problem acceptable in my home environment. I absolutely wouldn’t do this in any professional setting, though.


Yeah, this isn’t gonna happen. You basically need to totally reimage the internal flash storage, which, honestly, I’m not even sure we have the proper interfaces to talk to the bootloader at that level.

This should actually be fine. Can you install the HA Companion App and then set APPMODE io.homeassistant.companion.android in the standard SSH interface?

Yes, but I used the minimal APK from the HA github. I feel like I head somewhere that the full APK requires google services or something. Once I installed the minimal APK using wifi ADB, I was able to launch it using the regular SSH shell.
APPMODE io.homeassistant.companion.android.minimal

To help coordinate stuff a bit better, we now have a Discord link for anyone interested in joining a realtime chat. I will do my best to keep relevant information here as well.

There’s gotta be a way to redirect cached rights to a RAM-backed tmpfs mount. It looks like the Android distro wants to do that (I see a tmpfs mount at /data/data/org.chromium), but both General Web and EMS apps seem to use different folders in the /data/data directory. Haven’t tinkered with manually creating a new tmpfs mount yet…

Of note: EMS/General Web doesn’t actually use Chromium. It uses the system’s built-in WebView, bundled with the OS. The only place Chromium is actually used is when invoking the Open Browser or Browser URL joins.

As a result, the webview also cannot be updated outside of a firmware release from Crestron, despite Chromium being updateable. This is also why the browser is Chrome 118 in the web views, but only Chrome 100 via the actual browser interface on the xx70.

I stumbled on this thread about 4 months ago after dumping the SPI flash to dig around and try to figure out what was locking down the TSS units. Thankfully you guys were beating me to it just as I was getting here. So I’ve been lurking for a while.

I don’t have too much value to add from a software perspective, I’m more of a hardware person myself, but I did want to mention that I believe the xx60 units are using an Amlogic S812 SoC. This chip was mostly used in Android TV boxes. Any idea if one of those builds might just work? Again, I’m admittedly not a software dev, but it seems mildly possible to me and may save some effort.

Aside from that, I do know a few Android developers that expressed mild interest when I shared this effort with them. Not sure if they’ll get anywhere, but more smart people looking at this surely can’t hurt.

Anyway, great work so far. It never ceases to amaze me when determined people apply group effort towards a common goal. I have no doubt that what is possible will be realized before you guys give up.

Yeah I looked into this a bit, they are using the S812 but all the builds I could find were very old. I am not familiar with Android development currently so I’m not sure how loading a custom ROM on this device would work. It seems the xx60 devices boot first off the internal flash and the SD card as a secondary so we might be able to test it by forcing it to boot off the SD.

Certainly would be cool to see something along the lines of LineageOS or something running on these panels. I’m not sure if the bootloader is unlocked, but if it is, flashing a custom rom should be achievable. XDA is a good place to look for that sort of thing. Perhaps some devs over there would be interested in building an image for the Crestron panels.

It appears that Crestron is following the GPL agreement required by Android so in theory we should be able to get a BSP (board support package) from them. Although, linked somewhere in this thread is a GitHub repo with what appears to be a stock Android build for this device that someone else was working on. I believe people have reached out to him asking for details and he has not responded. Assuming that build worked, we could build off of it.

Has anyone tried booting one to fastboot or recovery? I wonder if it would respond to a USB keyboard plugged into the accessory port during boot up. We have ADB access though so it should be as easy “adb reboot bootloader/recovery”

I’ll see if I have time to mess with mine this weekend.

I’ve booted one into recovery and it seems to look for some sort of recovery file on a USB stick or something, haven’t dug further than that.

Don’t even bother with the condeco panels, they run on an imx5 chip and are extremely limited. I got one working with basic buttons but even that was a struggle for them.

I have one of these panels up and running, a big thanks to everyone for their information and to @KazWolfe for the great video on using Node Red to control it via SSH. The panel works really well and I’m just about to mount it into the wall however, now after reading the posts from the past couple weeks about longevity.

  1. How bad will the flash disk get hammered using a normal dashboard?
  2. What is the best way to access the log showing the writes to the disk to determine if this is a problem?
  3. Is this something to worry about, or just mount it and hope for the best?

Haha, I’m the one who made the YouTube video on SSH control. I’m glad you got it all set up! I think we’re still trying to figure out the disk activity issues. The high numbers reported by other users seemed inaccurate because the SD cards in the xx60 series would be dead if those numbers were true. I wouldn’t worry about it too much as long as your dashboard isn’t too big. You can check the activity by running SDCARDSTATUS -vv

Thanks @sheepcounter, you guys have been doing some great work, sorry for not crediting you for the video.

I ran the SDCARDSTATUS and got the following, I have no idea if it’s good or bad. Guess I will cut a hole in the wall and install it. I really like the look of these panels and the dashboard looks really clean on them.

SD Card Counter is: ON
Initial Counter On Boot = 7496152
Current Boot Counter = 114200586
Max Hour Counter = 524390
goodBlockPercent = 099.53
endurancePercent = 095.49
averageEraseCount = 903
minEraseCount = 2
maxEraseCount = 911