Build a Sunburn Alarm




Ever get a sunburn?  Prefer to avoid them in the future?  Mr. Burns combines information about your skin type and any sunscreen you're wearing with a realtime UV light measurement to let you know before the burn sets it! 

Here's a little demo;
Continue to the next page and I'll answer a few questions and show you how to make it

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: FAQ

How does it work?

Sun exposure time is a factor of 3 things;
  1. Skin type.  Lighter complexions burn more quickly
  2. Sunscreen. Suncreen extends exposure time
  3. Ultraviolet Radiation.  UVA (315-400nm) is the main culprit, and it can vary widely throughout the day, geography, time of year, etc.
Skin type and sunscreen are easy - Mr. Burns just asks you to provide that information.  Measuring Ultraviolet radiation is complex;

Initially, I went to the usual sources to get a UV sensor, but I found out they were very expensive ($20 - $30).  If you take a regular LED and invert it (so the anode is connected to ground), it will generate a very weak voltage in response to light, but you need an op-amp circuit to amplify the voltage & I wanted something simpler. 

Finally, I came across this whitepaper from Mitsubishi - they had the problem of sensing when to turn on the light in your remote control; a capacitive sensor would turn it on when it's not needed and waste power.  They figured out a way to sense light using the backlight LED itself - and that's what Mr. Burns is based on.

When you use an LED as a photodiode, it's sensitive to wavelengths equal to it's output color and shorter.  By using a blue LED that generates light at 415nm, it's a perfect fit for sensing UVA, and it's cheap (<$1)

Once Mr. Burns has skin tone, UV level, and sunscreen info, it uses WHO data (pdf) to determine how long until you get a sunburn.

Here's a walkthrough of how it works.  Note that I'm using a Propeller Platform SD and LCD UI module, but this instructable will also show you how to do it on a breadboard.

How Accurate is it?

The sensor picks up the UVA and measures it correctly.  Exposure calculations are based on WHO research, too.  It's pretty accurate, the most likely cause of error is sunscreen;

Most people don't put on enough sunscreen - you're supposed to put on 1mg/cm2, which means about an ounce to cover an adult male.  You're also supposed to re-apply every 2 hours.  If you do this correctly, you're fine, but otherwise, you should under-estimate the SPF of your sunscreen.

Also, Mr. Burns measures incident UVA at the beginning of the exposure, but it doesn't re-adjust if UV changes.  The literature isn't clear as to whether your skin is equally sensitive throughout the exposure.  It's easy to implement, though - and if I find evidence that it is, I'll update the code.

What are the Technical Details?

It's a Parallax Propeller running at 80Mhz connected to an HD44780 8x2 character LCD (4-bit interface).  The Propeller stores the exposure table in RAM and measures incident UV through an R/C decay circuit. 

Step 2: Materials

I built mine with a Propeller Platform SD and an LCD UI module.  If you've got those, then the only thing you'll need is blue LED and 22pF Cap. Download the file on step 9 to your SD card, attach the LED & Cap, and you're ready to go.

But I'll also show you how to build Mr. Burns on a breadboard - and here's what you'll need for that;

Here's the sourcecode.  Everything is available under the MIT license.

8x2 Character LCD
Displays the time.  Sparkfun has a 16x2 LCD that will work, too

3xAA battery box
Mouser Part#12BH331/CS-GR

Parallax Propeller
Available at Parallax

5Mhz Crystal
Available at Parallax

32.768 KHz Crystal
Mouser Part #73-XT262

Mouser Part #579-24LC256-I/P

22pf Ceramic Cap

Blue LED
Mouser Part 859-LTL42UB6N

5x Tactile Switches
Mouser Part #653-B3F-1000 

3.3v Voltage Regulator
Mouser Part #511-LD1117V33

Around 10 10k ohm Resistors

4x 4.7k ohm Resistors

3 or 4 .1uF Ceramic Caps

3 47uF Electrolytic Caps

A Prop Plug

Breadboard and a bunch of hookup wire.

Step 3: Make It: Schematic

First, review the schematic below to understand how everything is connected. The box on the left is the SD card slot, and the box on top is the Prop Plug. I'll walk through breadboarding it, but the schematic is your best guide. Here's a hi-res version, the lo-res version is below.

Step 4: Make It: Power and Propeller

Add the voltage regulator and bypass caps as shown on the image below.  Also, add the battery box, connecting the black wire to the negative rail, and the red wire to the input on the regulator.

I've also added pull up resistors in the picture, that's for the EEPROM I'll add in the next step.

Step 5: Make It: Testing

Add the EEPROM, connecting Vdd and Vss.  Also add a 4pin header as shown in the photo. 

Your basic Propeller setup is now complete. Plug your Prop Plug into the headers, connect the usb cable and fire up the Propeller Tool. Hit F7 and make sure you can communicate with the Prop

Step 6: Make It: Display and Crystal

Connect the display - it's quite a few wires, so follow the schematic.  Note that I'm using a protoboard to make the display hookup a bit easier.  I suggest you do the same.

The crystal goes on the pins marked Xo and Xi.  No need for caps on the crystal.

Step 7: Make It: UI and Sensor

Add the buttons, as shown on the schematic.  You'll need 4 buttons;
  1. Left
  2. Right
  3. Enter
  4. Begin Exposure
If you edit the code, you can get away with less, although it's nice to have the additional inputs.  I've breadboarded 2 buttons below.

Also add the LED and cap.  This is your UV sensor portion of the circuit.  The longer lead on the LED goes to the negative rail, the shorter lead connects to P7.

Step 8: Make It: Programming

Once you've got everything wired up, download the sourcecode (here), connect your Prop Plug and program the Propeller.

Step 9: Make It: Using the Propeller Platform SD and LCD UI

If you're using the Propeller Platform SD and LCD UI, setup is a little different;

1 - The Propeller Platform SD is pre-assembled.

2 - Follow this instructable to put together the LCD UI.

3 - You don't need a Prop Plug.  The Propeller Platform SD has a bootloader, so you just unzip this file and copy to the root of your SD Card.

4 - You'll need to add a blue LED and a 22pf Cap. You can get the Blue LED right here, the battery pack is here.   The long lead from the LED goes to ground, the short lead goes through the hole marked P7.  Connect the cap on the other side of the board to the same holes - doesn't matter which lead goes to which hole. 

That's it!  Stay out of the sun!



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Make It Fly Challenge

      Make It Fly Challenge
    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest

    21 Discussions


    8 years ago on Introduction

    I think if you can turn this into a smaller package (using different microcontroller packages for example and a smaller LCD), you could sell these quite well during summer time. I mean I'm not into sun bathing related items and stuff, but i think this thing could be the next best invention to that field since sunscreen.
    If you can, assuming you have mass purchases, injectionmolding and a factory at your disposal, design one that is not bigger than those odometers which are cheap enough to be put into cereal boxes which come complete with LCD, for about 2 USD production price maximum, the lower the better, then this thing might have a bright future ahead.


    9 years ago on Introduction

    In Australia, I have my own sunburn alarm: IF Outside = 1 AND Visibility = 1 AND NaturalLight = 1 THEN AlarmState$ = "PANIC!"

    5 replies
    The nerdlingtaleya

    Reply 8 years ago on Introduction

    just when you have a bath, get a scour sponge and scrub your self.
    it is a loy safer and won't hurt afterwards

    Ha! I think in Australia it's safe to assume that UV is always at 10. But the challenge with UV is that the level can change independent of visible light. For example, UV penetrates cloud cover, so even if it looks cloudy and shady, you may still be getting a lot of UV.

    Cloudy = NaturalLight, IF Visibility = 1 AND NaturalLight = 0 THEN Time = "Night" That means it's safe to spread one's wings and go for a night flight in search of food.

    A tan provides about the same protection as an SPF 4 sunscreen. Also, a tan doesn't protect your eyes, which are damaged from sun exposure. Wearing an SPF 40 sunscreen is a much better idea, just be sure to re-apply and use enough (about 1 ounce).


    9 years ago on Step 9

    Good project, but the only problem that I can see is that if you leave an LCD display in the sun for long periods it goes all black and can't be read anymore.


    9 years ago on Step 3

    True, but someone who's not as experianced in electronics may not realize this. Joe


    9 years ago on Step 3

    Just to let you know. You need to rework your scematic of the propeller using the 4 sided chip. The current pins are in the wrong location. Joe

    1 reply

    The schematic isn't a physical representation of the chip - the pins could go anywhere. You might notice the actual pin numbers next to each pin on the chip. You'll often see designers put all the Vdd or Vss pins next to each other.


    9 years ago on Introduction

    Could you use a pocket-calculator sized solar panel to power it? Seems like a pretty logical tweak.


    9 years ago on Introduction

    You know, i stumbled upon that exact mitsubishi whitepaper a year or two ago and i thought it was such a novel idea. I've wanted to try it out but never had the funds to get the MC and associated components. It's awesome that you've found an application for this and I'd love to see more projects that implement this bizzare LED behavior. Overall great idea, and great instructable, but i'd have to agree with Treknology int sunburnAlarm(String location, int timeOfDay) { if ((location == "Outdoors") && (timeOfDay > 700 && timeOfDay < 2100)) { printf("Get the hell inside!"); } return 0; }


    9 years ago on Introduction

    Give this to your daughter --- Repels sunburn -- AND first dates. :D

    They make beads that change from clear to a certain color when you need to put on sunscreen to avoid sunburn I'm not sure what they are called but I'm sure they would be cheaper, waterproof, and lighter. But your idea is truely genius

    1 reply