In 2019 I bought a handy little tool called a Vector Network Analyser. These devices usually cost thousands of $$ but recently with the aid of very flexible, stable and affordable frequency generators from Silicon Labs, such as the Si5351A, a whole new range of rf products has been made available at very little cost.
(What is a Network analyzer: https://en.wikipedia.org/wiki/Network_analyzer_(electrical) )
At around $800 The VNWA3 from DG8SAQ (https://www.sdr-kits.net/introducing-DG8SAQ-VNWA3) is already a cost-effective unit. It uses two Analog Devices AD9859 signal generators (https://www.analog.com/en/products/ad9859.html) and three of SA612 double-balanced mixers and offers a detection bandwidth from 1kHz - 1.3GHz. It is a unit that requires a USB connection to a computer which in turn needs some software to show the results and graphs.
This design was further developed by edy555 (aka 'ttrf') in Japan and his version, the original NanoVNA, offered an all-in-one solution using a Silicon Labs Si5351A as the signal generator (https://www.silabs.com/timing/clock-generators/cmos/device.si5351a-b-gt) including a 2.8-inch colour touch-screen. Gen Hu further developed this hardware design and it became known as the NanoVNA-H (but they are compatible firmware-wise).
The NanoVNA I bought happened to be a Chinese clone of the NanoVNA-H. Everything seemed to work okay and I was able to use it to test various filters and antennas. After subscribing and following the NanoVNA forum for a few weeks I noticed that people were discussing upgrades to their NanoVNA by way of installing newer firmware. I got intrigued by this and wanted to see if I could also upgrade my NanoVNA with one of the latest firmwares.
There are several authors that release different kinds of NanoVNA firmware, but in essence they should all run on the same hardware. Exceptions are the NanoVNA-H4 (STM32F303) and the NanoVNA-F (ST32F303 + bigger screen). The unit I purchased has the standard size screen with an STM32F072 chip so my options for new firmware are:
(See also: https://groups.io/g/nanovna-users/wiki/home#Hardware-versions)
I opted for the edy555 and visited his github page and downloaded the latest version, a binary file of about 87kByte in size.
Flashing the firmware resulted in an error because the chip that is used in my NanoVNA (STM32F072C8T6) only holds 64kByte of program (flash) memory. This means I cannot upload a 87kByte piece of code into a 64kByte chunk of memory.
A little bit of research on the NanoVNA forum and the ST MicroElectronics website shows that a bigger version with 128kByte flash of the chip exists. The part number is STM32F072CBT6. Everything else (pinout, supply voltage, physical dimensions) is exactly the same.
The difference is very subtle in the part name: C8 vs CB
- STM32F072C8T6 (64kByte Flash program memory)
- STM32F072CBT6 (128kByte Flash program memory)
(STM32F0x0 series of microcontrollers: https://www.st.com/en/microcontrollers-microprocessors/stm32f0x2.html)
So I purchased 5x brand new, blank STM32F072CBT6 from RS-Online for $5.22 (AUD) each. (https://au.rs-online.com/web/p/microcontrollers/8805392/)
After a couple of weeks I finally had some some time to do the actual chip transplant.
After removing the back cover and the small 450mAh 1S Li-Ion battery, the circuit board shows the original STM32F072C8T6 (big square chip on the left).
I'm using a bit of 28 gauge wire underneath the pins to pull them away from the pads after heating them with a soldering iron.
This is the first row of pins unsoldered using the wire-pulling method.
After some more work all four sides are now desoldered and the chip is free from the circuit board.
To make sure the new chip is flat and even on the circuit board all pads are cleaned with solder wick.
Then comes the exciting moment of picking a new chip from the packet.
Positioning the new chip exactly on the pads and holding it down with some weight. Now it's time to begin soldering the new chip on the board.
All soldered up and excess tin removed with solder wick. Looking good.
The NanoVNA has the connection pins for programming the chip close to the edge of the board, easy..
STM chips have their own programmer. This one I bought off eBay for about $5. Connected with just 4 wires is all you need.
Using the STLink programming software to load up the new firmware. It succeeds at first try. Jolly good!
After uploading the new firmware the NanoVNA is switched on for the first time and it all looks good. Notice that there is now a small battery indicator icon in the top-left corner. An additional diode is required to make the icon show some voltage level, but this feature was never present in the old firmware.
Another feature that is now present in the firmware is a 'config' page that reveals which firmware you're actually running. Very handy.
The NanoVNA is now running with 128kByte Flash memory and the firmware version is edy555 v0.7.0 (23 Feb 2020)
Very happy to see that the firmware upgrade went pretty much effortlessly and I didn't have to worry about bootloaders, eeprom or anything else. Everything just works and the device now runs the latest firmware.