¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io
Date

Added Folder /Community Project - Multi-Operator TX Control for Jeff #file-notice

[email protected] Notification
 

Alan Blind, WA9WUD <a.alan.blind@...> added folder /Community Project - Multi-Operator TX Control for Jeff


Re: Interlocking

 

Boston Creme Pie!

Oh, the other Pi ;-)

Dave wo2x

On Mar 7, 2021, at 9:25 AM, Marty Boroff via groups.io <m_boroff@...> wrote:


Once you get hooked on them, like radios, you can¡¯t have enough pi¡¯s.


Re: Interlocking

 

Steve

I don¡¯t think many people believe the pi zero would be robust enough. I siggest you get a 4Gb pi 4 and matching power supply. If this project does not work for you there are a ton of other projects.?

Once you get hooked on them, like radios, you can¡¯t have enough pi¡¯s.

73, Marty WD9GYM?




On Sunday, March 7, 2021, 4:03 AM, Steve Bunting M0BPQ <steve@...> wrote:

Wow - amazing work folks. Thanks so much

I need to buy some more hardware to test this out! Could I get away with using a Pi-Zero for this to keep costs down?

Cheers
Steve


Re: Interlocking

 

Wow - amazing work folks. Thanks so much

I need to buy some more hardware to test this out! Could I get away with using a Pi-Zero for this to keep costs down?

Cheers
Steve


Re: Interlocking

 

The KS0212 boards available on Amazon for under$10 would be inexpensive option as it plugs right onto the GPIO pins and gives 4 relays. There is a node downloadable for that board.

Dave wo2x

On Mar 6, 2021, at 11:58 PM, Tom Schaefer NY4I <thomasmschaefer@...> wrote:

?Makes sense. I never mentioned anything about GPIO pins though. Perhaps it was someone else.

I guess that would be needed to cut off the keying line to the radio. I didn¡¯t address the client side Pi.

I was just testing out a theory about the software control flow. So this was not intended to be complete. It¡¯s a community effort so my flow was just to generate some ideas. And poke holes in it¡ªalways encouraged during design.

Tom NY4I


Principal Solutions Architect
Better Software Solutions, Inc.
727-437-2771

On Mar 6, 2021, at 10:42 PM, David De Coons wo2x <RocketNJ@...> wrote:

?He meant GPIO pins on the PIs

Dave wo2x

Sent from my waxed string and tin cans.

On Mar 6, 2021, at 10:36 PM, Tom Schaefer NY4I <thomasmschaefer@...> wrote:
?Grip pins? I assume a typo but don¡¯t understand. If not a typo, I really don¡¯t understand.

Tom

Principal Solutions Architect
Better Software Solutions, Inc.
727-437-2771










Re: Interlocking

 

Makes sense. I never mentioned anything about GPIO pins though. Perhaps it was someone else.

I guess that would be needed to cut off the keying line to the radio. I didn¡¯t address the client side Pi.

I was just testing out a theory about the software control flow. So this was not intended to be complete. It¡¯s a community effort so my flow was just to generate some ideas. And poke holes in it¡ªalways encouraged during design.

Tom NY4I


Principal Solutions Architect
Better Software Solutions, Inc.
727-437-2771

On Mar 6, 2021, at 10:42 PM, David De Coons wo2x <RocketNJ@...> wrote:

?He meant GPIO pins on the PIs

Dave wo2x

Sent from my waxed string and tin cans.

On Mar 6, 2021, at 10:36 PM, Tom Schaefer NY4I <thomasmschaefer@...> wrote:

?Grip pins? I assume a typo but don¡¯t understand. If not a typo, I really don¡¯t understand.

Tom

Principal Solutions Architect
Better Software Solutions, Inc.
727-437-2771







Re: Interlocking

 

To operate a relay. Hench a pi at each location.

73, Marty




On Saturday, March 6, 2021, 10:42 PM, David De Coons wo2x <RocketNJ@...> wrote:

He meant GPIO pins on the PIs

Dave wo2x

Sent from my waxed string and tin cans.

> On Mar 6, 2021, at 10:36 PM, Tom Schaefer NY4I <thomasmschaefer@...> wrote:
>
> ?Grip pins? I assume a typo but don¡¯t understand. If not a typo, I really don¡¯t understand.
>
> Tom
>
> Principal Solutions Architect
> Better Software Solutions, Inc.
> 727-437-2771
>
>
>
>






Re: Interlocking

 

He meant GPIO pins on the PIs

Dave wo2x

Sent from my waxed string and tin cans.

On Mar 6, 2021, at 10:36 PM, Tom Schaefer NY4I <thomasmschaefer@...> wrote:

?Grip pins? I assume a typo but don¡¯t understand. If not a typo, I really don¡¯t understand.

Tom

Principal Solutions Architect
Better Software Solutions, Inc.
727-437-2771




Re: Interlocking

 

Grip pins? I assume a typo but don¡¯t understand. If not a typo, I really don¡¯t understand.

Tom

Principal Solutions Architect
Better Software Solutions, Inc.
727-437-2771


Re: Interlocking

 

Tom

The reason I suggested multiple node-red servers was because you suggested you needed the grip pins at each site to inhibit the transmitter. You don¡¯t need multiple dashboards but you can use node-red to utilize the mqtt messages.

73, Marty wd9gym?




On Saturday, March 6, 2021, 8:05 PM, Tom Schaefer NY4I <thomasmschaefer@...> wrote:

[Edited Message Follows]

Here is a simple interlock using http-in. It makes it easy to test the concept with a web browser rather than setup multiple node-red servers. Easily changed once the concept is worked out. Perhaps it gives us a place to start.?

I built this before I read Robert's post so I have to read that to see what would need to change. Specifically, the idea of sending a message to each node upon any one node getting the token requires more exploration. I can see the case for that so the nodes do not need to ask versus my flow which is more of a poll type system.

I put a comment in the flow that describes it a bit.?

NY4I-Interlock.json

This is my first self-created flow versus copying and modifying others found here so no doubt there are much better ways to do this.

Tom NY4I
Tom


Re: Interlocking

 

Forgot something...

Call it with??nodered IP>:1880/interlock?action=RX or??nodered IP>:1880/interlock?action=TX

Use two computers for maximum effect.

Tom NY4I


Re: Interlocking

 
Edited

Here is a simple interlock using http-in. It makes it easy to test the concept with a web browser rather than setup multiple node-red servers. Easily changed once the concept is worked out. Perhaps it gives us a place to start.?

I built this before I read Robert's post so I have to read that to see what would need to change. Specifically, the idea of sending a message to each node upon any one node getting the token requires more exploration. I can see the case for that so the nodes do not need to ask versus my flow which is more of a poll type system.

I put a comment in the flow that describes it a bit.?

NY4I-Interlock.json

This is my first self-created flow versus copying and modifying others found here so no doubt there are much better ways to do this.

Tom NY4I
Tom


Re: Interlocking

 

¿ªÔÆÌåÓý


I¡¯m brand new to this group, so please forgive me if I¡¯m out of order. ?

I¡¯m pretty sure MQTT is not feasible for passing the transmit token. ?

I¡¯d think about doing it as a mesh, i.e.:

- making this peer to peer since there are a small number of participants
- there will need to be a way that the clients discover each other, a topic on a public MQTT broker may work for peer discovery
- use UDP to communicate between the clients
- one of the clients would be elected as the ¡®master¡¯ and control the global state.
- the secondary clients would also maintain a copy of the global state
- each client would send a heartbeat to the other clients periodically to detect when a peer has gone offline
- if the current master goes offline, a new master would be elected by the existing peers
- I¡¯m not sure if you want to deal with a split brain situation or not, that may be getting a little to far into the weeds
- if a secondary client goes offline, the other clients would continue one without it
- a returning client would send something like a hello message to the other clients, probably through a MQTT message as part of the peer discovery
- the master would send the new connecting client the current state

Something like this would happen when a client wants to get the transmit token: it would send the request to the master. ?Assuming the token is free, the master would send a message to all of the secondary clients that the token is going to the requesting client. ?When that client has finished, it would send a message to the master that it¡¯s done transmitting. ?The master would send a token is free message to all the secondary clients. ?You could also think about implementing some sort of a reservation so that when the token is busy the client holding the reservation gets the token right away when it¡¯s freed. ?

The recovery of the transmit token if the client who possesses it goes down should pretty straight forward. ?The the heartbeats will detect that the token owner is offline and after some sort of a retry period, the master will declare that the token is free again and move along. ?

I¡¯m positive I¡¯ve left lots that's important out, but this could serve to get some ideas going. ?This type of thing has been done tons of times, I¡¯m sure there¡¯s something similar out there already.

Anyway, my $.02, HTH.

¡ª
73, Robert N7GET

On Mar 6, 2021, at 12:40 PM, Tom Schaefer NY4I <thomasmschaefer@...> wrote:

The more I think about it the less I like doing it this way. If I have 4 stations, the transmission time to grab the token will be a bit slow since Iw old need to hear back from all the other stating they do not have it. I do not like the idea of a central server but it would make interlock procurement faster.

Essentially, clients send a message to a central node to request permission to transmit. If no one else has XMIT rights, the central server sends a message back to the requestor granting transmit privileges. A timeout mechanism has to be incorporated too. MQTT might be too much here so a simple message on the wire between nodes.

Anyway, still thinking it through for speed.

Tom NY4I




On Mar 5, 2021, at 6:01 PM, David De Coons wo2x <RocketNJ@...> wrote:

That is how MultiFlex works.
?
Dave wo2x
?
?
From:?[email protected]?<[email protected]>?On Behalf Of?Tom Schaefer NY4I
Sent:?Friday, March 5, 2021 5:24 PM
To:?[email protected]
Subject:?Re: [nodered-hamradio] Interlocking
?
Not too complicate this too much but if this is going to go to network separated stations, wouldn¡¯t it need the idea of a token request and a token confirmation? That way a station requests the baton and then waits to make sure it has the baton (by the other stations stating they do not have it).
?
Tom NY4I


On Mar 5, 2021, at 5:10 PM, Alan Blind, WA9WUD <a.alan.blind@...> wrote:
?
Steve

I went ahead and built a four-operator / PTT control flow. ?We can figure out the transceiver interface later. ?For now, I used a simulated "TX-True" or "TX-False" input. ?I also built a test panel with swithes to simulate the inputs.

Hoping others can jump in with their ideas.

The .json file is attached to this message.

The flow will operate a GPIO based relay to operate either a PTT circuit or the "TX Inhibit" RCA connection to the Flex. ?We can replace the relay with a TCP-based inhibit later.

If an operator has "TX-True", all other operators cannot TX. ?The dashboard, on each flow, will show the TX status of all four stations.

There are four flows, one for each operator. ?All the flows are connected via a mosquito MQTT broker, so each station can be remote from the others. ?You will need to install Mosequetto on a single device and reconfigure the MQTT ?in and out Nodes to the IP address of the device.

Each operator can see the status of all four stations on their Dashboard. ?

The flow can be run on either Windows or Raspberry Pi. ?You can use a Pi 3 with no problems to save on costs.

Here is the main part of the flow:


<Screen Shot 2021-03-05 at 4.51.07 PM.png>

And here is the dashboard:

<Screen Shot 2021-03-05 at 4.50.42 PM.png>

Alan
WA9WUD
"
<Multi Station TX Flow.json>
?




Re: Updated Wiki Page: Setting up Node Red and FRStack on a 32 bit Raspberry Pi OS #wiki-notice

 

frs flow

On Fri, Mar 5, 2021 at 9:21 PM Charlie Rubenstein <charlier@...> wrote:
Well, it Looks like it's there.

ls

appsettings.json

frstackNodeRedV106.json

FRStackWebApi

FRStackWebApi.deps.json

FRStackWebApi.dll

FRStackWebApi.pdb

FRStackWebApiRpi.zip

FRStackWebApiRpi.zip.1

FRStackWebApiRpi.zip.2

FRStackWebApi.runtimeconfig.json

FRStackWebApi.service

Microsoft.Extensions.Configuration.Abstractions.dll

Microsoft.Extensions.Configuration.Binder.dll

Microsoft.Extensions.Configuration.CommandLine.dll

Microsoft.Extensions.Configuration.dll

Microsoft.Extensions.Configuration.EnvironmentVariables.dll

Microsoft.Extensions.Configuration.FileExtensions.dll

Microsoft.Extensions.Configuration.Json.dll

Microsoft.Extensions.Configuration.UserSecrets.dll

Microsoft.Extensions.DependencyInjection.Abstractions.dll

Microsoft.Extensions.DependencyInjection.dll

Microsoft.Extensions.FileProviders.Abstractions.dll

Microsoft.Extensions.FileProviders.Physical.dll

Microsoft.Extensions.FileSystemGlobbing.dll

Microsoft.Extensions.Hosting.Abstractions.dll

Microsoft.Extensions.Hosting.dll

Microsoft.Extensions.Hosting.Systemd.dll

Microsoft.Extensions.Logging.Abstractions.dll

Microsoft.Extensions.Logging.Configuration.dll

Microsoft.Extensions.Logging.Console.dll

Microsoft.Extensions.Logging.Debug.dll

Microsoft.Extensions.Logging.dll

Microsoft.Extensions.Logging.EventLog.dll

Microsoft.Extensions.Logging.EventSource.dll

Microsoft.Extensions.Options.ConfigurationExtensions.dll

Microsoft.Extensions.Options.dll

Microsoft.Extensions.Primitives.dll

Newtonsoft.Json.dll

ReadMe.html

SoftwareLicense.rtf

System.IO.Ports.dll

pi@SDRPlay:/usr/local/frstack $?



That's the /usr/local/frstack? directory


Charlie


Re: Interlocking

 

¿ªÔÆÌåÓý

The more I think about it the less I like doing it this way. If I have 4 stations, the transmission time to grab the token will be a bit slow since Iw old need to hear back from all the other stating they do not have it. I do not like the idea of a central server but it would make interlock procurement faster.

Essentially, clients send a message to a central node to request permission to transmit. If no one else has XMIT rights, the central server sends a message back to the requestor granting transmit privileges. A timeout mechanism has to be incorporated too. MQTT might be too much here so a simple message on the wire between nodes.

Anyway, still thinking it through for speed.

Tom NY4I




On Mar 5, 2021, at 6:01 PM, David De Coons wo2x <RocketNJ@...> wrote:

That is how MultiFlex works.
?
Dave wo2x
?
?
From:?[email protected]?<[email protected]>?On Behalf Of?Tom Schaefer NY4I
Sent:?Friday, March 5, 2021 5:24 PM
To:?[email protected]
Subject:?Re: [nodered-hamradio] Interlocking
?
Not too complicate this too much but if this is going to go to network separated stations, wouldn¡¯t it need the idea of a token request and a token confirmation? That way a station requests the baton and then waits to make sure it has the baton (by the other stations stating they do not have it).
?
Tom NY4I


On Mar 5, 2021, at 5:10 PM, Alan Blind, WA9WUD <a.alan.blind@...> wrote:
?
Steve

I went ahead and built a four-operator / PTT control flow. ?We can figure out the transceiver interface later. ?For now, I used a simulated "TX-True" or "TX-False" input. ?I also built a test panel with swithes to simulate the inputs.

Hoping others can jump in with their ideas.

The .json file is attached to this message.

The flow will operate a GPIO based relay to operate either a PTT circuit or the "TX Inhibit" RCA connection to the Flex. ?We can replace the relay with a TCP-based inhibit later.

If an operator has "TX-True", all other operators cannot TX. ?The dashboard, on each flow, will show the TX status of all four stations.

There are four flows, one for each operator. ?All the flows are connected via a mosquito MQTT broker, so each station can be remote from the others. ?You will need to install Mosequetto on a single device and reconfigure the MQTT ?in and out Nodes to the IP address of the device.

Each operator can see the status of all four stations on their Dashboard. ?

The flow can be run on either Windows or Raspberry Pi. ?You can use a Pi 3 with no problems to save on costs.

Here is the main part of the flow:


<Screen Shot 2021-03-05 at 4.51.07 PM.png>

And here is the dashboard:

<Screen Shot 2021-03-05 at 4.50.42 PM.png>

Alan
WA9WUD
"
<Multi Station TX Flow.json>
?



Re: Updated Wiki Page: Setting up Node Red and FRStack on a 32 bit Raspberry Pi OS #wiki-notice

 

Well, it Looks like it's there.

ls

appsettings.json

frstackNodeRedV106.json

FRStackWebApi

FRStackWebApi.deps.json

FRStackWebApi.dll

FRStackWebApi.pdb

FRStackWebApiRpi.zip

FRStackWebApiRpi.zip.1

FRStackWebApiRpi.zip.2

FRStackWebApi.runtimeconfig.json

FRStackWebApi.service

Microsoft.Extensions.Configuration.Abstractions.dll

Microsoft.Extensions.Configuration.Binder.dll

Microsoft.Extensions.Configuration.CommandLine.dll

Microsoft.Extensions.Configuration.dll

Microsoft.Extensions.Configuration.EnvironmentVariables.dll

Microsoft.Extensions.Configuration.FileExtensions.dll

Microsoft.Extensions.Configuration.Json.dll

Microsoft.Extensions.Configuration.UserSecrets.dll

Microsoft.Extensions.DependencyInjection.Abstractions.dll

Microsoft.Extensions.DependencyInjection.dll

Microsoft.Extensions.FileProviders.Abstractions.dll

Microsoft.Extensions.FileProviders.Physical.dll

Microsoft.Extensions.FileSystemGlobbing.dll

Microsoft.Extensions.Hosting.Abstractions.dll

Microsoft.Extensions.Hosting.dll

Microsoft.Extensions.Hosting.Systemd.dll

Microsoft.Extensions.Logging.Abstractions.dll

Microsoft.Extensions.Logging.Configuration.dll

Microsoft.Extensions.Logging.Console.dll

Microsoft.Extensions.Logging.Debug.dll

Microsoft.Extensions.Logging.dll

Microsoft.Extensions.Logging.EventLog.dll

Microsoft.Extensions.Logging.EventSource.dll

Microsoft.Extensions.Options.ConfigurationExtensions.dll

Microsoft.Extensions.Options.dll

Microsoft.Extensions.Primitives.dll

Newtonsoft.Json.dll

ReadMe.html

SoftwareLicense.rtf

System.IO.Ports.dll

System.IO.Ports.Native.so

pi@SDRPlay:/usr/local/frstack $?



That's the /usr/local/frstack? directory


Charlie


Re: Updated Wiki Page: Setting up Node Red and FRStack on a 32 bit Raspberry Pi OS #wiki-notice

 

¿ªÔÆÌåÓý

Sounds like the web api is not installed.

Dave wo2x


On Mar 5, 2021, at 8:21 PM, Charlie Rubenstein <charlier@...> wrote:

?Sure, really anytime works for me Alan. It?looked like it installed ok, but then didn't run. I tried checking the status of the service and this is what I got:

pi@SDRPlay:~ $ sudo systemctl status FRStackWebApi

¡ñ FRStackWebApi.service - FRStack Web APIs

?? Loaded: loaded (/lib/systemd/system/FRStackWebApi.service; enabled; vendor preset: enabled)

?? Active: failed (Result: exit-code) since Fri 2021-03-05 20:15:52 EST; 2min 5s ago

? Process: 5412 ExecStart=/usr/bin/dotnet FRStackWebApi.dll --urls http://*:5025 (code=exited, status=150)

?Main PID: 5412 (code=exited, status=150)

?

Mar 05 20:15:51 SDRPlay systemd[1]: FRStackWebApi.service: Failed with result 'exit-code'.

Mar 05 20:15:51 SDRPlay systemd[1]: Failed to start FRStack Web APIs.

Mar 05 20:15:52 SDRPlay systemd[1]: FRStackWebApi.service: Service RestartSec=100ms expired, scheduling restart.

Mar 05 20:15:52 SDRPlay systemd[1]: FRStackWebApi.service: Scheduled restart job, restart counter is at 5.

Mar 05 20:15:52 SDRPlay systemd[1]: Stopped FRStack Web APIs.

Mar 05 20:15:52 SDRPlay systemd[1]: FRStackWebApi.service: Start request repeated too quickly.

Mar 05 20:15:52 SDRPlay systemd[1]: FRStackWebApi.service: Failed with result 'exit-code'.

Mar 05 20:15:52 SDRPlay systemd[1]: Failed to start FRStack Web APIs.

pi@SDRPlay:~ $?


Charlie

So, what ever time works for you, I'm fine.



Re: Updated Wiki Page: Setting up Node Red and FRStack on a 32 bit Raspberry Pi OS #wiki-notice

 

Sure, really anytime works for me Alan. It?looked like it installed ok, but then didn't run. I tried checking the status of the service and this is what I got:

pi@SDRPlay:~ $ sudo systemctl status FRStackWebApi

¡ñ FRStackWebApi.service - FRStack Web APIs

?? Loaded: loaded (/lib/systemd/system/FRStackWebApi.service; enabled; vendor preset: enabled)

?? Active: failed (Result: exit-code) since Fri 2021-03-05 20:15:52 EST; 2min 5s ago

? Process: 5412 ExecStart=/usr/bin/dotnet FRStackWebApi.dll --urls http://*:5025 (code=exited, status=150)

?Main PID: 5412 (code=exited, status=150)

?

Mar 05 20:15:51 SDRPlay systemd[1]: FRStackWebApi.service: Failed with result 'exit-code'.

Mar 05 20:15:51 SDRPlay systemd[1]: Failed to start FRStack Web APIs.

Mar 05 20:15:52 SDRPlay systemd[1]: FRStackWebApi.service: Service RestartSec=100ms expired, scheduling restart.

Mar 05 20:15:52 SDRPlay systemd[1]: FRStackWebApi.service: Scheduled restart job, restart counter is at 5.

Mar 05 20:15:52 SDRPlay systemd[1]: Stopped FRStack Web APIs.

Mar 05 20:15:52 SDRPlay systemd[1]: FRStackWebApi.service: Start request repeated too quickly.

Mar 05 20:15:52 SDRPlay systemd[1]: FRStackWebApi.service: Failed with result 'exit-code'.

Mar 05 20:15:52 SDRPlay systemd[1]: Failed to start FRStack Web APIs.

pi@SDRPlay:~ $?


Charlie

So, what ever time works for you, I'm fine.



Re: Updated Wiki Page: Setting up Node Red and FRStack on a 32 bit Raspberry Pi OS #wiki-notice

 

Charlie

I can zoom tomorrow to help you install FRStack. ?Let me know if this would help and time.

Alan
WA9WUD
a.alan.blind@...


Re: Updated Wiki Page: Setting up Node Red and FRStack on a 32 bit Raspberry Pi OS #wiki-notice

 

I got this far.....

pi@SDRPlay:/usr/local/frstack $ dotnet FRStackWebApi.dll --urls http://*:5025

It was not possible to find any compatible framework version

The framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found.

? - The following frameworks were found:

? ? ? 5.0.3 at [/opt/dotnet/shared/Microsoft.AspNetCore.App]

?

You can resolve the problem by installing the specified framework and/or SDK.

?

The specified framework can be found at:

? - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=3.1.0&arch=arm&rid=raspbian.10-arm

pi@SDRPlay:/usr/local/frstack $?

I was following your instructions.

Charlie KB8CR