Skip to content

Commit 291e39c

Browse files
committed
Untested – Flesh out relay (signalType 1/2) functionality via signal functions; options menu skips irrelevant options when relay in use; signalDur changes to seconds; add soft power switch option; readme adds hardware configuration consts
1 parent 5c5e933 commit 291e39c

File tree

2 files changed

+142
-70
lines changed

2 files changed

+142
-70
lines changed

README.md

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# arduino-nixie
2-
**A digital clock with perpetual calendar, alarm, countdown timer, and day counter.** Written for the Arduino Nano at the heart of [RLB Designs'](http://rlb-designs.com/) Universal Nixie Driver Board (UNDB) v5.0, featuring a DS3231 thermocompensated battery-backed real-time clock, and driving up to 6 digits multiplexed in pairs via two SN74141 driver chips. Uses AdaEncoder and ooPinChangeInt (for rotary encoders, optional) and NorthernWidget DS3231 libraries.
2+
**A digital clock with perpetual calendar, alarm, countdown timer/appliance timer, and day counter.** Written for the Arduino Nano at the heart of [RLB Designs'](http://rlb-designs.com/) Universal Nixie Driver Board (UNDB) v5.0, featuring a DS3231 thermocompensated battery-backed real-time clock, and driving up to 6 digits multiplexed in pairs via two SN74141 driver chips. Uses AdaEncoder and ooPinChangeInt (for rotary encoders, optional) and NorthernWidget DS3231 libraries.
33

44
[Latest release can be downloaded here.](https://github.com/clockspot/arduino-nixie/releases/latest)
55

66
## Instructions
77

8-
_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, and functions may be reordered or left out._
8+
_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 (see Hardware Configuration below), and functions may be reordered or left out._
99

1010
### Clock Functions
1111

@@ -14,10 +14,10 @@ _In these instructions, **Select** is the main pushbutton, and **Adjust** can be
1414

1515
| Function | Looks like | Notes |
1616
| --- | --- | --- |
17-
| **Time** | `12 34 56` | 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. The clock keeps time during power outages and compensates for temperature effects. |
17+
| **Time** | `12 34 56` | The time of day. You can choose 12h or 24h format in the options menu (1). When setting, it's in 24h format (so you can tell AM from PM) and the seconds will reset to :00 when you save. The clock keeps time during power outages and compensates for temperature effects. |
1818
| **Date** | `_2 _4 _0`<br/>(for&nbsp;Sun&nbsp;2/4) | You can choose the date 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 |
1919
| **Alarm** | `_7 00 1_` | Shows alarm time (always in 24hr format) and on/off status on 5th tube (1=on, 0=off) and by display brightness (bright=on, dim=off). Use **Adjust** to switch on/off. Hold **Select** to set time (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. In a power outage, the alarm will remain set, but it will not sound if power is disconnected at alarm time. |
20-
| **Timer** | `__ __ _0` | A countdown timer, in hours, minutes, and seconds; or `0` when stopped. 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 while running, hold **Select**. When timer runs out, press **Select** to silence. If power is lost, the timer will reset to `0`. |
20+
| **Timer** | `__ __ _0` | A countdown timer, in hours, minutes, and seconds; or `0` when stopped. 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 while running, hold **Select**. When timer runs out, press **Select** to silence. If power is lost, the timer will reset to `0`. Can be configured to work as an interval timer in the options menu (10), or as an appliance timer instead (see Hardware Configuration). |
2121
| **Day counter** | `_1 23 __` | Shows the number of days until/since a date you specify. Set the same way as **Date.** |
2222
| **Thermometer** | `__ 38 25` | Shows the temperature of the onboard DS3231 chip (e.g. 38.25°C – I think). May not be very useful as it tends to read higher than ambient temperature and its tolerance is low. |
2323
| **Tube tester** | `88 88 88` | Cycles through all the digits on all the tubes. |
@@ -40,11 +40,11 @@ _In these instructions, **Select** is the main pushbutton, and **Adjust** can be
4040
| **Alarms and sounds** ||
4141
| 7. Alarm days | 0 = every day<br/>1 = work week only (per settings below)<br/>2 = weekend only |
4242
| 8. Alarm snooze | 0–60 minutes. 0 disables snooze. |
43-
| 9. Alarm signal pitch | [Note number on a piano keyboard](https://en.wikipedia.org/wiki/Piano_key_frequencies), from 49 (A4) to 88 (C8). Some are louder than others! |
44-
| 10. Timer interval mode | What happens when the timer reaches 0.<br/>0 = stop and sound continuously<br/>1 = restart and sound a single tone (interval timer) |
45-
| 11. Timer signal pitch | Set the same way as the alarm pitch, above. |
43+
| 9. Alarm signal pitch | [Note number on a piano keyboard](https://en.wikipedia.org/wiki/Piano_key_frequencies), from 49 (A4) to 88 (C8). Some are louder than others! Clocks with piezo signal only. |
44+
| 10. Timer interval mode | What happens when the timer reaches 0.<br/>0 = stop and sound continuously<br/>1 = interval timer: restart and sound a single tone (clocks without radio/timer control only) |
45+
| 11. Timer signal pitch | Set the same way as the alarm pitch, above. Clocks with piezo signal only. |
4646
| 12. Hourly strike | 0 = off<br/>1 = single 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/night-off (except when entering day-off/night-off at the top of the hour). |
47-
| 13. Hourly strike pitch | Set the same way as the alarm signal pitch, above. If using the pips, 63 (987 Hz) is closest to the real BBC pips frequency (1000 Hz). |
47+
| 13. Hourly strike pitch | Set the same way as the alarm signal pitch, above. If using the pips, 63 (987 Hz) is closest to the real BBC pips frequency (1000 Hz). Clocks with piezo signal only. |
4848
| **Night-off and day-off** ||
4949
| 14. Night-off | To save tube life and/or preserve your sleep, dim or shut off tubes nightly 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 illuminate the tubes briefly. |
5050
| 15. Night starts at | Time of day. |
@@ -55,6 +55,15 @@ _In these instructions, **Select** is the main pushbutton, and **Adjust** can be
5555
| 20. Work starts at | Time of day. |
5656
| 21. Work ends at | Time of day. |
5757

58-
### Factory Reset
58+
To reset the options menu settings to "factory" defaults, hold **Select** while connecting the clock to power.
5959

60-
To reset the clock to "factory" defaults, hold **Select** while connecting the clock to power.
60+
### Hardware Configuration
61+
62+
Several consts are defined at the top of the code, which can be edited to reflect the hardware configuration of the clock, including (but not limited to):
63+
64+
* **How many tubes** in the display module – small display adjustments are made for 4-tube clocks
65+
* **Which functions** are enabled
66+
* **Which input pins** are associated with which controls — main select, main adjust, alt select, alt adjust _(alts not implemented yet)_
67+
* **What type of adjust controls** are equipped – pushbuttons or rotary encoders
68+
* **What type of output signal** is equipped – a piezo beeper, or a relay switching a signaling device (e.g. for a solenoid striking a bell) or an appliance (e.g. a radio or lamp)
69+
* **Various durations** for things like scrolling speed, set mode timeouts, short and long button holds, "hold to set faster" threshold, etc.

0 commit comments

Comments
 (0)