Blog Image

Technical Tinkering

What to find here...

In this blog I'll try to keep you posted on the progress of my current projects. They are mainly of a technical nature like Electronics, CNC machining, Amateur Radio etc. Come in and look around!
I welcome your comment, which you can insert by clicking on 'Comments(.)' at the bottom of the page.

Isolated PWM output

Embedded Posted on Jul 25, 2017 01:52:11

Facing the challenge of making an isolated DAC output I found a circuit by Kerry Wong ( Unfortunately, it did not work as I hoped. The optocoupler I used, a PC817 turned out to be too slow. It took some 20 us for the transistor to get out of saturation. After replacing the coupler with a 6N135, speed was no longer a problem, however I did not quite like the 50% threshold level of the first opamp. So, I changed that to an ‘automatical averager’. This worked OK, except for low duty cycles, the output would not go low enough. Adding a little feed-forward on the automatic threshold did the trick. Now the output voltage is nicely linear (from 0 to 5V) with the input duty cycle. Thanks to Kerry for the inspiration!


Embedded Posted on Dec 02, 2015 03:44:50

Did you struggle with a SIM900A module from ebay? Well, I did. I bought several from different vendors and spent some time to get them ‘online’ (or rather ‘on the air’). For a data logging project I bought 2 SIM900A modules. After I received them I found out that I should have ordered SIM900 units because the 900A’s are meant to be used in Asia only and do not function in Europe. On the net I did find several tutorials about flashing firmware to make them behave as a SIM900 unit (with only 2 GSM bands because of hardware limitations). The one that helped me most can be found at:

I will not add another recipe for flashing firmware, there are enough versions out there. Just make a serial connection to the SIM900 shield or board, observing signal levels and baudrate. Normally the SIM900(A) autobauds, so you must type ‘AT?’ or something else starting with capitals ‘AT’ first to let the module know your communication speed. Anyway, my first boards were happy with the firmware version


Contrary to one of the SimCom manuals, you do not need to hook up the debug port for that. The regular serial port works fine with the download tool. After flashing the new firmware (which finally worked after lowering the baudrate) the module responded to AT commands. I used a test platform on

for checking out the newly flashed units. To receive and send SMS it is necessary to set

AT+CNMI=2,2,0,0,0 so messages will be forwarded to the serial port instead of stored. You also need to set Text mode with AT+CMGF=1 to make sending and reading messages easier….

I also needed to select a provider to log on to from the ones that were available since my module did not ‘connect’ automatically. Maybe this has to do with the settings in my (prepaid) SIMcard.

I applied the same recipe to the next units I purchased off ebay. To my surprise they seemed to be bricked after flashing the same firmware. The status LED refused to flash and no response to AT commands…….

After trying various firmware versions it still did not work, in spite of the download apparently finishing successfully. Finally, I found out (by using the uplaod feature of the flash tool) that my first units contained a 32k ST flash and the stubborn units sported a 128k flash by SPANSION. So I tried flashing a firmware version with SPANSION in the filename from Muhammad’s repository. Only one available, an Italian version, but after downloading finished it functioned as I had hoped for. Conclusion: Not only the size of the firmware should match the flash memory size, but the firmware should also be made for a specific flash vendor. Bigger is not always better!