I think tweaking the the ratio of the 10k resistors should do the trick. The opamps are supposed to be able to swing their outputs very close to zero, so unless I missed someting it could work.
You can insert a 1.5V offset into the Pin5 by a separate resistor divider for pin5.
Disconnect Pin 5 V+/2=4.5V
Use 2V Ref on Pin 5 thus 4Vpp will be 0 to 4V
But this will not track V+ when battery drops.
A better way is to choose OP Amp that can swing full scale output ( rail to Rail. Out and In ) and then you can change R ratio gain to get full swing or change bias at Pin 5 to adjust.
You can reduce the value of the lower 10k resistor to 4k; but the triangle wave will then be asymmetrical. Or you can use a third opamp to level-shift the triangle.
Alec, would the output from pin 7 be capacitor-coupled to the next amp, or direct?
Would level shifting be done with a divider input to the negative input of the additional amp?
C5 is the coupling capacitor to the level-shifting resistors R10 and R11. An additional amp is not needed but if it is wanted then it should have a high impedance input and not be inverting.
You can insert a 1.5V offset into the Pin5 by a separate resistor divider for pin5.
Disconnect Pin 5 V+/2=4.5V
Use 2V Ref on Pin 5 thus 4Vpp will be 0 to 4V
But this will not track V+ when battery drops.
A better way is to choose OP Amp that can swing full scale output ( rail to Rail. Out and In ) and then you can change R ratio gain to get full swing or change bias at Pin 5 to adjust.
For a more elegant solution a different design is required. or like TV sync tips. use an active square wave edge trigger to short with a FET switch a series cap to ground for a few microseconds but then floating from 0 to Vmax regardless of Vp-p amplitude or frequency adjustments or battery drainage from 9.5 to 6V.
When I had to generate a 100 KHz sawtooth with <50nS return ramp for Doppler mixing I just used a CMOS switch to choose the inverted output and then used a CMOS switch for the sample and hold phase detector using the incoming sine wave with a created zero crossing pulse to sample the sawtooth. Thus every beat cycle was equivalent to the rocket's distance travelled using the standing wavelength per cycle.
a null pot was used for the OCXO 1e-12. To match onboard and ground station.
Thus after a 2KM flight accumulated distance could be measured in meters and direction from two antenna with RF phase shift on the subcarrier for recovery. The USA TRACs system meanwhile,took two RF techs at a cost of $250K/yr annual cost up in Churchill. my fixed cost was ~1k$.
Velocity was the high pass or derivative on the beat sawtooth. Circa 1976.
Your bias solution worked great, Tony.
Ideally I want a sawtooth with a slow rise or an asymetric triangle.
I'm using this to drive a servo on a RC bird that flaps its wings (not an ornithopter).
I assume that the upstroke of a bird's wing is faster than the downstroke, that's why the asymmetry.
Range is 0-6V. Load estimated to be around 200mA (a tiny DC motor in the servo).
Here's a clip of a similar bird using a small gearmotor as the wing drive...
The motor current will be proportion to the voltage slope. and thus may burden your batteries if too fast because the gears have more load unlike a geared compressed spring release like that of a birds folded wing.
But then the servo will be slew rate limited.
WE could even emulate the flared pause before fast wing retract.