<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.g4slv.info/dokuwiki/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>John&#039;s Vademecum - public:miscellany:watches</title>
        <description></description>
        <link>https://www.g4slv.info/dokuwiki/</link>
        <lastBuildDate>Tue, 14 Apr 2026 15:28:09 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=logo.png</url>
            <title>John&#039;s Vademecum</title>
            <link>https://www.g4slv.info/dokuwiki/</link>
        </image>
        <item>
            <title>COSC</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:cosc</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:start&quot; data-wiki-id=&quot;public:miscellany:watches:start&quot;&gt;Watches&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;cosc&quot;&gt;COSC&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;COSC&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;cosc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-36&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;history&quot;&gt;History&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/COSC&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/COSC&quot;&gt;COSC&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;History&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;history&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;37-75&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;test_definitions&quot;&gt;Test definitions&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Test definitions&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;test_definitions&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;76-105&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;day_test_regime&quot;&gt;15 day test regime&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Day&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Temp/°C&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Daily rate&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Variance&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M1&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M2&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M3&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;4&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M4&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M5&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M6&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V3&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Dd&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M7&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;8&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M8&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V4&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Du&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M9&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;10&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M10&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V5&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;11&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;8&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Du&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M11&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Du&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M12&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;13&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;38&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Du&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M13&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;14&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M14&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M15&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;136-425&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Test&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;ID&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Description&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Limit&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Mean Daily Rate M(1→10)&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;M &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; average of M1 → M10 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; -4/+6 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Mean Variation&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;V &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; average of V1 → V5 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Greatest Variation&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;V&lt;sub&gt;max&lt;/sub&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Largest of V1 → V5 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 5 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Difference V → H &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;D&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Average(M1→M2) - Average(M9→M10) &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; -6 / +8 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Largest Variation from mean&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Largest Value difference between any individual M and average of M(1→10) &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 10 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Thermal Variation &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; (M13 - M11) / (38 - 8) &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; ±0.6 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Rate Resumption &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;R &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; M15 - Ave(M1→M2) &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; ±5 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;427-912&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;15 day test regime&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;day_test_regime&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;106-916&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;pseudo_tests_with_timegrapher&quot;&gt;pseudo Tests with Timegrapher&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Ignoring Temperature Variations. 
&lt;/p&gt;

&lt;p&gt;
Make 2 measurements on Timegrapher in each position, separated by 24 hours and record them in table:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit8&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Day&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Daily rate&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Variance&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M1&lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M2&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;V1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M3&lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;4&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M4&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;V2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M5&lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M6&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;V3&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Ddn&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M7&lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;8&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M8&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;V4&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Dup&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M9&lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;14&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M14&lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M15&lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;1097-1275&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;pseudo Tests with Timegrapher&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pseudo_tests_with_timegrapher&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;917-1279&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;some_results&quot;&gt;Some results&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Archimede Deck watch (a 10 day test, not a timegrapher pseudo-test)
&lt;/p&gt;
&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Day&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; &lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Daily rate&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt; &lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Variance&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M1&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.3&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M2 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+1.3&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V1 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;1.0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M3 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-0.7&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;4&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M4 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-1.7&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V2 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;1.0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M5 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+8.2&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M6 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+6.1&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V3 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;2.1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Dd&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M7 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+11.0&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;8&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M8 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+10.9&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V4 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;0.1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Du&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M9 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+9.9&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;10&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M10 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+9.5&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;V5 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;0.4&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;14&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M14 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+2.5&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;M15 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+2.7&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;1375-1691&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit11&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Test&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Desc&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Result&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Pass/Fail&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Limit&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;M&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Mean Daily Rate &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +5.5 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Pass &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; -4 / +6 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;V&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Mean Variation &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 0.9 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Pass &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 2 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;V&lt;sub&gt;max&lt;/sub&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Greatest Variation&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 2.1&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Pass &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 5 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Difference Vert → Horiz&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-8.9 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Fail &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; -6 / +8 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;P &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Largest Difference from Mean &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 7.2 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Pass &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 10 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;R &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Rate resumption &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1.9 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Pass &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; -5 / +5 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;1693-2012&amp;quot;} --&gt;
&lt;p&gt;
Page created Sun May 22 00:23:48 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:cosc&amp;amp;do=showtag&amp;amp;tag=cosc&quot; class=&quot;wikilink1&quot; title=&quot;tag:cosc&quot; rel=&quot;tag&quot;&gt;cosc&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Some results&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;some_results&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;1280-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Rolex Info</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:rolex_info</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:start&quot; data-wiki-id=&quot;public:miscellany:watches:start&quot;&gt;Watches&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;rolex_info&quot;&gt;Rolex Info&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Rolex Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rolex_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-42&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;history&quot;&gt;History&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;History&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;history&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;43-64&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;interesting_current_models&quot;&gt;Interesting Current Models&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Interesting Current Models&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;interesting_current_models&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;65-104&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;milgauss&quot;&gt;Milgauss&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Model Reference&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Calibre&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;List Price&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dec 2017 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;116400GV&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£6050 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Oct 2018 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;116400GV&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£6300  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;May 2019 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;   &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£6300  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Jan 2020 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£6650&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Sep 2021 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;116400GV&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£6650&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;May 2022 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;116400GV&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;3131&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£7350&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Oct 2023 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Has been discontinued &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;124-389&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Milgauss&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;milgauss&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;105-390&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;explorer_i&quot;&gt;Explorer I&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Model Reference&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Calibre&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;List Price&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Oct 2018 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;214270 39mm&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£5000  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;May 2019 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£5000  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Jan 2020 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£5200  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Sep 2021 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;124270 36mm&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£5150&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;May 2022 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;124270 36mm&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;3230  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£5700&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Oct 2023 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;124270 36mm &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3230 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £6100 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Feb 2025 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;124270 36mm&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3230 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £6400 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;413-699&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Explorer I&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;explorer_i&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;391-700&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;gmt_master_ii&quot;&gt;GMT Master II&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Model Reference&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Calibre&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;List Price&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Oct 2018  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;126710BLRO&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;   &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£7150  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Jan 2020  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£7750  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Sep 2021  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;126710BLNR&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;   &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£7750  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;May 2022  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;126710BLNR&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;3285  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£8400 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Oct 2023 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;126710BLNR&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;3285 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£9150 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Feb 2025 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 126710BLNR &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3285 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £9450 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;726-988&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;GMT Master II&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;gmt_master_ii&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;701-989&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;submariner&quot;&gt;Submariner&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit11&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Model Reference&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Calibre&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;List Price&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Oct 2018  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;116610LN&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£6650  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;May 2019  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£6650  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Jan 2020  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£7150  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Nov 2020  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;126610LV&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£7650 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Sep 2021  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£7300 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;May 2022 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;126610LN&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;3235  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£8050 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Oct 2023 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 126610LN &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3235 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £8650 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Feb 2025&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 126610LN &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3235 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £9100 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;1012-1317&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Submariner&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;submariner&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;990-1319&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;air_king&quot;&gt;Air King&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit13&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Model Reference&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Calibre&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;List Price&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;May 2022&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;126900&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;3230&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£5900&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Oct 2023 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 126900 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3230 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £6250 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Feb 2025 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 126900 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3230 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £6600 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;1340-1485&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Air King&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;air_king&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;1320-1488&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;vintage_model_prices&quot;&gt;Vintage Model Prices&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vintage Model Prices&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;vintage_model_prices&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;1489-1523&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;rolex_website&quot;&gt;Rolex Website&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.rolex.com/watches.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.rolex.com/watches.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.rolex.com/watches.html&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Page created Sun May 22 00:24:48 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:rolex&amp;amp;do=showtag&amp;amp;tag=rolex&quot; class=&quot;wikilink1&quot; title=&quot;tag:rolex&quot; rel=&quot;tag&quot;&gt;rolex&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Rolex Website&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rolex_website&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;1524-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Watches</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:start&quot; data-wiki-id=&quot;public:miscellany:start&quot;&gt;Miscellany&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;watches&quot;&gt;Watches&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watches&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watches&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;12-36&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;watches1&quot;&gt;Watches&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Mechanical watches, mainly. I can&amp;#039;t afford to get involved in the &lt;em&gt;Watch Hobby&lt;/em&gt; by collecting them, but I do enjoy learning about them.
&lt;/p&gt;

&lt;p&gt;
I wear a Damasko DA36 as my main watch but also have a Seiko SKX007 and a couple of recent G-Shocks as well as a Casio F91W, a Suunto Vector, a couple of older G-shocks and a CWC G10 Military…. and a couple more….
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;updatefeb_2024&quot;&gt;UPDATE : Feb 2024&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Now I&amp;#039;m wearing my varifocals full-time I&amp;#039;m able to wear a digital watch I&amp;#039;m enjoying wearing my G-Shock &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:casio_gm-w5610&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:casio_gm-w5610&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:casio_gm-w5610&quot;&gt;Casio GW-M5610&lt;/a&gt; occasionally, and still swapping back to the &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:damasko_da36&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:damasko_da36&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:damasko_da36&quot;&gt;Damasko DA36&lt;/a&gt; too.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;updatefeb_2025&quot;&gt;UPDATE : Feb 2025&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
I wore the G-Shock and CWC G10 for most of 2024 and into 2025. I&amp;#039;ve now gone back to my Damasko &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:start&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:start&quot;&gt;Damasko DA36&lt;/a&gt; and plan to wear it for the rest of 2025, and possibly longer.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watches&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watches1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;37-868&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;my_watch_notes&quot;&gt;My Watch Notes&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul class=&quot;catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:cosc&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:cosc&quot; data-wiki-id=&quot;public:miscellany:watches:cosc&quot;&gt;COSC&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-ns&quot;&gt;&lt;strong class=&quot;li catlist-nshead&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:start&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:start&quot;&gt;Damasko DA36&lt;/a&gt;&lt;/strong&gt;&lt;ul class=&quot;catlist-nslist&quot;&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:rolex_info&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:rolex_info&quot; data-wiki-id=&quot;public:miscellany:watches:rolex_info&quot;&gt;Rolex Info&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchcheck&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchcheck&quot; data-wiki-id=&quot;public:miscellany:watches:watchcheck&quot;&gt;Watchcheck Python code&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-ns&quot;&gt;&lt;strong class=&quot;li catlist-nshead&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:start&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:start&quot;&gt;Watch Inventory&lt;/a&gt;&lt;/strong&gt;&lt;ul class=&quot;catlist-nslist&quot;&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchwinder_python_code&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchwinder_python_code&quot; data-wiki-id=&quot;public:miscellany:watches:watchwinder_python_code&quot;&gt;Watchwinder&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;My Watch Notes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;my_watch_notes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;869-1057&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;external_links&quot;&gt;External Links&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.watchuseek.com/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.watchuseek.com/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.watchuseek.com/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.damasko-watches.com/en/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.damasko-watches.com/en/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.damasko-watches.com/en/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.rolex.com/watches.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.rolex.com/watches.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.rolex.com/watches.html&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.cwcwatch.com/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.cwcwatch.com/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.cwcwatch.com/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.watchgecko.com/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.watchgecko.com/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.watchgecko.com/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Page Updated : 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;External Links&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;external_links&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1058-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Watchcheck Python code</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchcheck</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;watchcheck_python_code&quot;&gt;Watchcheck Python code&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I wrote a small python2 application to keep track of a watch/clock&amp;#039;s 
daily rate error. It&amp;#039;s a console-only mimic of an Android app that
I use on my phone to track my watch timekeeping.
&lt;/p&gt;

&lt;p&gt;
I wrote it mainly as a &lt;em&gt;thought-experiment&lt;/em&gt; rather than as a fully functional
piece of code.
&lt;/p&gt;

&lt;p&gt;
You put the application in a directory specific to the watch and execute it from that
directory. the data from each measurement is stored in a &lt;strong&gt;json&lt;/strong&gt; file in the same directory.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt; update 23/01/26 &lt;/strong&gt;  I&amp;#039;ve modified the code to run under Python 3 - using the tool &lt;code&gt;2to3&lt;/code&gt; and a minor manual tweak.
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_0bfab14a76b53f246a8f5e0f71d5e5ed_1&quot;&gt;watchcheck.py in Python 3 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_0bfab14a76b53f246a8f5e0f71d5e5ed_1&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:miscellany:watches:watchcheck&amp;amp;codeblock=0&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;watchcheck.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# a text-terminal version of the WatchCheck app&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;## to track error, daily error rate of timepieces.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# auto update?&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; json
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;logfile.txt&amp;quot;&lt;/span&gt;
    f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_delta&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Current Time = %H:%M&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    h &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%H&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    w &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Watch time %s:&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;h&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;w&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    date &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; date + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + h +&lt;span class=&quot;st0&quot;&gt;&amp;quot;:&amp;quot;&lt;/span&gt;+ w +&lt;span class=&quot;st0&quot;&gt;&amp;quot;:00&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Press enter when seconds = 0 &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    watchtime &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mktime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;timetuple&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    record_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; watchtime - timenow
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; record_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        first_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        latest_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        latest_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; 
        latest_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        previous_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        FMT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;%Y/%m/%d %H:%M:%S&#039;&lt;/span&gt;
&amp;nbsp;
        t_latest &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_previous &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;previous_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_first &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;first_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        tdelta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_previous
        full_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_first
&amp;nbsp;
        elapsed_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tdelta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        full_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; full_delta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;First record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;First record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record time &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Overall elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; full_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; tdelta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Current Error rate&lt;/span&gt;
        time_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - previous_delta
        error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; time_error / elapsed_time
        daily_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_daily &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Overall Error rate&lt;/span&gt;
        total_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - first_delta
        average_error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; total_error / full_time
&amp;nbsp;
        average_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_overall &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest delta change &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; time_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time %d seconds &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;elapsed_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_daily&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily rate error: %0.1f s/d &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;daily_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total Time %d seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;full_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total error &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; total_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_overall&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total rate error: %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; Delta : %+0.1f s | Rate : %+0.1f s/d | Average : %+0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;No rate yet&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; new_record&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_delta&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%s &lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;Delta %0.1f seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    last_data&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    error_list.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;last_data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#print error_list&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;w&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; outfile:
        json.&lt;span class=&quot;me1&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; outfile&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; delete_last&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    error_list.&lt;span class=&quot;me1&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;w&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; outfile:
        json.&lt;span class=&quot;me1&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; outfile&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Wire2waves WatchCheck.....&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;=========================&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;N : New Record&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;D : Delete Last&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;S : Stats&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;Q : Quit&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    choice &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Command &amp;gt; : &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;N&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;New&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        new_record&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;S&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Stat&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;D&amp;quot;&lt;/span&gt;:
        delete_last&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Q&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_0bfab14a76b53f246a8f5e0f71d5e5ed_2&quot;&gt;original watchcheck.py in python 2 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_0bfab14a76b53f246a8f5e0f71d5e5ed_2&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:miscellany:watches:watchcheck&amp;amp;codeblock=1&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;watchcheck.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#! /usr/bin/env python&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;## a text-terminal version of the WatchCheck app&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;## to track error, daily error rate of timepieces.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# auto update?&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; json
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;logfile.txt&amp;quot;&lt;/span&gt;
    f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_delta&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Current Time = %H:%M&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    h &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%H&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    w &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Watch time %s:&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;h&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; w
&amp;nbsp;
    date &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; date + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + h +&lt;span class=&quot;st0&quot;&gt;&amp;quot;:&amp;quot;&lt;/span&gt;+ w +&lt;span class=&quot;st0&quot;&gt;&amp;quot;:00&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Press enter when seconds = 0 &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    watchtime &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mktime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;timetuple&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    record_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; watchtime - timenow
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; record_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        first_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        latest_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        latest_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; 
        latest_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        previous_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        FMT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;%Y/%m/%d %H:%M:%S&#039;&lt;/span&gt;
&amp;nbsp;
        t_latest &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_previous &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;previous_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_first &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;first_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        tdelta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_previous
        full_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_first
&amp;nbsp;
        elapsed_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tdelta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        full_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; full_delta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;First record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;First record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record time &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Overall elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; full_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; tdelta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Current Error rate&lt;/span&gt;
        time_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - previous_delta
        error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; time_error / elapsed_time
        daily_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_daily &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Overall Error rate&lt;/span&gt;
        total_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - first_delta
        average_error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; total_error / full_time
&amp;nbsp;
        average_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_overall &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest delta change &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; time_error
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time %d seconds &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;elapsed_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_daily
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily rate error: %0.1f s/d &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;daily_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total Time %d seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;full_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total error &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; total_error
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_overall
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total rate error: %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; Delta : %+0.1f s | Rate : %+0.1f s/d | Average : %+0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;No rate yet&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; new_record&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_delta&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s &lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;Delta %0.1f seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    last_data&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    error_list.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;last_data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#print error_list&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;wb&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; outfile:
        json.&lt;span class=&quot;me1&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; outfile&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; delete_last&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    error_list.&lt;span class=&quot;me1&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;wb&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; outfile:
        json.&lt;span class=&quot;me1&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; outfile&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Wire2waves WatchCheck.....&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=========================&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;N : New Record&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;D : Delete Last&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;S : Stats&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;Q : Quit&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;
    choice &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Command &amp;gt; : &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;N&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;New&amp;quot;&lt;/span&gt;
        new_record&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;S&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Stat&amp;quot;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;D&amp;quot;&lt;/span&gt;:
        delete_last&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Q&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;p&gt;
Running it for the first time, with no previous records stored, looks like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
Wire2waves WatchCheck.....
=========================

N : New Record
D : Delete Last
S : Stats
Q : Quit

Command &amp;gt; : n
New
Current Time = 10:18
Watch time 10:19
19
Press enter when seconds = 0

2022/05/04 10:19:30

Delta -30.2 seconds&lt;/pre&gt;

&lt;p&gt;
and the first time-delta is stored in the &lt;code&gt;error_list.json&lt;/code&gt; file like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[[&amp;quot;2022/05/04 10:19:30&amp;quot;, -30.179980039596558]]&lt;/pre&gt;

&lt;p&gt;
Running it again, after only 10 minutes looks like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Command &amp;gt; : n
New
Current Time = 10:30
Watch time 10:30
30
Press enter when seconds = 0

2022/05/04 10:30:30

Delta -30.2 seconds
First record time  2022/05/04 10:19:30
First record delta  -30.1799800396

Previous record time  2022/05/04 10:19:30
Previous record delta  -30.1799800396

Latest record time  2022/05/04 10:30:30
Latest record delta  -30.1998269558

Overall elapsed time  0:11:00
Latest elapsed time  0:11:00

Latest delta change  -0.0198469161987
Latest elapsed time 660 seconds

Daily PPM : -30.071
Daily rate error: -2.6 s/d

Total Time 660 seconds
Total error  -0.0198469161987
Total PPM : -30.071
Total rate error: -2.6 s/d

========================================================
 Delta : -30.2 s | Rate : -2.6 s/d | Average : -2.6 s/d
========================================================&lt;/pre&gt;

&lt;p&gt;
The &lt;code&gt;error_list.json&lt;/code&gt; file now looks like:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[[&amp;quot;2022/05/04 10:19:30&amp;quot;, -30.179980039596558], [&amp;quot;2022/05/04 10:30:30&amp;quot;, -30.199826955795288]]&lt;/pre&gt;

&lt;p&gt;
There&amp;#039;s also a small utility called &lt;code&gt;watchstat.py&lt;/code&gt; that reads the &lt;code&gt;error_list.json&lt;/code&gt; file to calculate and
display the data
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_0bfab14a76b53f246a8f5e0f71d5e5ed_3&quot;&gt;original watchstat.py in python 2 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_0bfab14a76b53f246a8f5e0f71d5e5ed_3&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:miscellany:watches:watchcheck&amp;amp;codeblock=6&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;watchstat.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#! /usr/bin/env python&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;## a text-terminal version of the WatchCheck app&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;## to track error, daily error rate of timepieces.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; json
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        first_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        latest_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        latest_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; 
        latest_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        previous_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        FMT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;%Y/%m/%d %H:%M:%S&#039;&lt;/span&gt;
&amp;nbsp;
        t_latest &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_previous &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;previous_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_first &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;first_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        tdelta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_previous
        full_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_first
&amp;nbsp;
        elapsed_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tdelta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        full_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; full_delta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;First record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;First record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record time &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Overall elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; full_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; tdelta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Current Error rate&lt;/span&gt;
        time_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - previous_delta
        error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; time_error / elapsed_time
        daily_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_daily &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Overall Error rate&lt;/span&gt;
        total_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - first_delta
        average_error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; total_error / full_time
&amp;nbsp;
        average_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_overall &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest delta change &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; time_error
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time %d seconds &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;elapsed_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_daily
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily rate error: %0.1f s/d &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;daily_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total Time %d seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;full_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total error &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; total_error
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_overall
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total rate error: %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; Delta : %0.1f s | Rate : %0.1f s/d | Average : %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;No rate yet&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_0bfab14a76b53f246a8f5e0f71d5e5ed_4&quot;&gt;watchstat.py in python 3 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_0bfab14a76b53f246a8f5e0f71d5e5ed_4&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:miscellany:watches:watchcheck&amp;amp;codeblock=7&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;watchstat.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;## a text-terminal version of the WatchCheck app&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;## to track error, daily error rate of timepieces.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; json
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        first_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        latest_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        latest_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; 
        latest_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        previous_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        FMT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;%Y/%m/%d %H:%M:%S&#039;&lt;/span&gt;
&amp;nbsp;
        t_latest &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_previous &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;previous_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_first &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;first_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        tdelta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_previous
        full_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_first
&amp;nbsp;
        elapsed_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tdelta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        full_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; full_delta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;First record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;First record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record time &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Overall elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; full_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; tdelta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Current Error rate&lt;/span&gt;
        time_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - previous_delta
        error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; time_error / elapsed_time
        daily_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_daily &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Overall Error rate&lt;/span&gt;
        total_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - first_delta
        average_error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; total_error / full_time
&amp;nbsp;
        average_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_overall &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest delta change &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; time_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time %d seconds &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;elapsed_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_daily&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily rate error: %0.1f s/d &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;daily_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total Time %d seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;full_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total error &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; total_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_overall&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total rate error: %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; Delta : %0.1f s | Rate : %0.1f s/d | Average : %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;No rate yet&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;p&gt;
Running watchstat.py on the newly updated &lt;code&gt;error_list.json&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;gm4slv@laptop:~/watchcheck_damasko $ python watchstat.py
First record time  2022/05/04 10:19:30
First record delta  -30.1799800396

Previous record time  2022/05/04 10:19:30
Previous record delta  -30.1799800396

Latest record time  2022/05/04 10:30:30
Latest record delta  -30.1998269558

Overall elapsed time  0:11:00
Latest elapsed time  0:11:00

Latest delta change  -0.0198469161987
Latest elapsed time 660 seconds

Daily PPM : -30.071
Daily rate error: -2.6 s/d

Total Time 660 seconds
Total error  -0.0198469161987
Total PPM : -30.071
Total rate error: -2.6 s/d

========================================================
 Delta : -30.2 s | Rate : -2.6 s/d | Average : -2.6 s/d
========================================================&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;watchcheck.py&lt;/code&gt; also creates a log file on each run.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;04/05/2022 09:30:30     -30.2           -2.6            -2.6&lt;/pre&gt;

&lt;p&gt;
The fields are “date time”, current error, error in seconds per day since last record, average error in seconds per day since the start.
&lt;/p&gt;

&lt;p&gt;
This mimics the behaviour of the Android Watchcheck app
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:screenshot_20220504-104043.png&quot; class=&quot;media&quot; title=&quot;public:watches:screenshot_20220504-104043.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=bef9cf&amp;amp;media=public:watches:screenshot_20220504-104043.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
 &lt;em&gt;&lt;a href=&quot;mailto:&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;John Pumford-Green&lt;/a&gt; Wed May  4 09:09:09 2022&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated : 23/01/26 14:13 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:python&amp;amp;do=showtag&amp;amp;tag=python&quot; class=&quot;wikilink1&quot; title=&quot;tag:python&quot; rel=&quot;tag&quot;&gt;python&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 23 Jan 2026 14:13:10 +0000</pubDate>
        </item>
        <item>
            <title>Watchwinder</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchwinder_python_code</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:start&quot; data-wiki-id=&quot;public:miscellany:watches:start&quot;&gt;Watches&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;watchwinder&quot;&gt;Watchwinder&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watchwinder&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watchwinder&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-44&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;home_brew_winder&quot;&gt;Home Brew Winder&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I built a simple watch-winder to keep automatic watches fully wound when not being worn. Mainly as a small project to play with a &lt;a href=&quot;https://store.micropython.org/product/PYBv1.1H&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://store.micropython.org/product/PYBv1.1H&quot; rel=&quot;ugc nofollow noopener&quot;&gt;pyBoard&lt;/a&gt; and a servo motor.
&lt;/p&gt;

&lt;p&gt;
A short piece of microPython makes the servo turn, first one direction, then then other, then a pause, at a speed that makes sure a watch is fully wound overnight. The speed depends on the required number of turns to achieve full-wind, which depends on the watch movement, and whether the movement winds in one or other, or both, rotational directions.
&lt;/p&gt;

&lt;p&gt;
The watch is placed in a plastic box attached to the servo motor and the motor is simple clamped in a &lt;code&gt;panavise&lt;/code&gt;, with the axis of the servo at about 45°
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Home Brew Winder&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;home_brew_winder&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;45-793&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;photos&quot;&gt;Photos&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_col2 wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
&lt;a href=&quot;https://docs.micropython.org/en/latest/pyboard/quickref.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://docs.micropython.org/en/latest/pyboard/quickref.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;pyBoard Quick Reference&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Amiscellany%3Awatches%3Awatchwinder_python_code&amp;amp;media=public:watches:pyboard.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:pyboard.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=339642&amp;amp;media=public:watches:pyboard.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Amiscellany%3Awatches%3Awatchwinder_python_code&amp;amp;media=public:watches:pybv11-pinout.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:pybv11-pinout.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=da4bc7&amp;amp;media=public:watches:pybv11-pinout.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Amiscellany%3Awatches%3Awatchwinder_python_code&amp;amp;media=public:watches:winder_1.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:winder_1.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=5deab8&amp;amp;media=public:watches:winder_1.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Amiscellany%3Awatches%3Awatchwinder_python_code&amp;amp;media=public:watches:winder_2.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:winder_2.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=85ec50&amp;amp;media=public:watches:winder_2.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Amiscellany%3Awatches%3Awatchwinder_python_code&amp;amp;media=public:watches:winder_3.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:winder_3.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=224def&amp;amp;media=public:watches:winder_3.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Amiscellany%3Awatches%3Awatchwinder_python_code&amp;amp;media=public:watches:winder_4.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:winder_4.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=3a7fef&amp;amp;media=public:watches:winder_4.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
&lt;span class=&quot;todo&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;todocheckbox&quot; data-index=&quot;0&quot; data-date=&quot;1767088507&quot; data-pageid=&quot;public:miscellany:watches:watchwinder_python_code&quot; data-strikethrough=&quot;1&quot; checked=&quot;checked&quot; /&gt; &lt;span class=&quot;todouser&quot;&gt;[✓ John Pumford-Green, 2025-03-09]&lt;/span&gt;&lt;span class=&quot;todotext clickabletodo todohlght&quot;&gt;&lt;del&gt;&lt;span class=&quot;todoinnertext&quot;&gt;add some photos&lt;/span&gt;&lt;/del&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Photos&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;photos&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;794-1210&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;python_code&quot;&gt;Python Code&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
microPython  code for Pyboard to control continuous rotation servo.
&lt;/p&gt;
&lt;pre class=&quot;code python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# main.py -- put your code here!&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; pyb
&amp;nbsp;
servo1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyb.&lt;span class=&quot;me1&quot;&gt;Servo&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# LED colours&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# red flash = motor stopped&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# green on = manual stop for 120 seconds&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# yellow on/flash = motor running&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# blue flash = 5 seconds before a change of state&lt;/span&gt;
&amp;nbsp;
ledr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyb.&lt;span class=&quot;me1&quot;&gt;LED&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
ledg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyb.&lt;span class=&quot;me1&quot;&gt;LED&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ledy &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyb.&lt;span class=&quot;me1&quot;&gt;LED&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ledb &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyb.&lt;span class=&quot;me1&quot;&gt;LED&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# servo speeds to achieve approx 6 rpm in either direction.&lt;/span&gt;
ccw &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;
cw &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;
stop &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# 12 minute cycle :&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# observed turns complete per stage:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 2 min CW = ~11 turns&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 4 min stop&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 2 min CCW = ~ 12 turns&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 4 min stop&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 23 turns / 12 min = 115 turns / hour&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# ETA 2836-2 requires 650 turns / day for full winding &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# this would take 5.6 hours on winder per day to guarantee full wind.&lt;/span&gt;
&amp;nbsp;
period &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;# seconds&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# turn LEDs off (unneccesary?)&lt;/span&gt;
ledr.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ledg.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
ledy.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ledb.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# interrupt function to allow changing/removing watch&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; stop_servo&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# red LED on at start of interruption&lt;/span&gt;
	ledr.&lt;span class=&quot;me1&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledy.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# turn off any flashing LEDs during interruption&lt;/span&gt;
	tim4.&lt;span class=&quot;me1&quot;&gt;callback&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# flash blue LED to signal stop imminent&lt;/span&gt;
	flash_blue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# stop servo&lt;/span&gt;
	servo1.&lt;span class=&quot;me1&quot;&gt;speed&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# red LED off and green LED on to indicate &amp;quot;safe to proceed&amp;quot;&lt;/span&gt;
	ledr.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledg.&lt;span class=&quot;me1&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# pause for 2 minute&lt;/span&gt;
	pyb.&lt;span class=&quot;me1&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# flash blue LED to signal re-start imminent&lt;/span&gt;
	flash_blue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# green LED off to indicate end of interruption.&lt;/span&gt;
	ledg.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	pyb.&lt;span class=&quot;me1&quot;&gt;hard_reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# after resumption from interrupt the next stage will usually be a &lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;# &amp;quot;stop&amp;quot; period, assuming the interrupt occurred during a &amp;quot;run&amp;quot; period&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;# perhaps need to look at the best way of resuming? or even quit()&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;# at the end of the stop_servo() interrupt and then manually reset via the &lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;# RST button?&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# main programme resumes where it left off....&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; cycle_led&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
	ledb.&lt;span class=&quot;me1&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	pyb.&lt;span class=&quot;me1&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledy.&lt;span class=&quot;me1&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	pyb.&lt;span class=&quot;me1&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledg.&lt;span class=&quot;me1&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	pyb.&lt;span class=&quot;me1&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledr.&lt;span class=&quot;me1&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	pyb.&lt;span class=&quot;me1&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledb.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledy.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledg.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledr.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; flash_blue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
	t &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; t &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;:
&amp;nbsp;
		ledb.&lt;span class=&quot;me1&quot;&gt;toggle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
		pyb.&lt;span class=&quot;me1&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
		t +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; rotate_cw&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# solid yellow LED when going CW&lt;/span&gt;
	ledy.&lt;span class=&quot;me1&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	servo1.&lt;span class=&quot;me1&quot;&gt;speed&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cw&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	pyb.&lt;span class=&quot;me1&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p * &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	flash_blue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledy.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; rotate_ccw&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# flash yellow LED when going CCW&lt;/span&gt;
	tim4.&lt;span class=&quot;me1&quot;&gt;callback&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt; t: ledy.&lt;span class=&quot;me1&quot;&gt;toggle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	servo1.&lt;span class=&quot;me1&quot;&gt;speed&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ccw&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	pyb.&lt;span class=&quot;me1&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p * &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	flash_blue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	tim4.&lt;span class=&quot;me1&quot;&gt;callback&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledy.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pause&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;# flash red LED during motor pause period&lt;/span&gt;
	tim4.&lt;span class=&quot;me1&quot;&gt;callback&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt; t: ledr.&lt;span class=&quot;me1&quot;&gt;toggle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	servo1.&lt;span class=&quot;me1&quot;&gt;speed&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;stop&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	pyb.&lt;span class=&quot;me1&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p * &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	flash_blue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	tim4.&lt;span class=&quot;me1&quot;&gt;callback&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	ledr.&lt;span class=&quot;me1&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# USR on-board switch used to pause running to allow&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# watch to be removed / changed&lt;/span&gt;
sw &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyb.&lt;span class=&quot;me1&quot;&gt;Switch&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# callback to run the function that pauses the operation&lt;/span&gt;
sw.&lt;span class=&quot;me1&quot;&gt;callback&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;stop_servo&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#timer to flash LEDs&lt;/span&gt;
tim4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyb.&lt;span class=&quot;me1&quot;&gt;Timer&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
cycle_led&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# the main loop&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
&amp;nbsp;
		rotate_cw&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;period&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
		pause&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; * period&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
		rotate_ccw&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;period&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
		pause&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; * period&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Python Code&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;python_code&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1211-4284&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Page created Sun May 22 00:52:45 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:python&amp;amp;do=showtag&amp;amp;tag=python&quot; class=&quot;wikilink1&quot; title=&quot;tag:python&quot; rel=&quot;tag&quot;&gt;python&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;4285-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
    </channel>
</rss>
