A DIY geek has managed to create an Arduino-powered smartwatch that displays the Altitude, temperature and has compass and pedometer sensors.
The developer used an Arduino Pro Mini devboard, a cellphone battery, an old digital watch to hold the PCB board and a bunch of other small components.
While the pieces are not too expensive, you need to have both electronics and coding skills to create such a watch. The uses can enable a feature to sync the watch with a Windows Phone via bluetooth, but this drains the battery big time. For more information about this project, see this instructables link.