There are lots of DIY watch projects on the internet. Some of them are great, some of them lack to feel of finished product. If you looking something like this check out at F*watch project which open source and built by using free tools. It was developed at CERN as a gift for retiring colleague. It has everything you would expect on modern digital watch. It has been stuffed with bunch of sensors including GPS, Pressure sensor, accelerometer, compass, ambient light sensor. Watch has 128×128 LCD display with back-light, micro USB connector, four push buttons buzzer, vibrating motor, and microSD memory card. It is powered by 500mAh Lithium-ion battery.
To make it all possible, schematic was designed on four layer PCB with KiCad. Case was 3D printed out of resin. Plans were developed with open FreeCAD design tools. Clock is ticking around ARM Coretex-M3 microcontroller from SiLabs Giant Gecko featuring 128KB RAM and 1MB of Flash. Watch software runs a FreeRTOS operating system. Watch is fully functioning already, but seems that team are open for bug reports and feature request.
Usually when you are building microcontroller project (say Arduino), you need to write code first, upload to microcontroller and then run it. And if you need to change something or run different program, you need to flash new program in to it. But these things can be done differently – by using script language like Java Script. Basically this works like this – an interpreter program continuously runs on microcontroller which accepts and runs scripts written by user during run time. This gives less hustle on developing things. You don’t need development tools like compiler or download cables. Scripting language is hig level language, where lots of things are hidden and you need to write less code. Also your programs are executed immediately once typed.
Freescale is a great manufacturer which sometimes isn’t considered among common players like STM or NXP. They like many produce ARM controllers and so offer several development boards to play with. One of well known freescale boards are Freedom Bord KL25Z which has ARM Cortex-M0+ microcontroller clocked at 48MHz. It features 128KB of Flash and 16KB of RAM. Board comes with USB OTG. The dev board carries MMA8451Q accelerometer, capacitive touch slider, and RGB LED. All GPIO are available for further prototyping or expansion boards.
Jan Henrik has covered this board on his instructable. He explains where to go next when starting with Freedom board. First of all he discusses software. Simply speaking all tools that are meant for ARM micros work with Freescale without problem. But fact is that Freedom board is MBED enabled, meaning that you can develop programs with popular online C/C++ editor, compiler and builder. Here you don’t have to wary about libraries and updates. So why not give a try. Then he goes through steps how to set up your first project in mbed.org and have it uploaded to board.
Every time you start with new microcontroller, you have to deal with new ways of programming them. You may need to purchase and learn new tools and so on. But once you’ve done this process with any microcontroller, learning new is easy. So if you are in to STM32 microcontrollers Shawon have written pretty god guide on programming them.
Since ARM Cortex micrcontrollers are flexible devices in terms of developing, debugging and flashing, you have several options of getting your code up and running. Like most manufacturers do, ST devices can be programmed and debugged with special ST-link adapter/debugger which works in JTAG or in SWD mode. Most development boards like discovery already have ST-link debugger integrated so the only thing is needed to run software and load your code. Other covered option is using built in bootloader which can be accessed through serial interface. ST have special software Flash Loader Demonstrator for programming in this mode. When programing with bootloader, special pins have to be pulled up or low in order to access it. This resource is great to start with and then you can dig deeper during development process.