You are on page 1of 37

UV Dosimeter Users Guide

Rev 1.8.24 23 May, 2012

Scienterra Ltd 225 Whiterocks Road Oamaru, Otago 9492 New Zealand +64 3 434 9761

Introduction The UV Dosimeter system from Scienterra is designed to measure and record exposure to UV radiation. The dosimeter is small enough to wear as a badge. It is weather-proof, wireless, and it runs for up to a year on a single battery. Configuration and communication are performed through a wireless docking cradle that connects to a computers USB port. This data acquisition system is ideal for researching the effects of UV radiation, e.g. in health science, agriculture, and horticulture. Although designed to be a research-grade scientific instrument, the dosimeter system can also be used as an educational tool for sun-safe behavior.

General operating principle Each dosimeter is configured through the docking cradle, which is connected to a computer through a USB port. After configuration, the dosimeter is removed from the cradle and deployed. During deployment, it records its exposure to UV light. After the exposure period, the dosimeter is returned to the cradle, and data is off-loaded to the computer for processing.

Appearance The dosimeter is contained in a white PTFE cylinder with a slightly rounded edge. A thin metal backplate has a small loop, useful when affixing a wriststrap or a safety pin. The dosimeter is 36mm wide and 12mm thick. The docking cradle is a rectangular plastic box, measuring 140mm x 65mm x 28mm. There is a USB port at one end, and a round hole on top for docking a dosimeter.

Interaction during deployment During deployment, dosimeters have no interaction with the user, except via visual inspection of a red LED. This LED displays a heartbeat, or indication of operation. The brief flash is easily observable in a darkened room. The interval between heartbeats depends on the operating mode. When the dosimeter badge is in active mode, the flash occurs every three seconds. When the dosimeter is sleeping, the flash occurs every five seconds.

Power consumption Each dosimeter runs on a 3-volt coin cell battery. Average current consumption is approximately 5uA, and battery life is expected to be more than twelve months.

Data capacity Each dosimeter has 2,162,160 bytes of available data storage. Each measurement requires two bytes. Therefore, a dosimeter can store 1,081,080 individual measurements. Measuring at ten-second intervals for twelve hours per day, it would take eight months to fill the memory. If a string of UV measurements are close to zero, then they are grouped and represented as a single value in memory. Up to 2048 such measurements can be grouped as one. This further extends the potential memory.

Quick Start To quickly deploy your dosimeter with minimal reading of this manual, perform the following. (It is assumed that you are able to establish communication between the cradle and your computer.) 1. Insert the dosimeter into the cradle and wait for the handshake to complete. 2. Hit 5 to enter the Easy Config menu. 3. Verify that all settings are as desired. 4. Hit 0 to configure the dosimeter. 5. Hit x to save the settings and exit. 6. Remove the dosimeter promptly and deploy. To quickly read the data from the dosimeter, with minimal reading of this manual, perform the following. 1. Insert the dosimeter into the cradle and wait for the handshake to complete. 2. Hit 4 to enter the Data menu. 3. Verify that all settings are as desired. 4. Hit 4, and start the text capture or log. 5. Hit any key to start the data transfer. 6. End the text capture or log. 7. Hit any key to continue. 8. Hit x to exit. 9. Remove the dosimeter promptly.

Principle of measurement The dosimeter uses an on-board processor with an analogue converter to read voltages that correspond to UV irradiance, temperature, and battery voltage. Each voltage is converted to a number between 0 and 1023. The processor logs these numbers. Note that this raw output must be properly interpreted before being useful. These functions are given later in this document. See Converting raw data to common measurement units. Of particular interest is the way in which the UV sensor is measured. The sensor itself converts UV radiation to a small electrical current. The current is so small that it cannot be measured directly by the analogue converter. The processor uses a measurement technique called switched integration to accumulate this current over a short period of time (approximately 0.05 seconds). To do this, the processor connects the sensor to an integrator and lets the current integrate over time. After a certain time has elapsed, the analogue converter samples this integral. Then the integral is reset to zero, and the measurement repeats.

The integration time, although brief, is critical to the measurement. Each dosimeter is slightly different due to manufacturing variation in the electronic components. To account for this variation, the integration time can be changed. The integration time can also be changed to adjust the overall sensitivity of the dosimeter. For example, summer sunlight has higher UV levels, so the integration time should be set to a small value to avoid data that is out-ofrange. Such out-of-range data appears as UV values of 1023.

Winter sunlight has lower UV levels. If you deploy the dosimeter with the same settings as for summer, the data might only be in the range of 0-to-50, rather than 0-to-1023. This will not resolve the same level of detail in the data. For this reason, it might be desirable to set the integration time to a larger value during winter. As integration is a ramp function, integrating for twice the time will result in a data value roughly twice the original. In theory, this conversion is linear; that is, reducing or increasing the integration time by x will reduce or increase the data value by the same factor. For most users, this is good enough for practical use. For scientists who desire traceability, this conversion is not linear enough to ensure accuracy. The imperfections in the electronics are such that a change in the integration time will likely require a new calibration.

Cradle setup The docking cradle uses a USB port for communication. Once plugged in, the cradle will appear on your computer as a COM port. The specific port number (e.g. COM2, COM3, etc) will be set automatically by your computer. If you have trouble identifying it, look in your Windows Device Manager under Ports.

Open a communications program such as Hyperterminal or Teraterm. If your computer does not come with such a program, these are freely available for download on the internet. For Teraterm, visit In the terminal program, set the COM port to operate at 115200 baud, 8 data bits, 1 stop bit, no parity, no flow control. (In Teraterm, this is done in Setup/Serial Port, illustrated at right.) If the program is configured to use the correct COM port, you will see a message asking you to hit any key to begin. If you do not see this message, check the settings in the communications program. Verify that you are connected to the correct port number (COM1, COM2, COM3, etc.) and that the session is open, or connected.

After you see the prompt, hit any key. The following screen will appear. Hit any key to start. UV Dosimeter (c) 2009 Scienterra Ltd Firmware version: 20 Date and time are set to: 2011-07-25 14:05:33 Enter date and time in format YYMMDDHHMMSS (ESC to quit) > If the time and date are correct, then hit the <esc> key. Otherwise, enter the correct date and time in the format indicated. Time and date are stored in the cradle, and they are maintained with a battery backup. Once set, they should be relatively accurate for the lifetime of the product. Note: Time is in 24-hour format!

Connecting to a dosimeter badge The communication between the cradle and the badge is done through a high-speed optical interface. In any wireless interface, there are opportunities for errors to be introduced. Every effort has been made to ensure secure, error-free communication. All data passed in each direction is checked by a CRC, with automatic retries if an error is detected.

When a badge is inserted into the cradle, it must be oriented so that the optical elements are aligned for proper communication. The orientation of the badge should be as shown in the figure below. Alignment can be off by up to 45 degrees, so adjust the badges orientation if communication seems unreliable.

Orientation of the badge in the cradle As the split ring is often the only outwardly visible feature that identifies the badges orientation, it should not be installed randomly when the badge is assembled. See the section titled, Changing the battery.

After verifying the date and time, the cradle will search for a dosimeter badge. The cradle looks for the heartbeat of the badge, and displays a series of dots marching across the screen. When a heartbeat is detected, it performs a handshake routine. If the handshake is completed successfully, the cradle will download the configuration settings of the badge, and the screen will present the Main Menu.

Searching for badge..........5 Badge found. Starting communications. Reading badge settings... Badge settings read successfully.

Main Menu 0: Badge ID [105] 1: Participant ID [1234] 2: Badge time & date [14:05:22 3: Bat voltage [2.99] 4: Data Menu 5: Easy Config Menu 6: Badge Menu 7: Cradle Menu Press a key to select, or x to exit


Most often, initiating communication happens very easily. However, there are times when the user must take a more active role. The next section describes how to assist the connection when problems occur. Troubleshooting the handshake When docked, the badge suspends its measurements. An accidental handshake would result in lost data. To prevent this, a five-step handshake routine ensures that such an interruption does not happen accidentally. If any of the five steps fail, the badge ignores the handshake, and returns to logging mode. While searching for a badge, the cradle displays a line of marching dots. If a handshake is partially successful, the cradle will display a number. This number indicates the progress of the handshake routine (1-5) before the handshake routine failed. Number 5 indicates success. Number 4 indicates a partial handshake. The cradle will enter the menu mode and attempt to communicate with the badge.

If you only require the cradle to be in menu mode, hit any key to bypass the handshake routine and enter communications mode. A six (6) will appear to indicate that the link has been forced. The cradle will now continue as if the handshake routine were successful. The badge will not complete the handshake. Consider what happens if the handshake is bypassed: the badge still waits for the handshake, although the cradle has moved on. If you have pressed a key to bypass the handshake routine, and you wish to communicate with the badge, you must exit the menu and allow the handshake to complete normally. Inactivity timeout Once the handshake is completed and the badge is in communication with the cradle, a 60-second timeout begins. If the badge does not detect any activity for 60 seconds, it will exit communications and return to its normal operating mode. Usually, a badge timeout will cause the screen to indicate that the session has expired. If you suspect that a badge has left communications, and the screen has not indicated an expired session, exit the menu to repeat the handshake. About menus Once the Main Menu appears, pressing any of the number keys will allow you to navigate through the badge configuration. There are some basic concepts to help understand the menu navigation and functionality. Each menu shows various options, formatted in three columns. The first column is a number between 0 and 9. The second column is a text description of that option. The third column, if present, is a bracketed value. If a bracketed value appears, then this may be a configurable parameter. Pressing the corresponding number key will allow you to change the value of the parameter. If there is no bracketed value next to a menu option, then pressing the key will either take you to a sub-menu, or execute the requested command. When a parameter is modified on the screen, it will immediately be modified in the badge as well. If the link between the badge and the cradle fails, then an error message will appear, and the parameter will remain unchanged. From a sub-menu, you can navigate back to the main menu by pressing the backslash (\) key. From any menu, you can exit communication by pressing the "x" key.

Configurable parameters and commands are grouped according to function. Parameters or commands that relate to off-loading data are located in the "Data" submenu. Parameters that relate to badge settings are located in the "Badge" submenu. Cradle parameters are located in the "Cradle" submenu, and so on.

Easy Config Menu This menu provides the easiest and quickest way to configure and deploy dosimeters. Before starting, it is essential to understand what this menu is doing. In the last section, we stated that modifying a menu parameter simultaneously modifies the setting in the badge. The Easy Config menu is the exception to that rule. The operation of the "Easy Config" menu is slightly different. Parameters in this menu are never read from the badge. Instead, these parameters are stored in the cradle as a template. These are the most common parameters that users will verify and change prior to deployment. Easy Config Menu 0: Use these settings / erase data / synchronize time 1: Activated [1] 2: Daily start hour [8] 3: Daily stop hour [17] 4: UV interval [120] 5: Temp interval [300] 6: Bat interval [900] 7: Minimum UV threshold [5] Make selection, \ to go back, or x to exit Since deployments often require multiple badges to be configured identically, this allows the user to do this quickly. When option 0 is selected from this menu, several things will happen in sequence. First, the existing badge data will be erased. Second, the clock in the badge will be synchronized with the clock in the cradle. Third, the template parameters in the Easy Config Menu will be written to the badge. After performing the Easy Config, the main menu is displayed. The badge will now use the new parameters. The new settings should be saved as the badges default configuration. This is done by hitting the x key. This writes the settings to the badges non-volatile memory and exits the session. Tip: Promptly remove the badge from the cradle to avoid another successful handshake. Each time a badge handshakes with the cradle, it will insert a timestamp in the data, indicating the exact time that the badge exited communication with the cradle. Such extra timestamps are troublesome to edit.

Badge Menu Badge Menu 0: Read badge settings 1: Schedule menu 2: Measurement settings menu 3: Postprocessing calibration menu 4: Readings (x100) [3451] 5: Days in operation [250] 6: Minimum UV threshold [5] 7: Sensor type [2] 8: Badge firmware [24] Make selection, \ to go back, or x to exit

Badge settings are read automatically after the handshake. Option 0 gives an opportunity to read them again. In this menu, there are three sub-menus, and three indicators. Readings (x100) indicates how many UV readings the badge has sampled since the battery power was last interrupted. For example, if this field says [9548], then the badge has sampled the UV sensor 954,800 times. This can be used for statistical purposes, or to evaluate battery life. Days in operation indicates how many days the badge has been operating since the battery power was last interrupted. This can be used for statistical purposes, or to evaluate battery life. Minimum UV threshold sets the level at which the badge stops recording real data, and records a zero instead. This saves memory, as described elsewhere in this document. For studies that are interested in very low exposure levels, set this value to 0. Sensor type indicates whether the sensor is UVA (type 1) or UVB (type 2). Badge firmware is self-explanatory.

There are three sub-menus. Each of these sub-menus is described in detail on the following pages.

Schedule sub-menu Schedule menu 0: Badge time & date [09:20:06 2011-07-25] 1: Activated [0] 2: Daily start hour [8] 3: Daily stop hour [17] 4: UV interval [120] 5: Temp interval [300] 6: Bat interval [900] Make selection, \ to go back, or x to exit

Badge time and date displays the current time and date from the badge. If you select this option, a prompt will ask if you wish to synchronize the badge time and the cradle time. If you confirm, then the badge time and date will be changed to match the time and date stored in the cradle. Activated is a configurable parameter. When Activated is set to 0, the badge will be in sleep mode, indicated by a slow heartbeat (five seconds). Data is not logged during sleep mode. When Activated is set to 1, the badge is in active mode. The heartbeat in active mode occurs every three seconds, and data is logged according to the other settings in the Schedule Menu. The Activated field also indicates the present status of the badge. Even if Activated is set to 1, measurements are suspended while the badge is communicating with the cradle. In this case, measurements resume when the badge exits communication. Note that even when Activated is set to zero, the badge will turn on the next time the internal clock matches the Start hour. However, there is a way to leave the badge in sleep mode indefinitely, as described in the next section. Daily start / stop hours: It is usually of little use to measure UV light during non-daylight hours. The amount of UV radiation from artificial lighting is very small, compared to solar irradiance. The times that the badge should be activated is determined by Options 1 and 2 of the Schedule menu. Note that you may only specify the hour, in 24-hour format. For example, to start measurements at 8:00 in the morning, and stop measurements at 5:00 in the evening, you should set Daily start hour to 8, and Daily stop hour to 17. A special case occurs when you set the Daily start hour to equal the Daily stop hour. This causes the badge to ignore the time of day. The clock will still run, but the clock will neither activate nor deactivate the badge. In this case, if the Activated option is set to 1, then the badge will be active around the clock, continuously logging data. If the Activated option is set to 0, the badge will suspend all logging.

UV / Temp / Bat intervals: The dosimeter can measure UV radiation, temperature, and battery voltage. Each of these measurements can be configured to occur at different frequencies. For example, suppose you want to measure UV every ten seconds, temperature every two minutes, and battery voltage every hour. Set the UV interval to 10, the Temp interval to 120, and the Bat interval to 3600. Minimum is 1 second, maximum is 65535 seconds. Note: You might believe it is desirable to have a data point every few seconds. When the badge is configured as such, it tends to produce a very large data file in a very short time. Unless you are very skilled at automated data manipulation, this might overwhelm your ability to process the amount of data that is produced. Be realistic about your data requirements.

Measurement settings sub-menu Measurement settings menu 0: Integration time [2936] 1: Desired UV value [800] 2: Set integration time so max UV = desired UV value 3: Scale by [2.00] 4: Scale integration time 5: UV value of lamp [208] 6: Use lamp to set integration time Make selection, \ to go back, or x to exit The settings in this menu allow the user to control how the sensor is measured. This should not be confused with a calibration, which is a correction applied by the user after the raw data is logged. Instead, this menu controls how the raw data is generated. Any change in these settings will affect the raw data gathered in the future, but not the data already recorded in the badge. Integration time is used to normalize the responses of the photosensors. Literally, it is the length of time that the photosensor signal is integrated, prior to being sampled. (If this is confusing, review the discussion of how the measurements is taken, in the earlier section titled Principle of measurement.) Due to variations between photosensors, different integration times are required for different badges. Values for this field vary between approximately 800 and 6000. Desired UV value, and Set integration time so max UV = desired UV value. If you have many dosimeters and need to adjust all of their integration times so that they all perform equally (more or less), then a useful procedure uses menu items 1 and 2. It is an automated procedure that reads the UV data from a badge and selects the maximum value. It then compares this value to the target in Desired UV value, and uses interpolation and extrapolation to adjust the integration time accordingly. Example: You put the badges out from 9am - 10am on a clear day. At 10am you note that UVI = 5. This information might come from a reference UV instrument, or from a meteorological web page that shows UV levels near you. For your upcoming study, you expect to see a maximum UV index of 10. Therefore, on this morning, you want each badge to measure approximately half-scale, or 512. (Full-scale for a badge measurement is always 1023, so half-scale is 512.) Some badges will read higher, others will read lower. The high ones should have their integration times reduced. The low ones should have their integration times increased. This can be done manually, but that takes a lot of calculations and time. These menu items automate the process. Enter 512 into the "Desired UV value" field. This is the target value for the data you have already collected in each badge. Now you can put each badge

into the cradle in turn, go to the badge menu, and then the Measurement settings menu. Then hit '2'. The cradle automatically reads the data and adjusts the integration time. NOTE: You must set the cradle to use one of the "Text" data formats to use this procedure. (In the Data Menu.) NOTE: This procedure does not change the logged data. It merely adjusts the integration time so that you would get the desired result, if you were to repeat the experiment with the same solar radiation. NOTE: If the badge's UV measurement peaked at 1023, then you don't know what the real UV measurement would have been. If it looks like the data is much higher than 1023, then you should adjust the integration time manually. NOTE: If the badge's UV measurement was far off of your desired target, then the extrapolation probably won't have the accuracy that you desire. Until you see good data from all badges, you should repeat the entire normalization procedure: Perform an Easy Config, then put the badges outside for a while, readjust the "Desired UV value" to match present conditions, and then put all the badges through the '2' option to adjust their integration times. With practice, you can perform 2 or 3 iterations in a single morning, and still catch the solar maximum at mid-day. Scale by, and Scale integration time: Another way to adjust the integration time is to apply a scale factor. Use menu items 3 and 4 for this. This is useful if you want to reduce/increase the sensitivity of all the badges by a fixed percentage. UV value of lamp, and Use lamp to set integration time: There is an internal UV lamp in the cradle. This lamp can be used to excite the sensor. This excitation can be used to adjust the integration time of a badge, but it is not recommended. Use menu items 5 and 6 for this, but don't be surprised when the badges don't behave well in the sunlight. When the user selects Use lamp to set integration time a five-second routine illuminates the badge with a low-power UV lamp. At the end of the routine, the badges measurement of the lamp is compared to the UV value of lamp. The integration time is adjusted accordingly. Please note! This routine is not recommended as a final normalization or calibration tool, as the sensor can detect a much broader range of wavelengths than the LED lamp can provide. Sunlight is always the best source for normalizing and calibrating each dosimeter. Note alternative LED option: There are LEDs available that emit UVA and UVB radiation. They are cost-prohibitive to most users, as they add several hundred dollars to the cost of each cradle. However, with a premium UV lamp, the auto-adjust routine may be more useful.

Note that all of these functions alter the integration time, which will change the badges overall calibration. After changing the integration time, the calibration constants (A, B, and C) should be adjusted, if scientific accuracy is to be maintained. After adjusting the integration time, settings should be stored into the badge eeprom memory. This will record these settings in a form that will be retained even when the battery is removed. To store settings into eeprom memory, hit the x key, and watch for the Saved settings to memory message.

Postprocessing calibration sub-menu Postprocessing calibration menu 0: Badge ID [0] 1: Calibration date [2012-5-23] 2: UV cal A [0.000] 3: UV cal B [0.000] 4: UV cal C [0.000] 5: Integration time when calibrated [1311] 6: Temp slope [0.987] 7: Temp offset [315.3] 8: Calibrate temperature Make selection, \ to go back, or x to exit This menu contains information that is not useful for the operation of the badge, but is vital for interpreting the data. This is called calibration information. It is used during postprocessing, which is done after the user offloads the data from the badge. Postprocessing can be done in a spreadsheet, or with a dedicated program that the user can write in a language such as IDL. A graphical user interface (GUI) is currently in development, and this will be able to perform postprocessing, as well as data visualization. In scientific studies, it is always appropriate to preserve raw data. Any calculations applied to the raw data must be recorded, so that future adjustments and corrections can be made. Badge ID is a unique number that identifies the badge. In firmware revisions prior to version 24, this number could be altered by the user. If your dosimeter was manufactured prior to May 2012, it may not have a unique number; contact Scienterra for instructions how to program this field with a unique number. Calibration date allows the user to record when the calibration information was last adjusted. This allows users to ascertain whether the calibration is out-of-date. The longevity of the calibration is for the user to determine. UV cal A/B/C: These are the coefficients that can be used to convert the raw UV data (0-to-1023) to a number more commonly studied, such as UVI or W/m^2. In a proper calibration, each dosimeter would measure sunlight alongside a reference UV instrument with a known response; that is, an instrument that has a calibration that can be traced to a reputable laboratory. Then the reference data would be plotted against the dosimeter data, and a curve fit would be generated. This curve might have a form such as A*x^2 + B*x + C, or maybe something different; that is for each user to decide. The coefficients to this equation can be stored in the badge for ease of bookkeeping.

Note that these coefficients do not affect the way the dosimeter measures the sensor. They are merely for bookkeeping. Values for these fields can range between 32.768 and +32.768. If additional precision is required, the decimal point can be moved upon request. Contact Scienterra. Tip: Rather than describing the reference data as a function of dosimeter data, the curve fit can describe the required correction (i.e., the difference between the datas) as a function of dosimeter data. In this way, high precision can be achieved with relatively simple coefficients. Integration time when calibrated allows the user to record the integration time that was used when the badge was calibrated. This is essential information if the integration time has been changed for any reason since the dosimeter was last calibrated. Temp slope / offset are the coefficients to the equation that converts raw data to temperature. The temperature sensor is internal to the processor, and its slope is fairly predictable. Its offset varies significantly. Slope should remain set at 0.987, unless you find a good reason to change it. Calibrate temperature activates a routine that measures a temperature sensor in the cradle, which is accurate to 0.5 degrees Celsius. This temperature is compared to the temperature data from the badge, as processed by the temp slope and temp offset coefficients. The cradle adjusts the temp offset as required to make the two measurements agree. In essence, the cradle performs a single-point calibration for the badge temperature sensor. Tip: After entering calibration information, it is recommended to store the settings into the badge eeprom memory. This will record these settings in a form that will be retained even when the battery is removed. To store settings into eeprom memory, hit the x key, and watch for the Saved settings to memory message.

Cradle Menu Cradle Menu 0: Cradle time & date [23:04:03 2011-07-27] 1: Toggle UV Lamp 2: Transmit delay [0] 3: Cradle firmware [24] 4: Update cradle firmware Make selection, \ to go back, or x to exit

Cradle time and date allows you to adjust the time and date in the cradle. This time and date are maintained with a quartz crystal and a battery backup. The battery will last for approximately 15 zillion years. Toggle UV Lamp: Selecting this option turns an internal LED lamp on and off. This LED lamp shines on the badges sensor, and the badge should record a small response. This is presented as a testing and troubleshooting option. To use this, the badge should be running outside of the docking cradle. Enter into the cradles menu system, bypassing the search routine. Once inside the menu system, you can insert the badge into the cradle. It will not handshake, and will continue to log data. Navigate to this menu and use the Toggle UV Lamp option. Let the badge rest in the cradle, while it records the UV value of the lamp. Then remove the badge from the cradle. Note! Be sure to turn off the lamp! This LED lamp is centered in the UVA range, but it does excite the UVB sensor to a certain extent. There is a different LED available that emits UVB radiation, but it is cost-prohibitive for most users. Contact Scienterra if you require details. Transmit delay allows you to insert a delay after every 100 data points, to allow slow USB drivers to keep up with the data output. This reduces data throughput, so it should be left at zero, unless the cradle appears to be skipping data. Cradle firmware is self-explanatory. Update cradle firmware runs the bootloader. This allows the user to change the firmware in the cradle. This is explained in the following boxed section.

Updating the firmware Badge and cradle firmwares are factory installed, and should not require updating. However, there is the functionality to update firmware via the USB port. The firmware that runs the cradle can be updated by the user. Once a new firmware file is obtained (please contact Scienterra), select option 3, Update cradle firmware from the Cradle menu. A 30-40 ms delay is required between lines transmitted from the computer. This can be configured through the terminal software (e.g. Hyperterminal or Teraterm) and the setting is usually in the same place where you configure the COM port. After selecting option 8, confirm at the prompt. You should see a small carrot (>) on the next line. Type a lower-case f (for firmware) and then use your terminal program to send a text file. In Hyperterminal, this is done in the Transfer menu. In Teraterm, this is done in the File menu. Select the new firmware file, and you should see a line of dots marching across the screen. The upgrade takes about a minute. At the end of the dots, you should see OK, indicating the update is complete.

To update badge firmware, a slightly more complex procedure is required. First, the firmware for the cradle must be changed, as a special updating utility replaces the usual cradle firmware. Badges can then be inserted into the cradle, and their firmware can be updated. Finally, the cradle firmware must be changed back to the usual operating firmware. Additional instructions are available from Scienterra, along with the necessary firmware files.

Data Menu After data has been acquired, it can be off-loaded. This is done through the Data menu. Data Menu 0: Erase Data 1: Data Format (1=Bin, 2=Text) [2] 2: Data Type (1=UV, 2=Temp, 3=Battery, 0=All) 3: Page size [48] 4: Read Data Make selection, \ to go back, or x to exit


Erase data resets the data space. This takes effect when the badge exits communication with the cradle. Data format: There are presently five data output formats supported. The preferred format can be selected from the Data Menu, option 1. Please refer to the following table to understand the differences between formats. Format 1 Format 2 Format 3 Format 4 Format 5 Binary Text Text Text Text N/A Config displayed inline Config displayed inline Config suppressed Config suppressed N/A Raw data Temp(C) / Bat (V) Raw data Temp(C) / Bat (V)

Format 1 shows the data as a hexadecimal representation of its native binary format. All data in the memory is simply displayed to the screen. Formats 2 through 5 are variations of a human-readable text output. After a badge is accessed with a cradle, the configuration data is stored inline with the measurements. Formats 2 and 3 display this configuration data each time it appears in the logged data Formats 4 and 5 suppress this configuration. Formats 3 and 5 display the temperature and battery voltage data in degrees Celsius and Volts, respectively. Formats 2 and 4 display the raw temperature and battery voltage data, just as it comes out of the measurement circuit. This is not in degrees or volts, but in counts. This is described in the section called Converting raw data to common measurement units. Note: UV data is always displayed as raw counts. Data type gives you the opportunity to select which type of data you want to read. This does not apply to the binary data format. Select 0 to read each type of data in succession. Option 3, Page size, is slightly advanced. It specifies how many data values should be transmitted in a single burst. In general, larger page sizes spit out more data in each burst, but with longer pauses between bursts. Smaller page sizes spit out more continuous data, but the overall speed is

slightly less. When using Binary format, page size of up to 240 can be used without any problem. In Text format, start with page size of 48 and adjust as necessary. When you select Option 4, Read Data, the cradle presents a suggested filename, and pauses, waiting for you to hit a key. Dont hit the key yet. Use the communication software to log the data to a file. To do this, use the File / Log function (Teraterm) or the Transfer / Capture function (Hyperterminal). The program will prompt you for a location and filename. If you want, you can cut and paste the filename suggested by the cradle. Now hit a key. Subsequent data displayed on the screen will be dumped into a text file in the selected location, until the log or capture function is turned off. Remember to stop the log or capture function when the data is finished. After the data is finished displaying, the cradle will wait for a keystroke to continue. This allows the user to end the data capture before continuing. If data transfer errors occur during off-loading, try adjusting the badge orientation to obtain a more reliable connection. As mentioned previously, all data is error-checked by a CRC algorithm with automatic retries. After ten retries, if the CRC still does not match, the transfer will be paused and an error message displayed. The user is prompted to adjust the badge orientation, and hit a key to continue.

Data formats All data formats begin with a header, which lists the configuration parameters of the badge in a readable format. See the example below. Data follows the header, in whatever format has been selected. Number of lines in header: 23 Start date: 2012-05-24 Badge firmware: 24 Days in operation: 2 Readings (x100): 55 Daily start hour: 9 Daily stop hour: 17 UV interval: 1 Temp interval: 2 Bat interval: 30 Participant ID: 0 Badge ID: 0 Integration time: 1600 UV cal A: 0.000 UV cal B: 0.000 UV cal C: 0.000 Temp slope: 0.987 Temp offset: 343.3 Calibration date: 2012-5-23 Minimum UV threshhold: 5 Integration time when calibrated: Sensor type: 1 Writing at page number: 0


All data formats use tab-delimited data fields. Each line is terminated by a CR and LF. If you are using a data format that suppresses the inline configuration data (formats 1, 4, or 5), then this header information displays the most recent badge settings. If you are using a format that does not suppress the inline configuration information (formats 2 or 3), then the header displays the configuration of the data that immediately follows it. Every time the dosimeter badge exits communication with the cradle, it records its stored configuration settings. In the binary data format, these inline settings are displayed as a block of hexadecimal words, starting with 0x9012. This is described in the section called Binary data format, below. In text formats 2 or 3, these inline settings are displayed exactly as they are in the header, starting with Daily start hour and progressing through Writing at page number.

To avoid confusion that can happen when badges are configured more than once during a single deployment, it is recommended to use formats 1, 2, or 3 when downloading the data. These formats document all changes to the configuration as they occur.

Text data format This is the most readable format. All data is shown in ASCII characters. Timestamps are clearly marked. Below is an example of some UV data. The inline configuration data is omitted for clarity. Note that the third column indicates the type of data presented. 2011-07-28 11:29:56 11:30:26 11:30:56 11:31:26 11:31:56 11:32:26 11:32:56 11:33:26 11:33:56 11:34:26 11:34:56 11:35:26 11:35:56 11:36:26 11:36:56 11:37:26 11:37:56 11:38:26 11:38:56 11:39:26 End of data 11:29:26 95 1 96 1 97 1 97 1 98 1 98 1 99 1 100 1 100 1 100 1 101 1 101 1 102 1 103 1 104 1 104 1 107 1 0 1 0 1 0 1 Timestamp

If you read all data types (by setting Data type to 0) then this section would be followed by an identical timestamp, then temperature data (type 2), ending with End of data. This in turn would be followed by another identical timestamp, then battery voltage data (type 3), and End of data.

Binary data format The native binary data format is represented as 16-bit hexadecimal words. ADC data is contained in the lower 10 bits, leaving the upper 6 bits for metadata, or data that tells about the data. Hexadecimal is denoted in this manual by the convention 0x4321, but the badge output omits the 0x portion. One word contains two bytes, or four nibbles. (Each digit is a nibble.) There are sixteen bits in a word, with the lowest bit last. The lowest bit is always bit 0, and the upper bit is bit 15. The upper nibble tells what kind of data is contained in the word: 1 for UV data, 2 for temperature, and 3 for battery voltage. There are also sequences of three words in a row with upper nibbles of 4, 5, and 6. These constitute a timestamp. An upper nibble of 8 indicates the end-of-file marker (0x8000). An upper nibble of 9 introduces a block of configuration data. Timestamps are inserted to mark three events: the start of a daily measurement cycle, the end of a daily measurement cycle, and communication with a cradle. Every time the badge exits communication, another timestamp is inserted. The timestamp format is split between three words, as follows: First word (0x4000): bits 4-9 indicate the year, and bits 0-3 indicate the month. Second word (0x5000): bits 5-9 indicate day, and bits 0-4 indicate hour. Third word, (0x6000): bits 6-11 indicate minutes, and bits 0-5 show seconds. The configuration block starts with 0x9012. The 9 is a marker, and the lower nibbles signify how many configuration words follow. In hexadeciamal, 0x12 is 18, so the next 18 words are configuration data. Each word describes one configuration parameter. They follow the order of the header, starting wth Daily start hour. If a UV data word has bit 11 set (0x1800) then this is an indication that there were multiple readings where UV was less than the minimum UV threshold. This threshold value is set in the Advanced Settings Menu. The number of readings under the threshold is contained in the lower 11 bits. This feature saves space in the badges internal memory. The following example shows a segment of a data file that has been read in binary format. This is very close to how the data is stored in the badge memory, so it is quite efficient with file size and download time. 9012 0009 0011 0001 0002 001E 0000 configuration block to follow, 0x12 words daily start hour daily stop hour UV interval Temp interval Bat interval Participant ID

0000 0640 0000 0000 0000 03DB 0D69 18B7 0005 0190 0002 0000 4093 53E6 6EE1 4493 53E7 6000 1808 32BD 214F 214F 32BE 214F 214F 32BF 2151 1020 106A 2151 1071 106D 32BF 2151 1070 1804 2151 32C0 2151 2151 8000

Badge ID Integration time UV cal A UV cal B UV cal C Temp slope Temp offset Calibration date Minimuim UV threshhold Integration time when calibrated Sensor type (2 = UVB) Writing at page number timestamp for last access timestamp for beginning of day 9 readings in a row where UV = 0 battery voltage temperature

UV data above 0

end of file

Converting raw data to common measurement units

UV data is reported as raw ADC counts, ranging between 0 and 1023. Values above 1023 will be reported as 1023. The formula for converting raw ADC counts into common UV measurement units is left up to the user to define. See the Postprocessing calibration menu section for more information. Temperature is reported as raw ADC counts, which can be converted to temperature using two constants (temp offset and slope) which are found in the file header. The formula for converting ADC counts to temperature is: Temperature (deg C) = (ADC counts temp_offset) / temp_slope

Battery voltage is reported as raw ADC counts. The formula for converting ADC counts to battery voltage is: Battery voltage = ADC counts / 232.73

Note: These formulas apply to all data formats, including binary format. However, when using binary format, the hexadecimal characters must first be decoded, stripped of flags, and converted to integers before being used in the formulas.

Battery CR1632 is the required battery. Never use a smaller battery, even if you require shorter periods of measurement. Smaller batteries have higher internal resistances, which will cause operational failures. Battery life is expected to be approximately 12 months. Frequent off-loading of data will degrade the battery life, as data transmission and communication require more power. The effect is only slight, as off-loading data will consume about 3% of the battery. Nevertheless, it is recommended that a fresh battery be installed prior to deployment if upcoming data is critical, or if the dosimeter will be deployed for a long time. To keep track of battery life, several features are available. Each badge records battery voltage as a diagnostic tool. Lithium batteries tend to maintain their voltage until they are completely discharged, so if you see the battery voltage start to drop, you know that the battery is exhausted. In addition to this, the elapsed time since the battery was installed is shown in the Badge menu, and also the number of UV readings since the last battery change. This information is also listed in the header of each data file. If a battery dies while a dosimeter is deployed, most of the data from the dosimeter is recoverable. There will likely be a small amount of data that will be lost at the very end of the record. Just install a new battery, put the badge into the cradle, and read the data as normal.

Replacing the battery To change the battery, insert a small jewelers screwdriver under the shaped flange of the retaining ring, as shown in Figure 1. Do not pry! Rotate the screwdriver, and the retaining ring will come out of its groove. A well-placed finger will prevent the retaining ring from springing across the room. Remove the back plate, the rubber gasket, and the circuit board. Remove the existing battery with a non-conductive probe, such as the tip of a wooden pencil. Replace the battery with a 16mm coin cell CR1632. Be sure that the button of the battery (-) is pointed toward the circuit board.

Figure 1. Removing the retaining ring.

As you insert the battery into the holder, watch the front of the pcb for the blinking red light. The pattern of blinks indicates the status of the self-test. The light should pulse for one second, and then be dark for two seconds. Then there will be two quarter-second pulses, followed by a half-second pulse. In some badges, the middle pulse will have a slight stutter. This is a normal indication that the memory chip is of a certain configuration. If the light does anything other than this, please return the dosimeter to Scienterra for service. To reassemble the dosimeter, align the backplate and the retaining ring with the battery holder as shown in Figure 2. Make sure that the backplate and retaining ring are oriented in this way relative to the circuit board. This will allow you to easily see the orientation of the circuit board even after it is sealed up. This is helpful when you need to align the optical elements for data communication.

Figure 2. Backplate and retaining ring alignment.

To reinstall the retaining ring, start with one edge in the groove, and secure with your finger. Using a blunt object such as a screwdriver, press down near the middle of the ring, as shown in Figure 3, and progress around the unsecured edge. The retaining ring should snap into place. If it does not snap firmly into its seat, compress the backplate against the diffuser by pressing down firmly with your fingers as in Figure 4.

Figure 3. Reinstalling the retaining ring.

Figure 4. Compressing the backplate to help seat the retaining ring.

Be sure that the retaining ring is in its groove! If it is not fully engaged in its groove, then the badge will likely fall apart, and pieces may be lost. When the retaining ring is correctly installed, about one third of the rings width is hidden in the groove. See Figure 5, below.

Figure 5. The split ring on the left has been installed correctly. The one on the right is not sitting in the groove.

Document Revision History

Rev 0.f.1 Rev 1.0.16 Rev 1.0.17

30 March, 2009 18 October 2010 14 February 2011

Rev 1.0.19 Rev 1.0.20

28 July 2011 15 September 2011

Rev 1.0.22 Rev 1.0.23 Rev 1.8.24

4 November 2011 27 March 2012 23 May 2012

Preliminary release Expanded and revised Added detail about special case, start hour equals stop hour. Add revision histories. Updated to reflect firmware changes. Deleted text regarding hourly recalibration. Revised text about handshake. Revise Easy Config section to include Min UV. Minor text revisions. Fixed binary output example. Changed descriptions of badge submenus to match developments. Changed revision numbering system. Fixed binary format documentation for multiple zero readings to lower 11 bits. Updated format to describe config info. Updated to reflect firmware changes.

Badge Revision History 14h 15b 15e 16 17 7 April, 2009 25 May 2010 16 August 2010 4 October 2010 13 February 2011 Preliminary release Disable interrupts while modifying flags. Read flash address from cradle during download. Improve clock by counting interrupts. Fixed bug in synch_time. Fixed error in measure_uv. Calibrate oscillator against clock crystal to compensate for battery voltage. Removed batterydependent rubbish. Add special case for start and stop times equal. Add startup test to check UV circuit for proper zero. Insert startup check for 512-byte data page. Fix bug with number of days in month. Change eeprom handling to be more robust. Calibrate oscillator with successive approximation. Refine communication ISR and timing. Refactor to reduce code size. Add bootloader. Separate temp calibration. Add 50ms delay at start. Replace Int_reset reg with Int_time_at_cal. Change eeprom rganization so eep_flash_page is a register. Change eeprom handling to park at address 0. Add LED stutter on blink 2 to indicate power-of-2 DataFlash. Add Vbat data to handshake, so cradle


17 May 2011


19 July 2011

20 21 22 23 24

29 August 2011 1 October 2011 23 October 2011 23 May 2012

can display it. Move event timing to main loop, to reduce ISR size and improve reliability. Remove f_logging and f_keep_time flags, as reg[active] and keep_time_counter do the same thing. Move f_sleeping from event_flags to separate volatile, since that was the only flag modified by ISR. Increase (quiet) delay in handshake to improve reliability. Add battery check at startup. Fixed bug with oscillator calibration. Fixed another bug with oscillator calilbration. Improved handshake with fresh battery. Added bat voltage to registers Improved handshake performance. Improved comms during data transfer. Added configuration to logged data after each access. Log routines improved to make badge stable during multple deployments. Added UVA sensor support.

Cradle Revision History 14h 15b 17 17b 18 7 April, 2009 25 May 2010 5 October 2010 6 October 2010 23 January 2011 Preliminary release Disable interrupts while modifying flags. Fixed bug in filename timestamp. Fixed typo in clock function. Remapped to new pcb. Added temperature sensor. Added calibration lamp constant to menu. Fix bug that causes cradle to reset after download. Prevent hours > 24. Keep badge alive during menu navigation. Allow badge settings to be skipped if handshake is forced. Create updater utility to upload badge firmware. Restructure menus. Add datestamp to header. Add text format output (NIWA available on request.) Allow independent parameter outputs. Calibrate temperature independently. Suppress activity after data output. Add bookkeeping field for integration time when calibrated. Reformat dates year-monthday. Fixed data offset and stray bytes in text format. Turn off UV lamp upon exit. Insert verbage about 24-hour format. Complete handshake upon 4. Added Min UV threshold to Easy menu. Improved handshake. Added battery voltage to menu display from badge registers. 23 May 2012 Added automated functions to adjust integration time. Badge ID and sensor type password protected. Added UVA sensor support. Added formats to report


27 July 2011


10 September 2011

21 22 24

units (degC and Vbat). Added formats to include/omit inline configuration in data stream. Text formats label each line with data type. Added optional delay for slow USB ports. Improved comms timing. Reworked header output routine to allow indexing. Reordered header outputs to match memory order. Reduced lamp test to 5 seconds.