@marton asked me if I’d like to test and develop with one of his prototypes. I was really honored and of course, I couldn’t say no. He lent me one of his prototype remotes with docking station and the package just arrived last week.
How my journey started
The first time I learned about YIO was only two months ago. I’m one of the expelled NEEO backers hoping to find some lucky news in their forums about extending the remote’s life.
There it was: a post about the YIO Remote project!
I was hooked in no time and began building my hack setup with similar components Marton used for his remote. As a developer and Raspberry Pi lover I wanted to use real hardware and not just the “emulated” remote software on the desktop until the YIO do-it-yourself kit is available.
This is how it began:
With this initial setup I was ready to contribute. I joined the YIO community and started working on the automated build process and simplifying the Buildroot Linux build.
Enough of myself, if you’d like to know more then please read my introduction post to the YIO community, check the GitHub project or follow me on Twitter.
What follows are my initial impressions of the YIO Remote while using it for the last 10 days.
My very first impression was wow! The build quality is simply amazing although this is not a retail product from a commercial company with a whole team of engineers and a big budget.
The YIO remote could easily be mistaken for a retail product though. Since I’m still using my NEEO remotes daily I will compare certain aspects of them. I also think there are many NEEO users wondering if this could be their replacement once it stops working. The hardware part is rather easy, software wise they follow a completely different philosophy. See the software section below for more details.
The YIO Remote is a little bigger than NEEO. It still feels comfortable holding it, I can easily reach all buttons and use the touch screen without moving my hand. Since I have larger hands, I let my girlfriend try it out and she had no problems using it.
The NEEO weights about 125g, YIO 155g.
The screen resolution of 800x480 is great for a 3.5” screen. Text and images are sharp. The only drawback is the color limitation of 6bit per pixel which is due to the Raspberry Pi’s limited IO ports when using a parallel display interface. I think it’s a good compromise, we are speaking of a remote with a color screen and not a mobile phone used for media consumption.
I never encountered flickering or image errors which I got with my hack setup using a HyperPixel display (most likely due to interferences or too long cables).
Scrolling is super smooth and screen animations are looking good. This is quite amazing when you are aware that the brain of the remote is a Raspberry Pi Zero.
I think buttons are a very subjective matter. There’s no general right or wrong, unless of course they are really bad or don’t work. Initially I didn’t like the harsh buttons of the NEEO remote or the short travel of the infamous Apple butterfly keyboard, now I’m used to it.
That was the first big difference I noticed between NEEO and YIO.
YIO buttons have a softer feel with more travel and require more pressure than most remotes I have at home. I think they have a good feel though. They are not that soft as my Sony RM-ED052 TV remote which I don’t like.
The backplate of the remote is also immediately noticeable. It’s not smooth, rubbery or plain plastic as most other remotes but since it’s 3D printed it has a textured surface.
It felt a bit irritating to me at first, but now when I pick up the remote I no longer move my fingers up and down the backside because it had that unknown feel to it
If I’m extremely nit-picky there’s a very tiny little backlight shining through at the edge of the display. Marton assured me that’s easy to come by during assembly and that he hurried gluing in the display. A bit of masking tape should work wonders.
I couldn’t warm to the haptic motor yet. For me it’s too strong and hasn’t the subtle click imitation of Apple devices. Since the motor is software controlled there’s probably some optimization possible. Or, worst case we can add a configuration option to disable it.
What I’m missing on the remote compared to NEEO is the physical ‘general power off’ button. It’s very convenient to press one button and the whole home cinema equipment including lights switches off. There are spare buttons on the YIO Remote to map this functionality, e.g. long pressing the ‘solid square’ button. That’s something I’ll try out once I get to control my AV setup.
The weakest point I see of the YIO Remote is the battery life. Unless the Raspberry foundation or rather Broadcom opens up all features of their SOC there’s no standby functionality available. Sad but true. This means the RPi zero is constantly using +/- 80mA (without WiFi) which limits usage to one day without recharge. Therefore, the remote needs to be docked at the end of the day.
Available power saving features are switching off WiFi or the complete remote after user configurable times. A cold boot into the remote application takes around 28 seconds.
Compared to NEEO this is indeed a weak point. However, the promised weeklong standby (or was it even a month?) never worked on my two NEEO remotes. With light usage they also require power after about three days.
Hardware: Docking Station
The primary function of the docking station is to charge the remote. The dock has a surprisingly light feel which my kitchen scaled confirmed: the NEEO base I’m used to weights a heavy 350g, whereas the YIO base is a mere 55g.
I was afraid that the base might not be sturdy enough and tumble with the docked remote. This is not the case, the remote sits firmly in the base and I never had a problem that the charging didn’t start. This is done through high quality pogo pins which work flawlessly.
The USB-C port in the dock is a great addition. It works with all USB-C chargers and cables I accumulated over the last year. From cheap Aliexpress cables to Apple’s MacBook Pro 87W charger with its active cable.
The tested chargers are: Apple 87W, Anker Power Port 45W, Helper 60W, Lenovo 65W (4X20M26272), Pimoroni Universal USB-C Power Supply, OWC Thunderbolt 3 Dock, MBP pro 2018.
The coolest thing about the docking station however is its brain. It’s not just a dumb charger but contains an ESP32 system on a chip with Bluetooth and WiFi. During the initial setup wizard of the remote the WiFi credentials are transferred to the dock over Bluetooth. Once the pairing of the dock with the remote is established the dock can be used to emit infrared codes!
That’s something I couldn’t test yet, however. The dock also has IR learning capability but I’m not sure if that’s already been implemented. My prototype doesn’t contain the 3.5mm jack yet for IR blasters. That’s a nice addition if you have all devices stored in a cabinet.
The dock will come with its own web server to configure it. Another nice feature if the USB-C is connected to a PC is the serial log console. The console doesn’t act as input for API commands though. That would be a welcomed addition and shouldn’t be too hard to implement. At the moment the dock can be controlled over serial Bluetooth and WebSocket once connected to WiFi.
Further differences between the YIO and NEEO docks:
- NEEO has a magnetic pull putting the remote into the dock.
The YIO Remote just slides in. According to Marton there are also magnets but they are barely noticeable.
- The NEEO dock is dumb.
The YIO dock has a brain, IR sender & receiver and a LED status light.
- As mentioned above the NEEO dock is really heavy and comes with a rubber ring at the bottom. This makes the NEEO dock resistant to move or slide while docking the remote.
The YIO dock sometimes moves a tiny bit when docking the remote. This was a concern, but after a few days I don’t notice it anymore. One could just add some rubber feet for slippery surfaces.
- The NEEO Dock uses a small barrel plug whereas YIO Dock comes with a universal USB-C plug.
The YIO Remote software and integration plugins are open source and under heavy development. Almost every week new functionality is added and known bugs removed.
While setting up the YIO Remote to connect to my WiFi I hit one bug I discovered a few days earlier. If the network integration takes too long the remote setup wizard thinks the setup failed and wants to start over again. (I’m currently rewriting the WiFi control code to make it more robust). This happens for example with Ubiquity UniFi APs. Since I already knew what the issue was, I could finish the WiFi connection on the remote manually over SSH. Unfortunately, this skipped the dock integration wizard and Marton helped me out setting it up manually with the Bluetooth serial connection.
The next challenge was the home automation backend. At the moment only Home-Assistant and Homey are supported, I’m using openHAB. Since the openHAB integration driver is not yet ready I decided to quickly setup Hass.io on a spare RPi and integrated my Phillips Hue lights and Sonos speakers to have something to play around with.
This is the main difference of YIO and NEEO. YIO is an extension to an existing home automation system, NEEO is (well was) a full package. The brain is the automation system including Z-WAVE, Zigbee etc hardware. A mobile app provides the setup of the system. Device support (IR codes) is downloaded from their cloud service with very little customization support except the driver API for developers to write custom drivers. Since NEEO abandoned its backers the NEEO remote future is dark. Most likely it will stop working once their cloud services are switched off, or at least no longer allows to add any new devices.
YIO is different. From a maker for makers. Bring your own automation system and be part of a community. The possibilities are endless
But this also means you can’t just put it together and expect all your devices will work with it. Lots of functionality is still missing at the moment but it is planned and being worked on. E.g. basic AV equipment support so you can control your TV, change channels and volume.
This week’s Spotify integration (on the remote itself!) proofed that the system is flexible enough for all kind of integrations and that the developers work together to improve the APIs.
There are some functions I couldn’t use yet:
- Bluetooth beacons
They dynamically change the screens when you move into another room.
- Blinds control
I have blinds in the living and dining room which are automated with Z-Wave and openHAB. Since Z-Wave has been a frustrating and fragile journey for me I will not tinker with it until I replace it with simple Shelly WiFi switches.
As a developer I have to add a programming section!
I still believe Qt is a great solution and its graphic capabilities on the RPi zero are amazing. The C++ “backend”, powerful dynamic UI, and the Qt signal & slot framework are a powerful package! One just has to overcome the initial hurdles and common traps. Unfortunately, lots of Stackoverflow “advice” in regard to QML is simply wrong or outdated which one needs to be aware of. (No, debugging is not writing console.log statements. QML debugging works with the right settings).
I hope I didn’t scare any potential C# or Java developer off with that. All I’m wanting to say is that this is a different world and doesn’t work the way we are used to or take for granted.
With Qt’s embedded device support, one could think of a future custom embedded board…
While writing this initial review I almost referred the YIO remote as a “product”. But that’s not what it is! With all the excitement about the upcoming crowdfunding of the YIO kit this is the most important point everyone needs to be aware of.
YIO Remote doesn’t work out of the box.
YIO Remote needs assembly.
The assembly requires soldering & maker skills.
You need to bring your own Raspberry Pi Zero AND remove it’s HDMI and USB ports.
You need a working and supported home automation system! Or write / wait for an integration driver.
This is not a Logitech Harmony nor a drop-in replacement for NEEO.
BUT for me the remote is truly awesome and the possibilities are endless. It’s open source and the user is in control. No cloud services. No proprietary software. No company trying to make money, limiting features or ending support. From my point of view this is its greatest strength and weakness at the same time. I believe that makers, developers and tinkerers will love it and come up with very cool ideas and enhancements. My personal to-do list is constantly growing…
All those cool features will certainly drive up expectations and end up in disappointment if the “fine print” has been ignored.
I’m looking forward to the crowdfunding, assembling my own unit and to welcome new participants in the YIO community!
Questions? Shoot! I’ll try to answer them to the best of my knowledge.