ESP8266 IoT BME280 temperature, humidity and pressure – 06/2021 update

ESP8266 IoT BME280 temperature, humidity and pressure described an IoT project. This article documents an update for newer nodemcu core (NodeMCU and the revised support for BME280 (the older method having been deprecated).

This project is based on ESP8266 IoT DHT22 temperature and humidity – evolution 3, but uses the Bosch BME280 temperature, humidity and pressure sensor. The BME280 has been around for a couple of years, though recently, modules using the chip have become more expensive on eBay, around $10. If you find BME280s listed for much less than that, it is probably Chinese cheats doing a bait and switch… delivering BMP280 (pressure only). Continue reading ESP8266 IoT BME280 temperature, humidity and pressure – 06/2021 update

IoT water tank telemetry project – part 4

After a long hiatus… the project activity resumes.

Boxing is underway, and the code has been revised to use a BME280 sensor replacing the DHT sensor. The BME280 is a better sensor (less jitter), and is also capable of barometric pressure if that is of interest.

Experience has been that 18650 cells do not last when exposed to extreme temperatures in solar powered modules like this, so a single cell pouch 2000mAh LiPo will be used (as in the battery trials).

The code has been refactored to make measurements before starting the WiFi as WiFi activity injects noise into the ESP8266 ADC.

The nodemcu core was updated as part of this process.


The system is easy to calibrate in terms of stored water volume for containers with vertical sides where the change in volume with level is uniform… but there are lots of applications where that is not true, natural dams for example.

Above is a plot of volume versus depth of water for a container like a spherical bowl. The interpolation line is a cubic spline interpolation based on the six input data points, it is of course a very good fit to those points but would appear to be a good estimator of the regions between.

The code now contains a facility to perform a cubic spline interpolation of a small number of data points over the expected range of depths.


Above, a set of six points (as in the chart) in the format required of the code in a file named dam.xy.

The code calculates and stores an intermediate data file <name>.cstable if it does not exist for more rapid calculation. If the .xy file is updated, the corresponding .cstable file needs to be deleted.

The init.lua file is augmented to call a transform function from the httpreq function which customises the HTTP request.

function transform()
  if level<0 then level=0 end
  print("Volume: ",volume)

function httpreq() 
--  req=rest_url.."?api_key="..apikey.."&field1="..level.."&field2="..temperature.."&field3="..humidity
  return req,body

Above, the transform function fetches the function definitions for the cubic spline interpolation, and calculates an interpolated volume from the measured level (or depth) value.

Above is a trial run using a calibration generator for the level input, and its conversion to current volume of the storage.


One of the possible paths this project might follow was to use LoraWan… but experience with LoraWan has not been positive, particularly issues with the Laird gateway.

Above is the enclosure, an electrical box with transparent lid. The PV array is mounted inside the lid, the cheap Chinese ones tend to degrade too quickly when exposed to the elements. There is room in the box for a 2000mAh 1S Lipo battery. The switching circuit for the 24V DC-DC converter is mostly on the Veroboard under the (red) DC-DC converter (powers the 4-20mA loop). The module at lower left is a 1S battery management / protection board.

The resistor diagonally across the Wemos module is the 4-20mA sense resistor wired from A0 to ground. Experience is that locating the resistor on-board reduces the errors due to variable contact resistance through the module header pins.

If temperature / humidity monitoring is desired, a BME280 module plugs into the header near the antenna, but it needs to be remote from the box which gets quite hot in the direct sun.

The implementation supports easy development and update, if the battery and solar cell are disconnected, plugging a computer into the USB port on the Wemos board allows update and normal operation / testing.

Reassembling a certain common chainsaw clutch

I managed to drop a chainsaw clutch and it separated into its component parts.

Thinking there would be a simple trick to this, I consulted Youtube. It turns out that reassembling these has proved a challenge for many people, and their online posts informed as to what approaches don’t work well, describing the many hours spent trying to reassemble. One online expert advised buy another, they are so cheap.

Above is a clutch of the type I will discuss, mine is from a 45-58cc Chinese chainsaw. There are variants, and the technique may be adaptable to them. Continue reading Reassembling a certain common chainsaw clutch

Another small efficient matching transformer for an EFHW – 2643251002

This article describes a small matching transformer built and measured by Luis, CT2FZI, using a Fair-rite 2643251002.

Above is the transformer with 100pF compensation capacitor across the input, and two resistors to make up a 3300Ω load in combination with the VNA port. Continue reading Another small efficient matching transformer for an EFHW – 2643251002

Shorting winding sections of a ferrite cored EFHW transformer

A chap recently posted some advice on construction of a dual ratio transformer for EFFHW antennas, advice with an informative pic, but without measurement evidence that it works well.

Pictured is a dual UnUn. I made this for experimenting. It’s both a 49 and 64 to 1 UnUn.

The 49 to 1 tap uses the SS eye bolt for the feed through electrical connection and the SS machine screw on the top is the 64 to 1 connection. If I want to use the 49 to 1 ratio, there’s a jumper on the eye bolt that connects to the top machine screw where the antenna wire is attached. The jumper shorts out the last two turns of the UnUn. Disconnect the jumper from the top connection and now you have a 64 to 1 ratio.

Continue reading Shorting winding sections of a ferrite cored EFHW transformer

RF Power Meter 2 (RFPM2) – display update

RF Power Meter 2 is a logging RF power meter based on AD8307 and ESP8266.

The original LCD display was white on blue, but was very difficult to read at some viewing angles, so it had to go. Unfortunately I could not find more displays with that hole pattern, it seems to have been discarded for a newer hole pattern as almost everything I looked at had the same newer patter.

So, the box front needed rework, and there would be visible spare holes… so a dress escutcheon was designed in Freecad and cut on a CNC router.

The escutcheon was designed to be cut from some 3mm black acrylic sheet that was on hand, and it would cover the reworked panel. Continue reading RF Power Meter 2 (RFPM2) – display update

Small efficient matching transformer for an EFHW – a Simsmith model

This article offers a simple Simsmith model for the Small efficient matching transformer for an EFHW.

Above is the model topology. D1 is a daemon block which essentially, calculates key values for the other blocks based on exposed parameters and the named ferrite material complex permeability data file. The prototype used a Fair-rite 2643625002 (#43) core. Continue reading Small efficient matching transformer for an EFHW – a Simsmith model

A simple generic Simsmith model of a linear push-pull Class B broadband HF power amplifier

This article outlines a Simsmith model developed to explore / confirm behavior of some linear Class B push-pull HF broadband power amplifiers.

The design is for a system power output of about 80W on a 24V supply, it is a combination that should work with practical system components with good efficiency.

Above is a first step, an estimate of an initial load line for the PA. The calculator is written in valve terms, but is quite applicable to this scenario. Continue reading A simple generic Simsmith model of a linear push-pull Class B broadband HF power amplifier

Ferrite cored inductors at HF – flux, loss and saturation

I see online experts opine that small signal characteristics (eg complex permeability curves) of ferrite toroids are not valid for applications such as RF common mode choke in transmitting antennas.

Others opine that saturation is a practical design limit, and for example that Bs/2 is a safe / appropriate design target.

Let us consider a ferrite cored inductor at 7MHz. The inductor comprises 11t on a 11t on Fair-rite 5943003801 (FT240-43) toroid. This is a medium to high permeability ferrite material, and for that reason, has significant loss at HF. Higher and lower permeability materials are fashionable at different times, the higher permeability #31 mix is fashionable at this time.

I will work in MKS units.

Above is Fair-rite’s B-H curves for #43 material. Let’s take saturation flux density Bs to be 1500gauss or 0.15T. Continue reading Ferrite cored inductors at HF – flux, loss and saturation

SNTP synchronised clock v1 – boxing it up

The SNTP synchronised clock (ssc) is an ESP8266 based time of day clock with an LED display.

The code is fairly mature, and the boxed prototype will be build with a large 4 digit 7 segment LED display (1.2″ or 30mm) using the HT16K33 driver chip.

The prototype will be housed in an ABS Jiffy box, and a new lid cut from dark red transparent acrylic on the CNC router.

Above is the sketch of the layout. The screw holes in the display are M1.6, and there is no clearance for larger screws. Continue reading SNTP synchronised clock v1 – boxing it up