OpenHardware : Ambient Light Sensor

My OpenHardware post about an entropy source got loads of high quality comments, huge thanks to all who chimed in. There look to be a few existing projects producing OpenHardware, and the various comments have links to the better ones. I’ll put this idea back on the shelf for another holiday-hacking session. I’ve still not given up on the SD card interface, although it looks like emulating a storage device might be the easiest and quickest route for any future project.

So, on to the next idea. An OpenHardware USB ambient light sensor. A lot of hardware doesn’t have a way of testing the ambient light level. Webcams don’t count, they use up waaaay too much power and the auto-white balence is normally hardcoded in hardware. So I was thinking of producing a very low cost mini-dongle to measure the ambient light level so that lower-spec laptops could be saving tons of power. With smartphones people are now acutely aware than up to 60% of their battery power is just making the screen light up and I’m sure we could be smarter about what we do in GNOME. The problem traditionally, has been the lack of hardware with this support.

Anyone interested?

Published by


Richard has over 10 years of experience developing open source software. He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, GNOME Power Manager, GNOME Color Manager, colord, and UPower and also contributes to many other projects and opensource standards. Richard has three main areas of interest on the free desktop, color management, package management, and power management. Richard graduated a few years ago from the University of Surrey with a Masters in Electronics Engineering. He now works for Red Hat in the desktop group, and also manages a company selling open source calibration equipment. Richard's outside interests include taking photos and eating good food.

12 thoughts on “OpenHardware : Ambient Light Sensor”

  1. I think this would be great little project. Low price is probably a key though.
    Can see applications outside of desktop as well, like interactive art and environmental sensing.

  2. Cool idea, particularly if the goal is to have hardware to use to easily test the feature in GNOME on existing laptops, but I’m not sure I’d want an extra dongle added onto my laptop for this feature. Perhaps I haven’t considered the form factor? I would try this feature in GNOME if it was available and if my laptop supported it. At the moment, I’m pretty happy setting and changing the brightness manually.

  3. If you make it very quick-reacting and sensitive, it would make a great entropy device on it’s own, and far more unpredictable than entropy generated from a stateful machine. Just put it on a window sill and watch the random numbers roll in.

    [WORDPRESS HASHCASH] The poster sent us ‘0 which is not a hashcash value.

  4. I wonder why this is not already built in the laptops?
    Maybe your idea paves the way, good plan!

    [WORDPRESS HASHCASH] The poster sent us ‘0 which is not a hashcash value.

  5. This would be of interest if you could use the same chipset for both a USB and non-USB solution. I have a laptop with a built-in ambient sensor. It’s pretty handy. I think that, given a consistent chipset and software solution, it would increase adoption in Linux hardware vendors (everything from System76 to Chromebooks), even if as nothing more than an option. Perhaps using an I2C ambient light sensor (e.g. APDS-9301) with a USB I2C bridge. This covers integrating internal I2C implementations, and for less-complex systems, they can sell a bridged solution as an add-on. Or use internal wiring and mod it into the case.

  6. Seriously why would you go to the trouble? Photosensitive resistors and other light detectors have been around for how long now? In many cases all you need is an analog input. Considering analog in isn’t an impossibility these days even on a system processor why not go with the simplelist solution possible a step up would be to support any of the embedded serial busses. In a nut shel USB seems to be an over kill here.

  7. Check out little RGB light sensors like the TCS34725, I made a neat project with one to read it and adjust the temperature of your monitor (kind of like f.lux but using real measurements instead of guessing based on time): I would have preferred to found a nice cross platform monitor color temperature adjustment app and built off it it, but I didn’t see one and didn’t have time to take a stab at writing my own.

  8. Obviously I’m always interested in open hardware and related projects. In this case though, I really think the problem is on the software side of things. My laptop (Sony Vaio VPCS12) is over 4 years old and has an ambient light sensor already built in.

    After some reverse engineering by various kernel hackers, they even came up with a patch that was fully working (see [1] and related threads). Yet in all of the time since then (3+ years), nobody was able to get this into the kernel. Similar patches and proposals were made for various other platforms [2]. From an outsider perspective it seems that there is no real effort in implementing an unified ALS interface. Without such an interface all devices would require some custom hackery, which is then hard to detect for userspace.

    So personally I would appreciate it if there was an actual interface and real userspace support within GNOME itself, before “another” device is developed (even though it is open source/hardware), relying on further (custom) patches.

    Maybe you know the right people to get this rolling, because I resignated on this front a long time ago :(.


  9. I would *so* want this if it meant that desktop computers could control external monitors’ backlight brightness, but as far as I can guess, typical external monitors (vs “all-in-one” PCs) don’t have a way to control brightness other than their hardware menu buttons, right?

Comments are closed.