Sunburn Monitor

A UV monitor which helps prevent UV-caused skin damage.

Similar projects worth following
This is a UV monitor based around the SI1132 light sensor and an ATMEGA168. It uses a sound-based interface, where beeps signal settings for skin type and use of sunscreen, if any. This is to save the power and cost of a display, and also in recognition that the device will be used outdoors in bright sunlight, where only reflective displays would be usable.

SI1132 was chosen as it produces a 'calibrated' UV index and takes up very little space. ATMEGA168 was chosen as a cheap uC with hardware I2C support which is supported by the Arduino environment (to allow a broad range of users to easily modify the code as they see fit).

Power management relies primarily on either deep sleep via hardware interrupt or watchdog timer interrupt for sleep-wake-sleep monitoring cycles.

The current form factor of the hardware represents a balance between ease of assembly and wearability. Next release will get the size to a minimum and allow for remote sensor.

Some notes on building the board:

I used 0805 passive parts. They aren't the smallest but they are much easier to place by hand than 0603.

The MCU and SI1132 present a challenge to me as I don't want to do a solder stencil at the moment and the pads are way to small for placing solder paste by hand. You could just lay a line of paste down along the pads for the ATMEGA168 but I don't like cleaning up the resulting solder bridges.

What I do instead is:
- flux the pads (I use a ChemTool flux pen)
- wipe the pads with solder (small chisel soldering tip)
- flux the pads again
- place the parts (3x reading glasses + 10x loupe)

Then reflow solder as usual with the rest of the parts on the board. This leaves a little darkened solder flux residue on the board but has been 100% reliable so far.

  • 1 × 3v CR2032 battery battery
  • 2 × DMP2035U-7 Discrete Semiconductors / Power Transistors and MOSFETs
  • 1 × Mouser #: 712-BAT-HLD-001 battery holder
  • 2 × CRCW0805220RFKEB Resistors (Fixed) / Thick Film Surface Mount
  • 1 × Si1132-A10-GMR ambient light sensor

View all 10 components

  • OSH Park board link

    hackaday05/22/2015 at 18:56 0 comments

    You can order the board from here:

  • Library update required

    hackaday05/09/2015 at 16:12 0 comments

    You need to modify the Adafruit_SI1145 library as follows (or just substitute tthe SI1145 for the SI1132):

    edit Adafruit_SI1145.cpp

    #include "Adafruit_SI1145.h"
    Adafruit_SI1145::Adafruit_SI1145() {
      _addr = SI1145_ADDR;
    boolean Adafruit_SI1145::begin(void) {
      uint8_t id = read8(SI1145_REG_PARTID);
      // if (id != 0x45) return false; // look for SI1145
      if ((id != 0x32) && (id != 0x45)) return false; // look for SI1132 or SI1145

View all 2 project logs

Enjoy this project?



electrobob wrote 05/26/2015 at 23:35 point

Good job getting it to work. I was trying in the same thing with a Si1146, but somehow i cannot get it to work. I can read some registers properly, while some not. Readout is alwas zero. 

  Are you sure? yes | no

hackaday wrote 05/26/2015 at 19:10 point

One of the p-mosfets is used to control power to the UV sensor. The other is for reverse-polarity protection. Possibly both could be omitted. The sensor probably has a sleep mode, and a snap-in battery holder would make it impossible to reverse the battery.

This was a sort of quick project to see if I could solder the QFN-10 SI1132 part. Everything works, but it could be simpler and cost less.

I plan on redesigning it at some point to use a UV photodiode like GUVA-S12SD and an ATTINY.

  Are you sure? yes | no

champagne wrote 05/26/2015 at 21:41 point

thanks for the quick answer! 

holy guac, looking at the spec for the SI1145 it says the pads are only .3mil from each other? Eagle is complaining about the minimum clearance but I guess you were able to 1/get this done at OSH and 2/ get it soldered on not using a stencil (that's impressive) - I'll try your method but I'm afraid I'm going to get a low return on this...

  Are you sure? yes | no

electrobob wrote 05/26/2015 at 23:36 point

I can confirm you can manufacture it with the regular chinese PCB houses, i believe i used elecrow. HOwever, i cannot get the sensor to work, as i mentioned below. 

  Are you sure? yes | no

Peter Dunshee wrote 06/27/2016 at 21:04 point

I was toying with doing something similar--ATTiny and GUVA-S12SD.  I can't find anyplace to source the S12SD sensor though--it seems most places are only selling it on a breakout board.

  Are you sure? yes | no

hackaday wrote 06/28/2016 at 12:32 point

Agreed. So far only Adafruit has the sensor on a board that I can find. I may ask them nicely if they'll tell me how they order it. I'm also working on an ATTINY version using that sensor. I might go back to the ATMEGA168 as on an ATTINY85 I don't have enough pins to use the tone library in push-pull mode. The piezeo is pretty quiet running off just one pin, whereas on two it's loud enough. Well see. I have a bit of debugging left to do with the ADC on the ATTINY85.

This project is really mostly useful for going out in the sun without sunburn. Pretty much, if you put on SPF45 sunscreen, and reapply it as directed, you won't sunburn, and you don't need to know the UV index. I'd like to get a litte tan and vitamin D without sunscreen. That's where I think the project is most useful.

One final thing is I have a cheap UVA flashlight on order so I can test indoors:

  Are you sure? yes | no

K.C. Lee wrote 06/28/2016 at 14:14 point

That part is made by Genicomin in Korea.  There are places on Aliexpress that sell the SMT part.

  Are you sure? yes | no

champagne wrote 05/26/2015 at 17:19 point

hey there, silly question: are you using the p-mosfet to conserve battery life? (turning off the sensors when not in use? using 2 pins from the MC to turn each on/off?) - Thanks!

Great project btw!


  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates