Release Notes Version 2.66 June 2022 Functional changes -- This release brings the v2 marf up to feature parity with Buchla's original unit and duplicates the 200 series module's behavior to the best of our knowledge. It includes a large number of functional improvements over the earlier firmwares. 1. Programmed pulses fire correctly in all modes, whenever a step changes. 2. Reference signal present in all modes, whenever a step changes. 3. Steps set to sloped mode will now slew correctly in all modes including advance, strobe and continuous address. 4. Quantize mode works correctly on full range steps. 5. Loop behavior is correct. Loops now search backwards from a "last" step to the closest "first" step. Multiple loops are now possible. 6. The "level 2" programming is organized into a single bank. It is no longer different between afg1 and afg2. 7. External inputs no longer have audible slewing. 8. Glitches in voltage output fixed. 9. Step times match panel legend exactly. Internal performance, operational and code health improvements -- This release required significant refactoring to almost 100% of the codebase, including all of the core function generation logic, all of the interface code, and much of the internal scheduling logic. This release is able to run at 8x the timing resolution of the previous version. 1. Using a much better filtering algorithm consistently on all adc inputs. Fixes slewing on large jumps and jitter on steady state signals. 2. Output sample rate increased from 4kHz to 32kHz. 3. Voltage quantization and timing computations use higher precision floating point calculations. 4. Numerous bugs with start/stop and sustain/enable modes ironed out. 5. Slow code moved out of IRQs into main loop and scheduling tightened up. 6. Inlining small methods and compiling with speed optimizations. 7. Reduced function call overhead in peripheral drivers. 8. Improved display update system lights leds better when the clock is at high speeds. 9. Applied consistent code style guide including capitilization, indentation. 10. Improved naming conventions using Buchla standard terminology. 11. Double buffering scheme to reduce glitches at stage transitions Manual Addendum -- Calibration Procedure 1. Hold Stage Address 1 Advance down during start up. 2. Leds cycling. 3. Turn all pots to maximum, and apply 10v to all 4 external inputs 4. Select pulse 2 up if you need to swap the pulse leds. Led will move to pulse 2. 5. Select pulse 1 up to swap it back to normal. 6. Press Stage Address 2 Advance down to save calibration. 7. It will ERASE the entire eprom, including saved programs. Afg Section Shift (unexpanded units only) 1. Afgs 1 and 2 both access the same memory unless you use section shift. 2. Press Stage Address Display 1 + Stage No Right to move afg1 to steps [16-32]. 3. Press Stage Address Display 1 + Stage No Left to move afg1 back to steps [1-16]. 3. Press Stage Address Display 2 + Stage No Right to move afg2 to steps [16-32]. 4. Press Stage Address Display 2 + Stage No Left to move afg2 back to steps [1-16]. Save Program 1. This version supports saving and loading 16 programs (even with expander). 2. Slider data is always saved along with the program. 3. Press the Clear switch _down_ briefly to enter save mode. 4. The pulse leds will toggle to indicate that you are in save mode. 5. To abort saving, press one of the Display switches. 6. Use the Stage No switch to select one of the 16 memory locations. 7. Press Clear switch _down_ again briefly to save the program. 8. Leds with flash downwards when the program is saved. 9. Note that the marf does not stop running while saving a program. Load Program 1. Press the Clear switch _up_ briefly to enter load mode. 2. The pulse leds will toggle to indicate that you are in load mode. 3. To abort loading, press one of the Display switches. 4. Use the Stage No switch to select one of the 16 memory locations. 5. Press Clear switch _up_ again briefly to load the program. 6. Leds will flash upwards when the program is loaded. 7. Note that the marf does not stop running when loading a program. 8. Once the program is loaded, all sliders will be "pinned" at their saved value. 9. To restore slider activity, the slider must be moved through the saved value. Pulse Tricks 1. A simultaneous pulse to start and stop is the same as the manual advance switch. 2. A simultaneous pulse to strobe and start will correctly start on the strobed step.