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 Operating System
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 3D printing
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