This is a work in progress to create a 70W power amplifier to be used together with the Hermes-Lite 2.x using the commercial DIY Kit 70W SSB linear HF Power Amplifier (aka 70W MiniPA), a Low Pass Filter, and an Arduino board, to control it all.
The amplifier is based on a "70W SSB Linear HF Power Amplifier" you can find on eBay, Banggood, AliExpress, etc. This is the schematic:
I did some modifications on the original board to adapt it to the new transistor and my requirements:
- I changed the two included IRF640 Single Mosfets, for one MRF-9120 (Double RF Power Mosfet) that fits perfectly in the PCB and is more reliable because the heat transference is more convenient due to the form factor (the PCB accepts both formats, the TO-220 package for the IRF640 ant the NI-860 package for the MRF-9120)
- I changed the R7 to a lower value (47 Ohm) to get the proper Bias level (~4.4 volts)
- I added the 20 Ohm R6 (see the schematic) for better input SWR adaptation (modification suggested by OE1CGS)
This 70W SSB linear HF Power Amplifier needs a Low Pass Filter (LPF) to be compliant, removing the harmonics (there is an Input-Output connector in the PCB to use an external LPF) and I chose a very simple "HF low pass LPF 3.5M-30Mhz for Ham Radio CW FM" that fits perfectly with the power amplifier and does its job. This LPF has 4 bandpass filters for 80m, 40m, 20-17m, and 15-10m, selectable connecting the specific pin to ground.
I wanted to use this Power Amplifier for my Hermes Lite 2 (HL2) and I wanted a fully automatic operation, so I decided to use an Arduino Nano to control it all:
- Reading the I2C bus from the HL2 to decode the band
- Selecting the appropriate filter on the LPF board
- Using the EXTTR signal to activate (bias) the amplifier (PPT)
- Sensing the temperature of the transistor using an NTC
- Drive the speed of the fan using Pulse-width modulation (PWM) depending on the transistor temperature
- And display Power Amplifier basic information using an OLED mini-screen
This is the complete block diagram of the amplifier I designed:
Based on the information published by Alex Pressl in Easyeda, and inspired by his work, I began to work on my first prototype of the Control Board to test the I2C connection from my HL2 to the initial "Control Board", listening to the I2C messages that HL2 uses to communicate from the main board to the internal LPF filter (N2ADR).
During this first prototype, I also tested the Temperature Sensor (a common thermistor NTC) and the Pulse Width Modulation (PWM) generated by the Arduino to control the fan speed accordingly.
This is the schematic of the first version of the Control Board:
And this is the first fully functional version of the Power Amplifier with the LPF and the Control Board:
Based on the experience accumulated during first prototype tests and the first usable Control Board, I designed my self PCB. This is the final schematic I implemented for the Control Board built around the Arduino Nano:
This is the final Control Board with all the components and the Arduino Nano:
And this is the final Power Amplifier complemented with the LPF and the Control Board:
You can find it in this repository:
- The Arduino Nano code for the Control Board: Software
- The Control Board KiCad files for PCB design and the Schematic: PCB Board
- The Bill of Materials to implement the Control Board: Control Board BOM
Please, take into account the following notes if you want to implement this project:
- The Control Board program running on the Arduino is very basic and, for sure, it can be improved and optimized, especially how it handles the interrupts from the I2C bus or the EXTTR signal coming from the HL2.
- The Control Board can be powered through the USB port or connected to an external power supply (recommended). If this last option is used, supply 6+ Volts (6..7 volts recommended).
- The Control Board is designed and implemented to use an SSH1106 chip-based, 128x64 OLED Display (like this one: OLED Display), but, of course, it can be adapted to other displays.
- This Board works together with the HL2 and uses SCL2, SDA2, and EXTTR signals from the Rear IO Strip. See how I have connected all these signals to the DB9 in the HL2 to be connected to the DB9 in the Power Amplifier: (HL2 to PA70 connection)
- The Low Pass Filter (LPF) control mechanism is based on driving the specific band pin to ground to select the adequate filter. For my implementation, I only need 4 pins to do the filter selection, but the Control Board is designed to select up to 8 filters.
- Related to the Band selection, the HL2 selects up to 6 bands: 160m – 80m – 60/40m – 30/20m – 17/15m – 12/10m. You must map all these bands to your specific band selection in the decodeBand() function on the Arduino Sketch.
- I decided that all PTT control will be done by the Control Board because I wanted to add some protection capabilities in a future version (Max current, SWR limit, Temperature, etc.), so the EXTTR signal (PTT) coming from the HL2 does not go directly to the PTT pin on the Power Amplifier board, but it goes to my Control Board. If you want, for simplicity, you can connect the EXTTR or PTT signal coming from the HL2 directly to the Power Amplifier.
- Different control programs for HL2 have different behavior for Band Selection. I have only tested the Control Board software with SparkSDR, SDRConsole, and PowerSDR.
- I store the last selected Band on the Arduino’s EPROM to “remember” and select the last used band when the Control Board powers up.
- The Temperature sensor is simple, but it works perfectly. I use a regular NTC Thermistor, and I tested a couple of them with the same good results, so I understand that you are not going to have problems with it, perhaps only some adjustments.
- The temperature control implemented in the Control Board drives a Pulse Width Modulation fan to modify its speed depending on the temperature, so you will need a fan with this capability if you want to use this functionality.
- I have a “#define TEST” software switch in the Arduino Sketch to be used if you want to debug the program. You can get all the debugging information in the Serial Monitor. Remove or comment on this sentence for production.
Based on the previous version, I wanted to improve the PA70 interface capabilities. Therefore, I replaced the simple 128x64 display of v3.0 with a 3.5" Nextion Touch Display NX4832K035 to provide all the interfacing capabilities I needed. Using this Touch Display, together with the Arduino Board, I can control several internal parameters of PA70, including:
- Minimum, Warning, and Maximum PA temperature (sensed on the top of the MOSFET)
- Minimum Fan temperature activation
- Maximum PA temperature for protection (PA bias will be disconnected)
- Other parameters to be used soon (PWR, SWR, etc.)
This is the final look of the Power Amplifier with the new Nextion Touch Display installed:
You can find all the necessary materials in this repository:
- The Arduino Nano code for the Control Board and to drive the Nextion display: Arduino Software
- The Nextion Display code to be used together with the Arduino Control Board: Nextion Software
- The Control Board KiCad files for PCB design and the Schematic (same as v3.0): PCB Board
- The Bill of Materials to implement the Control Board (same as v3.0): Control Board BOM
Please, take into account the following notes if you want to implement this project:
- The Control Board program running on the Arduino is very basic and, for sure, it can be improved and optimized, especially how it handles the interrupts from the I2C bus or the EXTTR signal coming from the HL2.
- The Control Board can be powered through the USB port or connected to an external power supply (recommended). If this last option is used, supply 6+ Volts (6..7 volts recommended).
- The NX4832K035 Nextion Touch Display is connected to the "OLED" 4-pin connector on the Control Board because it uses the same signals as the v3.0 display. Of course, it can be adapted to other displays.
- This Board works together with the HL2 and uses SCL2, SDA2, and EXTTR signals from the Rear IO Strip. See how I have connected all these signals to the DB9 in the HL2 to be connected to the DB9 in the Power Amplifier: (HL2 to PA70 connection)
- The Low Pass Filter (LPF) control mechanism is based on driving the specific band pin to ground to select the adequate filter. For my implementation, I only need 4 pins to do the filter selection, but the Control Board is designed to select up to 8 filters.
- Related to the Band selection, the HL2 selects up to 6 bands: 160m – 80m – 60/40m – 30/20m – 17/15m – 12/10m. You must map all these bands to your specific band selection in the decodeBand() function on the Arduino Sketch.
- I decided that all PTT control will be done by the Control Board because I wanted to add some protection capabilities in a future version (Max current, SWR limit, Temperature, etc.), so the EXTTR signal (PTT) coming from the HL2 does not go directly to the PTT pin on the Power Amplifier board, but it goes to my Control Board. If you want, for simplicity, you can connect the EXTTR or PTT signal coming from the HL2 directly to the Power Amplifier.
- Different control programs for HL2 have different behavior for Band Selection. I have only tested the Control Board software with SparkSDR, SDRConsole, and PowerSDR.
- I store the last selected Band on the Arduino’s EPROM to “remember” and select the last used band when the Control Board powers up.
- The Temperature sensor is simple, but it works perfectly. I use a regular NTC Thermistor, and I tested a couple of them with the same good results, so I understand that you are not going to have problems with it, perhaps only some adjustments.
- The temperature control implemented in the Control Board drives a Pulse Width Modulation fan to modify its speed depending on the temperature, so you will need a fan with this capability if you want to use this functionality.
- I have a “#define TEST” software switch in the Arduino Sketch to be used if you want to debug the program. You can get all the debugging information in the Serial Monitor. Remove or comment on this sentence for production.