After exploring the Ameba RTL8195 board there would be a few bugs.
First, the analogWrite() function produces the PWM signal with a frequency of 50 (!) Hz. This is not enough for most applications where a PWM signal is used. All Arduino-compatible boards generates PWM with a frequency of about 500Hz.
Second, it is impossible to set the correct DC analog voltage on the DAC output by invoking analogWrite() function - the output voltage stays 1.65 V, regardless of what voltage you try to obtain.
Third, it is impossible to assign a static IP-address to the server by invoking the WiFi.config(). It is possible, however, to do a trick by reserving an IP-address on a DHCP server of a Wi-Fi router (if you have it), but what to do when your application should operate only with static IP-adresses?
Finally, provide,please, the contact information on your page. When I tried to login with my old account,
I got the following:
503: Service Temporarily Unavailable
Too many IP addresses accessing one secure area!
Please contact Support if you need assistance.
Where should I search Support - there is no contacts on your page. For that reason, I was forced to create a new account!
I use PWM for DC motor control. There is a lot of theory behind this process; in a few words,
the DC motor can be represented as a low pass filter with a cut-off frequency fc = 1/2*pi*t, where t is a motor's time constant. At low frequencies, the speed of the motor swings widely that makes the precise motor control almost impossible. When a frequency of a PWM signal is high enough, the speed of a motor becomes pretty much constant because the high frequencies components of the PWM signal are being filtered out.
Very good results in DC motor control can be reached when a PWM frequency is close to 1 KHz. The frequency 50 Hz for PWM signal is totally unacceptable for applications where DC motor control is needed. It would be enough to have, at least, a PWM frequency of 500 Hz that is common for Arduino boards.