A year ago, I have started working on a custom made touchscreen remote as I couldn’t find anything out on the market that I liked and would have been easy to integrate with HA. And also wanted a challenge
After a year of trial and error, learning about PCB design and trying to source all the components as well as spending way too much money on getting the desired finish I wanted on the parts, I managed to design and produce prototypes that are working.
So here it is (with an older version of the UI):
A fresh screenshot of the updated ui:
Dimensions: 185x54x10 mm
Case: CNCd, anodised aluminium
Back cover: 3D printed
Proximity cover: 1mm smoked acrylic
It runs on a Raspberry Pi Zero W (I cut off the USB and HDMI ports for space saving) that is mounted on a custom designed PCB, which has battery charging IC, boost circuit (basically a modified PowerBoost 1000C), has FCP connectors for the display and the touch controller. This PCB also has an ADC to monitor the battery levels. A secondary PCB is connected to this one which has an APDS9960 proximity/gesture sensor on it that I use to control the display brightness and to have gesture input, so you don’t necessarily have to touch the remote when watching a movie and have popcorn fingers
The display is a 3.5" 480x800 high resolution capacitive touchscreen panel with a glass cover (Sharp LS035Y8DX04A), that runs in 18bit mode.
On the back I have a momentary capacitive touch button to turn the whole thing on.
It currently runs on a 2000mah battery and it lasts around 6-8 hours depending on use.
It has a charging dock that connects to the remote with pogo pins. Nothing special on that one, it’s basically just takes a microUSB and connects it to the corresponding pins.
The OS is built with buildroot to have just the necessary things in it.
The software itself is written in QML with Qt. There are also some python scripts that run in the background dealing with standby modes, etc. as well as monitoring the battery. The software communicates with Home Assistant via websockets and the scripts are also using websockets to communicate with the main app. The whole thing is very snappy.
There are some basic battery saving functionalities and some very little optimisation in the software itself. I’m not a developer nor a mechanical engineer, so I’m learning as I’m working on this project.
But so far (past 1 year) the whole thing is pretty stable and I am using it daily.
Right now I can control the lights, heating, blinds, music and Apple TV, harmony devices. It’s kind of hardcoded to my needs, but that is something that will change.
Currently I am working on the next version, which will have a 2500mah battery, more advanced battery monitoring, 3 physical buttons and a pulsating LED on the charging dock
Also updating the software part to prepare it for a public release if you guys want to give it a go. I am trying to build it in a way that it could also live on a bigger screen, for example a 7" Raspberry Pi touch screen.
And last but most important, continuously polishing the design
I am hoping that in a couple of months, I will have the second prototype ready and functioning. My plan is to release all the schematics and files for this project, so anyone can build it.
Meanwhile I’m working on the new version and the updated software, if you guys have any ideas or thing you’d like to see in this, please let me know Would you build something like this? Would you rather have it as a kit? Any ideas are welcome!
Github page: https://github.com/martonborzak/touch-remote