Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Red Pitaya SDR-Transceiver
Antworten
Benutzeravatar
F4HJH
Offline
Beiträge: 7
Registriert: Di Jun 18, 2019 7:29 pm

Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von F4HJH » Mi Jun 19, 2019 10:26 pm


Hello everyone !

My name is Christophe, I am interested in SDR techniques and I have two RedPitaya cards (14 & 16 bits).
I looked for some help in France, but I have not found a solution yet.

Maybe some of you can put me on the right way ? :-)

I have some technical questions about the C25 module (Charly 25) sold at RedPitaya in the basic SDR kit.

This module is an HF amplifier, also a switchable filter for HF radio amateur bands.

Here is a view of the C25:
C25_Module_Vue_01.JPG

It is controlled in I2C since the Charly 25 version of Power SDR.

This : here is a list of some register values....
Sélection_017.png
With the version of Pavel Denim + PowerSDR mRX, the module is well controlled (filters, attenuator, Pres-Amp) except in emission!

So I have the project to drive myself this module with an arduino in I2C.

I made some attempts with Wire.h library but I can not do anything.
(I can give the codes tested, i'm not a I2C specialist...)

But I found this : (github charly25)
It's interresting : i can test control with a library https://github.com/nicoverduin/PCA9555

/*
Charly 25LC pin assignment for PCA9555 port expander IC:
Attenuator 12dB: I/O 0.0 -> Initial value = 0
Attenuator 24dB: I/O 0.1 -> Initial value = 0
VV 1 (preamp 1): I/O 0.2 -> Initial value = 0
VV 2 (preamp 2): I/O 0.3 -> Initial value = 0
unused: I/O 0.4 -> Initial value = 0
unused: I/O 0.5 -> Initial value = 0
unused: I/O 0.6 -> Initial value = 0
unused: I/O 0.7 -> Initial value = 0

10m: I/O 1.0 -> Initial value = 1
20m: I/O 1.1 -> Initial value = 0
40m: I/O 1.2 -> Initial value = 0
80m: I/O 1.3 -> Initial value = 0
Antenna relais: I/O 1.4 -> Initial value = 0
PA switch: I/O 1.5 -> Initial value = 0
unused: I/O 1.6 -> Initial value = 0
unused: I/O 1.7 -> Initial value = 0
*/


These are PCA9555 which allow the control of the whole.

I used this code: (with a library to drive the PCA955 in the form of GPIO)
=> At the end of my message ;)

Result:
  • The control of the attenuator, the pre amp works well.
    On the other hand, everything that is above I / O 1.0 to I / O 1.5 (LPF, BPF, Ant Relay, PA): I hear one or more relays, but nothing else happens .


I have the impression that there is a problem addressing the second PCA955 ...

Do you have an idea ?

Or do you know how to manage this module in i2C otherwise?





#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#include "clsPCA9555.h"
#include "Wire.h"

PCA9555 ioport(0x20);

void setup()
{
//
// Configuration des IOports (0 à 15) en sortie
//
for (uint8_t i = 0; i < 15; i++) {
ioport.pinMode(i, OUTPUT);
}

//
// On initialise tous les IOports (0 à 14) à l'état bas
//
for (uint8_t i = 0; i < 15; i++) {
ioport.digitalWrite(i, LOW);
delay(50);
}
Serial.begin(9600); // initialisation de la liaison série pour utilisation de la console
}

void loop()
{
// Attenuator 12dB
uint8_t i = 0; // Valeur de l'IOport

ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("Attenuator 12 dB / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("Attenuator 12 dB / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW ");
Serial.println( );
Serial.println( );
delay(2000);

// Attenuator 24dB
i = 1; // Valeur de l'IOport
ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("Attenuator 24 dB / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("Attenuator 24 dB / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW ");
Serial.println( );
Serial.println( );
delay(2000);

// VV 1 (preamp 1)
i = 2; // Valeur de l'IOport
ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("VV 1 (preamp 1) / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("VV 1 (preamp 1) / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW ");
Serial.println( );
Serial.println( );
delay(2000);

// VV 2 (preamp 2)
i = 3; // Valeur de l'IOport
ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("VV 2 (preamp 2) / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("VV 2 (preamp 2) / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW ");
Serial.println( );
Serial.println( );
delay(2000);

// LPF 10m
i = 8; // Valeur de l'IOport
ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("LPF 10m / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW "); // La valeur initiale pour le LPF 10m est à HIGH
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("LPF 10m / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

// BPF 20m
i = 9; // Valeur de l'IOport
ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("BPF 20m / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("BPF 20m / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW ");
Serial.println( );
Serial.println( );
delay(2000);

// BPF 40m
i = 10; // Valeur de l'IOport
ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("BPF 40m / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("BPF 40m / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW ");
Serial.println( );
Serial.println( );
delay(2000);

// BPF 80m
i = 11; // Valeur de l'IOport
ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("BPF 80m / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("BPF 80m / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW ");
Serial.println( );
Serial.println( );
delay(2000);

// Antenna relay
i = 12; // Valeur de l'IOport
ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("Antenna relay / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("Antenna relay / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW ");
Serial.println( );
Serial.println( );
delay(2000);

// PA switch
i = 13; // Valeur de l'IOport
ioport.digitalWrite(i, HIGH);
Serial.print("_______________________________________________");
Serial.println( );
Serial.print("PA switch / IOport = ");
Serial.print(i);
Serial.print(" IOport : HIGH ");
Serial.println( );
Serial.println( );
delay(2000);

ioport.digitalWrite(i, LOW);
Serial.print("PA switch / IOport = ");
Serial.print(i);
Serial.print(" IOport : LOW ");
Serial.println( );
Serial.println( );
delay(2000);

}

Benutzeravatar
dj1aus
Offline
Beiträge: 29
Registriert: Mi Apr 27, 2016 11:11 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von dj1aus » Mi Jun 19, 2019 10:33 pm


Hi Christophe,
are you coming to the HamRadio this weekend?
We should meet and have a short chat.

I do have the "silver box", and it works perfectly with my 14bit - but with the 16bit it doesn't drive more than 3W (which is logical because the RP16 drive is lower than ithe RP14).

Would love to discuss your ideas about it.

Just write to this forum, I will be checking it when I am on the Hamradio.

And by the way: The Team of C25 (who developed the silver box) is also at the HamRadio so you can have for sure a great informational chat with them.

Best regards
Alexander DJ1AUS

Benutzeravatar
F4HJH
Offline
Beiträge: 7
Registriert: Di Jun 18, 2019 7:29 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von F4HJH » Do Jun 20, 2019 12:15 pm


Hi Aleksander,
are you coming to the HamRadio this weekend?
We should meet and have a short chat.
No ... May be next year.
I do have the "silver box", and it works perfectly with my 14bit
As me, the set up works very well with SDR Power C25 Edition, but i don't have tested with Alpine-Linux and apps from Pavel Denim
but with the 16bit it doesn't drive more than 3W (which is logical because the RP16 drive is lower than ithe RP14)
It's interresting ! i did not know, i don't have made measure yet to compare.

I will continue to feed this forum, and I will take a little more time on weekends to give more details.

73'S
F4HJH / Christophe

Benutzeravatar
DC9OE
Offline
Beiträge: 202
Registriert: So Apr 24, 2016 3:14 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von DC9OE » Do Jun 20, 2019 4:26 pm


Hi Cristophe, you don't have to write any SW for this (unless you love to Do it of course).Everything is readily available, supported by us, the C25 Team.
Will Come back with more info when I am back from hamradio.

73, Edwin DC9OE
20190620_152248.jpg

Benutzeravatar
F4HJH
Offline
Beiträge: 7
Registriert: Di Jun 18, 2019 7:29 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von F4HJH » Do Jun 20, 2019 7:41 pm


Hi Edwin!

Thank you for the participation.
Nice photo! It makes you want to go further :-)

I wait for your return, in the meantime.

73'S and good hamradio salon!

Benutzeravatar
DC9OE
Offline
Beiträge: 202
Registriert: So Apr 24, 2016 3:14 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von DC9OE » Mi Jun 26, 2019 12:26 pm


Hi Christophe, as promised - enclosed please find a link to some Arduino SW which can be used to control your Charly 25 Board sold by Red Pitaya.

https://charly25-sdr.github.io/software/arduino

SW was written by Markus, DG8MG.

73,Edwin - DC9OE

Benutzeravatar
F4HJH
Offline
Beiträge: 7
Registriert: Di Jun 18, 2019 7:29 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von F4HJH » Mi Jun 26, 2019 4:36 pm


Hi Edwin !

Thanks for the link ;) (i know it some days ago)
I will test theses sketch for controling BPF of my C25 module. I'm waiting for the display.

Do you know how i can control the TX in I2C with theses sketchs ?

73 Christophe / F4HJH

Benutzeravatar
DC9OE
Offline
Beiträge: 202
Registriert: So Apr 24, 2016 3:14 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von DC9OE » Mi Jun 26, 2019 4:58 pm


Hi Christophe,

unfortunately not - I am only the HW guy in the team ... :-)
My SW knowledge is very limitted.

Will ask Markus and come back.

73, Edwin - DC9OE

Benutzeravatar
F4HJH
Offline
Beiträge: 7
Registriert: Di Jun 18, 2019 7:29 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von F4HJH » Mi Jun 26, 2019 5:19 pm


DC9OE hat geschrieben: Mi Jun 26, 2019 4:58 pm Will ask Markus and come back.
Hi Edwin !

Thanks !!

The existing sketches are very good bases for understanding how the module works. If i can control the PA (and antenna relay ?) for transmitting it will be very cool.

73'S Christophe / F4HJH

Benutzeravatar
DC9OE
Offline
Beiträge: 202
Registriert: So Apr 24, 2016 3:14 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von DC9OE » Fr Jun 28, 2019 11:08 am


Hi Christophe,

I have talked to Markus yesterday.
If you use the link we gave you and look for the AB Version (All Band) of the software, Transmit and Transmit/Receive Relay switching is included in the code.

73,Edwin - DC9OE

Benutzeravatar
F4HJH
Offline
Beiträge: 7
Registriert: Di Jun 18, 2019 7:29 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von F4HJH » Sa Jun 29, 2019 8:48 am


Hi Edwin,

many thanks for taking the time to contcat Markus.

I've just forked the code under Github, and will test and adapdt the code : https://github.com/Charly25-SDR/arduino ... r_V1_2.ino

I will come back to give news of my tests and modifications.

73'S
Christophe / F4HJH

Benutzeravatar
DC9OE
Offline
Beiträge: 202
Registriert: So Apr 24, 2016 3:14 pm

Re: Hamlab C25 Module (PA/BPF) of RedPitaya SDR Basic Kit (14 Bits)

Beitrag von DC9OE » Sa Jun 29, 2019 2:25 pm


Christophe, Good luck and have fun!

If you need any further help just let us know.

73,Edwin - DC9OE

Antworten