An Arduino Zero compatible open source smartwatch

Similar projects worth following
The Zerowatch is an Arduino Zero compatible smartwatch, it features a oled screen, 32bit ARM processor, microSD, and accelerometer, all in a neat case.
The idea is based upon the Retrowatch.

Concept video

The zerowatch started off as a branch from the Pix-OS project as an initial hardware platform, but that was based on a stm32 in the early designs.
i knew it wasn't going to be very user friendly at all (programming-wise), so i searched for an alternative mcu.
one which was able to run as arduino compatible, in a small form factor, but with enough capabilities.
the only option at that time was the arduino due, but that mcu had way too much external components, and it was rather large chip as well.
that left us at the recently introduced arduino Zero, which is perfect for the job, even though it has 'only' 32kb of RAM (still 16x an Arduino uno's RAM)

The Zerowatch uses an atmel microcontroller, and has custom open source software written for it.

(it was initially being developed on an arduino due though)

it's hardware specs are:

  • 48mhz arm cortex m0+ (arduino zero (native usb) compatible)
  • 32 kilobytes RAM (of which max 20 kilobytes are reserved for apps*)
  • 256 kilobytes FLASH
  • 3 axis accelerometer
  • 4 tact buttons
  • 1.5 inch high color oled screen
  • microsd slot
  • 3 axis accelerometer

* = configurable by setting a define in the software

currently the work that is done:
- set a development plaform with the arduino zero
- write initial code
- pcb design (by Atomsoft)
- 3D print an enclosure for the Zerowatch

currently the work that is to be done:
- receive test batteries
- receive custom pcb's (made by Atomsoft) for the project.
- bugfixes and a few more demo apps.
- microsd support

subject to change ;)

  • 1 × ssd1351 1,5" color OLED breakout board (with microSD) ebay seller: has those
  • 1 × 3D printed casing (or print yourself) needed as a neat enclosure
  • 1 × 500mAh battery max dimensions: 45MM x 36MM x 3MM
  • 1 × Zerowach core board custom designed Zerowatch mainboard by Attomsoft
  • 1 × 22MM watch band with pins to attach it to the watch

View all 6 components

  • update 13, battery usage problem found!

    8bit-bunny11/11/2015 at 09:22 0 comments

    hi all,

    first of all: i'm not really planning on continuing this project, though i found the main reasong of the high battery usage: namely the mcu clock!

    found out thanks to a teensy 3.2 running in 48 and then 2mhz with a multimeter attached.

    48mhz: over 25mA continous

    2mhz: less than 3mA continous

    so, in theory if this also counts for the samd21 (the zerowatch mcu), i could get battery life up to a week or more!

    anyhow, since i don't got that much time right now, i'll keep it with this, bye!

  • update 12: delays and more ideas to implement

    8bit-bunny09/13/2015 at 14:15 0 comments

    first of all, sorry for the huge delay on the project, i am currently waiting for the firast 2 pcb's to arrive, as they are currently on a plane to my country as i type this.

    i also ordered a new casing, one which is a bit more durable (thicker walls and such) i needed to redesign it completely, as the old model had some errors which were hard to solve. (will look almost the same)

    next, i had an idea last weekend of implementing interrupted events for apps, but i don't know how to implement it exactly, but i'm going to give it a shot :)

    MicroSD support will NOT be implemented because of the following reasons (even though the screen breakout has a microsd slot):

    - slow interface in combination with the screen, as the custom pcb's use a bitbanged interface (spi had some errors)

    - power consumpion is just too huge for the tiny (still 500mAh) battery in the current design.

    i hope to get my pcb's coming week, otherwise i won't make it for the deadline to shoot another video for the contest.

    anyhow, that's it for now, i hope this will be enough information for now. :)

  • update 11: interrupts and further plans!

    8bit-bunny08/26/2015 at 01:25 0 comments

    a small update for those interested:

    i am switching to an hardware interrupt for the clock, as i encountered a bug in the software, namely:
    when a loop cycle runs for more than a second ( like delay(1200); ), the time skips a second as well. the only option to prevent this without too much hassle is a hardware interrupt
    though the only pins that are usable are pin 0 & 1 (the serial pins), as all other pins are occupied already, so this means i need to ditch the bluetooth feature.

    so once i'm getting my new oled screen (which hopefully will be tomorrow) i will start working on my project again and implement the interrupt.
    i also will start working on the app selection screen, as it's still bugged as of now.
    new casing (shown in update 10) is also ordered at shapeways :)

    next steps that are on the todo list are:
    1: optimize code!
    2: wait for casing to arrive and check if battery fits, if not, update design and order another case.
    3: wait for pcb's to be sent to me from AtomSoft and test them once i receive those
    4: try to put a watch together and shoot a video for the quarter finals (with or without case)
    ( yes all of the above within less than a month >_< )

    after that, i hopefully am able to develop some more demo applications and finalize the design.

    please put any ideas regarding the watch in the comments of the project :)
    (also, for those who didn't notice yet, i put a component block diagram in the gallery)

  • update 10: got motivation & new case design

    8bit-bunny08/24/2015 at 16:39 0 comments

    some things got me thinking like "what's the use of the watch?" and "am i going to continue?"
    especially when i got a sony SW2, it made me feel like that at first.
    however, when i tried to dev apps for it, i started to think different, as i don't really want to use a custom java sdk
    i want plain C (and C++) to develop apps in, plus i really want a good open source alternative to all those closed source smartwatches.

    this got my motivation back and i continued design :D
    the first thing i had trouble with is that the 500mAh battery was larger than advertised, i needed to redesign some things (mostly regarding the enclosure)

    there are still some things i want to improve:
    - Zerowatch emulator (beyond my skills sadly)
    - code debugging and optimizations (like the applist displaying bug)
    - creating a custom android bluetooth app (also beyond my skills sadly)
    - let apps use bluetooth?

    i also ordered a new color oled at ebay, and am waiting for it to arrive as i can't really do much else right now

    anyhow, have the render of my current case design :)

    it's dimensions are about: 41x54x9MM (including watchband connectors)

  • update 9: stuff happened

    8bit-bunny08/24/2015 at 11:24 0 comments

    so, the pcb's have been produced and are being assembled, though i don't know if i'll resume this exact project, as things happened.

    like my screen broke during transportation (no spare screen as of now)

    batteries arrived, but are too big to fit in the enclosure (ebay seller gave wrong dimensions)

    and the high battery usage of course

    i can try to optimize the battery usage more, ut that would require me to get a custom pcb for the screen, which will add alot to the costs for me as well, as i just don't have the right experience with pcb design.

    note this doesn't mean i will leave the project as it is, i will most probably change the design quite a bit in the far future
    (like using a TEENSY 3.1 based system and a little bit bigger OLED (160*128px) or go for a rpi based system)

    ideas or suggestions on what to do are welcome of course :)

  • update 8: casing + final schematics

    8bit-bunny08/06/2015 at 12:10 0 comments

    a update to keep you all informed, i have received my case design (3D printed by Shapeways), though i made minor miscalculations in the 3D model (screen doesn't fit properly as of now), so i gotta re-order it soon, but anyway, let's face the beauty!

    i simply tested my pebble band to check if it fits, and it does! :)

    it's about the same size as a pebble classic, but a little bit wider to fit the oled screen :)

    another small thing is that the schematics are final for the current model and test pcb's are being ordered and assembled by Atomsoft.

    also, i haven't got to look at the website/code as of now, as my sleep rythm is messed up quite a bit :(

    that's it for now

  • update 7: more (battery) optimizations

    8bit-bunny08/01/2015 at 18:23 0 comments

    optimizing battery span can be quite difficult, but not impossible
    even when the screen is 'fully' off, the boost converter to 13V for the screen power still runs, making the total amount of consumed current about 100mA (when screen is fully black)
    so the only solution is to include a hardware switch which can power the screen fully down (sadly this also affects the microSD slot).

    same concept is going to be applied to the bluetooth to save more battery. :)

    so basically: Atomsoft and i are getting pretty close to a final schematic for the whole thing.

    with current software optimizations, the 1400mah lipo battery can now last up to 24 hours till it reaches 3,3V (3,7V is recommended lowest level, so 3,3V is danger)

    and more functionality will be added very soon to the code, allowing for more graphic commands, accelerometer readings and such!

    also, the website home will undergo some slight changes, with links to this hackaday project and such :)

    and if that isn't enough for this update: the 3D case design is getting along pretty neatly, the dimensions are 50*31*9mm as of now. (including strap connectors)

    and without strap connectors: 42*41*9mm

  • Update 6: slight changes + battery usage

    8bit-bunny07/30/2015 at 21:24 0 comments

    i just wanted to say that the battery usage isn't optimal as of now, i mean: the screen boost converter is always on, even when the system is idle, and i also found out that the screen can run on 3,7Vin instead of 5Vin, meaning my tiny polulu (did i spell that right?) boost converter is unneeded, pcb design is also going to be 5MM less wide (it is 38,1mm now, was almost 44MM)

    currently a 1400mAh lipo battery will last for about 10 hours with the inefficient usage described above.

    as a 500mAh will be in the final design, some extra stuff will have to suffer, like screen converter only on when screen is displaying something

    also, since i'm using app inventor 2 for my bluetooth controlling, i came to the point their features are not enough, as i basically want a message pushed to the watch when i receve an email, it seems this isn't possible, but it is with receiving text messages, weird..

    lastly: i've continued on my 3D design in sketchup :)

    it looks like this now:

  • Update 5: arduino zero + github

    8bit-bunny07/28/2015 at 15:21 0 comments

    so, i got my first arduino zero compatible, namely a Neutrino.

    i firstly started testing the code on it, it works, but you will get 3 ld.exe warnings, and applications won't work at all :(

    i also added the code on github for those who want to help

  • update 4: code overhaul! + github repo coming soon

    8bit-bunny07/27/2015 at 20:07 0 comments

    the whole system is being rewritten as of now, and I'm using more classes, as this keeps code nicer to look at, but also increases security on the user app-side:

    it was this before:
    all system variables and functions can be adjusted/called from your own apps. to prevent this from happening, simply declare all variables in the 'private' section of your app.
    And for the functions, recommended is using __ in front of every function you make, example: 'void __init_vars()'.

    and now it is:
    no system variables can be accessed, and only functions that are set as 'public' can be accessed from apps now :D
    this enhances security of the watch.

    this also means one can not access the graphics library directly (including all driver chip commands), so a 'wrapper' is being written as well.

    the gihub repo will hopefully be online by the end of this or next week

View all 13 project logs

Enjoy this project?



justin.m.riddle wrote 09/29/2017 at 05:28 point

If you someone to continue this watch, which I think it deserves, please contact me.

  Are you sure? yes | no

a.galal7 wrote 11/14/2015 at 22:13 point

i am starting to get interested in making a project of low power basic smart watch , 

i am still gathering resources and info. and i was interested in using atsamD21 as well , according to atmel's datasheet the MPU in active mode can go as low as 75 uA /MHz , that's should be 3.6 mA @ 48 MHz , but you say it takes 25 mA for your case !!!
what are the peripherals you are using ?
are you programming using arduino IDE or using atmel studio ?

  Are you sure? yes | no

8bit-bunny wrote 11/14/2015 at 22:17 point

Arduino ide, but I didn't put it into sleep mode

  Are you sure? yes | no

a.galal7 wrote 11/14/2015 at 22:31 point

sleep mode should take even less , maybe few uA's
my main goal is achieving minimum power in the project i am thinking of, so
i was thinking maybe arduio API's are messing something up , causing this large current consumption . 
as i read , the atsamD family allow using different clock sources for peripherals , maybe arduino API uses the 48 MHz crystal for every thing and so increasing the current of the whole MCU ? 
or maybe atmel's ratings are made at lowest voltage in operation range ?
What's the current consumption of the oLED screen by the way ?
-sorry for the many questions :3 -

  Are you sure? yes | no

8bit-bunny wrote 11/14/2015 at 22:34 point

I don't know what exactly was wrong, but I suspect the oled and mcu combination.

The oled consumption is about 25mA as well when all pixels being white

  Are you sure? yes | no

Craig Hissett wrote 11/12/2015 at 12:09 point

This is great - I've seen a fair few watch projects on here, but I absolutely love this one! Pleeeeeeease continue with it! :)

  Are you sure? yes | no

8bit-bunny wrote 11/14/2015 at 22:16 point

Well, to be honest, I'm working on something even better, so stay tuned

  Are you sure? yes | no

Craig Hissett wrote 11/14/2015 at 23:05 point

Well if it is better than this I want one. I dont know what it is, but I want one :)

  Are you sure? yes | no

greenaum wrote 11/11/2015 at 22:58 point

No, it's the interface from the game itself. It had a main screen for each function. Surrounded by miniature versions of the screens for other functions. So to call up a function, press the mini-screen, and it replaces the main screen, which then goes mini and pops into the surrounding area at the edge.

Just thought it would be a nice interface, but if you're not gonna do the watch, never mind! I still want to get my hands on something I can code for myself, I'm not up to the hardware side.

  Are you sure? yes | no

greenaum wrote 11/04/2015 at 21:31 point

Just regarding that mockup of the interface, ddi you ever play "Star Trek The Rebel Universe" back in the 1980s? An early game for the Atari ST, also available on C64 and some other computers.

It had a main area, in the top-left of the screen, that let you control the Enterprise, with secondary screens around it. Selecting a secondary screen brought it into the main area, where you could interact with it. Meanwhile the screen you were just working on was sent to one of the secondaries.

Anything could be in the secondaries, engine control, phasers, etc. But also crew portraits, where Sulu took you to the Navigation screen, Checkov to the weapons, etc. The root screen was a picture of the bridge, where you could click on the crew members to take you to their screen, in case their portrait no longer appeared on one of the secondaries.

They were heirarchical, with Bridge -> each crew member -> main screen for that member -> sub function screen. As you "discarded" each screen it would appear on one of the secondaries, so eventually they'd contain a mix. Some game logic was included to decide which ones.

Easiest way to understand would be to play it, I'd recommend the Atari ST version since it uses a mouse. Perhaps it would be something to implement on the watch? You'd need perhaps simpler pictures for each screen.

Besides all that... Any chance you'll want to sell these once you've finished? Or at least sell any custom parts, the PCBs and case etc?

  Are you sure? yes | no

8bit-bunny wrote 11/10/2015 at 20:08 point

I don't fully get what you mean with the star trek like interface, you want it to look like that? And I don't plan on selling these ones as they contain critical hardware and software bugs and isn't very power efficient (I see this project as a failure). I've recently started on working on a other project which consumes alot of my time, it being a secret one for now.

  Are you sure? yes | no

Montassar wrote 08/23/2015 at 08:12 point

Still waiting for update 10 :p I really want to see it on wrist and working !

  Are you sure? yes | no

8bit-bunny wrote 08/24/2015 at 16:35 point

well, my oled screen broke and i need to wait till i get it and can go on with debugging, plus the 'mainboard' pcb's are being produced as of now.

  Are you sure? yes | no

FuVinatro wrote 07/25/2015 at 17:51 point

What kind of battery are you going to use, and where will you keep it?

  Are you sure? yes | no

8bit-bunny wrote 07/25/2015 at 17:53 point

a 500mAh 3,7v lipo will be used in the prototypes, and i will design a custom case (battery will be placed under all pcb's)

  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