Hemes Lite 2 firmware to control AMP

258 views
Skip to first unread message

Saleh Al Mulla

unread,
May 30, 2025, 12:13:55 AM5/30/25
to Hermes-Lite
Hi
This is Saleh Almulla 7Z1CY
I made a video about how to add a 13pin ACC to I/O board similar to the one in ICOM IC-7100, IC-7300 so you can control band change and ptt for any amplifier that controlled by ICOM

I added a small fan.
I also wrote a firmware for the I/O Board to control your amplifier for Band change and ptt


This firmware outputs the band Voltage to control any amplifier with icom ACC

the voltage output using pwm for fan control to J3 pin

Band Frq. MHz Band Voltage

/ 160 1.8 7.0 ~ 8.0V

/ 80 3.5 6.0 ~ 7.0V

/ 40 7 5.0 ~ 6.0V

/ 20 14 4.0 ~ 5.0V

/ 17&12 18 & 21 3.0 ~ 4.0V

/ 12 & 10 24 & 28 2.0 ~ 3.0V

also it output 5.0v to GPIO10_Out5 (J4 pin 5) when PTT on (transmission on) as PTT output to key the amplifier
firmware source code :

https://github.com/sfmulla/HL2-Amp-Controller

for video part 1
https://youtu.be/WSWt6XCm5Mo?si=AmnrZ-Qf7g8zuxUe


Thanks
7Z1CY
73

Alberto P

unread,
Jun 9, 2025, 1:04:32 PM6/9/25
to Hermes-Lite
Hi Saleh,

I used your code and explanations to make my HL2 talk to my amplifier. I didn't need the 8V nor the PTT, only the band voltage. I adapted the values to my amp to get these:

[code]
switch (tx_band) {
            case BAND_160:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 148 / 255);  //7.0          
                break;
            case BAND_80:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 126 / 255);  //6.0          
                break;
            case BAND_60:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 105 / 255);  //5.0
                break;
            case BAND_40:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 105 / 255);  //5.0          
                break;
            case BAND_30:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 84 / 255);    //4.0
                break;
            case BAND_20:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 84 / 255);   //4.0          
                break;
            case BAND_17:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 63 / 255);   //3.0
                break;
            case BAND_15:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 63 / 255);   //3.0
                break;
            case BAND_12:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 47 / 255);   //2.25V
                break;
            case BAND_10:
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, FAN_WRAP * 47 / 255);   //2.25V
                break;
            default:    // This includes band zero (reset)
                pwm_set_chan_level(FAN_SLICE, FAN_CHAN, 0);
[/code]

It works flawesly!

Thanks for sharing it.

73 Alberto EA3GNU
Reply all
Reply to author
Forward
0 new messages