Time to get some experience with 32bit microcontrollers – some progress

At Time to get some experience with 32bit microcontrollers I wrote that after almost 50 years working with 8bit microcomputers and microcontrollers, I thought it about time to get my hands dirty on some 32bit microcontrollers.

This article reports some work in the STM stream.

I abondoned the ST Discovery board in favour of a low cost basic ST32F103 development board costing about $4 on eBay. The chip is a 32bit microcontroller clocked at 72MHz.

As a learning vehicle, I decided to implement the functionality contained in Arduino thermistor thermometer – a tutorial.

The development environment is Eclipse with the GNU ARM toolchain, a debugger probe, the basic development board, and a 1602 LCD display with I2C backpack and an inexpensive CP2102 USB RS232-TTL interface.


Above is the working trial. The GDB debugger allows On Chip Debugging (OCD).
Continue reading Time to get some experience with 32bit microcontrollers – some progress

Fan controlled by humidity sensor – design technique

This article gives an outline of the process used in designing the Fan controlled by humidity sensor to use my Generic heating / cooling controller design (hcctl).

Arduino thermistor thermometer – a tutorial gave a method for designing a thermometer based on a formula predicting the behaviour of the sensor. This article explains a different approach where that is not possible.


Above is a characteristic from the manufacturer’s data.

The curves to no lend themselves to simple curve fits, so a cubic spine interpolation will be made based on key points from the curve.

Four our purposes, the mean curve (green) is sufficient for design.

Screenshot - 24_07_16 , 08_16_07


Above, the mean curve was digitised to capture the shape of the curve, 17 points were used.
Continue reading Fan controlled by humidity sensor – design technique

A drive test of RTKLIB accurate GPS

Accurate GPS positioning has been of interest in automating data collection in field strength surveys of antennas on HF. To be useful, the positions need to be accurate to 100mm.

RTKLIB is an open source program package for GNSS positioning.

A number of experiments were conducted using a U-Blox LEA-6T assembly with integral small patch antenna (cost ~A$40) and RTKLIB v2.4.3(b8) using a base station feed from Geoscience Australia (with thanks). The test location is about 200km from the reference station at Symonston ACT.


Above, the LEA-6T and a RS-232 to USB adapter are strapped to a roof rack bar with stretch film. The high mounting position gives good view of the sky.


Screenshot - 30_06_16 , 12_50_35

Above is a position plot of about an hour with the vehicle stationary (though in Kinematic mode) beside the house. Sky view was slightly restricted by the house and a line of tall trees to the west.

firefox 30/06/16 , 15:36:58 http://owenduffy.net/map/20160630.htm 20160630 - Mozilla Firefox

For the most part the track is smooth, but there is one section where the track in a more heavily treed section is markedly jaggy.

Micro SD card premature failure

I bought a couple of ‘generic’ micro SD cards on eBay about a year ago. They were not much cheaper than brand name cards, and though only speed 6 rated, were available locally for quick delivery. I have a vague recollection that it might have been a RPi product supplied with NOOBS on it (I have a couple of SD adapters with the RPi logo on them).


These were both used in RPi B systems and worked without fault for the last year, though they are not running full time (perhaps a couple of hundred hours of use).

During a Raspbian sofware update, both cards failed with the same problem, they effectively became read-only cards. Continue reading Micro SD card premature failure

Arduino app to set DS1307 Real Time Clocks.

I use a number of implementations of the DS1307 or DS3231 Real Time Clock chip, preferably the latter these days as they are considerably more accurate and compatible with DS1307 code.

In some applications, it is necessary or sometimes just better to preset the clock before connecting it into the application, and the need arises to set the clock ‘stand alone’. The method I have used for this has been clumsy and not as accurate as one might want for the DS3231, so this article describes a new solution.


The solution uses an Arduino as the engine if you like. Above is an Arduino Pro, but a range of similar Arduinos would be equally suitable. ALso pictured are three RTCs, one connected to pins A2, A3, A4 and A5 providing GND, VCC, SDA and CLK respectively. Continue reading Arduino app to set DS1307 Real Time Clocks.

Counterfeit FTDI

I purchased a USB-RS232 adapter which claimed to use an FTDI chipset.


Above is a pic of the device, branded Hexin model HXSP-2108D.

The device delivered pretends to be FTDI to the extent it ships with a FTDI driver disk, uses FTDI’s VID and PID to identify to USB, and works to some extent with separately sourced FTDI drivers, but it does not use FTDI chips. Attempts to read the chip with FTPROG return an empty EEPROM that cannot be programmed… in fact it causes errors in FTPROG.

eBay effectively supports these sellers of counterfeit goods as they require return of the goods to the seller for possible refund, and in this case that would cost about the same as was paid for the goods.

The seller insisted that they would test it and return it or a replacement, carefully avoiding the question of whether it used a genuine FTDI chipset, further reason to not return it as it would just cost good money to get the same counterfeit product back..

eBay harbours counterfeiters, and whilst I have bought plenty of FTDI based devices that appeared genuine (eg using FTPROG), this Hexin product is an incomplete knock off.

Precision GPS experiment #1

This article reports an experiment to evaluate the usefulness of precision GPS for the purpose of location data for automated antenna field strength surveys.

The experiment was conducted with the rover located in a fixed location 13km North of the reference station at Symonston and with very wide view of the sky, about 7:00 am 07/04/2016.

Only GPS satellites were used for the rover.

The software was RTKLIB v2.4.3b8.


The GPS was a UBLOX LEA-6T with a small patch antenna (as sold for small UAVs). The LEA-6T provides binary data as used by RTK for carrier phase measurements. Above is the GPS and a USB-RS232 adapter. Continue reading Precision GPS experiment #1

CH340, CH341 USB to RS-232 chip compatibility

One of the several sources of chips for USB to RS-232 converters is WCH, a Chinese firm offering their CH340 and CH341 chipsets.


Information is scarce as their website is mostly in Chinese language.

CH34x chips have become more common, perhaps as consumers have fled the Chinese Prolific product line (for good reason).

In true Chinese style, downgrade knock offs of Arduino boards (eg the Arduino nano) have appeared, the downgrade is achieved by use of CH340 USB to RS-232 converters instead of the FTDI chips on the genuine nano. Continue reading CH340, CH341 USB to RS-232 chip compatibility

A low cost home made USB CI-V interface with open collector and solid Windows drivers

This article describes an inexpensive USB adapter for Icom’s CI-V interface.

There are four common options for USB-serial adapters:

  • Prolific;
  • FTDI;
  • WCH; and
  • Silabs.

This article describes an adapter based on an inexpensive FTDI adapter (~$5 on eBay).


You will need the module, a Schottky signal diode (eg 1N5711), wire and a 3.5mm TRS plug or two. I have connected two plugs, one wired for TS (CT-17) and one for RS (OPC-478x). Continue reading A low cost home made USB CI-V interface with open collector and solid Windows drivers

Revised thinking on STC chips

I have successfully implemented a few projects on the STC 15F104E, a Chinese 8051 architecture MCU.

STC15fF04EThe chip includes EEPROM, and some flexible extensions to the timers which potentially make it more useful than a standard 8051.

I have previously observed that the documentation is poor, and the programming tool is poor.

The project that led to the latest observations was an attempt to implement RC PWM – ON/OFF switch originally on one of these chips as it contained sufficient resources to suit the application. One of those resources was an +/- edge triggered INT0.

The code worked fine, but for only a short and variable period. Essentially, the the main loop was executing fine, the chip stopped triggering the interrupt service routing for INT0 after a variable time from 10s to 1000s… but it ALWAYS stopped working. Cycle the power and the same thing is observed. Continue reading Revised thinking on STC chips