DIY watch based on the Casio F-91W - Page 1
Forum section: electronics / general

author: Lukas
author_rank: Frequent Contributor
timestamp: May 20, 2016, 08:10:40 pm
content: Hi There,I used to own the ez430 Chronos programmable watch, but after several years, the wrist strap disintegrated. Since I can't live without a watch with binary time display, I made my own based on the case of the famous Casio F-91W. It's called "pluto":https://github.com/carrotIndustries/plutoFeatures:Displays time in decimal/binary/hexadecimal baseMultiple alarmsMultiple countdown timersUses RTTTL ringtones for alarm soundStopwatchCompass (WIP)Generation of time-based one-time passwords according to RFC 6238 (WIP)Menu-driven interfaceInfrared receiver for software updates and TOTP secret transfer (WIP)Useless customisation (Key beep frequency, etc.)approx. 1 year battery life (estimate based on current consumption)Lukas

author: bitwelder
author_rank: Super Contributor
timestamp: May 21, 2016, 05:48:36 am
content: Awesome project!Thanks for sharing it.

author: kripton2035
author_rank: Super Contributor
timestamp: May 21, 2016, 06:42:38 am
content: yes pretty amazing to hack an old watch like this. awesome !

author: ptr
author_rank: Newbie
timestamp: June 08, 2016, 09:51:43 am
content: very impressive work!I really like your software. you even made a simulator.very extensive feature set!I have just triggered a pcb order at elecrow.I'm kean to edit the pcb and add a pressure sensor to get even more smart readings from it.would be a nice feature to watch the weather.are you working already on an bootloader / update implementation?

author: Lukas
author_rank: Frequent Contributor
timestamp: June 08, 2016, 01:07:18 pm
content: Quote from: ptr on June 08, 2016, 09:51:43 amWe're working on getting the the IR receiver running for firmware updates and loading OTP secrets. Don't have too high expectations, firmware updates will take several minutes since the IR receiver only does 1kBit/sec.I'm not sure whether a pressure sensor will work through the rubber gasket. Also take a look at the "mech" directory, there's an inkscape document for verifying that all components fit inside the plastic frame.

author: ptr
author_rank: Newbie
timestamp: June 09, 2016, 11:11:03 am
content: great to hear, I'm very curious about what you will push next !is the plastic frame yet imported as a kicad layer ?I think, if at all the case is tight for water, but not for air. I'm really in love with the imagination of having a barometer at my wrist.

author: ptr
author_rank: Newbie
timestamp: June 22, 2016, 07:47:12 am
content: My ordered PCBs from elecrow arrived. there are 23 of them in the batch.if you want one, will will send them to you in exchange for the shipping cost. I'm located in germany.

author: irda86
author_rank: Contributor
timestamp: July 05, 2016, 10:56:08 am
content: Quote from: Lukas on June 08, 2016, 01:07:18 pmFirst of all, great and amazing project!About the IR, have you thought about using the buttons for TX/RX ? (see here:https://hackaday.com/2016/05/30/gutting-and-rebuilding-a-classic-watch/#comment-3038490)(I think you'd need to solder wires to the small metal contacts that act like buttons, visible left and right ofhttps://github.com/carrotIndustries/pluto/blob/master/photos/frame.jpg)Anyway, I saw on github that you had tried to use the DB36 which has a dotmatrix + segmented display, do you think that aside from contrast issues, the dotmatrix could be driven with this MCU?I got interested in this sort of hack after seeing yours, so I don't know anything about driving LCDs, but being able to drive a dotmatrix would be great to graph barometric pressure like @ptr suggested.I was also thinking about replacing the screen (of a suitable watch) with one of these:https://www.digikey.com/product-search/en/optoelectronics/display-modules-lcd-oled-graphic/524918?k=&pkeyword=&pv652=202&FV=fff40008%2Cfff80276&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25it's a circular Sharp memory LCD, which uses a serial interface. It's a bit big, around 33x33x1.64mm, but Sharp supposedly has a smaller one 30x30:http://sharpmemorylcd.com/0-96-inch-memory-lcd.htmlAlthough reusing the dotmatrix from a compatible Casio would be a nicer hack

author: alank2
author_rank: Super Contributor
timestamp: July 05, 2016, 03:14:43 pm
content: Hi Lukas,This is fantastic!!! I've been wanting to do this with a casio watch for awhile, but have just never put a project together.Part of me wants to try to retrofit an oled or led segment style display in a casio watch shell too.Are you going to sell these pcb's as a completed item?Thanks,Alan

author: irda86
author_rank: Contributor
timestamp: July 06, 2016, 12:25:30 pm
content: Quote from: alank2 on July 05, 2016, 03:14:43 pmNot sure if you saw @ptr's comment herehttps://www.eevblog.com/forum/oshw/diy-watch-based-on-the-casio-f-91w/msg967498/#msg967498but he has boards, unpopulated AFAIU.

author: irda86
author_rank: Contributor
timestamp: July 18, 2016, 01:15:25 pm
content: Quote from: irda86 on July 05, 2016, 10:56:08 amI read more about the MSP430 docs and LCD segmented drivers and my understanding is that there are some MSP430 parts (MSP430FR4xxx series) that have a programmable 1-8 mux, that is, they can do 5-mux, 6-mux, 7-mux and 8-mux, capable of handling up to 448 segments/dots:https://en.wikipedia.org/wiki/TI_MSP430#Integrated_peripheralshttp://www.ti.com/lit/ug/slau445f/slau445f.pdfDoes anybody knows if the MSP430FR4xxx could replace the MCU used by Lukas? (I still have to compare both datasheets, but I'm wondering in case somebody could provide with a more educated guess)

author: Lukas
author_rank: Frequent Contributor
timestamp: July 20, 2016, 08:46:35 am
content: As I wrote in the README, the problem with the Casio LCDs is that they require 5Vpp for any reasonable contrast. The MSP430 only can do approx. 3.6V.

author: Narmaraktuk
author_rank: Contributor
timestamp: July 28, 2016, 12:31:54 pm
content: During construction I noticed that the LCD of my donor 'Casio F91W' was wired differently from Lukas' watch. There are stories about clones of this watch on the internets, and it seems I have one those. Pictures of this clone below. Note that most of the other components that you need to build pluto from a donor are perfectly fine. (case, rubber gasket, screws, inductor for buzzer)

author: irda86
author_rank: Contributor
timestamp: September 27, 2016, 12:32:05 pm
content: Quote from: Lukas on July 20, 2016, 08:46:35 amThanks for your reply Lukas.Yes, I had read the README, but it said "Best guess: These watches are old designs, LCDs weren't that sensitive back then", yet the F91W should be pretty old as well, right?Would it be a good guess that you did not bought the W800, F201 and DB36 (mentioned in the README), but that you had some in hand, and that's why you are saying "they are old designs"?Was the F91W old as well? Or did you bought it new?The W800, F201 and DB36 are still on sale apparently:http://www.casio.com/products/Watches/Classic/W800H-1AV/http://www.casio-europe.com/euro/watch/collection/f-201wa-1aef/https://www.casio.com/products/Watches/Databank/DB36-1AV/

author: ixt
author_rank: Newbie
timestamp: November 15, 2016, 10:54:16 pm
content: Quote from: ptr on June 22, 2016, 07:47:12 amLocated in UK, any chance you still have some spare?

author: WannesS
author_rank: Newbie
timestamp: December 22, 2016, 10:03:42 pm
content: I have very bad contrast and viewing angle, only visible from below. A lot of lcd segments don't work.Any advice on debugging this? I had to solder wires to program the mcu, but wires make it impossible to test the lcd(pogo pins on the way)Is this bad solder joints on the mcu? It's my first time doing smd soldering, although I used stencil/solder paste & hot place. I've cleaned the board with isopropyl alcohol, so I'm fairly certain it's not just flux on the lcd pads.

author: Lukas
author_rank: Frequent Contributor
timestamp: December 23, 2016, 01:43:28 am
content: Nice to see other people modifying their watches as wellMy best guess is that it's bad soldering. You should see some non-DC waveform on each LCD pad. Also make sure that all of the metal latches are engaged.It's easily possible to solder thin wires to the pogopin pads and run them through the holes in the frame. That's how I programmed/debugged the watch before my pogopins arrived.EDIT: I've taken a closer look at your photos and compared them tohttps://github.com/carrotIndustries/pluto-fw/blob/master/target/hal/segmap.mapFirst column is COM, second one is SEG. Seems like there's something wrong with COM0

author: Lukas
author_rank: Frequent Contributor
timestamp: December 24, 2016, 01:11:07 am
content: BTW, pluto will be be at the 33c3:https://events.ccc.de/congress/2016/wiki/Projects:PlutoFeel free to drop by

author: WannesS
author_rank: Newbie
timestamp: December 28, 2016, 09:37:59 pm
content: I started over with a fresh PCB.I also reused the led this time. It's legs raise the led a few mm above the pcb, giving a much better backlight.Sadly, I still got some issues. The time display is perfect, afaict all segments light up ok.However every other app is weird, some segments do nothing, other light up but with bad contrastedit: after fixing a solder bridge and putting the magnetometer back everything works

author: Lukas
author_rank: Frequent Contributor
timestamp: January 02, 2017, 10:11:23 pm
content: Looks great! Did you use a F-91W for donor watch?I'm wondering, since I haven't seen frames with a cutout for the inductor yet.

author: WannesS
author_rank: Newbie
timestamp: January 03, 2017, 11:34:31 am
content: Yes, I reused the inductor, backlight led, and speaker spring. And of course the loose components such as frame/lcd, battery connector on the back.The inductor's leg came loose when desoldering, which is actually not a bad thing as it touches the transistor and it's difficult to place properly.I still have an issue with the magnetometer. If I go to compass, the UI hangs. Once I have my pogo pins I hope to do some debugging.I'm guessing it's bad soldering, I really should've placed the IC's first and then the passives. The magnetometer is rotated 90° CCW, right? The line underneath the markings is supposed to be facing left? It's not entirely clear from your photo.

author: Lukas
author_rank: Frequent Contributor
timestamp: January 03, 2017, 11:56:51 am
content: Yeah, the laser marked bar needs to be on the MCU, i.e. left side. My best guess for the I2C crash is the SCL line being stuck low, since the I2C master waits for SCL to go high for clock stretching.EDIT: You may also use the debugger to see where the MCU gets stuck.

author: bigjosh
author_rank: Newbie
timestamp: January 28, 2017, 04:29:05 am
content: Loving this project! Brilliant!Curious how low you were able to get actual current usage down to?So, based on 1 year on a battery life and assuming the battery is a CR2016 with ~90mAh capacity, does that mean you are keeping the LCD and low freq osc running with <10uA?Thanks again!-josh

author: Lukas
author_rank: Frequent Contributor
timestamp: January 29, 2017, 07:49:13 pm
content: Quote from: bigjosh on January 28, 2017, 04:29:05 amI keep the LCD, RTC, crystal, and one timer active all the time. Current consumption is definitely less than 10uA. It wasn't that hard after all, just spend as much time as possible in LMP3 and don't forget to set unused pins to output.

author: RBMK613
author_rank: Newbie
timestamp: May 07, 2017, 10:04:23 pm
content: Be cool to see this modified to fit the DW5600 case, which would be more durable and aesthetically pleasing among other things.

author: Grapsus
author_rank: Regular Contributor
timestamp: December 09, 2017, 01:28:06 pm
content: Hi there !This projet is awesome ! Quite a challenge to fit different components in such a small space.Do you have any PCB left by any chance ? If so I'd like to buy one from you.

author: Lukas
author_rank: Frequent Contributor
timestamp: December 09, 2017, 02:01:43 pm
content: I recently sold the last PCBs of the initial order. Since there seems to be a steady demand, I'm considering ordering a second batch in the near future. Stay tuned!

author: WannesS
author_rank: Newbie
timestamp: December 11, 2017, 09:41:50 am
content: I think I got a spare pcb left. Some parts as well iirc (mcu, ir receiver, ...). I will check this evening.PM if you're interested.

author: ripper121
author_rank: Contributor
timestamp: January 17, 2018, 03:06:10 pm
content: @Lukas: I wrote you a PM

author: rapter87772000
author_rank: Newbie
timestamp: May 16, 2018, 01:54:33 am
content: Any update on new PCB's been dying to get one of these working

author: bleb
author_rank: Newbie
timestamp: July 21, 2018, 04:06:55 am
content: oi me too. would definitely get one or two if you do a second run!

author: enthdegree
author_rank: Contributor
timestamp: September 30, 2018, 11:56:21 pm
content: Hi everyone,I am wondering whether it is feasible to add a calculator to this using morse code input, identifying some syntax for special functions and control characters. Several problems:Polling for and decoding morse code could be expensive in terms of powerPushing buttons is tiresomeTo avoid having to push buttons, squeezing in a capsense would be difficult and would take up even more powerDoes anyone more knowledgeable than I have ideas on this? Thanks

author: enthdegree
author_rank: Contributor
timestamp: October 01, 2018, 01:08:52 am
content: Alright well here's an initial interface idea that doesn't involve complicated timing.When you enter the watch app, there's an empty buffer of 6 chars into which you will type in DOTs and DASHs.Bottom right button = DASH, top left button = DOTAs you type in DOTs, DASHs, the (stripes,bell,PM,24h,lap, backwards6) indicator lights come on, indicating how much of the buffer is filled.As you type, one of the top-row segment displays shows the alphanumeric the buffer represents in morse code right now.Once you've typed the char you want into the buffer, hit the Bottom Left button and the alphanumeric goes into the calculator stdin.If you screw up typing the DOTs and DASHs for the alphanumeric you want, fill the rest of the buffer up to 6 chars and the next char goes into the start of a totally reset buffer.So all that's left is to just come up with a good alphanumeric syntax for calculator stdin. Special character sequences are needed for:execute current stdinscroll the previous stdout in the main displayscroll the current stdin in the main displaydeletepush to registerpull from registerpull previous stdoutsin, cos, exp, ln, erf, Gamma, pi

author: enthdegree
author_rank: Contributor
timestamp: October 17, 2018, 06:26:21 pm
content: Alright, I have written some code that compiles to the target, but it is quite buggy and undocumented (although the bugs are well contained at least!):https://github.com/enthdegree/pluto-fw/blob/master/README.mdCan't wait to get some actual hardware to try this out on.

author: Lukas
author_rank: Frequent Contributor
timestamp: October 18, 2018, 09:25:48 pm
content: Great to see people using pluto as a platform to implement the features they need on a watch. I've had this idea on my mind as well, but dismissed it as not useful enough / too fiddly too operate. If you're looking for a more practical watch to implement a calculator on, maybe Travis Goodspeed's goodwatchhttps://github.com/travisgoodspeed/goodwatchis the thing for you.

author: enthdegree
author_rank: Contributor
timestamp: October 29, 2018, 07:03:52 pm
content: Quote from: Lukas on October 18, 2018, 09:25:48 pmGoing to make one of those next.Do you (or does anyone else) have any left over PCBs I can buy or should I order my own?Thanks

author: enthdegree
author_rank: Contributor
timestamp: November 14, 2018, 08:45:47 am
content: Alright, I've done a few things on my branches:- Made a new board layout that replaces the now-obsolete MAG3110 magnetometer with a LIS3MDL. New layout is probably terrible for reasons over my head, it's the first time I've ever opened a board editor.- Updated the target HAL for the LIS3MDL.We'll see if any of this works when the board and parts come...

author: enthdegree
author_rank: Contributor
timestamp: December 06, 2018, 11:10:29 pm
content: Boards just came today from elecrow. The yellow looks pretty cool IMO.Should have time to solder them up this weekend.I might also write a metronome app, it might actually be useful.

author: budget_multimeters
author_rank: Newbie
timestamp: March 31, 2019, 08:29:08 pm
content: Very cool project!Does anyone have extra PCBs you'd be willing to part with?

author: enthdegree
author_rank: Contributor
timestamp: May 23, 2019, 03:19:51 pm
content: Hi, I've got all the components soldered onto the board and I believe it is ready to program, but when I plug my Launchpad into the computer and hook up "GND" and "VCC" to their respective pads on the target board, the LED on the Lauchpad turns off as though something is shorted.Is there any reason this could be happening other than bad soldering/fried MCU?

author: LukeB101
author_rank: Newbie
timestamp: July 29, 2019, 10:57:40 pm
content: Quote from: budget_multimeters on March 31, 2019, 08:29:08 pmI've just received 5 PCBs and obviously don't need them all, if you're still keen?

author: SiliconWizard
author_rank: Super Contributor
timestamp: July 29, 2019, 11:14:18 pm
content: Quote from: enthdegree on May 23, 2019, 03:19:51 pmWell, is something shorted?

author: enthdegree
author_rank: Contributor
timestamp: August 10, 2019, 08:05:09 am
content: There was an issue with my launchpad or soldering I think. Fixed.The calculator works now!!! Extremely pleased!A few notes/questionsI don't have any extra PCB's sorry, plus you probably don't want my version of the board since it uses a weird magnetometer component without exposed leads.Had an annoying time writing the dumb elf to the device. Finally managed to flash the MSP430FR6972 using the 4 connections necessary for 2Wire SBW onto a TI Launchpad. I used mspdebug's RF2500 driver but it didn't recognize the uc, so I wrote to it using a similar looking device `mspdebug rf2500 --fet-force-id MSP430FR5969'Is there any way short of a reflash to show in 12hr AM/PM instead of 24H? Also turning off the blinking colon?Magnetometer doesn't work, just displays 16 always. Either a bug in my firmware or bad soldering, either is possible. I really should have chosen a component that had exposed leads ... next timeBuzzer doesn't make sound, even though it appears to be enabled in conf, and the component is in good shape (took it off a new f91w). Does that component have polarity? Could something be shorted?

author: Lukas
author_rank: Frequent Contributor
timestamp: August 10, 2019, 10:02:21 am
content: Quote from: enthdegree on August 10, 2019, 08:05:09 amNope, but it should be pretty easy to add a setting that at least displays the time in 12h format. Alarms aren't worth the trouble IMO.Quote from: enthdegree on August 10, 2019, 08:05:09 amCheck the waveform at the spring connecting to the piezo disc in the back. You should see voltage spikes up to 20...50V.

author: LukeB101
author_rank: Newbie
timestamp: August 10, 2019, 10:13:33 pm
content: Hi there,I think I have correctly soldered up a PCB and am now trying to program it. I'm trying to load just a simple LED blink program from code composer studio but the debugger comes up with an error saying it can't find the device. Am I right in saying I only need VCC, GND, TEST (P3) and RST (P4)? Also am I missing something obvious like first burning a bootloader?Luke

author: enthdegree
author_rank: Contributor
timestamp: August 11, 2019, 01:21:33 am
content: Quote from: LukeB101 on August 10, 2019, 10:13:33 pmI programmed mine with those 4 pins through a launchpad. I programmed the target controller as it arrived, no extra steps needed. I never got the flasher to use the TI driver successfully. I think this was some issue with my laptop's operating system. See my previous post for what I did instead.

author: LukeB101
author_rank: Newbie
timestamp: August 12, 2019, 10:40:31 pm
content: So switched to a Linux machine and am having some msp430-gcc issues....it can't find libraries like unistd.h or time.h when running the Makefile. I originally changed the Makefile to use the none elf versions of gcc, objcopy, gdb and size, so - msp430-gcc rather than msp430-elf-gcc as this is what I managed to install, but I guess I'm missing the step which tells msp430-gcc where to look for libraries? Can't find out how to do this though....any ideas?Many thanksLuke

author: Lukas
author_rank: Frequent Contributor
timestamp: August 13, 2019, 07:35:58 pm
content: Where did you get your 'msp430-gcc' from? There used to be a port called 'mspgcc' some years back that's now defunct. You can get a build of msp430-elf-gcc directly from TI:http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPGCC/latest/index_FDS.html

author: LukeB101
author_rank: Newbie
timestamp: August 13, 2019, 09:24:57 pm
content: I actually did get it from there! I think maybe its now the "msp430-gcc" toolchain rather than the msp430-elf-gcc toolchain. The following is in the README shell script for installation from source on that TI website:# This directory contains the sources for gcc, newlib, binutils, and gdb used# to build the "msp430-gcc" binary toolchain packages distributed by TI.When I remove the "-elf" from the commands in your Makefile, the errors disappear apart from those about missing header files. I think I just need to work out how or where the msp430-gcc looks for include files.

author: naedru
author_rank: Newbie
timestamp: July 01, 2020, 08:47:13 pm
content: Did you ever get it to work LukeB101?

author: eiselekd
author_rank: Newbie
timestamp: January 05, 2021, 06:45:55 pm
content: Do you still have a board left? I would like to aquire one if possible.