|Stupid idea of the day: 41-compatible watch|
Message #1 Posted by bhtooefr on 31 Mar 2013, 8:23 a.m.
So, having been inspired by the µWatch by Dave Jones, I've been considering the feasibility of a 41-compatible calculator watch.
The biggest problem I can see here is user interface, but the 41 isn't all bad in that regard - alpha can make up for shifting a lot of functions off of keys, given that you can XEQ anything, not just things that aren't mapped to keys.
Here's two mockups I've done by hand, one of how a 128x32 display (that Newhaven COG 128x32 LCD looks really interesting, albeit higher power consumption than I'd like) could work (and look good) while being 100% compatible with the 41, and one of how the keypad could be laid out (with the on, user, prgm, and alpha buttons being at the corners of the device, with the watch band in between them):
Ignore the width differences, those are mainly because of how I did the mockups separately. Odds are, the keypad would actually be a bit wider than the LCD.
The keypad layout is vaguely 15C-inspired (given that the keypad on this device needs to be wider than it is tall). Several of the functions listed (set, trg, mth, stt, prg, flg, and cmp) would bring up menus, which would display in the annunciator position, with set being a setup menu (with the fix/sci/eng settings, the trig modes, clock modes, and such). There'd be six buttons across with that layout, so my idea was to have six functions per menu. Although, SST/BST is in the wrong place for that if there's any multi-level menus... I put it there to approximate the 15C layout, but XEQ is probably more useful in the corner anyway with how typing heavy the machine will be.
Alpha is phone-style (42S menu-driven style just seems horrible to me), and I've got an idea for how to get every symbol that can be entered from the keyboard of a real 41 mapped to this keyboard, although I don't have that file with me.
The on button wouldn't actually act like an on button - it would alternate between CLOCK with CPU in RTC maintenance mode (which would also be reached after 1 minute of inactivity (that is, the calculator sitting in its waiting for key loop with no program running)), then calculator, then (if no buttons have been pressed in calculator) SW, then return to CLOCK. If the calculator is interacted with, pushing the on button would return to CLOCK directly. (This follows the behavior of the Casio calculator watches and their mode button, although they've got a few extra modes in there too (alarm set and dual time zone).)
Software-wise, I'm thinking, use a Nut emulator optimized for a small microcontroller. Performance won't be great (IIRC, uhmgawa said, for unoptimized C code, 5-6x a Voyager's performance on an 8 MHz AVR, re: Kinomi? So that'd be around 3x the speed of a 41, again before optimization), but I'm also thinking, do as much as possible to thunk out of the emulator to run things - especially functions that were built into the 41CX. The idea being, because it is a real emulator, synthetics and machine code would work, but no need to actually emulate the things that are not user-supplied (and therefore, user-supplied FOCAL and synthetics could run far faster, too).
The other thing is, obviously, to just do it all native, and not support machine code, which could enable far lower clocks and longer battery life, at the expense of what may be higher initial development effort (as the entire 41 system would need to be completely rewritten from scratch before the project could be considered "finished" (whereas an emulator approach could be "finished" with only minimal or even no thunking, and then improved with firmware updates later) - but lower effort in the long run, as the goal would be to rewrite almost all of the 41 system eventually anyway, leaving the Nut emulator solely for machine code).
I'll readily admit that I'm probably not the right person to even try such a project, but I kinda want to try.
Edit: I should clarify, by the way, why I'm thinking 41 and not 42. The 41 UI seems to be better suited to the tiny screen of a watch, and the 41-family timekeeping functionality (right down to the HP-01's ability to perform mathematical operations on time) seems to be ideally suited to a watch with only minimal changes. Granted, the 41 can't take advantage of a graphic LCD, but the 42 needs a 131 px wide LCD, and this ain't 131 px wide.
Edited: 31 Mar 2013, 9:49 a.m.