mozilla / connected-devices-experiments

INACTIVE - http://mzl.la/ghe-archive - A place to publish experiments and investigations from the Connected Devices team
10 stars 6 forks source link

Smart Mirror #6

Closed sfoster closed 2 months ago

sfoster commented 8 years ago

I'm working on a "Smart Mirror" implementation. Software parts will live at https://github.com/sfoster/scry-pi, and I'll be blogging progress at http://www.sam-i-am.com/blog/2016/02/smart-mirror-build-log-intro.html

KatieCaldwell commented 8 years ago

cool, looking forward to your updates!

sfoster commented 8 years ago

I gave a quick presentation on this at the connected devices meetup in San Francisco. Slides attached scrypi-connected-meetup.pdf

I got lots of interesting feedback. I was asked why I didn't use Firefox/Chromium/Epiphany and opted for Uzbl and my response was that the full browsers were too heavy and slow to start up, and in the case of Firefox (IceWeasel actually) and Epiphany didn't provide me a good way to get a modal, full-screen "kiosk" mode. But I should go back and quantify the "too heavy" as although I have "1+ minutes to startup" in my head, I didn't record numbers.

sfoster commented 8 years ago

One thing Uzbl brings out of the box is the ability to remotely control it. As the device has no keyboard or pointer, this is important for development - I can trivially tell it to reload the page over a socket - which I've done repeatedly while tracking down various compatibility issues in its rendering (its a fairly old version of webkit)

sfoster commented 8 years ago

While I plan how to blog the rest of this build to bring it up to date, a few thoughts here. I few people asked how I intend to productize this. I don't, but it did make me think about what would need to happen to make this more approachable.

Packaging

It would be possible to create an mini SD card with a ready-to-go image on there with the latest Raspian and all the software and configuration to run the smart mirror. That would allow you to assemble a kit with some/all of the necessary pieces included: Raspberry Pi 2, SD Card, Wifi adapter, Two-way Mirror, TV/display, Sensors, cables etc.

Software updates

For the various packages as well as the scry-pi code itself. Would need to run some update checker code at boot. In the end I suspect it would be easiest to establish a ppa and manage the whole thing as a package.

Network configuration

To put the mirror where you want it, I'm assuming it will need to be on wifi. With no built-in input methods, this is difficult as you can't ssh into the machine until its on the network. I guess lots of devices have this issue. If you plugged into ethernet initially, it should boot and show you the IP on the dashboard, which gives you a way to remotely admin. Not very consumer-user-friendly though. What do other products do here?

Feed & Device configuration

Realistically, you would want to customize the dashboard somehow. I don't really want to get into the business of making special widgets for every possible thing. The dashboard is configured from a JSON file and it would be possible to build a UI for this. Probably that would mean a /edit route, with a means of picking from pre-defined widget types, data sources and configuration parameters. That would also let you enter a location.