Not a release yet, this is strictly for the adventurous. Read the WARNING.txt file!
Anyway, this new firmware has the control loop algorithms split in a separate .cpp file, so when you open the main file in the Arduino IDE, you will have three tabs: one for the main .ino file, one for the .cpp file, and one for the .h file.
If you want to write a new GPSDO control loop algorithm, you only need to include the new algorithm code in the .cpp file and add a few lines in the .h file. In other words, you (almost) don't have to worry about the 2,000 lines of code in the main .ino file!
To try the different control loop algorithms: use the command
LA number where number is 0 to 9. If an algorithm is not yet programmed, then trying to switch to it will return to the default algorithm (0).
Now about the control loop algorithms:
0. The primitive_ctl_loop algorithm is what I programmed months ago, and has been the only control loop algorithm until now. It somehow works. It only updates Vctl every 429 seconds. And if you suddenly open the window in a cold winter day, this might be enough to "disturb" the OCXO by + or - 0.01Hz, and you'll notice that the control algorithm reacts a bit too slowly to sudden "jumps" in frequency. The periodicity of the updates can now be changed in the source code, so if you want to try the same algorithm with updates every 100 seconds, go ahead. This is the default control loop algorithm.
1. The forced_drift_Vctl algorithm increments the PWM DAC by 1 bit every 1000 seconds. So in theory the OCXO should slowly and regularly drift up in frequency. What is the use of this? I have no idea, but it was simple and amusing to program.
2. The random_walk_Vctl algorithm randomly increments or decrements or leaves unchanged the PWM DAC every 5 seconds, with equal probabilities. This in mathematical terms is called a "random walk" (see the article on Wikipedia) and I am curious to see how it will affect the ADEV curve of the STM32 GPSDO - when I get around to plotting anything. Again, not particularly useful but it's there as a curiosity.
3 to 9: I'll program these when I have some time. Now I need some