I built a DC receiver using the PTO VFO based on the "High School" receiver described by Bill, N2CQR, recently. It's a beautiful thing to behold but for various reasons (no NPO caps for one thing) my build drifts like mad. It would make a fine Theremin.
I mentioned this to Paul, VK3HN, and he commented that analog VFOs do drift. He had kindly sent me a sample VFO / Controller board he's been developing for his amazing home brew "Summit Prowler" rigs.
It's a nicely conceived board with an Atmel chip that can be programmed as an Arduino Nano, Si5351 clock generator - with output buffers, connections for a parallel LCD but also I2C, connections for a rotary encoder and spares for various buttons. I had promised to give him feedback on it many months ago.
Paul's code has all sorts of specialisation for his various rigs but my needs are much simpler so I've created a stripped back version that is just a VFO. Here's my code. I'm using a 128x32 OLED display instead of the LCD and have swapped in a different rotary encoder library.
The rotary encoder tunes and pushing the button changes the tuning step.
Feeding a TUF-1 mixer and then to a few transistor stages and an LM386 module it does actually receive although I have hum which is not uncommon with DC receivers. My "bench spread" construction doesn't help of course.
Thanks to Paul, VK3HN, for sharing his code and design.