Controversial position: the world needs more buttons. We’ve gotten so far away from physical interfaces like buttons, knobs, and switches in favor of sleek but sterile touch-screen “controls” that when we see something like this big red button so toddlers can start a TV show, we just have to latch onto the story and see what it’s all about.
As it turns out, the big red button itself is probably the least interesting part of [Mads Chr. Olesen] build. The real meat of the project is the reverse engineering effort needed to get Chromecast to start the show. As [Mads] explains, once upon a time a simple GET
request to a URL was all it took to do so, but no more; Google has repeatedly nerfed the Chromecast API over the years, enough that [Mads] had some digging to do.
Luckily, pyChromecast is a thing, but using it for DRTV, a streaming service of the Danish Broadcasting Corporation, required figuring out the AppID of the DRTV app. It looks like [Mads] used Wireshark to sniff traffic to and from the Chromecast, and netlog-viewer to analyze the capture. That and a little Developer Tools action in Chrome led to all the information needed to modify pyChromecast to support DRTV. The rest of the project consisted of building a box for the huge red arcade button and wiring it up to a Wemos D1. A Raspberry Pi actually talks to the Chromecast, and now the toddler is able to call up his favorite show and pause and restart it at will, no parent required.
We appreciate the reverse engineering heroics [Mads] displays here, which provide good general lessons for other purposes. It’s been a while since we’ve seen a Chromecast physical interface build, too, so we appreciate the refresher.
When my kid was a toddler I lacked sufficient know-how to pull this off. I did manage to train google assistant to recognize his cries for Chuggington. So whenever it heard “TUN ON” the routine would start up netflix and start an episode.
The world does need more buttons. This gets into the whole business of human interface design.
I suppose there is a “right number” of buttons. I think of digital cameras that I own with complex menus versus old school cameras where you developed muscle memory to manipulate controls. Vehicles are a particular place where knobs and buttons are vital. You can’t be squinting at some menu in bright sun while drifting out of your lane, etc. I have one radio (I am looking at you Sony) that is hopeless to use without getting into a wreck.
At for TV watching on demand for toddlers — it sounds like great fun. I leave the issue of unlimited toddler TV for others wiser than myself to work out.
I’m not sure if it is a question of ‘right number of buttons’ rather than ‘right number of tasks’ – your DSLR can have all the twisty dials buttons and knobs for every task you could need while shooting all distinct and easy to use by feel (once you learn the camera). But it can’t also take phonecalls, surf the internet, drive your RC toy etc – at some point a task is worth having a dedicated input that is really great at what it does, but by its nature it can’t easily do everything, and conversely sometimes a more multitool approach is probably correct.
With for me something like a normal modern smartphone* be the prime example of how to do it badly and the Steam Controller or Steamdeck being great examples of how far you can push HID devices to perform many tasks well – but it is still in effect a unique controller for each game you have a config for, so maybe you are right and it is the ‘right number of buttons’ as the same ergonomic layout used in entirely different ways for a different task – having as many buttons and the other variety of controls that easily can be reached you give yourself a great deal of choice to use the same HID for alternative uses – so if you could strap a big sensor and lens to the back it would probably make a rather more complete camera than a phone can..
*Though there are better smartphone than the more generic everything but power and perhaps a volume rocker on the touchscreen – for instance the ‘S-pen’ stuff is going to be really good for many tasks (when the software supports that input), and a few rare phones out there still have physical keyboard, mini joystick/trackball or gamepad type stuff that will let you do more things by feel.
“Sterile” touch screens might be the wrong word.
What toddlers really need are molly guards.
Just because you can let a toddler decide when to watch TV and what to watch, it doesn’t mean you should. Many parents are scarred enough from too much Paw Patrol as it is.
How is it a controversial position?
Touch screens are objectively worse controls than a physical button/switch/dial/etc in almost every situation. (Possible exceptions include finger painting?)
They got popular because they were more convenient than carrying a keyboard for a phone, or giving up the screen realestate.
Then, when consumers showed they were willing to deal with shitty controls, designers implemented them because they were cheaper.
Touch screens are still wildly overused though.
If the control needs to be used without looking at the device, it NEEDS to be a physical control, not a virtual/touch control. I’m looking at you [everything in a car].
/Rant/
Voice control is nearly as bad as touch.
Especially so while driving.
Voice control requires us to be removed from the current situation (driving) to process the command and response to/from speach.
Several studies have confirmed that speaking/listening is distracting to drivers. It is likely due to the way we create a “space” where we imagine the conversation happening when the target is not in the center of our view. (Which they shouldn’t be while driving…)
Physical buttons/knobs don’t have the same problem due to how humans use tools.
We don’t have to process [volume down] > [words] > [speak words].
We just [volume down], because the control is an extension of “us”.
It’s the same way we control the vehicle itself.
We don’t think [slow down] > [press left foot on brake] > [turn left] > [move hands to rotate wheel counterclockwise] > [wait till turn complete] >[release wheel to stop turning] > [accelerate] > [press right foot on accelerator]
We just [slow self] > [turn ourself left] > [speed self up].
The car IS us.
Tool use…
This is a really good explanation of why proprioception is so important, and should be required reading for any interface designer.
Nerfed? Like made it less powerful/dangerous to other players? Made it more like a nerf gun than a real gun? Is that really the word you were looking for? Especially with no supporting details as to how it’s weaker? In fact, it sounds like it’s more powerful/complicated so pychromcast was made, so I doubt nerfed was the word you were looking for…
I read it as “narfed”, tried to associate it (without success) with Pinky’s verbal ejaculations in “Pinky and The Brain” (Warner Brothers cartoon)
But maybe it is more relative to Nerf Bars on California customs (hot rods).
It sounds like this project was much harder than it needed to be because Google keeps updating their API and breaking things. I submit that it would have been easier to start with an open platform that can’t be remotely broken by Google. Then again, I am biased because Kodi on my Raspberry Pi has Just Worked in daily use since early 2020. Accepts keyboard, mouse, TV remote, and you could hack up any custom controller using a Digispark or similar for less than the price of a coffee.
Replying to myself here, this is also why I’d never waste my energy making mods for Chromecast, Alexa, Twitter (whatever it’s called now) Reddit, Facebook or Nintendo. So many cool hacks then get broken or held to ransom by arrogant greedy companies that were under zero threat from the cool hack. Quite to the contrary, the cool hacks broaden the appeal of these platforms. Hell, Nintendo sues people for porting abandonware to new platforms, and they *hate* emulators. Way to squander the goodwill of the community.
I have much respect for those people who are happy to gamble their time making such mods, but I encourage those people to think about whether their cool hacks would be better applied to more open platforms so their hard work won’t get torched at the whim of some greedy company.