Integrated Sensors Electronic Bracer

Posted 2012.05.27 23.34 in Computers/Internet/Technology, Hobbies

Introducing the Integrated Sensors Electronic Bracer (6), or ISEB6, a wrist-mounted sensor platform.

A comfortable wrist-worn leather bracer, that provides: time & date, compass heading, Exposure Value for photography, positional data, walking tracker (distance, time, average speed), galvanic skin response data, local temperature and humidity data, “alarm-clock” functions (alarm by time or countdown seconds alarm), and simple illumination / flashlight functionality.

The ISEB6 is powered by a small / lightweight Lithium-Polymer battery, running up to 48 hours usage on a single charge, and with a simple & fast on-board recharging system.

The ISEB6 is based around Sparkfun’s Pro Micro development board and Adafruit’s SSD1306 OLED display screen. The number six in the name refers to the number of sensors integrated into the bracer. It contains the following sensing circuitry:

  1. Illumination is measured with a TLS2561 digital luminance sensor.
  2. Magnetic fields are measured with an HMC6352 digital magnetometer.
  3. Location is detected with an MTK3339 GPS module.
  4. Humidity is measured with an HIH4030 analog sensor.
  5. Galvanic Skin Response is measured with a simple resistor dividor and gold-plated electrodes inside the bracer.
  6. Local temperature is measured using the on-board temperature sensor in the ATMega32u4 microprocessor.

In addition, the ISEB6 also utilizes two voltage sensors, but as these only monitor its own internal status they are not counted among the ‘listed sensors’.

The ISEB6 has a lengthy feature set, all displayed on its 128×64 pixel OLED display. All functions are controlled by its three button interface, with each button having two contextually-dependant modes. Features of the ISEB6 include:

  • Display the time (time, day, date)
  • Display calculated Exposure Value
  • Display compass bearing
  • Display local temperature
  • Display relative humidity
  • Display galvanic skin response readings (current & averaged)
  • Display voltage (battery and Vcc)
  • Display raw Lux (luminance) value
  • Display internal memory status
  • Display position Latitide & Longitude
  • Display altitude
  • Display GPS fix quality
  • Track travelling (walking, etc) distance and time
  • Display track distance, time, and calculated average speed
  • Optionally use GPS LOCUS features to track actual realtime location data
  • Set & signal alarm by time (hh:mm)
  • Set & signal alarm by countdown (seconds)
  • Set time automatically via GPS signals
  • Set timezone via settings screen
  • Illuminate things via built-in LED flashlight

The 32u4 microprocessor can hold up to 32kB of program instructions, and has 2.5kB of RAM. In this application, it clocked at 8MHz and runs on 3.3v power. As of version 1.0 there remain over 4kB of instruction space available, and over 500 bytes of RAM is also unused – allowing for future upgrades and enhancements.

The firmware for the ISEB6 was created with version 1.0.1 of the Arduino IDE, and the Sparkfun Pro Micro hardware definitions. You can download the ISEB6 firmware here. The zip archive includes my development notes file (ISEB6.txt), which contains a simplified BOM and details on what external libraries were utilized. It also includes two libraries which were heavily modified for this project.

Please note, in order to squeeze in all the desired functions and features, some sacrifices had to be made. You will either have to remove the bootloader from the Pro Micro, or you will have to omit the USB libraries.

To remove the bootloader, compile the sketch then upload it directly via the ICSP using an AVR programmer. To omit the USB libraries, edit the /core/arduino/main.cpp file and comment out the USB.attach(); line before you compile.

The bootloader takes 4kB and the USB libraries use about 3kB, by omitting them both you gain another 7kB of flash space – with only 32kB in total, the bootloader and USB libraries consume about 20% of your available space!

15 Comments

  1. Dennis Gentry says:

    Wow, this is great. I can’t believe (well, I guess I can) you are so tight on space that you need to leave out the bootloader! Anyway, cool project.

  2. Vishwanath KAncherla says:

    Hi Stephanie,

    I think the idea is very cool and out of this world . How did it cost you and how long did it take ? Can you modify it for other purposes ?

  3. Namaki says:

    Stephanie,
    Can you provide the schematic for the ISBE6 ? Please !
    why I ask? because it’s so DAMN COOL!
    Thanks,

  4. Thopter says:

    What if we would prefer to drop a sensor and a feature, such as the luminance sensor or the GSR sensors? How much memory would that save, and how easy would it be to excise those parts of the code?

    Just what is the GSR sensor feature for, anyway? :)

  5. Stephanie says:

    Thanks for all the comments. Some quick replies to the various questions:

    1) I prefer not to think of the cost, but I’m probably around $200 into it all together. That includes the cost of the various components, including a few that didn’t survive various testing, and the cost of the leather and hardware.

    2) It has taken about 2 months or so to get it to this point. If I condense it down to just the actual time spent working on it, there’s probably a solid 40-hours in there. This includes all the testing and experimenting to figure out what would work and what wouldn’t. It’s not ‘finished’, I do intend to put some more work into the exterior to make it look nicer.

    3) I do not have a schematic at the moment, this was all more or less done straight out of my head. If you download the zip file, there’s a text file in there which contains my build notes and that includes a ‘Pro Micro Pinout’ which describes how each component is wired to the Pro Micro. This file also contains a simple BOM that lists each major component. I probably won’t create an overall schematic as almost every part is an off-the-shelf part with its own schematic that already exists, but I will try and do a block-diagram with wiring info to show how the modules are wired together.

    4) It is very modifiable (within its existing limitations). I could add more sensors, or remove sensors. Eg. I am already looking at adding a sensor to measure sound levels (deciBels). The existing limitations of course are that it must fit on my wrist, must have low power requirements, and must fit in the remaining flash / ram that’s available on the 32u4 processor.

    5) Removing something would absolutely free up resources. The luminance sensor library probably takes 3 or 4 kB of flash, and maybe a dozen or two dozen bytes of ram. It doesn’t draw much current as it is ‘asleep’ most of the time, only waking once per second to take a reading. The GSR doesn’t take much resources, a couple dozen bytes of flash and a handful of bytes of ram, since it’s just a simple analog-read. The GSR doesn’t draw much current either, probably about 50 microAmps on average.

    6) The GSR (galvanic skin response) simply measures the resistivity of skin. This can be used to deduce stress levels, for example it is part of the polygraph test (lie detector). My idea is to use it as a form of biometric feedback, so if I’m feeling stressed, I can (theoretically) use it to quantify the stress level then try and relax to lower the level. The way I have it wired, the higher the ‘stress’ the higher the GSR number.

    Cheers!

  6. Dave Eaton says:

    Great project! Got here via adafruit, and that via hackaday. Great job getting it to all fit and work!

    I love your comment about preferring not to think about the cost. Amen twice to that! If I had a dime for every dollar I have spent making something quixotic I wanted to see work, I’d still be a lot less strapped.

    Every project worth doing is harder and more expensive than you think at first, but a couple hundred bucks is a bargain for all the cool things you figured out and learned. Superb.

    1. Stephanie says:

      Thanks for the encouragement Dave!

      It really is true, the knowledge and experience I’ve gained in working on this project are well worth the price of admission hehe.

  7. [...] Stephanie has created a forearm bracer that holds a huge number of sensors.¬† Using an Arduino (Sparkfun’s Pro Micro) and an OLED display, the wrist mounted sensor platform contains the following sensors: [...]

  8. Lezley says:

    You truly are the most interesting person I know… and definitely in the top 10 of interesting people I’ve heard of.

  9. Namaki says:

    Will you please do a block-diagram with wiring info to show how the modules are wired together?

    I am so anxious to see it.
    Thanks

    1. Stephanie says:

      I’m working on a block diagram and a pin-out / connections chart. I’m afraid it isn’t very pretty… I tried to use Fritzing but about half the parts aren’t in the library and I’ve never actually used Fritzing before and it looked complicated to set up new parts libraries, so I ended up just using pictures and a graphics program. Hopefully it won’t be too crazy. I’ll get it finished up and posted as soon as I can.

      Cheers!

      1. Namaki says:

        Stephanie,

        May I suggest you one thing: have you tried Eagle CAD for board layout and schematic? They have lots of libraries. Here is the link to it.
        The best part is it’s free.
        http://www.cadsoftusa.com/download-eagle/?language=en

        Regards,

        1. Stephanie says:

          I have tried to use Eagle more than once, but it I have found it very difficult to learn. I know it seems to be the standard that everyone uses – Adafruit, Sparkfun, etc – but it seems to have a huge learning curve.

          Someday I’ll learn how to use it. I don’t want to leave folks waiting till that day comes though, before I post some more how-to info.

Leave a Comment