-
Notifications
You must be signed in to change notification settings - Fork 56
UserGuide
Howdy y'all,
The GoodWatch is a clone of the Casio 3208 watch module, replacing that module in the CA-53W and CA-506 series watches. It is built around the CC430F6147 RFSoC, allowing for years of battery life with convenient C programming. The second model adds a 70cm amateur radio transceiver.
Applets are accessed in a ring, with the Mode button on the right side of the watch switching between them. Sometimes the Mode button will also have a secondary function, in which case you'll press it twice to move to the next mode.
Except for the base applets (Clock and Stopwatch), the remaining applets
are chosen from a submenu. Use +
and -
to choose the one you
would like from the subment, then press Mode again to enter the
applet.
The watch begins in the Clock applet, and resets to that applet after a few minute from most other applets.
Pressing the Set button switches to a programming mode, where the hour, minute and date can be changed; the seconds are held at zero until the minute is finished being set.
Hold 9
to show the day of the week or /
to show the date in
YYYYMMDD format. Hold 7
for a self-test, which ought to display
ALL GOOD
but might otherwise indicate a trouble code. Hold 4
to
show the Git hash of the firmware revision, 5
to show the date of
manufacture. 6
will toggle a blinking CPU load indicator, which
ought to be invisible except when the watch is really busy.
To tell the time in the dark, hold +
for the watch to beep the time
in Morse code.
The third row (123-
) of buttons sometimes do something in the
selected Applet without changing modes.
The GoodWatch supports a simple alarm, which is chosen by pressing the
Set button within the alarm application. Press the 4
button to turn
the alarm on or off, which will be indicated as a +
icon on the
clock screen.
The Stopwatch applet allows you to time things in quarters of a
second. Press +
to start or stop the timer, and 0
to reset it.
Unlike other apps, it will not timeout and return to the clock after
three minutes.
To temporarily show the time while in the stopwatch mode, press and
hold the /
key.
The calculator operates in Reverse Polish Notation mode. The current implementation operates on 32-bit integers, but floating point support will come in time. Pressing Mode the first time will reset the stack to zero; a second press moves to the next applet.
There's little room here for a complete tutorial for RPN, but gist of
it is that you push numbers onto the stack by typing them in, and each
operator will pop the most recent values from the stack, pushing the
result. Press =
or the mode button to push the current number into
the stack and begin another; you can think of this as the Enter or
Space key from an HP calculator.
The hex viewer application display eight nybbles on the screen. The
left four are the address, while the right four are the little-endian
value at that address. The 7
, 8
, 9
, and /
buttons increment
nybbles of the address, while the 0
, .
, =
, and +
buttons
decrease the address nybbles.
You will find that unmapped regions of memory return 0x3FFF
, an
unconditional branch to self. The bootloader at 0x1000
is
unlocked for your reading pleasure, but a troublesome region at 0x1B00
is blacklisted because reads from that region trigger a
reboot. Flash runs 32kB starting at 0x8000
, Info Flash is at
0x1800
, and RAM is at 0x1C00
. The interrupt table is at
the very end of the address space.
Holding the 4
button will disassemble the current instruction, as best
the 7-segment display can handle. AM and PM show the two bits of the
As
field, and /
shows the one bit of the Ad
field.
The phonebook is defined in your config.h
file, like so:
#define PHONEBOOK \
"Travis " "555-3811" "\n" \
"Bob 555" "555-0321" "\n" \
"AAA 800" "222-4357" "\n" \
"Last " "555-2358" "\n"
Inside the app, you can press +
to move to the next row, and 0
to
move to the next word of a row. So it it shows Travis
and you want
Travis's number, press +
to advance to the next word. If you want
Bob, AAA, or Last's number, then hit 0
to move on.
When you exit the app back to the Clock, there's a fallthrough menu on
the second row. 1
, 2
, 3
, and -
display the first, second,
third and fourth lines of the entry.
Only 8 characters are supported per word, and each line must end with
\n
.
Calibrate allows you to add or subtract a realtime clock calibration
in unites of 2ppm, which is handy if you find your watch slowly
gaining or losing time. Positive values slow the watch, and negative
values speed it up. -28
seems to be a reasonable default value.
This app generates a random number and displays it on the screen. 0
generates the number, 7
displays it in hex and /
displays it in
decimal.
This app implements Swatch Internet
Time, a failed
attempt at metric time in the UTC+1 timezone from Swatch's Beats
watches. Be sure that your time offset in config.h
is accurate.
The watch supports a number of radio applications. Please keep in mind that the filters of your watch will determine its band, as 433MHz in the GoodWatch20 series or either 500MHz or 915MHz in the GoodWatch30.
The tuner application lets you choose between the frequencies that
were linked in from codeplug.txt
using the +
and -
buttons. Use
the =
button to then type a manual frequency for a VFO mode.
In the Clock application, pressing 0
will give the name of the
channel and .
will give you the frequency.
The Frequency Counter applet is a handy little tool for finding the frequency of a UHF transmitter. Additionally, it will also show the incoming signal strength, so you can verify that the correct frequency has been found.
Enter the Counter by choosing it in the SubmenuApplet, then press 0
for a fresh sweep or 1
to perform a new sweep while retaining
knowledge of the old maximum. The watch will quickly scan through the
supported frequencies, then display the maximum while waiting for
further instructions. The periods at the bottom of the screen will
indicate the signal strength at that frequency, and you can copy that
frequency into the VFO by pressing the =
key.
The MorseApplet can be used to transmit Morse code by a carrier wave on the currently selected frequency. These can be received on a Single Sideband (SSB) receiver, such as the Yaesu FT-817 or Kenwood TH-D74.
Press 7
to transmit 73
(goodbye), 1
to transmit CQ
, or 0
to
transmit K
. Pressing /
will transmit the call sign.
Pressing =
placing the watch into a raw CW mode, in which the
sidebutton or the +
key will act as a straight key. Press =
again
to exit raw mode.
The OOK_Example applet transmits on-off keyed packets for
emulating cheap remote controls, such as those that control motors and
doorbells on the 433MHz band. See its wiki page for a complete
description of how it was written, as well as how to edit config.h
to define your individual OOK devices.
The Jukebox applet transmits ASK packets on 433.92 MHz to remotely control a TouchTunes jukebox, skipping songs or the like. The following buttons are found within the app.
____________________
/ ,---------------. \
| | JUKEBOX | |
| `---------------' |
| [7] [8] [9] [%] |
| power ^ editQ |
| [4] [5] [6] [X] |
| <-- O K --> |
| [1] [2] [3] [-] |
| pause v saveQ |
| [0] [.] [=] [+] |
\_skip_______________/
Some boxes are protected by an 8-bit pin number. 000
is the
default, but you can enter a new one with the Set button inside the
app.
After exiting the Jukebox into the Clock application, the fallthrough
row sends popular commands. 1
is Pause, 3
is Power, and -
is
Skip. 2
is not yet used.
The Beacon applet transmits your callsign over 2FSK. This is
currently disabled by default in the Makefile
, and it will likely be
cut when it is no longer needed as an example.
There is a work in progress POCSAG receiver applet, for use with the Dapnet pager network.