F*WATCH, making a watch differently!

Federico Vaga, Matthieu Cattin

FOSDEM, Brussels, 31 January 2015

Federico Vaga, Matthieu Cattin F*WATCH 1/44 What is it?

Federico Vaga, Matthieu Cattin F*WATCH 2/44 What is it?

Federico Vaga, Matthieu Cattin F*WATCH 2/44 Why a watch?

Retirement gift for a timing Hacker

Gift Requirement

1 customization of the gift 2 hackable gift 3 free/open source 4 use only FOSS tools

Federico Vaga, Matthieu Cattin F*WATCH 3/44 Development organization

Federico Vaga, Matthieu Cattin F*WATCH 4/44 The design

Components selection criteria

Low power consumption

Available in small quantity from main suppliers

Small size (footprint)

Federico Vaga, Matthieu Cattin F*WATCH 5/44 Components selection

Micro-controller (EFM32)

Silicon Labs 32-bit Cortex-M3 1MB flash 128kB RAM 1.1uA deep sleep

Federico Vaga, Matthieu Cattin F*WATCH 6/44 Components selection

GPS module

Antenova 13 x 9.5 x 1.8mm Integrated antenna

Federico Vaga, Matthieu Cattin F*WATCH 7/44 Components selection

Altimeter module (pressure sensor)

Measurement Specialties 6.4 x 4 x 2.8mm Water-resistant Includes a thermometer

Federico Vaga, Matthieu Cattin F*WATCH 8/44 Components selection

Memory LCD display

Sharp 128 x 128 pixels 1.28 inches Ultra low current

Federico Vaga, Matthieu Cattin F*WATCH 9/44 Components selection

Battery

Adafruit Li-ion 500mAh Big capacity Lightweight Rechargeable

Federico Vaga, Matthieu Cattin F*WATCH 10/44 Components selection

Other features 3-axis accelerometer + compass Ambient light sensor micro-SD card slot Battery charger + fuel gauge micro-USB connector Buzzer Vibrating motor

Foreseen improvements Bluetooth LE Low noise amplifier for the GPS antenna Power management

Federico Vaga, Matthieu Cattin F*WATCH 11/44 PCB design

CERN is contributing Developers in the team (help, bugfix, feedback) New features making routing easier (e.g push&shove) Script to generate placement pdf

Interested in knowing more about KiCad developments? Visit the EDA dev room (AW1.124) tomorrow

Federico Vaga, Matthieu Cattin F*WATCH 12/44 PCB design

Characteristics 4x4cm 4 layers Components on both sides Licensed under CERN OHL v1.2

Federico Vaga, Matthieu Cattin F*WATCH 13/44 PCB assembly & validation

Prototypes assembled by hand

Fully working, except two minor bugs Error in a datasheet MCU interrupt scheme → Fixed with few cuts and wires!

Federico Vaga, Matthieu Cattin F*WATCH 14/44 Backlight

A long story...

To read display in the dark No backlight available

Federico Vaga, Matthieu Cattin F*WATCH 15/44 Backlight

First try: LEDs + opaque Plexiglas

Federico Vaga, Matthieu Cattin F*WATCH 16/44 Backlight

First try: LEDs + opaque Plexiglas

Not good!

Federico Vaga, Matthieu Cattin F*WATCH 16/44 Backlight

Second try: Recycled smartphone backlight

Federico Vaga, Matthieu Cattin F*WATCH 17/44 Backlight

Second try: Recycled smartphone backlight

Better, but...

Federico Vaga, Matthieu Cattin F*WATCH 17/44 Backlight

Current try: Custom-made module → Low quantity, cheap (< 5$/pces)

Federico Vaga, Matthieu Cattin F*WATCH 18/44 Backlight

Current try: Custom-made module → Low quantity, cheap (< 5$/pces)

The solution

Federico Vaga, Matthieu Cattin F*WATCH 18/44 Mechanical design

CAD tool selection No mechanical engineer No experience in 3D design/printing Evaluate existing free CAD tools FreeCAD, OpenSCAD, Open CASCADE, ...

Federico Vaga, Matthieu Cattin F*WATCH 19/44 Mechanical design

CAD tool selection No mechanical engineer No experience in 3D design/printing Evaluate existing free CAD tools FreeCAD, OpenSCAD, Open CASCADE, ... Criteria Documentation, support User-friendliness, learning curve

Federico Vaga, Matthieu Cattin F*WATCH 19/44 Mechanical design

CAD tool selection No mechanical engineer No experience in 3D design/printing Evaluate existing free CAD tools FreeCAD, OpenSCAD, Open CASCADE, ... Criteria Documentation, support User-friendliness, learning curve Decided to use FreeCAD

Federico Vaga, Matthieu Cattin F*WATCH 19/44 Mechanical design

Full of new challenges

Learn FreeCAD from scratch Design a watch case 3D print it

Federico Vaga, Matthieu Cattin F*WATCH 20/44 Mechanical design

Full of new challenges

Learn FreeCAD from scratch Design a watch case 3D print it

It’s time for a live demo!

Federico Vaga, Matthieu Cattin F*WATCH 20/44 3D model

Making of movie (6 hours summarised in 5 minutes) http://www.ohwr.org/projects/f-watch/wiki/Movies

Federico Vaga, Matthieu Cattin F*WATCH 21/44 First 3D print

Fused plastic material - Low-cost 3D printer

Poor resolution, not good enough

Federico Vaga, Matthieu Cattin F*WATCH 22/44 Second 3D print

Plastic material (powder)

Good resolution, but not smooth, not water-proof

Federico Vaga, Matthieu Cattin F*WATCH 23/44 Third 3D print

Resin material

Smooth, water-proof, but bad fastening

Federico Vaga, Matthieu Cattin F*WATCH 24/44 Forth 3D print

Resin material Improved case parts fastening

Federico Vaga, Matthieu Cattin F*WATCH 25/44 Mechanical design

The buttons

Federico Vaga, Matthieu Cattin F*WATCH 26/44 Building the watch

Buy electronics/mechanical components Download circuit Gerber files and order PCB Assemble the board Download case/button models and order 3D print Buy/build a programmer (bootloader) Optional: Milling machine (Plexiglas)

Federico Vaga, Matthieu Cattin F*WATCH 27/44 Building the watch

Software Download sources from the GIT repo No binary releases (yet) Compile bootloader and flash it (using a programmer) Compile application sw and flash it (using the bootloader) Modify, re-flash, test, etc...

git://ohwr.org/f-watch.git

Federico Vaga, Matthieu Cattin F*WATCH 28/44 How much does it costs?

Estimated cost for small series (without shipping)

Number of watches 1 10 50 Pcb + components 175 C 94 C 81 C Pcb assembly - 118 C 67 C Case + buttons + screws 68 C 67 C 61 C TOTAL per watch 243 C 278 C 209 C TOTAL 243 C 2’784 C 10’455 C

3D print : 60 C Pressure sensor : 19 C PCB : 77 C GPS module : 19 C Display : 17 C

Federico Vaga, Matthieu Cattin F*WATCH 29/44 MCU SDK

free and open source software

A lot of integration examples

Well documented

Federico Vaga, Matthieu Cattin F*WATCH 30/44 Bootloader

free bootloader provided by SiliconLab

support for IAR, Keil uVision

migrate to gcc toolchain

(don’t use gcc optimization!)

Federico Vaga, Matthieu Cattin F*WATCH 31/44

FreeRTOS uC/OS-III RTX TNKernel

License Mod. GPL restrictive BSD BSD

EFM32 yes yes yes no

USB no yes no yes

FAT no yes no yes

Federico Vaga, Matthieu Cattin F*WATCH 32/44 Operating System

FreeRTOS Keil RTX

nice documentation nice documentation

big community community?

a lot of examples few examples

Federico Vaga, Matthieu Cattin F*WATCH 33/44 Graphic

tiny 2D graphic library

adapt the library to our screen

Features

write text

draw simple geometry and icons

event management

Federico Vaga, Matthieu Cattin F*WATCH 34/44 Applications

Federico Vaga, Matthieu Cattin F*WATCH 35/44 Interface

Federico Vaga, Matthieu Cattin F*WATCH 36/44 Demo

Applications demonstration video

Federico Vaga, Matthieu Cattin F*WATCH 37/44 Documentation

www.ohwr.org/projects/f-watch/wiki

how to configure your machine

how to write applications

details about the project

Federico Vaga, Matthieu Cattin F*WATCH 38/44 Development Summary

free PCB design

free mechanic design

free tools

free time

Federico Vaga, Matthieu Cattin F*WATCH 39/44 Development Summary

free PCB design

free mechanic design free development for free software free products

free tools

free time

Federico Vaga, Matthieu Cattin F*WATCH 39/44 Free Development Needs Free Tools

Federico Vaga, Matthieu Cattin F*WATCH 40/44 Free Development Needs Free Tools

Federico Vaga, Matthieu Cattin F*WATCH 40/44 Easy to Make

How difficult can it be?

Competitive free tools

Specialized company in

Specialized company in PCB manufacturing

Easy to ship everywhere

Federico Vaga, Matthieu Cattin F*WATCH 41/44 Next Generation Free-Open Source

Free products are real

cars, robots, watches, bikes, houses, phones, ...

3D Metal printers

Federico Vaga, Matthieu Cattin F*WATCH 42/44 What can it be?

Federico Vaga, Matthieu Cattin F*WATCH 43/44 Join Us

Not a real product

Make it a good example

Join the project

Federico Vaga, Matthieu Cattin F*WATCH 44/44