Happy women's day if you're a woman
if you're not there's always next year
@distraction.engineer
Engineer of Distractions; Pro/Indie Game Dev (1999+); IGF Finalist (2009); Retro, DIY, C64 nerd; AKA PoV, PoVRAZOR, VA3POV ππ»; a them; π Caretaker/co-creator of the @ludumdare.com online game jam; @facade.music Empathy is punk! Trans rights! π³οΈββ§οΈππ€
Happy women's day if you're a woman
if you're not there's always next year
I mistook the GDC garden photos for photos of a graveyard. Apt. πͺ¦
Carmen Sandiego from the 90s cartoon
Happy International Women's Day to the original International Woman
HODL
Various SMA to SMB adapters
Today I learned there is a connector called SMB. It's the friction-fit counterpart to SMA. Although I do like friction-fit connectors, I am displeased by this discovery, and intend to only acquire adapters. π‘
Ah! After a year of no more than one at a time, I'm somehow up to three concurrent hiring conversations with companies. π΅βπ«
Given all of my previous rejections, I guess I'm going to have to roll with all of them until I'm sure. π
I'm sure I'll grab one eventually, but right now the price of one buys a lot of AliExpress nick-nacks. π
Where'd that hour go?
Making it standard would be ideal, but I have to think some wireless chipsets should already be capable of it, they just need a new firmware or driver that supports it. Kinda like how they added it to the CM4. π€
Technically there's nothing stopping PTP from working over the air, you just can't reliably predict when the packet will arrive. π
This also makes me think that a small cluster of servers on a LAN might benefit from PTP. It's likely each machine likely already uses a remote NTP server to set time, but that's no guarantee the LAN machines are aligned by more than a second. π€
I do need to look closer at the PTP protocol to make sure a rogue application emitting sync messages wouldn't wreck things for serious users. Also need to see if any OS configurations would consume PTP packets, never letting us see them in the app (and if so do they do something useful with them)? π€
And this is where I come in!
The PTP protocol itself doesn't necessarily need OS or hardware support. If it has it, then your LAN clocks guarantee nanosecond precision. A game or media server could nominate itself the lowest priority PTP server, and enable PTP sync for your app or game. π€
FULL CIRCLE! This is where GPS/GNSS time comes into play. Each local network needs a device designated a "PTP Grand Master" whose own time is synchronized with something like GPS. π
Unless regularly updated, Grand Master time will drift. Using a TCXO/OCXO lets you keep sync longer (GPS fail/outage)
Anyway, all devices on a local network synchronize to a single device designated the "PTP grand master".
When all you want is those devices to be better synchronized with each other, then PTP is all you need.
BUT, if you want to synchronize across the internet, each "PTP GM" needs a reference!
For us mere mortals, Precision Time Protocol (PTP) is a standard that provides "1000x better than NTP precision" reference time on local networks (might be used in 5G too).
Some network switches support PTP. I'm still deciphering, but I think this lets them tell you how far away they are from you.
Sync generator card with 4 bnc ports
OCXO modules
Compare that SyncE Ethernet adapter to this Video sync generator card, you can see the big square can on the boardβlikely an OCXOβfor an extremely stable sync clock.
HPS100 SyncE Ethernet adapter
Most of us don't use SyncE capable network gear, but it was interesting to me learning it exists. I tried to find some photos of such cards but ugh I can only find an angled view.
I imagine they use a calibrated TCXO to meet the spec (or take one as a clock-in on the SMA connectors?). π€·
Ethernet clocking diagram showing the native vs synchronous Ethernet differences, notably the far lower tolerance for clock sync and the inclusion of clock data that is reconstructed on the receiving end
Ethernet doesn't use a dedicated clock wire like UART or SPI, but the protocol is said to encode a clock in its differential signal.
The chipset on each end of a wire needs a "stable" reference clock. Ethernet needs a reference within 100Β± ppm, and Synchronous Ethernet needs one within 4.6Β± ppm. π€
While unnecessary, it's not enough to swap in a TCXO (Temperature Compensated) or OCXO (Oven Controlled) for a regular crystal oscillator circuit. An OCXO also needs time to warm up "the oven"
A computer doesn't need perfect clock synchronization to function. It only needs it to communicate.
The X in TCXO and OCXO is shorthand for crystal AKA a piezoelectric crystal (sometimes abbreviated "xtal"). All precision timing circuitsβother than rubidiumβinvolve crystals. All crystals are affected by temperature. A TCXO compensates with a temp offset; An OCXO heats it to a constant temperature.
Several packages of crystal references used in clock circuits
Anyway, the point is that nearly all computers use crystals without any compensation for their clocks. Given any two crystals you should expect them to drift apart a few seconds every day. That makes them good enough for short bursty tasks like data transfers, but not timekeeping.
Used OCXO's literally attached to circuit boards that have been cut down to size with shears
Properly remove OCXO's showing a 5 pin connector on the bottom
lol, to clarify, OCXO's cost ~$200 new (similar to the price of used rubidium oscillators). Used OCXO's can be had for under $5, meaning those ~$10 OCXO reference boards are built with used OCXO's.
The comedy of buying used OCXO's is you can buy them still attached to their original boards. π€£
AliExpress GPSDO reference, offering a GPS synchronized 10 MHz reference clock.
OCXO reference module, also offering a stable 10 MHz reference clock, but calibration is your responsibility
Various frequency TCXO oscillator chips. They're more reliable than typical small crystal oscillators as they compensate for temperature.
For "lab use" a GPSDO offers a "good enough" reference, automatically calibrating an OCXO using GPS ($50-$100). An OCXO reference you calibrate yourself can be had for ~$10. I haven't seen standalone TCXO references, but a component can be had for under $1.
None of these tell time, they oscillate.
A GPS or NIST radio receiver is what you actually want to sync the current time and figure out how long a second is (a cellular radio might work too).
A rubidium oscillator is just an oscillator with the least drift (under $2000). More affordable are TCXO and OCXO's (i.e. a TCXO with a heater).
I was *this close* π€ to ordering a used rubidium oscillators off eBay, but I talked myself out of it thanks this video. TL;DW rubidium oscillators tend not to be serviceable, and have a fixed lifetime due to a bulb used to bombard the isotope.
Also rubidium is a time-keeper, not a clock reference.
By bizarre coincidence my research project (adding CH592 support to Zephyr OS & designing a BLE beeper), a job I'm interviewing for, and @jeffgeerling.com's latest video have me going DEEEEEEP into enabling super precise computer time. π€
I love that GPS modules offer a synced per-second clock pin π
I have a much greater appreciation for network ping now: Every packet you send is at the mercy of every chip and magnetic field separating you and who you're talking to. NTP exists only to sync your "time of day" clocks, not the 125 MHz reference clocks of every Ethernet adapter inbetween. π₯²
Of course, crystals themselves aren't perfect. This is why you still sometimes want access to an atomic clock (or an upstream like GPS): to "factory calibrate" your crystals. That said, a crystal can drift based on temperature, so you may want a temperature probe on your PCB too.
Wow. Pedantic. π€