Long time no post. Been busy upgrading from Teensy 3.2 to a Teensy 4.0. The 4.0 tries to be pin compatible with the 3.2 and so far everything has worked electrically. It took a while for all the c libraries used to catch up. The work was worth it. The Teensy 4.0 is like a buzz-saw in comparison.
I've been finding out about the strength limits of 3D printed PLA parts. I have tried mounting the vertical array and broke the connectors for the bike rack. Back to the drawing board.
There is a new DF'ing app for Android and IOS called SigTrax. It is as complete a package as I've seen. It include a means for bearing updates via Bluetooth LE interface so I'm waiting a breakout board to test it out.
I have heard about Kerberos SDR and saw the direction finding video. It's hard to tell how accurate it is. It's using TOA measurement instead of Doppler. That isn't necessarily better or worse. TOA is susceptible to reflections like Doppler. Kerberos is based on the RTL-SDR which uses an 8-bit ADC. The Teensy used has at least 12 bits of resolution so I may have an edge with more accurate measurements. By using the 2nd harmonic which is a measure of reflections I hope to filter out bad readingings.
I look forward to a fly off between my DDF and Kerberos in the future.
By leaving just one antenna switched on at a time I'm able to measure the VSWR of the individual dipole antennas. The top trace is a set of UHF/VHF "rubber-duckies" and the bottom is a set of wire monopolies tuned for VHF. I don't see a great deal of variation in performance with either antenna type and the performance is within a dB or so between antennas for a given frequency. It would be great to flatten out the curve - need to research wideband antennas.
The PVC antenna mounting is too flimsy to mount on a car safely so looking into a fiberglass mount. Maybe use wood for the fiberglass tube couplers.
I need to fine tune how the PCBs mount in the PVC pipe end but it's getting there. I redesigned the antenna boards to coplanar wave-guide and am getting better results. I put a dummy load on my antenna switcher and discovered that was causing VSWR problems. Now waiting for the redesigned board. The rubber ducky antennas are way too flexible and I'm sure better ones are out there. I found flag pole mounts that I plan to attach the bottom PVC legs to magnets on the car rooftop.
I slapped together a design for a dipole PCB. (.pdf above) It uses a through-hole mount BNC connector on both sides. Switching wise it works. Antenna wise not so much. Experimenting with a set of UHF and VHF antennas all produced VSWRs of 6 - 12 dB in parts of the UHF and VHF bands. I tried experimenting with the resistance between the two elements which didn't make much difference. Increasing the resistance does limit current in the switching diodes which could add signal loss. I replaced the resistor with a diode and it works the same.
The first board was done in haste and had omitted a copper pour. I have not laid out the board with RF design rules as I am assuming that everything is electrically small to working frequency.
After rewriting my code to be less sensitive to blocking everything is working. I broke up the processing in signal acquisition, number crunching and display which is much simpler than keeping all that going at the same time. For signal acquisition I am experimenting with sample size less than a full revolution of the antenna to keep update times reasonable.
Now that I have a compass sensor working I wonder if I can improve on the +/- 1 ° or so from the compass by using GPS when in motion. The GPS "course over ground" which when in motion gives direction based on position differences could be more accurate. Ideally I could switch navigation source.
I have been using "RDFMapper" which displays a google map and take GPS and RDF input several ways based on settings. It draws a bearing line from the location of the direction finder which can be relative to the direction of the vehicle or a fixed specified angle from north.
Every compass I have tried adding seems to create a timing problem when added to my code. In order to run under Teensy I need to change usage from the "Wire" library to the "i2c_t3" library. I wanted to use the HMC6343 and library. The HMC6343 needs a millisecond to respond to commands. That was done in the HMC6343 library with a delay(1). That was changed to a loop with micros() to wait. The i2c_t3 library has many microdelay() statements that were also changed. No joy!