Skip to content

Commit 489491c

Browse files
committed
Implement timer, beeper sounding/handling, auto date, F(), working on alarm and snooze
1 parent 2b98c24 commit 489491c

File tree

2 files changed

+149
-62
lines changed

2 files changed

+149
-62
lines changed

README.md

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,34 @@ Featuring timekeeping by DS3231 real-time clock and six digits multiplexed 3x2 v
99

1010
_In these instructions, **Select** is the main pushbutton, and **Adjust** can be a pair of up/down buttons (hold to set faster), or a knob (rotary encoder). Other variations may apply depending on the options selected in the code._
1111

12-
Press **Select** to cycle through the clock's functions. Some functions return to Time after a few seconds.
12+
### Clock Functions
1313

14-
To set a function, hold **Select** 'til the display flashes; use **Adjust** to set, and **Select** to save.
14+
* Press **Select** to cycle through the clock's functions.
15+
* Some functions return to Time after a few seconds.
16+
* To set a function, hold **Select** 'til the display flashes; use **Adjust** to set, and **Select** to save.
1517

1618
| Function | Notes |
1719
| --- | --- |
18-
| **Time** shows the time of day, e.g. `12 34 56` for 12:34:56. | You can choose 12h or 24h format in Options. When setting, it's in 24h format (so you can tell AM from PM) and the seconds will reset to :00 when you save. |
19-
| **Date** shows the month, date, and weekday. e.g. `_2 _4 _0` for Sunday, February 4th. | The weekday is 0=Sunday, 6=Saturday. You can choose month/date or date/month format in Options. Setting is done in three stages: first year, then month, then date. |
20+
| **Time** shows the time of day. | You can choose 12h or 24h format in Options. When setting, it's in 24h format (so you can tell AM from PM) and the seconds will reset to :00 when you save. |
21+
| **Date** shows the month, date, and weekday. e.g. `_2 _4 _0` for Sunday, February 4th. | You can choose month/date or date/month format in the options menu (2). Setting is done in three stages: first year, then month, then date.<br/>Weekdays are: 0=Sun, 1=Mon, 2=Tue, 3=Wed, 4=Thu, 5=Fri, 6=Sat |
22+
| **Timer** shows a countdown timer, or a single `0` when not running. | Can be set to the minute, up to 18 hours. Begins running as soon as you set it, and will continue to run in the background if you change to a different function. To cancel a running timer, hold **Select**. When it runs out, press **Select** to silence the beeper. |
2023
| **Day counter** shows the number of days until/since a date you specify, e.g. `_1 23 __` for 123 days. | The target date is set the same way as **Date.** |
2124
| **Thermometer** shows the temperature of the onboard DS3231 chip, e.g. `__ 38 25` for 38.25°C (I think). | This may not be very useful as it tends to read higher than ambient temperature and its tolerance is low. |
2225
| **Cleaner** just cycles all the digits on all the tubes. | A quick and dirty anti-cathode-poisoning mode, until automatic digit cycling is implemented. |
23-
| **Alarm** | _Not yet implemented_ |
24-
| **Timer** | _Not yet implemented_ |
26+
| **Alarm** will show alarm time and status, e.g. `_7 00 1_` for a 7am alarm that is switched on. | _Not yet implemented. Intended to work like this:_<br/>Use **Adjust** to switch alarm on and off; this is indicated by `1` or `0` on the 5th tube, and a bright (on) or dim (off) display. Hold **Select** to set the time the same way as **Time**. When alarm sounds, press **Select** to snooze, or hold for 1sec (followed by a short beep) to silence the alarm for the day. Options menu lets you restrict the alarm to your workweek or weekend only. |
2527

26-
Additional settings are available in the options menu. To access this, hold **Select** for 3 seconds until you see a single `1` on the hour tubes, which indicates option number 1. Use **Adjust** to go to the option number you want to set (see table below); press **Select** to open it for setting (display will flash); use **Adjust** to set; and **Select** to save. When all done, hold **Select** to exit the options menu.
28+
### Options Menu
29+
30+
* Additional settings are available in the options menu.
31+
* To access this, hold **Select** for 3 seconds until you see a single `1` on the hour tubes. This indicates option number 1.
32+
* Use **Adjust** to go to the option number you want to set (see table below); press **Select** to open it for setting (display will flash); use **Adjust** to set; and **Select** to save.
33+
* When all done, hold **Select** to exit the options menu.
2734

2835
| Option | Settings |
2936
| --- | --- |
3037
| 1. Time format | 1 = 12-hour<br/>2 = 24-hour<br/>(time-of-day display only; setting times is always done in 24h) |
31-
| 2. Date display | 1 = month/date/weekday<br/>2 = date/month/weekday |
32-
| 3. Display date during time? | 0 = never<br/>1 = date instead of seconds<br/>2 = full date (as above) every minute at :30 seconds *(not implemented)* |
38+
| 2. Date format | 1 = month/date<br/>2 = date/month |
39+
| 3. Display date during time? | 0 = never<br/>1 = date instead of seconds<br/>2 = full date (as above) every minute at :30 seconds |
3340
| 4. Leading zero in hour, date, and month? | 0 = no<br/>1 = yes |
3441
| 7. Auto DST | Add 1h for daylight saving time between these dates (at 2am):<br/>0 = off<br/>1 = second Sunday in March to first Sunday in November (US/CA)<br/>2 = last Sunday in March to last Sunday in October (UK/EU)<br/>3 = first Sunday in April to last Sunday in October (MX)<br/>4 = last Sunday in September to first Sunday in April (NZ)<br/>5 = first Sunday in October to first Sunday in April (AU)<br/>6 = third Sunday in October to third Sunday in February (BZ) |
3542

@@ -40,13 +47,14 @@ Additional settings are available in the options menu. To access this, hold **Se
4047
| 5. Transition fade | 0–50 (in hundredths of a second) |
4148
| 6. Digit cycle (prevents [cathode poisoning](http://www.tube-tester.com/sites/nixie/different/cathode%20poisoning/cathode-poisoning.htm)) | 0 = before midnight and/or before day-off<br/>1 = every hour before :01 minute |
4249
| 8. Hourly strike | 0 = off<br/>1 = double beep<br/>2 = pips<br/>3 = strike the hour<br/>4 = ship's bell<br/>(Clocks without radio/timer control only. Will not sound during day-off or night-off.) |
43-
| 9. Snooze duration | 0–60 minutes. 0 disables snooze. |
44-
| 10. Fine regulation | Adjusts clock's timekeeping in tenths of a second per week. 500 is "normal." (e.g.: 503 causes clock to run 0.3s faster per week.) |
45-
| 11. Night-off | 0 = normal (tubes fully on at night)<br/>1 = dim tubes at night<br/>2 = shut off tubes at night |
50+
| 9. Alarm snooze | 0–60 minutes. 0 disables snooze. |
51+
| 10. Alarm days | 0 = every day<br/>1 = workdays only (per options 15/16)<br/>2 = non-workdays only |
52+
| 11. Night-off | To save tube life or preserve your sleep, dim or shut off tubes when you're not around or sleeping.<br/>0 = none (tubes fully on at night)<br/>1 = dim tubes at night<br/>2 = shut off tubes at night<br/>When off, you can press **Select** to light the tubes briefly. |
4653
| 12. Night starts at | Time of day |
4754
| 13. Night ends at | Time of day. Set to 0:00 to use the alarm time. |
48-
| 14. Day-off | To save tube life, shut off tubes during the day when you're not around.<br/>0 = normal (no day-off)<br/>1 = clock at work (shut off all day on weekends)<br/>2 = clock at home (shut off during work hours) |
55+
| 14. Day-off | To save tube life, shut off tubes during the day when you're not around.<br/>0 = none (tubes fully on during day)<br/>1 = clock at work (shut off all day on weekends)<br/>2 = clock at home (shut off on workdays during work hours)<br/>When off, you can press **Select** to light the tubes briefly. |
4956
| 15. First day of work week | 0–6 (Sunday–Saturday) |
5057
| 16. Last day of work week | 0–6 (Sunday–Saturday) |
5158
| 17. Work starts at | Time of day |
52-
| 18. Work ends at | Time of day |
59+
| 18. Work ends at | Time of day |
60+
| 19. Fine regulation | Adjusts clock's timekeeping in tenths of a second per week. 500 is "normal." (e.g.: 503 causes clock to run 0.3s faster per week.) |

0 commit comments

Comments
 (0)