Digital frame by Emil Vikström

This is how I built my own display for important information. We have it on the wall in our hall to show the weather forecast, train times (and delays), money on our debit cards and similar data.

I began by looking for a good digital photoframe which I could continuously upload a new photo to from a computer, but I couldn't find any good one (except for really expensive frames with wifi in the $200 range). The cheap ones cannot be connected to a computer at the same time as they're displaying pictures. I also realized how hard it would be to wire a long USB cord all the way to the nearest computer.

I settled for building my own display screen out of a second-hand 7" EeePC from Tradera (eBay in Sweden) coupled with a Ribba frame from Ikea. The Ribba frame is great for this since it's so thick that it can hold the computer inside. The width and height matches perfectly as well, and it's really cheap. The total cost for this was 850 SEK ($130 USD).

Asus EeePC 701 and a Ribba photo frame
Asus EeePC 701 and a Ribba photo frame

After installing the operating system (and configuring the wifi network), I started to disassemble the computer to make it possible to fold the screen all the way to the downside of the computer. This way, the frame is facing outwards while the whole package is folded. While disassembling the computer I followed this blog post. I also cut off a lot of plastic from where the screen was fitted to make it thinner. If you are going to do this at home, don't forget to take photos of cables before disconnecting.

Laptop without cover
Laptop without cover
I cut plastic
I cut plastic
Ready to be folded
Ready to be folded

Note that I didn't remount the keyboard. We want as much open area as possible for passive cooling. I actually run this thing with the fan disabled.

Folding
Folding

Some double-sided tape worked well for holding the screen to the computer.

I made my own framing mat out of thick paper. I also cut a hole for the webcam since I'm using motion detection to activate the screen (to save on the background light). The mat is taped onto the screen.

Framing mat
Framing mat
Done
Done
Booting the display frame
Booting the display frame
This is how the frame is mounted inside
This is how the computer is mounted inside
My own information screen, mounted in the hall
My own information screen, mounted in the hall

The rest is software. I programmed my own interface for fetching and displaying all the data, using C with GTK. A web page or a ready-made widget software could have worked as well, if you want to make your own screen without the programming. For a regular digital photo frame it will suffice with a slideshow program.

Motion detection is carried out by Motion using this config file and script:

output_normal off ffmpeg_cap_new off night_compensate on auto_brightness on framerate 15 threshold 1500 gap 60 on_event_start echo begin on_event_end echo end lightswitch 0 #!/bin/bash export DISPLAY=":0" motion -c motion.conf 2>/dev/null | while read ACTION; do case "$ACTION" in begin) echo Open xset dpms force on ;; end) echo Close xset dpms force off ;; esac done

The CPU is downclocked to only 112 MHz (the slowest the Celeron in the 701 can go) in an attempt to minimize the heat production. To do this I installed p4_clockmod and cpufrequtils. I switched to the userspace governor and set the speed to 112500. The motion detection works surprisingly well even at this low clock frequency, and uses just under 12% of the CPU. I cannot tell whether this makes any real difference in temperature however, considering the powersaving features of modern processors. By the way, here's how I disable the fan:

echo 1 > /sys/class/hwmon/hwmon1/pwm1_enable echo 0 > /sys/class/hwmon/hwmon1/pwm1
The information screen
The information screen