[HN Gopher] Hacking the Timex m851
       ___________________________________________________________________
        
       Hacking the Timex m851
        
       Author : taviso
       Score  : 281 points
       Date   : 2023-09-03 06:09 UTC (16 hours ago)
        
 (HTM) web link (lock.cmpxchg8b.com)
 (TXT) w3m dump (lock.cmpxchg8b.com)
        
       | jstanley wrote:
       | Very cool.
       | 
       | If you're interested in something with a bit more features, check
       | out the Bangle.js[0]. The benefits are you have Bluetooth, GPS,
       | accelerometer, vibrator, and a colour screen. The main downside
       | is that the battery lasts considerably less than 3 years.
       | 
       | [0] https://banglejs.com/
        
         | vosper wrote:
         | For anyone wondering, the battery on the Bangle is claimed to
         | be 4 weeks.
         | 
         | > With a sunlight readable always-on screen, 4 week battery
         | life, complete flexibility, and complete control of your data,
         | Bangle.js 2 is a refreshing break from expensive smart watches.
        
           | forkerenok wrote:
           | Can confirm from personal experience: in standby mode with
           | infrequent app usage it was clocking a good 4 weeks.
        
       | puzzlingcaptcha wrote:
       | I am most impressed by the documentation provided in the
       | references. Looks like it was ahead of its time.
        
         | nxobject wrote:
         | Credit where credit is due; I can imagine many people here
         | right now would want to find the "NINO ALDRIN L. SARMIENTO"
         | credited in the changelogs and shake their hand...
        
           | TapamN wrote:
           | Fun fact: It's possible to password protect apps using the PC
           | software with a two character password (there's no
           | encryption, it's just intended to slow down anyone from
           | casually examining user data if they happen to find the watch
           | unattended). When the DLU boots up, it initializes the
           | password variable to "NS".
           | 
           | It doesn't really mean much, since all apps default to
           | unprotected on boot, so you can never use it, but it's
           | interesting.
        
       | CliffStoll wrote:
       | Has anyone informed the original programmer, Nino Sarmiento?
        
       | ck2 wrote:
       | Does the Timex m878 have the same core cpu?
       | 
       | Because the m878 has GPS and ANT+ support which makes it
       | exponentially more powerful.
        
       | FirmwareBurner wrote:
       | I really wish more watches/wearables would be made with these
       | 8-bit low-power chips and have exposed data pins to make them
       | hackable. 3 years battery life is where it's at for a watch. If I
       | have to think about charging my watch is a no-go for me.
        
       | djmips wrote:
       | There's a new model that looks the same?
       | https://www.timecentershop.gr/ents/timext53722.html
        
         | FirmwareBurner wrote:
         | Hardly new, Amazon lists is as discontinued by the manufacturer
         | which probably explains why it's tough to find.
        
       | jeroen79 wrote:
       | Cool, but its not really hacking if you just use an sdk to write
       | code for a platform.
        
         | _joel wrote:
         | I think you misunderstand the origin of hacking. It's not about
         | breaking into systems, that's cracking. Using an SDK to program
         | a watch is definitely hacking on the watch. The media are
         | generally to blame for this miscategorisation.
        
           | vbezhenar wrote:
           | Using an SDK to program a watch is... programming a watch?
           | Otherwise every iOS developer is iPhone hacker?
           | 
           | I'm not an English native speaker, however to me "hack" means
           | something not standard. Not necessary cracking, of course,
           | but just using SDK to write some software does not sound like
           | something very "hacky". Those watches were explicitly
           | designed to be extendable.
        
             | _joel wrote:
             | Yet here we are on a site called "Hacker News" with the
             | current top story being about a consensus algorithm with a
             | load of implementations and real world usage, libraries in
             | multiple languages.
             | 
             | The original term comes, afaik, from journalists who would
             | hack on typewriters, hence hacks.. it's another evolution,
             | but I'm not great with etymology.
        
             | GuB-42 wrote:
             | The "hacky" part is that he didn't use the official
             | "Windows XP-era wizard" development environment.
             | 
             | Instead, he works under Linux with standard Makefiles,
             | using wine and calling the compiler directly.
        
           | smcameron wrote:
           | When it comes to (mechanical) watches in particular, hacking
           | has another meaning: https://en.wikipedia.org/wiki/Hack_watch
        
           | saagarjha wrote:
           | One would think the author of the post would be very familiar
           | with both uses.
        
       | WithinReason wrote:
       | I had this watch about 15 years ago. Among other things I could
       | track:
       | 
       | 0. Where my next class is going to be
       | 
       | 1. Store the bus schedule to the bus stops I used
       | 
       | 2. The phase of the moon
       | 
       | Checking the bus schedule on your watch before smartphones looked
       | like a James Bond move :)
       | 
       | I wish they still made watches like this, at this power
       | consumption you could keep your watch charged from solar power
       | indefinitely
        
         | FirmwareBurner wrote:
         | _> I had this watch about 15 years ago.[...]Checking the bus
         | schedule on your watch before smartphones looked like a James
         | Bond move :)_
         | 
         | To be fair, the first iPhone was launched 16 years ago, and
         | smartphones that could store a bust schedule have been around
         | even before the first iPhone. I would store the bus schedule as
         | an SMS draft on my Siemens phone over 20 years ago.
        
           | warning26 wrote:
           | The James-Bond-like part is doing it from your _watch_
           | specifically. (Consider the various wrist-gadgets found in
           | the movies over the years.)
        
             | FirmwareBurner wrote:
             | Casio Databank watches had that functionality in the early
             | 90s I think (without the USB/IR PC link). Not that James
             | Bond for the year 2000.
        
       | psychphysic wrote:
       | This does seem nice and even simpler than TI's Ez430-chronos [0].
       | 
       | That said, 3 years on a single battery doesn't seem great of
       | course I suppose it depends what apps you use and load..and that
       | it's programmable that is cool.
       | 
       | [0] https://www.sparkfun.com/products/retired/10019
        
         | pard68 wrote:
         | Battery life is probably relative. I lost one of my Casio F91s
         | in 2018. Found it last week while packing for a canoe trip, the
         | time and date were within seconds of the Casio F91 on my wrist.
        
       | omershapira wrote:
       | This is a reminder that we can, in fact, have Nice Things - if
       | there only were a market for Nice Things.
       | 
       | I'd love to have a decently integrated watch with low battery
       | usage (and generally low stakes for wearing/replacing) which I
       | can also agree with aesthetically. Bums me out that Sensorwatch
       | [1] is the best we can do.
       | 
       | [1] https://www.sensorwatch.net
       | 
       | edit: Sensorwatch is amazing, but not an ecosystem (yet).
        
       | aziwa475 wrote:
       | Cool. Any idea where to buy these? Thanks
        
         | thih9 wrote:
         | > Now that I've told you how much I love this thing - the bad
         | news.
         | 
         | > They're long out of production, and getting hard to come by.
         | 
         | > I bought a set of two on eBay, they just needed new batteries
         | and were as good as new.
        
       | nxobject wrote:
       | Part of the magic is how bonkers frugal the Epson SoC (PN
       | S1C88349) is: when running at a low-power mode at 32kHz, it
       | consumes an astoundingly low 9 _micro_ amps. [1] How much do you
       | think you could get done with a cycle budget of 32k per second?
       | 
       | That, and alongside 48K ROM and 2K RAM, you get 3 timers, a UART,
       | and an A/D converter. [1]
       | https://global.epson.com/products_and_drivers/semicon/pdf/id...
        
         | ilaksh wrote:
         | I found "ROM" to be confusing because I always thought that
         | meant you couldn't change it, but they mention swapping
         | modifiable data in and out of there. It's actually EEPROM and I
         | guess that is a little similar to Flash memory.
        
           | namibj wrote:
           | Usually NOR flash. SSDs are usually NAND flash.
        
         | zenolove wrote:
         | The [E0C6S46](https://download.epson-
         | europe.com/pub/electronics-de/asmic/4...) still powers the 1st
         | and 2nd gen Tamagotchi!
         | 
         | 4-bit (!) 32KHz MCU with 6,144 words of 12-bit (!!) ROM, 640
         | words of internal 4-bit RAM, and a 160-word 4-bit frame buffer
         | for the integrated LCD driver (enough for double-buffering)!
         | 
         | The thing is a beauty! I wrote a Typescript emulator for it, a
         | year ago or so, though for whatever reason I haven't pushed it
         | to GH yet (but I will if anyone's interested! It can run
         | unmodified Tamagotchi firmware.
        
           | triyambakam wrote:
           | Wow, I'd love to see the emulator
        
         | hnwizard wrote:
         | There's a staggering, mind blowing, astronomical levels of
         | bloat and complexity in modern systems, be it SoCs, Operating
         | systems or apps.
         | 
         | Many mobile apps nowadays are larger in binary size than whole
         | operating systems+applications doing extremely useful work.
         | 
         | It's staggering, scary and, where is this all going? Will
         | someone or something put a damper on it? Probably not.
        
           | omneity wrote:
           | One of my hopes is that LLM technology can eventually be used
           | to fight technical debt and help us clean up the software
           | stack.
        
           | hdjjhhvvhga wrote:
           | Only if there is an economic incentive to it. Currently,
           | there is none. (A cynic in me would say the reverse is true
           | at least in Apple ecosystem, as more resource-hungry apps
           | push users to upgrade their devices more often.)
           | 
           | Moreover, I'm not sure how much you can gain, actually. You
           | can probably get some reduction in app size as far as code
           | segment is concerned, but usually most of the space is taken
           | up by assets, especially in games, and they're already well
           | compressed. So basically we could optimize the last 20% which
           | are the hardest to get right.
        
             | ralphc wrote:
             | In modern times the argument is the economic incentive is
             | to optimize for the developer, not the hardware. Python,
             | Node etc. over C.
        
         | adhesive_wombat wrote:
         | There's an ultra-low power mode in newer TMS430s, and you can
         | use an external ultra-low-power RTC.
         | 
         | From memory, it's under 100nA on paper, including things like
         | the power switch leakage. Crazy stuff.
        
           | MrBuddyCasino wrote:
           | Do you mean the TI MSP430?
        
             | WithinReason wrote:
             | https://en.wikipedia.org/wiki/TI_MSP430
        
             | adhesive_wombat wrote:
             | Ugh yes! Don't know why I always get that wrong!
        
         | FirmwareBurner wrote:
         | _> Part of the magic is how bonkers frugal the Epson SoC (PN
         | S1C88349) _
         | 
         | Would it blow your mind that such ultra-frugal 8-bit parts have
         | been available for about 30 years now?
         | 
         | Those Seiko-Epson chips, alongside with EM-Swatch, and OKI-
         | Casio chips, were used in all kinds of timekeeping, calculator,
         | thermometers, and all kinds of cheap low-power widgets with
         | segment LCD displays that need to run years on a single button
         | cell.
         | 
         | I have a calculator and a digital fever thermometer(the stick-
         | type ones for the armpit or anus) that's over 15 years old,
         | also using on one of those Seiko-Epson chips and it's still
         | running on the same 1.5v button-cell that it came with, which
         | is mind blowing when you factor in the charge decay of the
         | lithium cell over time.
        
           | hnwizard wrote:
           | You should be reaching the charge decay of that cell more or
           | less now. :)
           | 
           | But yes, incredible. These are products made with a lot of
           | care, unlike modern counterparts that are just so very lax on
           | these things.
        
         | Zeetah wrote:
         | In the Arthur and DW ActiMates
         | (https://news.ycombinator.com/item?id=36656190), my teammate,
         | Craig Ranta, implemented the Real Time Clock using a Microchip
         | 12C508 or 12C509. It ran at 32.768 kHz.
         | 
         | Using the microcontroller was advantageous because we could
         | implement a custom interface (data and wake up alarm signaling)
         | to the main microcontroller, the functionality was exactly what
         | we wanted, super low power and very inexpensive.
         | 
         | He had to deal with complications like maintaining the time,
         | running the interface, maintaining the alarm, all at the same
         | time.
        
       | hnwizard wrote:
       | oh well
        
         | 0xEF wrote:
         | This comment reads like it was written by one of my high school
         | teachers. "You are so capable, you should apply yourself more"
         | is really just the worst thing you can say to a person who is
         | actually enjoying what they do. What prompts people like you to
         | think you have any measurable influence in telling someone to
         | do something that _you_ find more useful? Is it a lack of
         | talent on your side, or just entitlement?
        
       | TapamN wrote:
       | I got one of these for my birthday in 2003, and I'm still using
       | it. The Data Link USB "only" has a battery life of about a year.
       | The 3-year life Data Link would be the older model, that
       | optically received data from a PC by watching light pulses from a
       | CRT.
       | 
       | I don't know why he's complaining about the Windows 98/XP PIM
       | software. It worked fine, and it's open source
       | <https://sourceforge.net/p/datalinkusb/code/HEAD/tree/USBPIM/>.
       | It does not work on Windows 10 and later, however. I looked into
       | it years ago, and it seemed related to the GUI code (I think it
       | used MFC?) and not anything involving watch access. Probably
       | fairly easy for someone familiar with Windows dev to fix,
       | especially with the source. Edit: Wait, I misread. He was
       | complaining about the SDK wizard, not the PIM. Yeah, the wizard
       | wasn't great. Also, it was slow since every file assembled had
       | several megabytes of headers included.
       | 
       | Having C code running on the watch is nuts. The builtin ROM
       | software was written in a high-level assembler (probably for
       | size/CPU/power consumption reasons), and the user SDK was a
       | regular assembler (I got the impression that back then Epson
       | wasn't giving away the better development software, so the best
       | that could be included for free with the SDK was the regular
       | assembler.) The OS's overlay system and semi-adhoc calling
       | convention isn't C friendly. Often, values were passed in
       | whatever registers were convenient for the callee, with macros to
       | help hide this when possible. EEPROM access functions took
       | parameters from global RAM variables.
       | 
       | The SDK documentation was great. 10/10. You could not reasonably
       | ask for more. It had many examples, every single header file used
       | by Timex, which documented every single function and variable
       | (even ones internal to the builtin software), and PDFs describing
       | every bit of data going in and out of the watch, from the
       | communication protocol to the file formats used by every builtin
       | app. The OS used by the watch is impressively clean and easy to
       | use for a one-off 8-bit system.
       | 
       | Most development for the watch was shared on a Yahoo Group, which
       | is down now, but there are backups somewhere. I manually saved a
       | bunch, and I know that people there backed up the messages and
       | uploaded them to... I don't remember exactly where, I'd have to
       | look it up. I remember running across a post there from the
       | EEVBlog guy when looking through old posts. He was asking about
       | making a fitness tracking app.
       | 
       | It took me a long time to get around to writing anything for it,
       | but I wrote several programs for it around 2013-2015ish. A timer,
       | calender, expense tracker, and a viewer for the user tracking
       | data (stuff like how many times you've pressed a button, entered
       | an app, or had an alarm go off). The SDK had a single DOS program
       | as part of the build process (it was something to feed the linker
       | some addresses), so I had to rewrite a 32-bit version to get the
       | SDK to work on 64-bit Windows 7. I think I later found someone
       | else already did that on the Yahoo Group.
        
         | xattt wrote:
         | Short of full-blown prototype boards (ESP32 ecosystem) and dev
         | environments (Apple ecosystem), are there any modern day
         | consumer-facing devices running on an obscure platform that
         | also come with a hidden layer of an SDK?
         | 
         | I am thinking of the Cybiko, but that's also contemporary to
         | the Timex watch.
        
           | TapamN wrote:
           | Ruputer/OnHand PC? Another smartwatch from late 90's/early
           | 2000s. The specs were on part with the original Mac, 128KB
           | RAM, with 102x64 pixel display and 2MB of flash, but VERY
           | sluggish OS and poor battery life (but still better than
           | modern smartwatches).
           | 
           | Maybe Palm and Psion devices count? I would exclude WinCE...
        
             | noAnswer wrote:
             | Ah yes http://pconhand.com I drooled over it as a teen. But
             | the price was to high for me.
        
           | bri3d wrote:
           | Garmin watches have an SDK with their own entire goofy
           | "Monkey C" language and an entire bytecode VM to run it. It's
           | not "hidden" I guess (there's an app store), but neither was
           | this Timex one.
           | 
           | https://www.atredis.com/blog/2020/11/4/garmin-
           | forerunner-235...
        
             | nxobject wrote:
             | Somewhere, a lone programmer in a hardware engineering org
             | is having the time of their life.
        
           | saagarjha wrote:
           | Not first-party, but calculators?
        
       | brudgers wrote:
       | More on the Timex Datalink series
       | 
       | https://en.m.wikipedia.org/wiki/Timex_Datalink
        
         | xattt wrote:
         | Why was could it only encore with a CRT and not an LCD? Could
         | this be replicated with modern IPS LCDs?
        
           | canucker2016 wrote:
           | Also CRT monitors were ubiquitous. consumer LCD monitors
           | didn't start appearing until the late 1990s.
           | 
           | It was magical watching a Timex DataLink watch receive data
           | (at a really slow data rate though) - short moment in time
           | before USB and WiFi appeared.
        
           | robin_reala wrote:
           | It's the scanning beam, that LCDs simply don't have. But fear
           | not, a single LED will also work and was recently reverse
           | engineered: https://lemmy.sdf.org/post/691827
        
         | FirmwareBurner wrote:
         | Ironically, I find their older models with optical receivers a
         | lot more high-tech than the later USB models.
        
           | Epa095 wrote:
           | I guess it's one way? But yes, very cool. I can imagine using
           | it with my phone to sync useful stuff directly from my phone
           | to the watch without a cable.
        
       | [deleted]
        
       | [deleted]
        
       | [deleted]
        
       | sandreas wrote:
       | Well, maybe a more modern approach to a hackable watch is
       | 
       | https://github.com/sharandac/My-TTGO-Watch
       | 
       | I stumbled over this, while I was researching for building my own
       | DIY iPod Nano 7G with the LILYGO T5 E-Paper dev board
       | 
       | Product: https://www.aliexpress.com/item/1005002474854718.html
       | 
       | Code-Repo: https://github.com/Xinyuan-LilyGO/LilyGo-T5-Epaper-
       | Series
       | 
       | This would be an amazing iPod Nano 7G replacement, if I had more
       | time and more skill in arduino stuff ;)
        
       | GaggiX wrote:
       | >a single battery can last 3 years! This is a big selling point
       | for me, I don't think they're making consumer watches like this
       | any more.
       | 
       | Well Casio surely does. Search "Casio MIP display".
        
       ___________________________________________________________________
       (page generated 2023-09-03 23:01 UTC)