2022.11.11: Lux Turpis ("Light Mixer")
2022-11-11 21:44 by Ian
Lux Turpis ("Light Mixer") is an ISM radio relay and NTP appliance.
One of the most enjoyable things about talking to kids is saying things that, while true, would sound absurd to most adults, and then letting the conversation evolve naturally. This anecdote from the antenna installation is probably the best description of the machine I could have given to anyone.
Ian's 8-year-old son: "Dad, why are you going up on the roof?"
Ian: "To install the house's clock."
8yo: "On the roof? Will we need to go up there to read it?"
Ian: "Nope! We can read it by sparking wires together, and listening for the sparks the clock makes in response.."
8yo: "Oh, that's smart! But if it makes sparks, doesn't it need electricity?"
Ian: "It sure does. I'll give it power with two wires that don't participate in the spark signaling."
8yo: "Don't we already have clocks in the house?"
Ian: "Yes... but many of them disagree, and none of them are accurate enough for my purposes. So the new clock is going to be the master clock for all the other clocks in the house."
Note that the surface-level absurdity of putting a clock of any kind on the roof hasn't yet entered the conversation. But from the story thus far, he's surmised that the white metal box in my hand contains a computer.
8yo: "But didn't you tell me that computers make really terrible clocks?"
Ian: "Yes. And they do. But this computer is special because it doesn't do as most computers do, and try to keep track of the time. And it doesn't need to ask another computer (or us) what time it is. Instead, it takes time reports directly from satellites that are always overhead, each of which has a little rubidium fire burning at a precise temperature." (He knows about rubidium from PowderToy and some of the exotic fires I've demonstrated for them).
8yo: (alight with realization) "And THAT'S why it has to go on the roof, isn't it? To hear the satellites?"
Ian:
"That's exactly right."
Satisfied by having his reasoning validated, my boy left me alone to my work.
Kids always know exactly the right questions to ask. They won't judge an action as absurd until they know the whys and the wherefores, and it meshes with their other knowledge.
Somewhere along the line, most adults forgot that they ever wanted to know why the sky was blue. Or they were sated by an answer that should have fallen apart and left a small bleeding wound in their minds with the attainment of an 8th grade science education.
I didn't find the answer until I was 21.
I grip the clock in my off-hand and begin to ascend the ladder.
Hardware at various stages of assembly
I bought a few obsolete AeroHive outdoor WiFi APs at a scrap rate from Unix Surplus, The guts were mostly useless, but I got the two cast aluminum enclosures with full mounting kits for $25/ea. I think these must have cost AeroHive at least $150/ea to produce. They're well sealed against weather and RF, and it was perfect home for a freak-of-engineering.
I cut up some Al 6061 sheet to act as a mounting platform for custom parts, and milled out the unused elements of the casing's internal design.
The lightning arrestor PCB and its mounting stanchions were retained.
Additional cuts had to be made to allow the PCB to sit low and allow for clearance for the radio modules on wires without risking it being crushed when the casing is bolted closed.
Here is that plate after standoffs were mounted and ground flush. The main PCB is mounted in place. Visible here are an ESP32 DevKit-3, and the pair of LoRa module breakouts I rolled in KiCAD for this purpose.
Test-mounting of the Raspi... Clearance was perfect. Nothing else of interest is mounted on the bottom aspect of the plate. Difficult to see in this photo is a ribbon cable to the GPIO header of the Raspi.
Mounting plate completed with the addition of the PoE adapter(2A @12V) and the DC-DC converter (module rated for at least 6A @5V). All heat producing elements are thermally bonded to the plate (or casing). Components were chosen such that linear regulation would be used only at the last-step of conversion (if at all). PoE gear tends to run rather hot when draw increases. So the less voltage reduction that needs to be done there, the less it should burn off as heat. The finished hardware doesn't consume more than ~5W at peak, but since it is an outdoor machine that might be in direct sunlight, it needed to be somewhat overbuilt to remain in constant reliable service.
This is the final state of assembly before the lid is screwed on, and the whole box mounted alongside the antenna mast.
The top elements of the main PCB are also shown clearly. A GPS module, auxiliary regulator, and a leftover RTC shield I had designed and built for a different project. The hardware RTC is set regularly by a daemon that syncs against PPS, but it is effectively a fallback so that the machine doesn't need to report something obviously wrong until it gets a radio link. There is no software clock in this machine.
Deployment
The mounting brackets for the antenna mast are installed with substantially reinforced grounding. There is now a new ground spike directly below the mast, and is also tied to the spikes on the back side of the house.
The assembled and erected antenna mast. This is basically a 2.75" galvanized fence post that I drilled, capped, painted, and threaded with RF cables. Barely visible in this photo is the lightning arrestor for the single cable in the mast that returns into the house.
A special view of the tie box, which was a righteous pain to measure and thread with cables. The copper pipe leading frame-left is to the house, and carries the solar array feed, ethernet, a coax antenna feed for VHF/UHF, and a pair of 120V circuits for the de-icing cables that are laid out on strategic places on the roof (PV panels not installed in this photo).
Update: 2024.07.30:
Lux Turpis has been mounted on my roof and running since October of last year, and (with the help of my solar and battery backup), has survived both the crests and troughs of the annual Denver weather. It has been serving the time to all DHCP clients in my house since then.
I logged into the machine and checked its temperature in the dead of night on the coldest night of last year, and it read minus 6C. So: well done, Raspi Foundation. Your boards operate reliably well outside of the operating regime you probably expected that they should.
root@Lux-Turpis:~# ntpq -crv -pn associd=0 status=0118 leap_none, sync_pps, 1 event, no_sys_peer, version="ntpd 4.2.8p15@1.3728-o Wed Sep 23 11:46:38 UTC 2020 (1)", processor="armv7l", system="Linux/5.15.74-v7+", leap=00, stratum=1, precision=-19, rootdelay=0.000, rootdisp=500.165, refid=PPS, reftime=ea53db89.974f4696 Tue, Jul 30 2024 15:37:13.591, clock=ea53db94.ca8dd369 Tue, Jul 30 2024 15:37:24.791, peer=11790, tc=4, mintc=3, offset=-0.019728, frequency=+6.097, sys_jitter=0.001907, clk_jitter=0.002, clk_wander=0.005, tai=37, leapsec=201701010000, expire=202412280000 remote refid st t when poll reach delay offset jitter ============================================================================== o127.127.22.0 .PPS. 0 l 11 16 377 0.000 -0.020 0.002 *127.127.28.0 .GPS. 1 l 12 16 377 0.000 +330.67 13.086 +127.127.28.2 .SHM2. 0 l 12 16 377 0.000 -0.020 0.002 root@Lux-Turpis:~# uptime 15:37:34 up 260 days, 23:10, 1 user, load average: 0.03, 0.20, 0.13
Previous: 2022.10.18: Family Entryway Lockers
Next: That's just semantics