Close

Does this project spark your interest?

Become a member to follow this project and don't miss any updates

OSHWatch

An open-source "smart watch" that can be built from easily available parts, and assembled by hand. Designed for hackers

Similar projects worth following

This project was created on 08/05/2014 and last updated a month ago.

Description
Smart-watches are becoming the next big thing, but with increased miniaturization it is becoming impossible to build these sorts of devices yourself. This project aims to provide a "smart-watch" which can be built from readily available components (eg. from element14, digikey, etc.), and able to be soldered by hand. Of course, processing power must be sacrificed, but who needs a camera and 60FPS graphics on a *watch*???

You are welcome to contribute! just comment below or send me an e-mail (on my website)
Details

I originally came up with the idea because I had an OLED display lying around, but no way to use it. So I turned it into a watch! I have been working on it for around a year now, and I have documented progress on my website: http://jared.geek.nz/2014/jul/oshw-oled-watch

 This project is also an entry in the Hackaday Prize!

The watch uses a PIC24F microcontroller and a 128x128 RGB OLED display, and features an accelerometer and magnetometer. The goal is to have Bluetooth 4.0 LE connectivity, enabling hands-free calendar and time synchronization with services such as Google Calendar. It will also eventually be able to pair with a smartphone to show various notifications such as e-mails and txt messages. 

I would also like to add NFC in the next hardware revision, allowing the watch to be used as an access card, though I still need to research this a bit more.

 Things that currently work:

  • Clock (Obvious requirement for a watch!)
  • Calendar (Shows upcoming events, eg. my university timetable)
  • USB-HID communications & programming
  • Custom pre-emptive RTOS with low-power sleep
  • Accelerometer graph view
  • Full colour graphics at approx 10FPS, with an optimized graphics library
  • USB battery charging

 Things I'm working on/would like to do:

  • Bluetooth 4.0 LE - The hardware is soldered and works, but I still need to write the drivers.
  • Magnetometer/Compass app
  • "Tap to wake" using the accelerometer
  • Alarm clock!
  • Improve the battery life (currently I get about a day's worth of life)
  • A revision 3 PCB that fixes all the issues I've found so far

I use this watch every day (and rely on it for my university timetable), so I can tell you that it does indeed work! There's still much to be done though before it could even be considered "consumer grade", but that wasn't the point of the project anyway.

And of course, all this is released under the Open Source Hardware(OSHW) license!

Components
  • 1 × PIC24FJ256DA206 Microprocessors, Microcontrollers, DSPs / Microcontrollers (MCUs)
  • 1 × 128x128 RGB OLED Display
  • 1 × nRF8001 Bluetooth 4.0 LE Transceiver
  • 1 × MMA7455 Accelerometer
  • 1 × HMC5883L Magnetometer
  • 1 × BQ25010 LiIon Battery Charger + Low power buck converter

Project logs
  • An Overdue Update

    a month ago • 0 comments

    Sorry for the lack of updates... I've been busy with University over the past month with end of year exams and such, but now that's finished I can turn my attention back to this project!

    I will now try to finish off the firmware to a stage where everything is more or less functional, and then I will begin creating a new hardware design based on e-ink technology and ultra-low power consumption electronics, and try to fit in some additional sensors. I may also revise the current OLED watch design to fix the issues with the current hardware, in case people would like to build the OLED version. I know a few people are attempting it!

    The next steps for now are:

    • Bluetooth 4.0 communications
    • Magnetometer driver (and compass application)
    • Tap-to-wake functionality
    • Alarm clock API and application
    • Better PC software for updating calendar, etc.

  • Semifinals Update

    3 months ago • 0 comments

    It's been pretty hectic at uni, but I'd like to share my latest improvements to the watch so far:

    Where to from here?
    Well I would definitely like to implement the bluetooth 4.0 driver when I have time, so that I can implement wireless sync with my PC and phone instead of requiring a USB cable.

    I would also like to add gesture recognition for automatically waking up the display, a compass app using the built-in magnetometer, and a smart alarm clock that detects my sleeping patterns to determine the optimal time to wake me up at!

    And finally I would like to create a new PCB that fixes all the issues I've had so far.

    Of course, the entire project is available under the Open Source Hardware (OSHW) license, and I welcome any contributions. (I know one other person has tried building my design, with success!)

  • Progress Update

    3 months ago • 0 comments

    It's been a bit of a hectic week with University projects as well as this, but I've been chipping away at my github issues slowly fixing all the bugs with the firmware! (https://github.com/jorticus/zeitgeber-firmware/issues)

    I've had quite a few interesting bugs to fix:

    • Systick overflow bugs causing the watch to reset
    • USB not detecting that the cable has been unplugged
    • Buffer overflows in the printf() library
    • Image buffer becoming corrupted when compiler optimizations are enabled

    On the upside, I've got a new UI prototype and events system under-way:

    New UI
    CPU Utilization
    Old UI

View all 9 project logs

Discussions

zeevro wrote 2 months ago null point

I would totally support this on Kickstarter!!

Are you sure? [yes] / [no]

jaromir.sukuba wrote 3 months ago null point

Nice project!
By the way, where can one buy the watch case? I tried to search through the project info/logs and somehow I can't find this info.

Are you sure? [yes] / [no]

Jared Sanson wrote 3 months ago null point

Are you sure? [yes] / [no]

Walltech wrote 3 months ago null point

Hi Jared! I'm working on my watch, and I'm really interested to know how you got hold of the battery percentage. I haven't come across a battery monitor IC that I've liked, and would like to know how you've done it. Also, what kind of battery life do you get? Thanks! -John

Are you sure? [yes] / [no]

Jared Sanson wrote 3 months ago null point

Hey, I'm actually just using a voltage divider + ADC to measure the battery voltage. Not very accurate but useful enough! (0% = 3.6V, 100% = 4.15V) I think there's a way to calculate actual capacity if you can also measure current (though that's a bit harder to do).

I'm currently getting about a day's worth of battery life, the trick is to put everything into sleep mode as much as possible.

Keep up the good work on your project! You're making great progress!

Are you sure? [yes] / [no]

peter jansen wrote 4 months ago null point

This is a great project, and really impressive! I really like your font library, and the variation of fonts that it has!

I think we're using the same display in our projects, and I was surprised how much juice it uses -- the +13V line can draw nearly 300ma when the display is on full-white, which requires it to have a decent sized battery. I think the protocol for the OLED initialization specifies that the OLED +13V should be disabled until the controller is enabled, which might be where the resetting bug is coming from, if there's too much current draw? For some different (much larger) OLEDs I've noticed that they would draw /a lot/ of juice and heat up substantially if the OLED voltage was enabled before the controller was initialized, so there might be something similar going on here, just briefly? It might not be something folks would notice unless their projects were battery powered.

Are you sure? [yes] / [no]

Jared Sanson wrote 4 months ago null point

Yeah I was also suprised at how much current it drew (mine used at least 100mA).
Thanks for the tips, I did try adding a delay between +12 power on and enabling the controller, but I don't think that fixed the problem. Maybe I'll try again just in case!

Are you sure? [yes] / [no]

Christian wrote 4 months ago null point

I really like what you have done. I've been working on my own watch project for a while now (too long actually), but yours beats mine out IMO. How hard was it to program for your OLED? The one I am using uses a simple serial interface, but I like the amount of control you seem to have with yours. Also, what kind of peizo are you using? I've been having a hard time finding a small surface mount one.

Are you sure? [yes] / [no]

Jared Sanson wrote 4 months ago null point

Ah well don't let me put you of your design, half the fun is doing it yourself! GPS is a pretty cool idea too

The OLED is actually pretty easy, it just takes a bit more work. Basically I have a 128x128 image buffer on the PIC, and that just gets written straight out to the OLED through an 8-bit data bus. I have my own drawing functions for drawing text/images/lines to that image buffer, but there are open-source libraries for that. The trickiest thing is the commands you need to send the display on start-up, but there's lots of code around on the internet for that. Also you have to make sure your microcontroller's got enough RAM for the buffer! 128x128x(2 bytes per colour)=32kiB of RAM!

As for the peizo, it's just something ripped out of an old watch soldered to wires...

Are you sure? [yes] / [no]

Mark Jeronimus wrote 4 months ago null point

I LOVE THIS. I was searching for smart watches that I can program on and came back empty every time. The Pebble doesn't multitask, the TI doesn't have matrix display, the WIMM, Sony, i'm Watch and others don't have enough buttons, are Android (overkill) or don't last long (not to mention that I can't verify my specific requirements without hands-on experience)

I want a wrist-device with RTC (doh), matrix display that's always on (even when stationary), easily programmable, lasts 20 hours on a charge, and at least four buttons (for up, down, enter and back). Will yours be able to do this once finished?

Are you sure? [yes] / [no]

Jared Sanson wrote 4 months ago null point

I'm glad you like it!

The current design uses an OLED, which in retrospect isn't that great for a watch because of the simple fact that it uses a lot of power, thus you can't have it on all the time if you want it to last an appreciable amount of time.

That's why I'm looking at e-ink for my next design, though that will be quite a few months away yet. With e-ink I expect battery life to be weeks or even months!

FYI another hacker has developed a smart-watch using "memory LCD" technology which is similar to e-ink: https://github.com/hairykiwi/OTM-02

Are you sure? [yes] / [no]

drsmith900 wrote 5 months ago null point

This looks great! I've been mulling over this sort of idea myself and I reckon you could probably get good results controlling the watch using tap/double tap on the accelerometer, if you have a simple UI

Are you sure? [yes] / [no]

Jared Sanson wrote 5 months ago null point

Yeah I've been meaning to implement that sort of UI for my current OLED prototype, but for now buttons work well enough. I know the accelerometer I'm currently using has a "tap detect" function which can generate an external interrupt, thus saving the MCU from having to continually sample it, which wouldn't be terribly great for battery life.

Are you sure? [yes] / [no]

Adam Fabio wrote 5 months ago null point

As a fellow watch designer, I'm watching this one - (pun intended). Gecko power is a great choice - plenty of processor, and low power.
I'm curious how the e-ink display will handle things like scrolling or sweep second hands.

Are you sure? [yes] / [no]

Jared Sanson wrote 5 months ago null point

I did some limited testing with the e-ink, I can get about 1-2FPS with a full refresh every frame, so it probably isn't quite fast enough for drawing a seconds hand or doing any scrolling. I am going to try some more experiments and see how much I can do with it though!

I have seen the Sharp Memory LCD "ePaper" used in another watch which has a higher framerate, but personally I like the look of eInk.

Are you sure? [yes] / [no]

Similar projects