Skip to the content
PCBKitNew board
2 layers24.4 × 24.4 mmF-91w, the printed circuit board in 3D

ReTrace is a watch mod for the infamous Casio F-91W. Inspired by CarrotIndustries Pluto mod. Borrowed his PCB design as its well done and tested. Replaced the MSP430 controller with PIC24.

Size
24.4 × 24.4 mm
Copper layers
2
Thickness
0.5 mm
Parts
32
Nets
51
Pads
188
Tracks, vias
612, 68
Pours
11
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
15 Jun 2022
Updated
22 Jun 2022

Overview

F-91w is an open-source printed circuit board by FETup, from the FETup/ReTrace repository on GitHub. It is a 2-layer board of 24.4 × 24.4 mm with 32 parts on 51 nets, routed with 612 tracks and 68 vias.

It is built around the PIC24FJ128GL306-E/MR, BME280 and BC846. Its parts include 12 connectors, 11 capacitors, 4 resistors, 3 ICs and 1 transistor. It belongs with the wearables boards and the PIC boards of this library.

Main components

3

README

Hardware/README.md

Pluto is a programmable digital watch that re-uses case and LCD panel of the Casio® F-91W. This is the hardware repo, for the software side of things, see pluto-fw. Looking for pictures? There you go. You can discuss the project and ask questions on the EEVblog forum

Features

  • Displays time in decimal/binary/hexadecimal base
  • Multiple alarms
  • Multiple countdown timers
  • Uses RTTTL ringtones for alarm sound
  • Stopwatch
  • Compass
  • Speedometer (Enter distance, watch measures time and displays speed in km/h)
  • Generation of time-based one-time passwords according to RFC 6238 (WIP)
  • Menu-driven interface
  • Infrared receiver for software updates and TOTP secret transfer (WIP)
  • Useless customisation (Key beep frequency, etc.)
  • greater than 1 year battery life (estimate based on current consumption)

Hardware

Pluto replaces the PCB of the Casio F-91W with a custom one containing a MSP430FR6972 MCU, a digital magnetometer (compass) and a 38 kHz infrared receiver for software updates and communication. Due to careful planning and luck, the Pluto PCB perfectly fits inside of the F-91W's mounting frame, although it houses many more components.

MCU

The MSP430FR6972 is a low-power 16bit MCU with integrated segment LCD controller. It can be programmed and debugged using the two-wire SBW interface accessible through holes in the mounting frame.

Digital Magnetometer

The MAG3110 compass is connected to the MCU via I²C. To reduce its power consumption to zero when not in use, it's powered from GPIO pin. Due to layout constraints, the MCU's I²C interface can't be used, so the MCU's firmware has to implement a bit-banged I²C master controller.

Infrared Receiver

The TSOP57338 38kHz IR receiver is powered from GPIO pin as well since it doesn't have any power saving modes. Transmitter and firmware support are WIP.

Other components

The backlight LED is connected to two GPIO pins, so that LEDs of either orientation can be fitted. The driving circuit for the buzzer uses an inductor (measured approx. 10mH) to boost the battery voltage for increased volume.

PCB

We manufactured the PCB at elecrow. PCB thickness has to be 0.6mm for the PCB to fit between battery clip and plastic frame. Note that the PCB has "castellated vias" (for contacting the button springs) as PCB manufacturers usually surcharge for these. We chose to use ENIG (gold) finish since the original PCB is gold-plated as well and Casio wouldn't have done so if this wasn't strictly necessary. Unfortunately, not all vias are covered with solder mask due manufacturing details (in the gerber files, they are), so you'll have to insulate the bottom side of the PCB from the battery with sticky tape.

Software

For details on the software, see the software repository at pluto-fw.

Why?

I used to own an ez430-Chronos watch, but after several years of use, the rubber wrist strap disintegrated, so I needed a new programmable watch. Pretty much all of the existing DIY watches are impractical for daily use because of bulk, being not waterproof or having miserable battery life.

PAQ (Possibly asked questions)

Q: Why not just use a smartwatch?
A: Smartwatches have a miserable battery life of one week at best. Some even require user interaction to display the time.

Q: Why isn't there some sort of radio interface? (BLE, nRF24L01)
A: Take look at this picture to get an idea of the space available inside of the F-91W frame. The nRF24L01 is 4 mm×4 mm and barely fits, but requires external components like balun and antenna. There's no space for these. An IR receiver is the same size as the nRF24L01, but doesn't require any external components. TI's CC430 MCUs seem like a perfect match for pluto as since they combine MCU and radio, but since the radio operates at sub-1GHz frequency, the antenna needs to be prohibitively large.

Q: Why is there no accelerometer?
A: Accelerometers are the most useful when they're permanently active for applications like sleep trackers, pedometers or features like "shake to do something". Unfortunately, even accelerometers marketed as "ultralow power" draw approx 30 µA when running, draining the CR2016 coin cell in less than half a year. So we decided to dedicate the available space to a digital compass.

Credits

Thanks go to sh-ow for adding the compass and helping to get the board ready for manufacturing.

Mixed bag

Stuff loosely related to this project

Reverse Engineering bare glass LCD panels

For basics on bare glass LCD panels and how to drive them, see application notes from various MCU vendors.

For driving an unknown LCD panel, one needs to know which pins connect to the backplanes (COM) and which ones connect to segments (SEG). The easiest way to do so is to apply a square to all pins of the LCD panel and invert one pin at a time. When few segments light up, you've got a SEG pin, when many light up, you've got a COM pin. Sometimes apparently independent LCD segments are driven as one segment to save SEG pins.

Reverse engineering intricate PCB outlines

The F91-W's original PCB has a rather complicated outline that needs to be duplicated with high precision, so that the Pluto PCB fits nicely within the existing mounting frame.

By desoldering the spring contacting the piezo buzzer, the PCB is completely flat on the bottom side, so it can be placed on a flat-bed scanner. This eliminates any kind of distortion you'd get by taking a photo. The scanned image can then be scaled to match the actual dimensions measured with a caliper. There may be unequal scaling in X and Y direction due to inaccuracies of the scanner. We've now got a pretty accurate digital representation of the PCB that can be used for tracing out the outline and registering photos from the top side of the PCB to get the position of pads on top side.

Inkscape and GIMP (for correcting camera distortion) work well for these tasks. The resulting outline has been exported as a dxf document for importing the outline in KiCad.

Things that didn't work out

The project started off with the intent of re-purposing the the F-91W case and LCD. Unfortunately, the LCD panel of the F-91W is rather limited since some LCD segments are driven as one segment.

So we went out and took a look at the Casio W800, F-201 and DB-36 watch. After manufacturing a test jig for the LCD panels of the former two, it turned out that people at Casio /really/ like building LCDs with 5 backplanes. For some reason, the LCD panels need also to be driven with around 5 Vpp to achieve decent contrast. (Best guess: These watches are old designs, LCDs weren't that sensitive back then)

To my best knowledge, there's no (non-unobtainium) MCU on the market, that can boost a 3 V supply to 5 V for driving and LCDs /and/ can do 5-mux. The only MCUs meeting the first requirement are from the RL78 family from Renesas, but they only do 1,2,3,4 and 8-mux. Driving a 5-mux LCD with 8-mux waveforms leads to bad contrast. With 3 V and 5-mux, the contrast is much worse.

EPSON offers some obscure MCUs that can do both 5-mux and 5 V LCD drive, but these ones don't have enough segment pins the QFN64 package.

So we went back to F-91W.

Measuring current consumption

For plotting current consumption over time, the EnergyTrace feature of the MSP430FR4133 LaunchPad has proven to be really useful: energytrace-util

Related Projects

Looking for more buttons and a radio? Take a look at goodwatch

Parts

32
QtyValueFootprintReferences
10CONN_01X01Connect:1pinP5, P6, P7, P8, P9, P10, P11, P13, P14, P15
50.1ufCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C5, C6
20.1uFCapacitor_SMD:C_0402_1005MetricC10, C11
222pFCapacitor_SMD:C_0402_1005MetricC8, C9
1100Resistors_SMD:R_0402R3
110KResistor_SMD:R_0402_1005MetricR1
110ufCapacitor_SMD:C_0402_1005MetricC7
1200Resistor_SMD:R_0402_1005MetricR4
132.768 kHzCrystal:Crystal_SMD_EuroQuartz_EQ161-2Pin_3.2x1.5mmY1
147kResistors_SMD:R_0402R2
1BC846Package_TO_SOT_SMD:SOT-23Q1
1BME280Package_LGA:Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumberingU3
1CCapacitor_SMD:C_0402_1005MetricC4
1LCD-F-91Wf-91w:LCD-F-91WU2
1PIC24FJ128GL306Package_DFN_QFN:QFN-64-1EP_9x9mm_P0.5mm_EP7.5x7.5mmU1
1Programming connectorConnector_PinHeader_1.00mm:PinHeader_1x05_P1.00mm_VerticalJ2
1UARTConnector_PinHeader_1.00mm:PinHeader_1x02_P1.00mm_VerticalJ1

Questions

How big is the F-91w PCB?

It measures 24.4 × 24.4 mm and has 2 copper layers, 0.5 mm thick.

What parts does the F-91w use?

32 parts, built around the PIC24FJ128GL306-E/MR, BME280 and BC846. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the F-91w KiCad files?

From the FETup/ReTrace repository on GitHub, at the commit this page was made from: the board is Hardware/f-91w.kicad_pcb and its schematic Hardware/f-91w.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the F-91w design in my own project?

Its repository states no licence, so its author keeps all rights: ask FETup before reusing the design.

Similar boards

  • 2 layers70 × 110 mmThermostat pcb, the printed circuit board in 3D

    Thermostat pcb

    mikegormack/thermostat-pcb

    knob thermostat PCB Kicad

    103 parts
  • 2 layers43 × 35 mmLYFT CTRL, the printed circuit board in 3D

    LYFT CTRL

    mgkoenig/lyft

    LYFT is a sophisticated remote control for your IKEA BEKANT desk.

    43 parts88GPL-3.0
  • 2 layers64.1 × 36.2 mmProbeConverter, the printed circuit board in 3D

    ProbeConverter

    Open-Lab-Starter-Kit/OLSK-Small-CNC

    Open Source CNC Milling machine - Small version - Open Lab Starter Kit

    13 parts62CERN-OHL-W-2.0
  • 4 layers137.4 × 199.1 mmSt251n 20603, the printed circuit board in 3D

    St251n 20603

    schlae/HardDriveInfo

    Repair info and schematics for mostly older MFM hard drives

    277 parts38
  • 4 layers120 × 100 mmBsc, the printed circuit board in 3D

    Bsc

    shining-man/bsc_hw

    Hardware battery safety controller (BSC)

    286 parts31MIT
  • 2 layers100 × 70 mmRTD2662Board, the printed circuit board in 3D

    RTD2662Board

    KerJoe/RTD2662Board

    Prototype board for RTD2662 display controller

    259 parts24
  • 2 layers256 × 121 mmForte PA Deck, the printed circuit board in 3D

    Forte PA Deck

    SP6GK/Forte-600-HF-RF-Amplifier

    Project of 600 W LDMOS amlifier based on 2xMRF300.

    170 parts17GPL-3.0