IoT Side Table Appliance with Windows IoT Core

I recently upgrade my home PC setup to an all in one device. As a result I ended up with two identical 24" displays that I wasn't going to be using. The displays (two LG W2442PAs) aren't anything special, but they were in good condition and reliable - so they definitely weren't going in the trash.

Although Shelley might beg to differ, I'm not much of a hoarder, so if I am going to keep these two screens hanging around I had to put them to use. That's when I had the idea of turning them into appliances for side tables. One of the cool features of these particular monitors is that they have particularly long and sturdy stands, and the screen itself can rotate into a portrait aspect ratio.

Slapping a screen on your side table might seem like a strange thing to do, but when you think about a lot of folks pile a lot of different things up there such as lamps, phone chargers and alarm clocks. With a bit of creativity these screens could be turned into an appliance that does all three of these things. And so my project begins!

My first step was convincing Shelley that having a smart screen on the side table would be awesome. I'm not sure I am there yet, but I've started using Autodesk Fusion 360 to start to model the housing for the screen. I'm actually planning on taking stand off the screen and then framing it in timber. I'll probably cover the front of it with black acrylic around the outer edge of the screen and then put transparent acrylic over the top of that with a slight mirror finish (not shown in the render below). This will have two benefits, first it will block out the blue light from the monitors power LED, but it will also reduce the brightness of the screen in the room at night (the bleed from the backlight can be distracting).

/content/images/2017/05/FramePrototype.png

The frame is still a work in progress, but behind the screen I'll house a power-board to drive the screen itself plus any wall-warts required to drive the mini-computer that runs the screen and any chargers for phones etc.

Speaking of mini-computers, I've opted to use a Raspberry Pi 3 running Windows IoT Core. The nice thing about using the Raspberry Pi 3 is that it comes with a HDMI adapter built in, and Windows provides all the graphics drivers and the UWP programming model to build the logic that drives the screen itself. Because the Pi also has a bunch of GPIO pins, I might also be able to attach controls for the screen itself (I'm imagining a button-dial of some description. The Raspberry Pi also has Wi-Fi and Bluetooth built-in which means that I can connect it to the Internet. The other cool thing about running Windows on this thing is that Cortana is built in so if I attach a supported microphone I can issue voice commands to it.

My goal for today (and the genesis of this blog post) was just to simply setup the test-bed environment for the software as I evolve it. So far so good, I've got a Raspberry Pi attached to the screen running in our guest bedroom display the time and it seems to be working phone (although it isn't pretty yet since I haven't finished designing the housing).

At the moment the software is just driving a simple clock (it looks white here but it is actually dark red). One of the nice things that I found was that because I'm not currently using any special Windows IoT features I can easily debug and test my code on my local machine before deploying it across our in-house wireless network to update the appliance.