A Pocket Watch for a PocketCHIP
by Jon Foster
*NOTE*: NTC, the company that made C.H.I.P. and PocketCHIP is no longer in business. I'll be looking at doing something like this with other components, like the NanoPI Fire 2. But the "pocket" device, as shown in the picture below, will be hard to come by.
I found this cool little computer on Kick Starter called the "PocketCHIP". Who wouldn't want a computer running a real desktop OS that fits in the palm of your hand? Android and iOS seem to be written to hate the end users and, instead, favor various vendors. The security restrictions are such that they prohibit the user from being able to access their device. Root / jail break? IMO this isn't a question but a right of the machine owner. Both Apple and Google seem to have lost sight of who "owns" the device.
Besides, me and capacitive touch screens don't get along when it comes to typing. So having a physical keyboard was a real bonus. It still has a touch screen, a resistive based one, not capacitive. What this means to the average user is that it can only handle one touch point on the screen at a time... and that you actually have to touch it. The latter being an advantage as far as I'm concerned. How many times have I accidentally triggered something on my Android device because my finger got within 1/8" of the screen surface? Too many to count. And that adds to the inaccuracy of typing too... but I degress.
I wanted to use it to log time while I'm onsite. So I take it on a trip and go to enter some time... But OMG the time it comes up with when powered on is the time it was when I powered it off?!?! If its within WiFi range it runs off of Internet time. But out on its own, it powers on with the time it had when it last shutdown. So I found a discussion on the C.H.I.P. forums where someone mentioned the DS3231 module to keep time. I found one I could buy for $1 @ NewEgg.
The only draw back was getting the time in and out of it. Others on the forum suggested hacking the kernel and installing drivers and device trees... That seemed like too much work for something that simply needed to grab the time and load it into the system at boot. So I created a Python script to set the Linux kernel time from the DS3231 at boot and write the system time back to it at power off... JIC it was updated, like via network time (NTP).
Armed with my script and a soldering iron I was able to wedge the small module into the case of my PocketCHIP and now it always knows the time! I outlined the add-on module and backup battery in red.
You can go to the PocketCHIP forum thread for all of the details. Download the script from here.
Services we provided:
- Investigation of parts for capabilities, physical connect requirements and programming specs.
- Performed all mechanical assembly.
- Wrote Python script to store and retrieve time data.
- Aided other users on the C.H.I.P. forums.
- ... And later developed a time logging app with fpGUI.