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).
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.
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.
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.
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