Enter RPN

R47: The Nerdiest Stopwatch
Login

R47: The Nerdiest Stopwatch

Motivation

It is known that the R47 contains a featureful stopwatch. Yes, it is known.

Imagine yourself trackside with your beloved number-cruncher held high, thumb hovering over a key, ready to press…

…wait for it…

…wait for iiit…!

…wait…for…iiiit…!

…the + key to record your favorite racer’s lap time for later analysis on-device using data plots and regression analysis.

Because, yes, the R47 is certainly the world’s nerdiest stopwatch. 🤓

Casio calculator watch? Dethroned!

Arduino/Raspberry Pi + RTC lash-up? Nerd cred for days, yes, but can it withstand ESD outdoors in winter?

Bench frequency counter? More accurate, to be certain, but even a cheap one will cost more than an R47.

LabView rig? Wins on points, but only as long as price per function is no object.

Stopwatch Mode

We will start in the 🟦 CLK menu, where most of what we find is concerned with conversions to and from the R47’s powerful date and time data types. We will indeed make use of time values here in this article, but our journey begins with the STOPW item in the lower right corner of that menu’s first page. (Of three.)

Press it to enter the “timer” operating mode.1 The top stack position becomes a timer readout, initially reading 0:00:00.0 [00] regardless of locale setting.

All the basic features one expects of a modern digital stopwatch are here on this menu's unshifted row:

Menu Key Behavior
R/S R/S Toggle the run/stop state of the timer.
Tim→R ENTER Save the current timer value to the numbered register shown in square brackets after the time value; increment the index.
Lap→R . Record a lap. First . press splits the display into a running total time (T) and a reset lap value. Like ENTER thereafter.
Tim→Σ Σ+ Same as ENTER except that the value is saved to the statistics registers for later use by stats functions like PLSTAT.
Lap→Σ + Record a lap to the stats registers.
RESET ⬅︎ Reset the running timer to 0. If it was running at the time, it resumes counting.

All six hard key aliases are available on the C47; five on the R47.2

The four menu items with in their names have a trailing subscript to indicate how many numbered (R) or stats (Σ) registers are currently used for recorded timer/lap values. Calling 🟧 CLΣ from this menu will reset the latter to 0.

Clearing the numbered timers is a bit trickier. Entering any two digits changes the destination register for the next →R call, per above. Setting it to 00 causes the R47 to “forget” that it stored timer values in R00 and beyond without actually clearing the values. (One must stop any running timer and call out to the heavy-handed 🟦 CLR CLREGS feature to accomplish that.)

One may also use the ⬇︎/⬆︎ keys to dec/increment the register index reported in square brackets without saving or resetting the current timer value. Note that the →R subscripts in the unshifted soft menu row go down/up in lockstep. This feature is why this menu is single-page, now and always; those buttons are taken, unable to be used for menu paging in this context.

Countdown Timer

In addition to counting upward, the R47 can count downward.

The most straightforward method for this is to enter the value you want onto the stack before you enter timer mode,3 then:

🟦 CLK STOPW
🟧 RCL⧖ X
R/S

That second line is the key operation. Obscurely named, it “recalls” the named register into the countdown timer (⧖) so that the subsequent R/S keypress sets it running in the opposite direction from the normal “stopwatch” behavior. The menu you get here allows recalling the value from any of the four main stack registers, or a named variable. We might therefore say:

0.03 🟦 .ms
STO ‘GreenT’
🟦 CLK 🟧 𝕋→zyx
x≶y 1 + x≶y
🟦 zyx→𝕋
STO ‘Oolong’

We now have two canned timer values for brewing tea, which we can then reuse in later RCL⧖ calls.

The R47 will play4 a 4-note alert5 when a countdown timer hits zero, then resume counting upward. This gives the “overtime” value, a solid predictor of how bitter our tea will become while we remain distracted playing with our R47. 😜

Remember That Time When…?

The 🟧 RCL item on this menu brings a previous timer value back from a numbered register.

The hard RCL key does the same thing while in timer mode.

Presumably the reason the soft function exists is that it is programmable, whereas calling the regular RCL function from a program would not have the proper timer semantics.

Background Running

A running R47 timer will continue counting if you EXIT timer mode or switch into another menu. It will even continue if the calculator turns itself “off” automatically. This costs coin cell life if the R47 is not plugged into USB-C power.

The R47 warns you of this possibility by including a stopwatch icon (⏱) near the right end of the status bar.

Manually turning the calculator “off” with 🟧 EXIT does stop a running background timer, however.

Timebase Accuracy

There are two levels to this.

First, it may strike you as odd that the stopwatch function on a calculator famed for its exceedingly high calculation resolution and accuracy is limited to tenths of a second, and that the only option here is to reduce it to showing full seconds by toggling the 🟦 CLK STOPW 0.1s option. The reason for that is that the keyboard is only scanned at around that rate as a form of debouncing, which in turn sets a hard limit on how much displayed accuracy is useful. If you need more resolution than this, the R47 is not the right tool.

Second, the R47’s timer mode is only as accurate as its low-level internal timing mechanisms. On coin cell power, this is the low-precision CPU oscillator, which inevitably affects the accuracy of the real-time clock and everything else associated with it, including timer mode. While on USB-C power, the R47’s microcontroller enters a PLL based on the data clock rate. In principle, this may be higher precision, but that in turn is dependent on how the host device derives its USB clock. Since this is highly unlikely to be anything exotic like an oven-controlled crystal oscillator, running your R47 on USB power is unlikely to turn it into the right tool for any application calling for high timing accuracy.

It’s a Plot!

The reason the 🟦 CLK STOPW menu includes a link to the PLSTAT menu — normally accessed via 🟦 PLOT — is because the + key stores to the same stats registers used for this, allowing one to graph lap times.

One may then transition to 🟧 STAT to get one’s statistician on. 📈 🤘

Try that with your previous favorite stopwatch!

(You may now wish to return to my R47 article index.)

License

This work is © 2026 by Warren Young and is licensed under CC BY-NC-SA 4.0


  1. ^ One may well ask why one enters timer mode via the “stopwatch” menu item, and why said menu contains more than stopwatch functionality. One also has this question and wishes to know the answer!
  2. ^ The C47 inherited its dedicated Σ+ button from the DM42, to avoid the need for pasted-on button relabeling as on the WP34s. The R47 lacks this dedicated hard button but instead uses soft menu items for adding values to the statistics registers, and not just here in timer mode. It is for this same reason that the grayed-out Σ+ hint on the top line of this same menu is specific to the C47. Because these were thoughtfully lined up vertically with their aliased functions down on the unshifted row, we learn that we can get the C47’s Σ+ behavior on the R47 via the Tim→Σ soft menu item in this context.
  3. ^ Per above, the number keys change the register index for ENTER/. keypresses while in timer mode, precluding entry of a target value then.
  4. ^ The audio tone feature is not currently implemented on macOS. It plays in hardware, plus the simulator for Windows. On Linux, it is conditional on whether the PulseAudio development libraries are available at build time; naturally PulseAudio must also be available at runtime.
  5. ^ Middle G#, E, A, E ♫ on the piano.