After watching Dave's EE Blog episode 221 & 222, I decided to risk my spare LT3080 IC by experimenting.
Being a rank newbie when it comes to circuit design, I didn't see the need for the buffer/op-amp that Dave used, so I just used a low-pass RC filter right on the LT3080's SET pin (a fool dares to tread...). I also don't care about current sensing or limiting, so all that went away too. What I ended up with (I think) is attached below.
R1 and the 2.2uF capacitor form, supposedly, a low-pass RC filter to smooth the Arduino's 1kHz PWM to a reasonable level. The transistor Q1 (2N2222) acts as a level shifter so that the Arduino pin is not exposed to 12V.
This setup "works", as in, varying the PWM duty cycle 0-100% causes the LT3080 OUT to vary between 1.0V and 1V less than Vin.
As for the upper voltage, Vin-1V is troubling, as the LT3080's dropout should be no more than 0.2V at this amperage. Any suggestions on why this is and how to fix it?
As for the lower voltage, I had initially omitted R2, but adding it let the LT3080 regulate down to 0.5V. This is as far as I got, because I realized that I have no clue what I'm doing here. I think that the SET pin produces 10uA of current as per the LT3080 datasheet, which current is sunk to ground through the RC filter (and through R2). Altering the PWM duty cycle changes the effective voltage on SET... I think. So by changing R2 to a lower value, I think I can get closer to 0V, but more importantly, I'd like to understand why R2 is even necessary in the first place? Also, it seems like R2 is going to mess up the low-pass RC filter characteristics (adding ripple), which isn't good.
And if the answer is "this is why you use an op-amp buffer, dummy", I can accept that. But I would like to understand why.
Thanks in advance for any thoughts...