ASL3 using CM108 GPIOs to steer GM300 channels

I have a node that is connected to a GM300 with 3 channel lines exposed (1, 2, 4) and only using 6 channels.

My macro firsts puts the node in command mode then issues commands.

This is a test macro to see what IOs are being used.

2 = *4408672 gpio2 = out0 P P *70 P P *722 P gpio2 = out1 P P **722 # Set command mode then should change gpio2 to output set low add pauses then report status more pauses set gpio2 to output high then say time and date then ends command mode.

none of the IOs change state, the other commands do what they are supposed to do including setting command mode in the remote node.

What am I missing? I am pretty new to linux.

Help please

W6RYO

Some additional information:

I can do this with only 1 GPIO output. I can sent send a series of pulses into an Arduino and convert this to a parallel output. Am I being a bone head here and not getting any responses because this is so simple that I missed the point?

Anyway Thanks for any help you can give me.

I don't believe you can specify gpio2=SOMETHING the way you are inside of the macro. You would need to specify setting by a cop command macro and then call that macro inside the other.

I have been moving for the last several months and am now finally set up to work on this problem.

question 1 is the gpiox = outx the correct way to refer to the gpio lines on the CM108?

question 2 since it appears that I cannot use this command in a macro how do I do this in cop command? I really don't understand what is going on and the correct syntax. This can't really be this difficult. There has to be someone using the gpio's to switch channels.

Help please

So i m using Kevins RA series USB radio. He has GPIO 4,5,6,7,8 outputs with solder pins to connect to. CM-108 audio chip
Beware these are CMOS high and low so no current drain more the a few milliamps .
I pulled 3 of these to control a controller to turn on link ports. this is what I did in the rpt.conf and Simpleusb.conf files
I am using Hamvoip but I am sure you can do the same to ASL3
In the rpt.conf in the Functions
9410=cop,61,GPIO4:0 ;Link 1 On UF4
9411=cop,61,GPIO4:1 ;Kink 1 Off UF4
9510=cop,61,GPIO5:0 ;Link 2 On UF5
9511=cop,61,GPIO5:1 ;Link 2 Off UF5
9610=cop,61,GPIO6:0 ;Link 3 On UF6
9611=cop,61,GPIO6:1 ;Link 3 Off UF6
9710=cop,61,GPIO7:0
9711=cop,61,GPIO7:1

[macro4635]
;Macro number = command string (each command separated by space) -end with HASH
1=*81 *80# ; play time and voice ID
91=*9411 *9511 *9611 ;All Links OFF
90=*9410 *9510 *9610 ;All Links ON
92=*9511 *9611 ;Link Port 2 and 3 Off

In the simpleusb.conf
gpio4=out,0 ;Link Port1
gpio5=out,0 ;Link Port2
gpio6=out,0 ;Link Port3
gpio7=out,0 ;Test LED

Also did the supermon Control button and set it up so did not need to send DTMF over the air.
Hope this helps!
Dale
N6ZCM

also GPIO 1, 2, 3 are used for something else. One of them is PTT

Since you are using a GM300, I'll add that my RIM_Maxtrac product has the CM119 output pins already routed to the channel
steering lines.

and more precisely:

Scott

Scott Zimmerman
Amateur Radio Call N3XCC
474 Barnett Road
Boswell, PA 15531

···

On 8/18/2026 9:59 PM, Dale wrote:

Someone replied to a topic you are Watching.

[N6ZCM] N6ZCM https://community.allstarlink.org/u/n6zcm
August 19

So i m using Kevins RA series USB radio. He has GPIO 4,5,6,7,8 outputs with solder pins to connect to. CM-108 audio chip
Beware these are CMOS high and low so no current drain more the a few milliamps .
I pulled 3 of these to control a controller to turn on link ports. this is what I did in the rpt.conf and Simpleusb.conf files
I am using Hamvoip but I am sure you can do the same to ASL3
In the rpt.conf in the Functions
9410=cop,61,GPIO4:0 ;Link 1 On UF4
9411=cop,61,GPIO4:1 ;Kink 1 Off UF4
9510=cop,61,GPIO5:0 ;Link 2 On UF5
9511=cop,61,GPIO5:1 ;Link 2 Off UF5
9610=cop,61,GPIO6:0 ;Link 3 On UF6
9611=cop,61,GPIO6:1 ;Link 3 Off UF6
9710=cop,61,GPIO7:0
9711=cop,61,GPIO7:1

[macro4635]
;Macro number = command string (each command separated by space) -end with HASH
1=*81 *80# ; play time and voice ID
91=*9411 *9511 *9611 ;All Links OFF
90=*9410 *9510 *9610 ;All Links ON
92=*9511 *9611 ;Link Port 2 and 3 Off

In the simpleusb.conf
gpio4=out,0 ;Link Port1
gpio5=out,0 ;Link Port2
gpio6=out,0 ;Link Port3
gpio7=out,0 ;Test LED

Also did the supermon Control button and set it up so did not need to send DTMF over the air.
Hope this helps!
Dale
N6ZCM


Visit Topic https://community.allstarlink.org/t/als3-using-cm108-gpios-to-steer-gm300-channels/24745/5 or reply to this
email to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, click here <https://community.allstarlink.org/email/
unsubscribe/1f4c22751cd6779eae044fed8078d3a19a3d92648dc61fd90f3e1e060e2c3742>.

Dale, thanks for the info I think it sends me in the right direction.

I have ordered Kevins RA board since it gives me more area to add gpio wires.

Using the RL-20 for a connection to a Arcom EX-1 to control the Radio ports of 3. I pulled the Cap in the RL-20 to use Pin 1 of the 9 pin. The RL-20 has points to use Pin 7 and 9.
But the RA-25 also has connection point for 9 pin 7 and 9

···

D. Dale Beaty, Jr.
818 652 1298
N6ZCM

(attachments)

My node is 408670

Thank you very much to everyone for responding. I am very sorry for the very late response as this move has taken most of my time and at 76 years old my mind just doesn't respond like it used to. To explain the situation I have moved from So. Cal. to Topaz lake California where my Daughter has purchased lake side property and will soon have an RV park. I am building this node so I can send it to the group in So. Cal. And stay in contact. The best part is I now live in paradise with clean air and water.

Dale, N6ZCM, Here is where I stand:

I have followed your recommendations and now I have this:

Added to rpt.conf

[functions-main](!)

;;;;;;;;;;;;;;;;;;; functions stanza ;;;;;;;;;;;;;;;;;;;.

;;;;; Macro Commands ;;;;;

5 = macro

………

;**************************************************

;

; Added Gary 9/22/26 to allow channel switching CM300

;

9410=cop,61,GPIO4:0 ;Link 1 On UF4

9411=cop,61,GPIO4:1 ;Kink 1 Off UF4

9510=cop,61,GPIO5:0 ;Link 2 On UF5

9511=cop,61,GPIO5:1 ;Link 2 Off UF5

9610=cop,61,GPIO6:0 ;Link 3 On UF6

9611=cop,61,GPIO6:1 ;Link 3 Off UF6

9710=cop,61,GPIO7:0

9711=cop,61,GPIO7:1

;**************************************************

……………………………………….

; 961 = cop,61 ; Send Message to USB to control PIO pins (cop,61,GPIO1=0[,GPIO4=1].....)

; 962 = cop,62 ; Send Message to USB to control GPIO pins, quietly (cop,62,GPIO1=0[,GPIO4=1].....)

; 963 = cop,63 ; Send pre-configured APRStt notification (cop,63,CALL[,OVERLAYCHR])

; 964 = cop,64 ; Send pre-configured APRStt notification, quietly (cop,64,CALL[,OVERLAYCHR])

; 965 = cop,65 ; Send POCSAG page (equipped channel types only)

;*************************************************;

;

; Added Gary 9/22/26 for chaannel control ov CM300

;

1 = *81 *80# ; play time and voice ID

2 = *961 gpio0 = out0 P P *70 P P *722 P *961 gpio0 = out1 P P *722 #

91 = *9411 *9511 *9611 # ;All Links OFF

90 = *9410 *9510 *9610 # ;All Links ON

92 = *9511 *9611 # ;Link Port 2 and 3 Off

* NOTES 1 works, 2 works although 961 not defined, 90-92 just gives a series of beeps.

;*************************************************

………

Added to simpleusb.conf

gpio4=out,0 ;Link Port1
gpio5=out,0 ;Link Port2
gpio6=out,0 ;Link Port3
gpio7=out,0 ;Test LED

--------------- end of changes

With a scope I monitor gpio 4,5 and 6 and there is no change when I execute the macros. I don’t think the gpios need a pullup resistor or am I wrong here?

I am using ASL3 on all of my nodes. My next step is to rebuild this node with the older VoIP version. It just may not work with Version 3?

Thanks for patients with and old man. (licensed since 1965)

Scott I am looking at your boards, thanks

Latest update: I rebuilt an SD card with the old VOIP version and the GPIO works great. Then I went back to ASL3 and rechecked my work and carefully added the commands and it works great. I must have done something bone headed. I now use GPIO 5,6,7 to switch 7 channels and they respond exactly as they should. Since a couple of channels are repeaters that have a long hang time I am build a hardware VOX circuit that will allow me to transmit before the repeater TX drops. This circuit will be enabled/disabled by GPIO8.

One other question:

When I switch channels I want some kind of telemetry, is the a way to say number or a count of beeps to let me know what channel I switched to. This one is not a biggie as worst case I can send ID or status several time for a count.

Thanks ALL for the help.

Sorry I just that you got it going… great job… let me try a couple things tomorrow wiith some kind of confirmation of a function complete.

N6ZCM… Dale

OK So I was able to tie Voice files i created using text to speech, saved the audio files in /etc/asterisk/local. needs to be 8000 32 bit mono ulaw
Creating a DTMF command to play the file, then using the Macro DTMF command to be able to stack several DTMF commands.

9410=cop,61,GPIO4:0 ;Link 1 On UF4
9411=cop,61,GPIO4:1 ;Link 1 Off UF4
9510=cop,61,GPIO5:0 ;Link 2 On UF5
9511=cop,61,GPIO5:1 ;Link 2 Off UF5
9610=cop,61,GPIO6:0 ;Link 3 On UF6
9611=cop,61,GPIO6:1 ;Link 3 Off UF6
9710=cop,61,GPIO7:0
9711=cop,61,GPIO7:1
9940=localplay,/etc/asterisk/local/link1on
9941=localplay,/etc/asterisk/local/link1off
9840=|t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048)

;Macro number = command string (each command separated by space) -end with HASH
1=*81 *80# ; play time and voice ID
91=*9411 *9511 *9611 ;All Links Off
90=*9410 *9510 *9610 ;All Links On
41=*9411 *9941 ;Link 1 Off with voice response
40=*9410 *9940 ;Link 1 On with Voice response
43=*9411 *9840 ;Link 1 Off with a Courtesy tone

Wow. thank you! I will work on it this week.

···

Gary Gonnella W6RYO
[email protected]

Video at: http://www.youtube.com/watch?v=Agrdjd0nyFo