HFU HF Underground

Technical Topics => The RF Workbench => Topic started by: Radiotech on February 05, 2022, 1748 UTC

Title: New 850mW HF beacon,
Post by: Radiotech on February 05, 2022, 1748 UTC
Hello everyone!

I just finnished a small transmitter, made from a design called El Pititico. Its a one transistor transmitter that also has a low pass filter and is surprisingly stable. It puts out 850mW after the low pass filter. It draws about 140mA in TX using 12v supply, im really happy with this design. The enclosure is printed in PLA, with a 3d printer. The 2n2222a transistor gets really hot, but it seams to be able to handle it.

When keying the TX with a BC547c i only get about 650mW on the TX, but using a 13,8v supply i guess it will get a bit higher. The Arduino Micro draws 42mA in stand by current, i will have to look at reducing that.



I found a nice program for the arduino so it can transmitt Hellschreiber:

Code: [Select]
int radioPin = 13 ;
int sensorvalue;
 
typedef struct glyph {
    char ch ;
    word col[7] ;
} Glyph ;
 
const Glyph glyphtab[] PROGMEM = {
{' ', {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{'A', {0x07fc, 0x0e60, 0x0c60, 0x0e60, 0x07fc, 0x0000, 0x0000}},
{'B', {0x0c0c, 0x0ffc, 0x0ccc, 0x0ccc, 0x0738, 0x0000, 0x0000}},
{'C', {0x0ffc, 0x0c0c, 0x0c0c, 0x0c0c, 0x0c0c, 0x0000, 0x0000}},
{'D', {0x0c0c, 0x0ffc, 0x0c0c, 0x0c0c, 0x07f8, 0x0000, 0x0000}},
{'E', {0x0ffc, 0x0ccc, 0x0ccc, 0x0c0c, 0x0c0c, 0x0000, 0x0000}},
{'F', {0x0ffc, 0x0cc0, 0x0cc0, 0x0c00, 0x0c00, 0x0000, 0x0000}},
{'G', {0x0ffc, 0x0c0c, 0x0c0c, 0x0ccc, 0x0cfc, 0x0000, 0x0000}},
{'H', {0x0ffc, 0x00c0, 0x00c0, 0x00c0, 0x0ffc, 0x0000, 0x0000}},
{'I', {0x0ffc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{'J', {0x003c, 0x000c, 0x000c, 0x000c, 0x0ffc, 0x0000, 0x0000}},
{'K', {0x0ffc, 0x00c0, 0x00e0, 0x0330, 0x0e1c, 0x0000, 0x0000}},
{'L', {0x0ffc, 0x000c, 0x000c, 0x000c, 0x000c, 0x0000, 0x0000}},
{'M', {0x0ffc, 0x0600, 0x0300, 0x0600, 0x0ffc, 0x0000, 0x0000}},
{'N', {0x0ffc, 0x0700, 0x01c0, 0x0070, 0x0ffc, 0x0000, 0x0000}},
{'O', {0x0ffc, 0x0c0c, 0x0c0c, 0x0c0c, 0x0ffc, 0x0000, 0x0000}},
{'P', {0x0c0c, 0x0ffc, 0x0ccc, 0x0cc0, 0x0780, 0x0000, 0x0000}},
{'Q', {0x0ffc, 0x0c0c, 0x0c3c, 0x0ffc, 0x000f, 0x0000, 0x0000}},
{'R', {0x0ffc, 0x0cc0, 0x0cc0, 0x0cf0, 0x079c, 0x0000, 0x0000}},
{'S', {0x078c, 0x0ccc, 0x0ccc, 0x0ccc, 0x0c78, 0x0000, 0x0000}},
{'T', {0x0c00, 0x0c00, 0x0ffc, 0x0c00, 0x0c00, 0x0000, 0x0000}},
{'U', {0x0ff8, 0x000c, 0x000c, 0x000c, 0x0ff8, 0x0000, 0x0000}},
{'V', {0x0ffc, 0x0038, 0x00e0, 0x0380, 0x0e00, 0x0000, 0x0000}},
{'W', {0x0ff8, 0x000c, 0x00f8, 0x000c, 0x0ff8, 0x0000, 0x0000}},
{'X', {0x0e1c, 0x0330, 0x01e0, 0x0330, 0x0e1c, 0x0000, 0x0000}},
{'Y', {0x0e00, 0x0380, 0x00fc, 0x0380, 0x0e00, 0x0000, 0x0000}},
{'Z', {0x0c1c, 0x0c7c, 0x0ccc, 0x0f8c, 0x0e0c, 0x0000, 0x0000}},
{'0', {0x07f8, 0x0c0c, 0x0c0c, 0x0c0c, 0x07f8, 0x0000, 0x0000}},
{'1', {0x0300, 0x0600, 0x0ffc, 0x0000, 0x0000, 0x0000, 0x0000}},
{'2', {0x061c, 0x0c3c, 0x0ccc, 0x078c, 0x000c, 0x0000, 0x0000}},
{'3', {0x0006, 0x1806, 0x198c, 0x1f98, 0x00f0, 0x0000, 0x0000}},
{'4', {0x1fe0, 0x0060, 0x0060, 0x0ffc, 0x0060, 0x0000, 0x0000}},
{'5', {0x000c, 0x000c, 0x1f8c, 0x1998, 0x18f0, 0x0000, 0x0000}},
{'6', {0x07fc, 0x0c66, 0x18c6, 0x00c6, 0x007c, 0x0000, 0x0000}},
{'7', {0x181c, 0x1870, 0x19c0, 0x1f00, 0x1c00, 0x0000, 0x0000}},
{'8', {0x0f3c, 0x19e6, 0x18c6, 0x19e6, 0x0f3c, 0x0000, 0x0000}},
{'9', {0x0f80, 0x18c6, 0x18cc, 0x1818, 0x0ff0, 0x0000, 0x0000}},
{'*', {0x018c, 0x0198, 0x0ff0, 0x0198, 0x018c, 0x0000, 0x0000}},
{'.', {0x001c, 0x001c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{'?', {0x1800, 0x1800, 0x19ce, 0x1f00, 0x0000, 0x0000, 0x0000}},
{'!', {0x1f9c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{'(', {0x01e0, 0x0738, 0x1c0e, 0x0000, 0x0000, 0x0000, 0x0000}},
{')', {0x1c0e, 0x0738, 0x01e0, 0x0000, 0x0000, 0x0000, 0x0000}},
{'#', {0x0330, 0x0ffc, 0x0330, 0x0ffc, 0x0330, 0x0000, 0x0000}},
{'$', {0x078c, 0x0ccc, 0x1ffe, 0x0ccc, 0x0c78, 0x0000, 0x0000}},
{'/', {0x001c, 0x0070, 0x01c0, 0x0700, 0x1c00, 0x0000, 0x0000}},
} ;
 
#define NGLYPHS         (sizeof(glyphtab)/sizeof(glyphtab[0]))
 
void
encodechar(int ch)
{
    int i, x, y, fch ;
    word fbits ;
 
    /* It looks sloppy to continue searching even after you've
     * found the letter you are looking for, but it makes the
     * timing more deterministic, which will make tuning the
     * exact timing a bit simpler.
     */
    for (i=0; i<NGLYPHS; i++) {
        fch = pgm_read_byte(&glyphtab[i].ch) ;
        if (fch == ch) {
            for (x=0; x<7; x++) {
                fbits = pgm_read_word(&(glyphtab[i].col[x])) ;
                for (y=0; y<14; y++) {
                    if (fbits & (1<<y))
                        digitalWrite(radioPin, HIGH) ;
                    else
                        digitalWrite(radioPin, LOW) ;
                         
                    delayMicroseconds(4045L) ;
                }
            }
        }
    }
}
 
void
encode(char *ch)
{
    while (*ch != '\0')
        encodechar(*ch++) ;
}
 
void
setup()
{
  Serial.begin(9600) ;
  pinMode(radioPin, OUTPUT) ;
}
 
 
void
loop()
{

    sensorvalue = analogRead(A0);
   
    encode("CQ TEST CQ TEST ") ;

}

The TX is designed by PY2OHH and refined by DX explorer on youtube. The Arduino code is from the link below, at Brainwagon.org

https://brainwagon.org/2012/01/11/hellduino-sending-hellschreiber-from-an-arduino/ (https://brainwagon.org/2012/01/11/hellduino-sending-hellschreiber-from-an-arduino/)
Title: Re: New 850mW HF beacon,
Post by: Elf36 on February 05, 2022, 1813 UTC
Nice job. It looks great. What frequency will you be transmitting on? I'll try to remember to keep an ear out for it.
Title: Re: New 850mW HF beacon,
Post by: Teotwaki on February 06, 2022, 1531 UTC
A simple power reduction mod for the Arduino is to desolder the chip resistor that feeds the always on red LED labeled "POW" for power.
Title: Re: New 850mW HF beacon,
Post by: Radiotech on February 06, 2022, 1558 UTC
I finnished the code, it waits for 5 minutes and then transmitts temperature and voltage, if the voltage is above 10v. I am going to have it on my balcony with a dummy load for a few days to find any bugs. I also named the beacon "Gray1"

It transmitts on 7000,5kHz, 40m band, but i would like to move it up a bit before connecting an antenna.

I will try to do some desoldering on the board to lower consumption!

Code: [Select]
int radioPin = A0 ;
int sensorvaluetemp;
int sensorvaluevolt;
int displaytemp;
char buf1[10];
char buf2[10];
int timer;
 
typedef struct glyph {
    char ch ;
    word col[7] ;
} Glyph ;
 
const Glyph glyphtab[] PROGMEM = {
{' ', {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{'A', {0x07fc, 0x0e60, 0x0c60, 0x0e60, 0x07fc, 0x0000, 0x0000}},
{'B', {0x0c0c, 0x0ffc, 0x0ccc, 0x0ccc, 0x0738, 0x0000, 0x0000}},
{'C', {0x0ffc, 0x0c0c, 0x0c0c, 0x0c0c, 0x0c0c, 0x0000, 0x0000}},
{'D', {0x0c0c, 0x0ffc, 0x0c0c, 0x0c0c, 0x07f8, 0x0000, 0x0000}},
{'E', {0x0ffc, 0x0ccc, 0x0ccc, 0x0c0c, 0x0c0c, 0x0000, 0x0000}},
{'F', {0x0ffc, 0x0cc0, 0x0cc0, 0x0c00, 0x0c00, 0x0000, 0x0000}},
{'G', {0x0ffc, 0x0c0c, 0x0c0c, 0x0ccc, 0x0cfc, 0x0000, 0x0000}},
{'H', {0x0ffc, 0x00c0, 0x00c0, 0x00c0, 0x0ffc, 0x0000, 0x0000}},
{'I', {0x0ffc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{'J', {0x003c, 0x000c, 0x000c, 0x000c, 0x0ffc, 0x0000, 0x0000}},
{'K', {0x0ffc, 0x00c0, 0x00e0, 0x0330, 0x0e1c, 0x0000, 0x0000}},
{'L', {0x0ffc, 0x000c, 0x000c, 0x000c, 0x000c, 0x0000, 0x0000}},
{'M', {0x0ffc, 0x0600, 0x0300, 0x0600, 0x0ffc, 0x0000, 0x0000}},
{'N', {0x0ffc, 0x0700, 0x01c0, 0x0070, 0x0ffc, 0x0000, 0x0000}},
{'O', {0x0ffc, 0x0c0c, 0x0c0c, 0x0c0c, 0x0ffc, 0x0000, 0x0000}},
{'P', {0x0c0c, 0x0ffc, 0x0ccc, 0x0cc0, 0x0780, 0x0000, 0x0000}},
{'Q', {0x0ffc, 0x0c0c, 0x0c3c, 0x0ffc, 0x000f, 0x0000, 0x0000}},
{'R', {0x0ffc, 0x0cc0, 0x0cc0, 0x0cf0, 0x079c, 0x0000, 0x0000}},
{'S', {0x078c, 0x0ccc, 0x0ccc, 0x0ccc, 0x0c78, 0x0000, 0x0000}},
{'T', {0x0c00, 0x0c00, 0x0ffc, 0x0c00, 0x0c00, 0x0000, 0x0000}},
{'U', {0x0ff8, 0x000c, 0x000c, 0x000c, 0x0ff8, 0x0000, 0x0000}},
{'V', {0x0ffc, 0x0038, 0x00e0, 0x0380, 0x0e00, 0x0000, 0x0000}},
{'W', {0x0ff8, 0x000c, 0x00f8, 0x000c, 0x0ff8, 0x0000, 0x0000}},
{'X', {0x0e1c, 0x0330, 0x01e0, 0x0330, 0x0e1c, 0x0000, 0x0000}},
{'Y', {0x0e00, 0x0380, 0x00fc, 0x0380, 0x0e00, 0x0000, 0x0000}},
{'Z', {0x0c1c, 0x0c7c, 0x0ccc, 0x0f8c, 0x0e0c, 0x0000, 0x0000}},
{'0', {0x07f8, 0x0c0c, 0x0c0c, 0x0c0c, 0x07f8, 0x0000, 0x0000}},
{'1', {0x0300, 0x0600, 0x0ffc, 0x0000, 0x0000, 0x0000, 0x0000}},
{'2', {0x061c, 0x0c3c, 0x0ccc, 0x078c, 0x000c, 0x0000, 0x0000}},
{'3', {0x0006, 0x1806, 0x198c, 0x1f98, 0x00f0, 0x0000, 0x0000}},
{'4', {0x1fe0, 0x0060, 0x0060, 0x0ffc, 0x0060, 0x0000, 0x0000}},
{'5', {0x000c, 0x000c, 0x1f8c, 0x1998, 0x18f0, 0x0000, 0x0000}},
{'6', {0x07fc, 0x0c66, 0x18c6, 0x00c6, 0x007c, 0x0000, 0x0000}},
{'7', {0x181c, 0x1870, 0x19c0, 0x1f00, 0x1c00, 0x0000, 0x0000}},
{'8', {0x0f3c, 0x19e6, 0x18c6, 0x19e6, 0x0f3c, 0x0000, 0x0000}},
{'9', {0x0f80, 0x18c6, 0x18cc, 0x1818, 0x0ff0, 0x0000, 0x0000}},
{'*', {0x018c, 0x0198, 0x0ff0, 0x0198, 0x018c, 0x0000, 0x0000}},
{'.', {0x001c, 0x001c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{'?', {0x1800, 0x1800, 0x19ce, 0x1f00, 0x0000, 0x0000, 0x0000}},
{'!', {0x1f9c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{'(', {0x01e0, 0x0738, 0x1c0e, 0x0000, 0x0000, 0x0000, 0x0000}},
{')', {0x1c0e, 0x0738, 0x01e0, 0x0000, 0x0000, 0x0000, 0x0000}},
{'#', {0x0330, 0x0ffc, 0x0330, 0x0ffc, 0x0330, 0x0000, 0x0000}},
{'$', {0x078c, 0x0ccc, 0x1ffe, 0x0ccc, 0x0c78, 0x0000, 0x0000}},
{'/', {0x001c, 0x0070, 0x01c0, 0x0700, 0x1c00, 0x0000, 0x0000}},
} ;
 
#define NGLYPHS         (sizeof(glyphtab)/sizeof(glyphtab[0]))
 
void
encodechar(int ch)
{
    int i, x, y, fch ;
    word fbits ;
 
    /* It looks sloppy to continue searching even after you've
     * found the letter you are looking for, but it makes the
     * timing more deterministic, which will make tuning the
     * exact timing a bit simpler.
     */
    for (i=0; i<NGLYPHS; i++) {
        fch = pgm_read_byte(&glyphtab[i].ch) ;
        if (fch == ch) {
            for (x=0; x<7; x++) {
                fbits = pgm_read_word(&(glyphtab[i].col[x])) ;
                for (y=0; y<14; y++) {
                    if (fbits & (1<<y))
                        digitalWrite(radioPin, HIGH) ;
                    else
                        digitalWrite(radioPin, LOW) ;
                         
                    delayMicroseconds(4045L) ;
                }
            }
        }
    }
}
 
void
encode(char *ch)
{
    while (*ch != '\0')
        encodechar(*ch++) ;
}
 
void
setup()
{
  Serial.begin(9600) ;
  pinMode(radioPin, OUTPUT) ;
}
 
 
void
loop()
{
while(timer < 300) //delay transmitt för 5 minutes
  {
  delay(1000);
  timer++; 
  }
timer = 0;

sensorvaluetemp = analogRead(A3);
sensorvaluevolt = analogRead(A2);
itoa(sensorvaluetemp,buf1,10);
itoa(sensorvaluevolt/11,buf2,10);

while(sensorvaluevolt <= 107) //Dont transmitt if voltage is below 10,5v
  {
  delay(10000);
  sensorvaluevolt = analogRead(A2); 
  }

encode("BEACON GRAY1 TEMP IS ") ;
if(sensorvaluetemp < 140)
  {
  displaytemp = (140 - sensorvaluetemp)*2;
  itoa(displaytemp, buf1,10);
  encode(buf1);
  encode("C ");
  }
else
  {
  displaytemp = (sensorvaluetemp -140)*2;
  itoa(displaytemp,buf1,10);
  encode("-");
  encode(buf1);
  encode("C ");
  }
       
encode("VOLTAGE IS ");
encode(buf2);
encode("V");
}
Title: Re: New 850mW HF beacon,
Post by: Teotwaki on February 06, 2022, 1559 UTC
"The 2n2222a transistor gets really hot, but it seams to be able to handle it."

That is because when the switch labeled "key" is closed the full power supply voltage is being applied across the transistor without any current limiting resistor in series. At the least you can add a free air push-on heatsink from Wakefield or similar

(https://www.picclickimg.com/d/l400/pict/203705194330_/Wakefield-USA-Transistor-Heatsink-TO-18-TO-72-28-40.jpg)

(https://i.ebayimg.com/images/g/p2AAAOSwtllft-JS/s-l300.jpg)

Title: Re: New 850mW HF beacon,
Post by: QRP on February 06, 2022, 1643 UTC
Try putting the diode in series with the crystal against earth instead. 👍
Title: Re: New 850mW HF beacon,
Post by: Teotwaki on February 06, 2022, 1647 UTC
Try putting the diode in series with the crystal against earth instead. 👍

That is meant to be a ground symbol. It’s not a series diode.
Title: Re: New 850mW HF beacon,
Post by: QRP on February 06, 2022, 1710 UTC
Try putting the diode in series with the crystal I this way:

---diod---xtal---earth

Did you get it? 😄
Title: Re: New 850mW HF beacon,
Post by: Teotwaki on February 06, 2022, 1837 UTC
Try putting the diode in series with the crystal I this way:

---diod---xtal---earth

Did you get it? 😄

What diode are you talking about? in the original diagram the crystal is connected between the base of the transistor and ground ( also means earth). In eleven places on the diagram the upside down triangle is a ground symbol. The only diodes present are  the D2 & D3 to rectify the RF and D1 the LED.

(https://i.postimg.cc/4x7Kf24k/image.png)
Title: Re: New 850mW HF beacon,
Post by: QRP on February 07, 2022, 1352 UTC
Have a close look att the Xtal 7030 MHz
and between XTAL and earth there is a diode.
Can you see it now? 😊

See figure in this link:
https://ham.se/attachments/diod-png.7738/



Title: Re: New 850mW HF beacon,
Post by: Teotwaki on February 07, 2022, 1413 UTC
Have a close look att the Xtal 7030 MHz
and between XTAL and earth there is a diode.
Can you see it now? 😊

Based on your incorrect assumption there are 11 diodes between ground and the following components in the diagram

D1
C1
X1
C3
C5
C6
Key
R3
D2
D3
Audio pin 2

Do you see how wrong you are now?  ;)

Those are ground symbols.

Look at component D2’s symbol: a triangle with a bar across the pointy end of the triangle. THAT is a diode symbol.
Title: Re: New 850mW HF beacon,
Post by: Teotwaki on February 07, 2022, 1435 UTC
Common circuit diagram ground symbols  8)

(https://www.eeweb.com/wp-content/uploads/articles-quizzes-quiz-ground-answer-1305526105.png)

Circuit diagram symbol for an ordinary diode

(https://www.allaboutcircuits.com/uploads/articles/1112A-PSD_(1).png)
Title: Re: New 850mW HF beacon,
Post by: Stretchyman on February 07, 2022, 1649 UTC
Christ, the post has become tiresome!

Yeh it's not a diode we get that.

I think the idea WAS to insert one for some reason?

Anyway, single device running flat out getting so hot it needs a heatsink.

There are way better designs.

Simple = compromised.

Osc-buff-class E PA, would use far less current.
Title: Re: New 850mW HF beacon,
Post by: QRP on February 07, 2022, 1655 UTC

You’ve made my day! 🤣

//QRP
Title: Re: New 850mW HF beacon,
Post by: Teotwaki on February 07, 2022, 1706 UTC
Christ, the post has become tiresome!

Yeh it's not a diode we get that.

I think the idea WAS to insert one for some reason?


Glad you got religion but the OP doesn't need to be misled into putting QRP's useless diode in series with the crystal.  I will credit QRP for having a high loss notch filter to assist in ignoring correct information.



Anyway, single device running flat out getting so hot it needs a heatsink.

There are way better designs.

Simple = compromised.

Osc-buff-class E PA, would use far less current.

Agree but the OP built it, can have fun running it and find out how short the life of the 2222 is then build something better. I would be more concerned that the crystal frequency will put the thing in the crowded Amateur 40 meter band. It should be padded to pull it below 7 MHz and be easier to hear at a distance.

To me it's not tiresome if the OP succeeds in having fun without QRP's bad information. If it was a _varactor_ diode then I would concede QRP might know something useful.  ;)
Title: Re: New 850mW HF beacon,
Post by: Stretchyman on February 08, 2022, 0858 UTC
Yes agreed ( in part..) We all have to start somewhere.

Str.
Title: Re: New 850mW HF beacon,
Post by: QRP on February 08, 2022, 1135 UTC
You can continue your discussion in this topic in this forum 👍

https://ham-se.translate.goog/threads/el-pitico-qrp-bygge-foer-cw.27053/?_x_tr_sl=sv&_x_tr_tl=en&_x_tr_hl=sv&_x_tr_pto=wapp
Title: Re: New 850mW HF beacon,
Post by: Radiotech on February 08, 2022, 1756 UTC
The project is now finnished, a small 40m Hellschreiber 700mW beacon! :) I tried pushing up the voltage to 14v, and got 1W off output but it got really hot. I started thinking about using a down powered Pitico as a oscillator together with an RF power amplifier to get a bit more power from it, that might be a nice project making it a bit more interesting.

Making small electronic projects is a hobby i enjoy, i like tinkering and figuring out how the things work. I am not a RF or Electronic professional, i work in a completely different field. I started this build thread on the Swedish ham radio forum ham.se like QRP pointed out, but migrated it here because i thought more people would enjoy it and have design sugestions.  :)


Title: Re: New 850mW HF beacon,
Post by: Teotwaki on February 09, 2022, 1645 UTC
You can swap the 2N2222 for a 2N2219 and with a good heat sink it can dissipate 3 watts of heat