@doughboy,
Anyone who has ACTUALLY worked on this would understand what I just described.
Anyone with any Professional electronics experience wouldn't use an RC LPF because their cheap microcontroller didn't come with a DAC. They would simply BUY a cheap DAC.
RC LPFs are something you resort to because you lack the proper tools, (either out of ignorance, laziness, or financial considerations). It's just lame to use an RC LPF with an arduino if you can get a 12-bit DAC for $5.
As far as your other comments:
The typical application will have PWM square wave and then passed to RC filter to convert to analog, hence the parlance analog pwm (be it right or wrong). But to the receiving circuit, the square wave average will be a voltage proporionate to the square wave duty cycle, hence RC circuit is usually not needed by most device that receives 0-Xvolt control signal.
I realize you have some electronics and software experience and you are clearly not a noob, but I would discourage you from using the term "squarewave" and "PWM" in the same sentence, since they are clearly NOT the same thing, as any technician or engineer would know. Squarewaves tend not to change their duty cycle because they are usually clock signals. While if you wanted to get "technical" you could make a case that a squarewave is ACTUALLY a 50% duty cycle PWM signal, but this would be nonsense since clock signals are not pwm. By the same token PWM signals tend NOT to be 50% duty cycle , except maybe for a fleeting moment. Describing PWM signals to newbies calling them "squarewaves" is poor tutorial form because they might pick up your bad habits and repeat this "PWM square wave" nonsense in front of others who will look at each other and wonder "where did he get HIS electronics training ?".
What's my point ?
1- analog is analog and pwm is pwm
2-pwm is pwm and NOT a "squarewave" (a "squarewave is SO CALLED because both sides have the same length, the duty cycle is 50% , giving it a "half square " appearance, unlike a 5% duty cycle waveform. The term "squarewave should ONLY be used when you are referring to a 505 duty cycle signal that DOES NOT CHANGE DUTY CYCLE . All OTHER signals, that are 0 to 5V , that are NOT 50% and are NOT PWM, are simply called TLL signals because the pulse width could be anything. A servo signal , for example is a "TTL " signal which is a form of PWM but is not generally called PWM. It is usually called PPM , despite the fact that it behaves like special class of PWM. Any OTHER signal, that is NOT a servo signal, squarewave, or pwm is going to be referred to as a "TTL LEVEL " signal , denoting the fact that it is a 0 to 5V signal, as opposed to your so called 0 to "X" signal, which , frankly I have no idea what that is supposed to mean. Any equipment that comes with an analog control input is typically going to be a 0 to 10V analog input signal, NOT 0 to "X" V signal. This would include high end VFDs (Variable Frequency Drives) used for controlling large expensive servo motors 3 feet long and 2 feet wide, with a shaft the size of your arm. If you had an arduino and wanted to control one of those VFDs, using the 0 to 10 V analog input, you most certainly could use analogWrite() with the RC LPF . I never said you couldn't. I simply wouldn't do that if I had a 12-bit DAC.
Could you tell the difference in a double-blind test with two people controlling such a drive, one using the RC LPF and the other using a DAC ? Probably not. So then WHY would I prefer a 12-bit DAC to an 8-bit pwm signal ? Obviously because the DAC has 4 bits better resolution than the 8-bit pwm. Is that reason enough for a simple hobbyist to use a DAC ? Well it is if the DAC only costs him $5 . If it cost him $50 or $100 then of course it wouldn't make sense and I would recommend the RC LPF. I saw your other post
Looking for a PWM IC, and I was impressed with your knowledge of Timer code, and actually, I AGREE with your comments in that post about the OP should learn more about the tool he has in his hand (the ATmega328) before shopping for some other tool because he is too lazy to learn more about the one he has. I often have questions about using timers in the ATmega328. I have read the datasheet (not all 646 pages obviously) but the timer section and learned some things but have by no means mastered it. I am an electronics technician by trade , so I am a little pickier than your weekend hobbyist, and frankly am disappointed that so few people even know what "TTL" means. Most circuitry referred to as "TTL Level or TTL compatible " is MOS technology so the actualy Transistor Transistor Logic only remains in the name, which is still in use and still correct. It is the standard name for 0 to 5V digital signals. They are not called "MOS compatible". If they were 12V CMOS they would be called 12V (or 15V) CMOS. Pretty much everything that anyone on the forum is using is either a servo signal, a pwm , a squarewave or a TTL signal if it is digital. If it is analog is it analog. The term "analog PWM" is simply nonsense that some hobbyist cooked up because it is PWM until it hits the RC LPF and then and there , in the resistor and capacitor, changes to analog. At NO time is it BOTH, so the term "analog PWM" is probably hobbyist slang for "poor man's DAC".