Master AF über CAT?

Software-Installation, Red Pitaya, SDR-Software, Modifikationen
Benutzeravatar
DL5BCA
Beiträge: 29
Registriert: 25 Apr 2016, 14:23

Master AF über CAT?

Beitragvon DL5BCA » 21 Sep 2017, 18:58

Hallo,
ich möchte das PowerSDR per CAT steuern. Ein Arduino verrichtet das ganz prima. :-)

Die Umschaltung der Bänder, der Tune Steps und auch der VFO A funktionieren super.

Nun hatte ich auch gedacht, dass ich mit einem KY-040 den Master-AF einstellen kann.
Leider bekomme ich es nicht hin, da das Haendling ein wenig anders ist, als die anderen Setting.

Man muss mit einem Befehl den aktuellen Wert auslesen, um ihn dann entweder höher oder vermindert setzten kann.
Wenn ich das machen, reagiert das PowerSDR ganz komisch....

Hat schon jemand den Master AF über die CAT gesteuert?
Wenn ja, wie?

73 Thomas DL5BCA
Benutzeravatar
DH1AKF
Beiträge: 65
Registriert: 29 Feb 2016, 18:30

Re: Master AF über CAT?

Beitragvon DH1AKF » 21 Sep 2017, 21:34

Hallo Thomas,
willst Du uns Rätsel vorlegen? Google findet zwar den Drehgeber KY-040, aber beim Begriff "Master-AF" kommen seltsame Resultate...
Also versuche doch bitte mal, mit einfachen (möglichst deutschen) Begriffen darzustellen, was Du überhaupt meinst.
Im Übrigen verstehe ich von vornherein nicht, dass "PowerSDR" ein Funkgerät sein soll, welches man mit CAT steuern kann.
Bitte um etwas mehr und verständlicheren Kommentar.
73, Wolfgang
DL2BBF
Beiträge: 124
Registriert: 05 Feb 2016, 21:37

Re: Master AF über CAT?

Beitragvon DL2BBF » 21 Sep 2017, 22:17

hallo Thomas,
hier ein link zur Referenz für die PowerSDR Openhpsdr CAT Befehle

http://svn.tapr.org/repos_sdr_windows/PowerSDR/branches/doc/CAT/PowerSDR%20CAT%20Command%20Reference%20Guide.pdf

Eventuell findest du ja was du suchst. Ich habe nur einmal die Funktion VFO und PTT mit dem Arduino programmiert.
Das funktioniert einwandfrei.

CatCommands.pdf
(360.57 KiB) 22-mal heruntergeladen
Hier findest du auch die Beschreibung für MasterAF


@
hallo Wolfgang,
Master AF ist in der PowerSDR Openhpsdr Software die Bezeichnung für den Master Lautstärke-Regler.

Die Software PowerSDR Openhpsdr kann mittels CAT Befehle gesteuert werden.
Somit der komplette Tranceiver.
73de DL2BBF
Hans

Mi parolas Esperanton
https://sites.google.com/site/dl2bbf/Home
Benutzeravatar
DL5BCA
Beiträge: 29
Registriert: 25 Apr 2016, 14:23

Re: Master AF über CAT?

Beitragvon DL5BCA » 22 Sep 2017, 20:02

Hallo,
Ich möchte ein Stand Alone Gerät bauen.
Dabei dient das Powersdr als virtuelle Funkgeräteoberfläche.

Mit einem Touchscreen möchte ich die Bedienung machen, jedoch einige Dreher/Schalter/Poties innerhalb von Powersdr mittels Drehgeber wie den KY-040 o.ö .

@Hans: Die Befehlsliste habe ich ausgedruckt.
Ich werde mich da nächste Woche weiter mit beschäftigen...

73 Thomas DL5BCA
dh3cs
Beiträge: 12
Registriert: 24 Mär 2016, 13:51

Re: Master AF über CAT?

Beitragvon dh3cs » 22 Sep 2017, 22:46

Hallo Thomas,

den Lautstärkeregler im Collapsed Screen für VFO A stellst du so auf z.B. auf 50% ein:
Serial.print("ZZLA050;");

siehe S.38 des CAT Manuals
(http://www.flexradio.com/downloads/powe ... guide-pdf/)

Den "Master AF"- Lautstärkeregler im Expanded Screen kannst du per Inkrementalgeber so nutzen,
dass du bei Start z.B. 30% voreinstellst und dann entsprechend dem Ergebnis des Inkrementalgebers
den Wert an den Serial.print ausgibst.
Hier mal einige Code Schnipsel, die ich aus meinem Programm herauskopiert habe:


#include <Encoder.h>

const byte InEnc1A = A1; //sind leider bei mir nur noch analoge Eingänge frei - funzt aber auch
const byte InEnc1B = A2;

Encoder Enc1(InEnc1A, InEnc1B);
long Enc1Position = 0;
long Enc1PosMerker = 0;

void setup()
{
pinMode(InEnc1A, INPUT);
pinMode(InEnc1B, INPUT);

Enc1.write(30); //erst mal den Geber und damit später die Lautstärke auf 30% setzen
}

void loop()
{
Enc1Position = Enc1.read(); // Encoder 1 auslesen

if ((millis() & 0xFE) == 0xFE) // nur alle x msecs, damit der sich nicht dauernd damit beschäftigt
{

// Encoder 1 z.B. für Lautstärke einstellen
// long Enc1Position = Enc1.read();
if (Enc1Position != Enc1PosMerker) //nur wenn sich was ändert
{
int Enc1Pos = Enc1Position; //den Wert für Serial.print und Setzen auf 0 oder 100 einfrieren
if (Enc1Position <0)
{
Enc1.write(0);
Enc1Pos = 0;
}
if (Enc1Position >100)
{
Enc1.write(100);
Enc1Pos = 100;
}
Serial.print("ZZAG" + addNullen(String(Enc1Pos), 3) + ";");
Enc1PosMerker = Enc1Position;
}
}
}

String addNullen(const String & notfit, int i)
{
String fin = "00000000000000000000"; // enthält 20 Nullen, auch zum Füllen des Frequenzstrings
int len = i - notfit.length();
if (len >= 0) return fin.substring(0, len) + notfit;
else return notfit.substring(0, i);
}


leider sind die Einrückungen auf der Strecke geblieben. Deswegen habe ich mal allen Balast aus meinem Programm rausgeschmissen und das lauffähige INO als ZIP angehängt.
Oben ist auch der Befehl ZZAG... für den MASTER AF genutzt, geht aber genauso mit ZZLA...

weitere Fragen oder Anregungen - gerne per Mail

73, Jörg
Dateianhänge
HPSDR_CAT_AF.zip
(1000 Bytes) 14-mal heruntergeladen
Benutzeravatar
DL5BCA
Beiträge: 29
Registriert: 25 Apr 2016, 14:23

Re: Master AF über CAT?

Beitragvon DL5BCA » 25 Sep 2017, 19:05

Hallo Jörg,

danke für die Antwort und den angehängten Arduino Code.

Der Code funktioniert hier prima...

Vom Prinzip habe ich es ähnlich gemacht.

Ich habe jedoch in meinem Code 4 Schalter und 2 Drehgeber dran...
Meinen Code habe ich hier auch mal ran gehängt...

Erstmal vielen Dank. Jetzt muss ich mal gucken, wie ich das in meinen Code angepasst bekomme.

73 Thomas DL5BCA - Man lernt nie aus... :-)
Dateianhänge
srd-3-serial_in.zip
(870 Bytes) 19-mal heruntergeladen
dh3cs
Beiträge: 12
Registriert: 24 Mär 2016, 13:51

Re: Master AF über CAT?

Beitragvon dh3cs » 26 Sep 2017, 20:57

Hallo Thomas,

bei mir wächst der Arduino Code auch noch, ist jedoch schon sehr umfangreich. Allerdings sind jetzt tatsächlich nur noch A6 und A7 auf dem Arduino- Nano frei. Auch auf der Frontplatte meines Gehäuses wird es eng. Ursprünglich waren die Bedienelemente für PIHPSDR vorgesehen. Nun sind diese auch über den Arduino zur CAT- Steuerung von PowerSDR genutzt.
Hallo Wolfang,
ich benutze PowerSDR überwiegend im Collapsed Mode und drehe lieber einen Knopf am Gerät als ein Mausrad.

Noch eine Anregung evt. auch andere OMs, die Knöpfe und Taster mögen. Ein "DTMF"-Mikrofon, für kleines Geld aus China, hängt auch am Arduino und die Tastaturmatrix wird über 2 analoge Eingänge abgefragt. Ermöglicht mit Mehrfachtastenbelegung zig Funktionen, u.a. Direkteingabe der Frequenz, Zoom, Band, Mode, Filter, Tune, NR, ...
Die einzige Aufgabe, die dem Arduino im PIHPSDR Betrieb verbleibt ist die Temperaturüberwachung (DS18B20) im Gehäuse (und DTMF Ton-Erzeugung). Bedienung im Pi-Mode erfolgt über ein Tablet per VNC. (Das WiFi Signal vom Pi 3 funkt aus dem geschlossenem Gehäuse)

Schalter (von li nach re):
Power 12VDC
Power 5VDC RedPitaya und Bandumschaltungslogik
Power 5VDC Raspberry Pi3

Auf den Arduino und den Pi gehen folgende Bedienelemente (von li nach re):
die roten Taster (Band up down, Freq up down - wird noch Dank deiner Anregung auf Mod geändert)
Drehimpulsgeber mit Tastfunktion (derzeit Lautstärke) {Programmausschnitt oben}
Doppelpoti mit Schalter / hinteres Poti (Width - bei > 2,8khz wird unten auf 100Hz abgesenkt, bei >3khz auf 10Hz, es gibt ja auch "breitere" OMs )
Drehimpulsgeber mit Tastfunktion (VFO, Tastung wechselt von 10Hz auf 250Hz Schritte - mit der Rastung ergibt das 1kHz pro Raste)

Der vordere Knopf vom Doppelpoti dient der analogen Lautstärkeeinstellung des internen NF-verstärkers.
Der Schalter an diesem Knopf schaltet das Clock Signal des AudioCodec weg, dadurch wird dieser bei RP-Start nicht erkannt und es enfallen damit die I2S- Lattenzaun- Störungen.
(die Knöpfe spendete mir ein netter OM samt daranhängendem defektem FT290R)

DH3CS_RP_SDR_PIHPSDR.JPG
TempAnzeige_VFO_B.png
TempAnzeige_VFO_B.png (7.27 KiB) 180 mal betrachtet
Zuletzt geändert von dh3cs am 26 Sep 2017, 21:49, insgesamt 1-mal geändert.
Benutzeravatar
DL5BCA
Beiträge: 29
Registriert: 25 Apr 2016, 14:23

Re: Master AF über CAT?

Beitragvon DL5BCA » 26 Sep 2017, 21:09

Hallo Jörg,
Mich würde interessieren, welche Regler/Knöpfe bei Dir mit dem Arduino gesteuert werden.
Hast Du das analog zu Deinem hier vorgestellten Code programmiert?
73 Thomas DL5BCA
dh3cs
Beiträge: 12
Registriert: 24 Mär 2016, 13:51

Re: Master AF über CAT?

Beitragvon dh3cs » 26 Sep 2017, 22:07

Hallo Thomas,
die Beschreibung der Knöpfe habe ich oben ergänzt.
Der Code ist wie schon geschrieben sehr umfangreich (>1000Zeilen), da ich auch die komplette Tastatur des Mikrofons verarbeite.
Den VFO-Drehgeber frage ich so ab:
long TunePosition = tuningEnc.read();
if (TunePosition != 0)
{

if (TunePosition < 0)
{
Serial.print("ZZSB;");
}
else
{
Serial.print("ZZSA;");
}
Serial.flush(); // wartet bis Sendepuffer leer
tuningEnc.write(0);


Das Poti für Width geht auf eine analogen Eingang.
Insgesamt ist zu den analogen Eingängen zu sagen, dass diese nicht auf Anhieb konstante Werte liefern. Ich wandle solange bis der Wert steht.
int Width = 0;
int diff =10;
int tempLast = 0;
int i=0;
do
{
Width= analogRead(AInPoti3);
diff = abs(tempLast - Width);
tempLast = Width;
i++;
} while (diff >2);
diff = abs(lastWidth-Width);
if(diff > 2)
{
int Wid = Width/10;
Wid*=50;
int low = 150;
if (Wid >= 2800)
{
low = 100;
if (Wid > 3400)
{
low = 50;
if (Wid > 4000)
low = 0;
}
}
int mid = low + Wid/2;
if (Wid > 10000) Wid = 10000;
Serial.print("ZZSF" + addNullen(String(mid), 4) + addNullen(String(Wid), 4) + ";");
Serial.flush(); //wartet bis Sendepuffer leer
}
lastWidth = Width;

Der Temperaturgeber wird über OneWire abgefragt und das ist sehr langsam (zig ms). Daher mache ich das nur alle etwa 4Sekunden.

Gruß
Jörg
Benutzeravatar
DL5BCA
Beiträge: 29
Registriert: 25 Apr 2016, 14:23

Re: Master AF über CAT?

Beitragvon DL5BCA » 26 Sep 2017, 22:24

Hallo Jörg,
Danke für die Ausführungen.

Das werde ich mir ab morgen zu Gemüte führen:-)
Das bringt mich sicher um einiges weiter.

Eine Frage hätte ich gleich: Warum ist die Varialble TunePosition eine Ling Variable? Müsste da nicht auch in gehen?

73 Thomas DL5BCA

Zurück zu „Software“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast