azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/azonenberg/scopehal-apps | Logs: https://libera.irclog.whitequark.org/scopehal
someone--else has quit [Quit: Connection closed]
<GenTooMan> I swear those people want to tax ones patience even.
crabbedhaloablut has quit [Ping timeout: 244 seconds]
crabbedhaloablut has joined #scopehal
<azonenberg> lol
<azonenberg> miek: well... it cuts both ways in WA
<azonenberg> we have "business personal property tax" here
<azonenberg> so if i declare a piece of equipment as a business expense and write off the purchase price on my federal income tax, the locals want a cut
<azonenberg> and it becomes an asset subject to property tax
<azonenberg> at the same rate as real estate, although they factor in depreciation
<d1b2> <TiltMeSenpai> wait what
<miek> ouch
<azonenberg> Yeah
<d1b2> <TiltMeSenpai> this seems like something I should know lol
<azonenberg> after all the depreciation tables etc, my lab is taxed as if it were another $40K or so of value on the house
<azonenberg> Which isn't that bad, the property tax rate is something like 1.02% so basically i'm only taxed something like $400 a year iirc?
<azonenberg> (that's just for the lab existing, on top of the "business and operations" tax that they charge on any revenue from the lab)
<azonenberg> incidentally B&O tax does *not* allow deduction for business expenses
<azonenberg> So if I make $20K in sales and spend $10K on operating expenses, I only pay federal income tax on the $10K, but I pay B&O tax on the full $20K
<d1b2> <j4cbo> ugh, I’m going to have to get used to all that come tax time
<d1b2> <j4cbo> moved from MT to WA this spring 
<azonenberg> This coming tax season you won't have to pay anything for it
<azonenberg> Every year that assets owned in your name (vs that of the business) are used in its operation, you have to file a listing of property descriptions and values with the county tax assessor
<azonenberg> that value, after the assessor applies depreciation, is used to calculate how much you owe the following year
<d1b2> <j4cbo> spiffy
<_whitenotifier-a> [scopehal-docs] azonenberg closed issue #3: Document file load/save commands - https://git.io/JvV8p
<_whitenotifier-a> [scopehal-docs] azonenberg pushed 1 commit to master [+1/-0/±0] https://git.io/JnSUE
<_whitenotifier-a> [scopehal-docs] azonenberg 02cb354 - Added documentation for CDR PLL filter
<GenTooMan> azonenberg, that's OK in some places personal property tax exists. They also tax mules as personal property but you have to pay tax on your car yearly.
Degi_ has joined #scopehal
Degi has quit [Ping timeout: 268 seconds]
Degi_ is now known as Degi
JSharp is now known as JSharp_
JSharp_ is now known as JSharp__
JSharp__ is now known as jaesharp
jaesharp is now known as jaesharp_
jaesharp_ is now known as jaesharp__
jaesharp__ is now known as JSharp
<azonenberg> So i'm looking at some of my older sample data and discovered something interesting and cool
JSharp is now known as Rachel
Rachel is now known as Rachel_
Rachel_ is now known as Rachel__
Rachel__ is now known as JSharp
<azonenberg> This is a recording of a wifi signal made with a nearfield antenna
<azonenberg> The big area of activity is roughly 2.428 to 2.445 GHz, so wifi channel 6
<azonenberg> that's the intended signal
<azonenberg> there is also a peak at 2.5 GHz
<azonenberg> Which i conjecture is an interleaving spur from the scope based on other observations i've made, but not sure yet
<azonenberg> but then there's another area of activity at 2.554 to 2.571 GHz, centered at roughly 2.5631 GHz
<azonenberg> wifi channel 6 is 2.437 GHz, which is 63 MHz below 2.5 GHz
<azonenberg> Which makes me think this second "channel" - outside the 2.4 GHz ISM band - is actually an image of the main signal created by some kind of nonlinearities in the scope frontend
<azonenberg> actually i just realized, i think it can be that same interleaving spur
<azonenberg> We're sampling at 10 Gsps, suppose the scope is using four interleaved ADCs per channel internally and one of the four has a slight gain error
<azonenberg> So you're effectively multiplying the signal with [1.01 1.00 1.00 1.00] repeating
<azonenberg> this obviously explains the 2.5 GHz spur
<azonenberg> But you can also think of this as mixing the signal with a very weak 2.5 GHz squarewave with a 25% duty cycle
<azonenberg> The harmonics are way out of band but the fundamental mixes with the signal and gives you the image
<azonenberg> I *think* that's what's happening
<d1b2> <Darius> "RF is hard"
<azonenberg> more to the point
<azonenberg> you're doing RF even if you don't think you are
<azonenberg> this is an oscilloscope, not a specan
<azonenberg> and yet there are measurable rf mixing effects in it
<d1b2> <Darius> yeah
<d1b2> <Darius> a specan probably has less mixing effect 8-)
<d1b2> <j4cbo> “Wait, it’s all RF?” “Always has been.”
<azonenberg> lol
<azonenberg> what amazes me honestly is that this is so weak and yet so visible
<azonenberg> i'm looking at an 800 mV p-p signal into a 50 ohm input
<azonenberg> On an 8 bit scope
<d1b2> <Darius> yeah that is pretty impressive
<azonenberg> the scope was probably running with like 200 mV/div or something, 2V full scale range
<d1b2> <Darius> then again people do stuff like this: https://github.com/newhouseb/onebitbt
<azonenberg> which would give one LSB on the ADC as 7.8 mV
<azonenberg> and the interleaving spur is at -50 dBm which is 700 uV
<azonenberg> so a) the ADC mismatch is very slight, creating a spur with amplitude of about 0.1 LSB
<azonenberg> and b) the image shows up in the FFT very clearly despite being 20 MHz wide and a *total* in-band power of about -40 dBm
<azonenberg> across that 20 MHz
<azonenberg> the power at any single fft bin does not exceed -61 dBm
<azonenberg> meaning the image is <1 LSB p-p
<azonenberg> and it still shows up very clearly
<azonenberg> Million-point FFTs are very sensitive lol
<d1b2> <Darius> bit like how GPS works even though the signal is below the thermal noise floor at reception
<d1b2> <Darius> pretty mind boggling
<azonenberg> Yeeep
<azonenberg> That actually reminds me of a concept i had a while ago for a SIGINT resistant short range communications system
<azonenberg> The basic idea was to transmit very weak pulses at selected frequencies across a huge bandwidth, like multiple GHz
<azonenberg> each pulse individually below the noise floor
<azonenberg> but if your correlated the frequencies of every pulse and compared to adjacent frequencies above/below, you could determine whether it was present or not
<d1b2> <Darius> heh
<azonenberg> then use some sort of cryptographic algorithm to determine the choices of frequencies for each pulse
<azonenberg> and of course, each bit would use a new set of frequencies
<d1b2> <Darius> presumably you would need to know the correlation ahead of time
<azonenberg> Yeah it would rely on GPS or other accurate time sync
<azonenberg> and then a PRNG seeded with a shared key
<d1b2> <Darius> I don't think you would need time sync
<d1b2> <Darius> after all, GPS works like that
<azonenberg> then you'd encrypt traffic on top of it
<d1b2> <Darius> but the correlation is known ahead of time
<d1b2> <Darius> (I am probably using the wrong terms)
<d1b2> <j4cbo> I wonder how far below the noise floor you could go at the receiver
<azonenberg> gps uses a single repeating pattern though iirc? it's a fixed 1023 bit period LFSR
<azonenberg> here, the pattern would be AES-CTR output or similar
<azonenberg> j4cbo: not sure, i never implemented it
<azonenberg> The concept was basically even someone with a specan in your immediate area will have extreme difficulty seeing, much less demodulating, your traffic
<azonenberg> and you're almost impossible to direction find
<azonenberg> You'd run the power levels super low and spread across a huge bandwidth so the spectral power density was microscopic, relying on coding gain and FEC to pick bits out of the noise
<azonenberg> one idea i had was to be FHSS based kinda pseudo CDMA
<azonenberg> so you'd generate a list of say 64 random frequencies
<azonenberg> send pulses on 32 of them, one after another, to be a logic 1
<azonenberg> and the other 32 to be a logic 0
<d1b2> <j4cbo> yeah, the receiver sensitivity determines how much range you have before the transmitter would have to be loud enough to be detectable
<azonenberg> as long as you can determine you are more likely to have seen one set of pulses than the other, you've successfully recovered the bit
<azonenberg> but someone looking at only one of those freqs will just see noise
<azonenberg> the longer the sequence you use, the more coding gain you get, at the expense of data throughput
<azonenberg> like i said i never built it or did extensive engineering analysis
<azonenberg> but i think the basic idea is sound
<azonenberg> you could send those pulses simultaneously or sequentially or a mix of both depending on how broadband your baseband is, how fast your synthesizer can retune, etc
<sorear> is that not just frequency hopping?
<azonenberg> the point is that the pulses are too weak to see in isolation
<azonenberg> you cant see them through the noise
<azonenberg> but with many in a known sequence you can tell if it's there
<d1b2> <j4cbo> my main “I want to build this someday” project is a spiritual successor to RONJA
<_whitenotifier-a> [scopehal-apps] azonenberg labeled issue #382: Vertical cursors in FFTs act funny when going off scale - https://git.io/JnSHY
<_whitenotifier-a> [scopehal-apps] azonenberg labeled issue #382: Vertical cursors in FFTs act funny when going off scale - https://git.io/JnSHY
<_whitenotifier-a> [scopehal-apps] azonenberg opened issue #382: Vertical cursors in FFTs act funny when going off scale - https://git.io/JnSHY
crabbedhaloablut has quit [Remote host closed the connection]
crabbedhaloablut has joined #scopehal
someone--else has joined #scopehal
crabbedhaloablut has quit [Remote host closed the connection]
crabbedhaloablut has joined #scopehal
someone--else has quit [Quit: Connection closed]
someone--else has joined #scopehal
<_whitenotifier-a> [scopehal-docs] azonenberg pushed 1 commit to master [+0/-0/±1] https://git.io/JnHgM
<_whitenotifier-a> [scopehal-docs] azonenberg 59df0ac - Updated CDR PLL documentation
<_whitenotifier-a> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±3] https://git.io/JnH2b
<_whitenotifier-a> [scopehal-apps] azonenberg 3331b63 - WaveformArea: in-band power calculation correctly bounds checks at end of waveform. See #382
<_whitenotifier-a> [scopehal-apps] azonenberg cb171f5 - GetValueAtTime: improved bounds checking. Fixes #382
<_whitenotifier-a> [scopehal-apps] azonenberg closed issue #382: Vertical cursors in FFTs act funny when going off scale - https://git.io/JnSHY
ericonr has quit [Ping timeout: 258 seconds]
ericonr has joined #scopehal
bvernoux has joined #scopehal
someone--else has quit [Quit: Connection closed]
someone--else has joined #scopehal
<_whitenotifier-a> [scopehal-apps] azonenberg opened issue #383: Segfault in HistoryWindow::OnWaveformDataReady when loading .scopesession from File|Open (not triggered by command line loads) - https://git.io/JnQbv
<_whitenotifier-a> [scopehal-apps] azonenberg labeled issue #383: Segfault in HistoryWindow::OnWaveformDataReady when loading .scopesession from File|Open (not triggered by command line loads) - https://git.io/JnQbv
<_whitenotifier-a> [scopehal-apps] azonenberg edited issue #383: Segfault in HistoryWindow::OnWaveformDataReady when loading .scopesession from File|Open (not triggered by command line loads) - https://git.io/JnQbv
<_whitenotifier-a> [scopehal-apps] azonenberg edited issue #383: Segfault in HistoryWindow::OnWaveformDataReady when loading .scopesession from File|Open (not triggered by command line loads) - https://git.io/JnQbv
bvernoux has quit [Quit: Leaving]
<_whitenotifier-a> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±4] https://git.io/JnQjQ
<_whitenotifier-a> [scopehal-apps] azonenberg a3ca68f - Don't try to delete waveforms from history while loading. Fixes #383.
<_whitenotifier-a> [scopehal-apps] azonenberg 2f04c52 - OscilloscopeWindow: don't process spurious trigger events during file loading
<_whitenotifier-a> [scopehal-apps] azonenberg closed issue #383: Segfault in HistoryWindow::OnWaveformDataReady when loading .scopesession from File|Open (not triggered by command line loads) - https://git.io/JnQbv