Skip to content


Amateur Radio Projects

For just about 10 USD including postal fees you can have the extraordinary ultra-wide band almighty QRP power amplifier: the only one you need for all the bands, HF to UHF.

Ordered two pieces via Came in about 2 weeks. Looks very nice, small, but the soldering is kind of bad. First module tested died in the first day. The module was heating very rapidly if applied voltage was higher than about 9V, and did not applied more than 11V even if 15V is recommended for obtaining 3W output power. I inserted less than 10mW at the input- as specified, 5 to 145MHz.

I decided to investigate a bit the problem, and only some days after to test the second module. I first suspected that the first RF IC was dead (at the input). Later I discovered that the LDMOS output transistor (U2) has around 50ohms between Gate and Source when measured with a ohmmeter. So this transistor was lost. I removed it from the PCB, than measured the bias voltage. It was 3.55V. I think that is way too much (see why bellow).

In the following figure you can see the schematic of the module (i hope i did it well). Extremely to no information is present about this module on the net. I found that very probably U1 (marked on the first module as .BA5 and .BA5Z on the second) could be a SBA5089Z RF IC power driver with 13dbm output and 20db gain from DC to GHz, and U2 – marked K2 could be a RD01MUS1 (used also in FT991 PA) – a 1W/520Mhz/7.2V LDMOS. If true, U1 is quite well biased. In the first module, marking .BA5 it had 91mV drop on R2, so around 60mA. Datasheet specifies optimum of 80mA. In the second module we have a drop of 110mV on R2 which is supplying U1 (here is marked .BA5Z), that means ~ 73mA. Now moving to the U2, LDMOS, datasheet, application notes, FT991 PA schematic refer to an Idq of 35 to 100mA, as appropriate. That means a Vgs voltage of around 2.3~3V. The 3.55V is maybe a killer Vgs for this chinese implementation, moving the Idq to around >0.5A. So i’ve changed the bias resistors, as described in the following figure. This way i obtained an Idq of cca. 40mA. Also inserted a -1.3dB ATT pad at the input for better stability?! Now the module heats, but not more than abt. 30C.

At 11V supply, input of max. 1mW i can get on a 50 ohm load about 10V @ 5MHz (1W), 8 to 9V (700-800mW) till 55Mhz, abt. 9V at 145Mhz, and only 4V (200mW)  at 432Mhz.


Fig. 1 – NWDZ RF PA v2.0 schematic and the first module tested

Update1:  Measured C12 – 6pF; C11 – 270nF

Update 2: Just found some links about this or similar amps:

Update 3: 432Mhz power increase

C11 was replaced by a ~ 12nH coil. Output voltage increased from 4V to 7-7.6V / 50 ohm, so more than 0.5W (@P.sup. = 12V). Input power less than a mW! Pictures below show the modified PA.


Tags: , , , , , , , , ,

Recently i made some upgrades: a new, big, aluminum case for easier maintenance and place for additional frequencies, power supply integrated, added an LCD, Arduino & Si5351 etc.

Some months ago I’ve made also the 70cm circuitry: SI5351 + tripler + 2W PA. It works on 432.4075 MHz and it was received at more than 50km with good signal. The message is the same as of the 6m beacon as the same keying controller is used for the moment. Mode A1A.

This setup is installed on top (7th floor) of the Faculty of Engineering (Technical University of Cluj-Napoca, North Center Baia Mare).

Antennas are horizontal dipole for 50MHz – direction NW/SE, and vertical for 432MHz.

Bellow a few pictures of the new beacon.


Tags: , , , , ,

A very basic sketch for controlling MC145158 PLL IC:


int clk = 9;
int data = 8;
int ena = 7;
int led = 13;
void setup() {
// initialize the digital pin as an output.
pinMode(clk, OUTPUT);
pinMode(data, OUTPUT);
pinMode(ena, OUTPUT);
pinMode(led, OUTPUT);
digitalWrite(clk, LOW);
digitalWrite(data, LOW);
digitalWrite(ena, LOW);
void loop() {
digitalWrite(led, HIGH);
// Load /R counter with a value of ####, MSB first  //14400 –> 1khz, 2880 –> 5khz, 14.4MHz XO
zero();       // 8192
zero();       // 4096
one();         // 2048
zero();         // 1024
one();          // 512
one();        // 256
zero();         // 128
one();         // 64
zero();         // 32
zero();          // 16
zero();         // 8
zero();         // 4
zero();       // 2
zero();       // 1
one();         // CONTROL, R = 1

enabl();       // ENABLE

// Load /N counter with a value of 621, MSB first
one();         // 512
zero();        // 256
zero();        // 128
one();           // 64
one();        // 32
zero();         // 16
one();        // 8
one();          // 4
zero();        // 2
one();           // 1
// Load /A counter with a value of max. 39 for :40 prescaler, MSB first
zero();       // 64
one();      // 32
zero();      // 16
zero();       // 8
zero();         // 4
zero();        // 2
zero();        // 1
zero();        // CONTROL, N & A = 0

enabl();      // ENABLE
digitalWrite(led, LOW);
digitalWrite(led, HIGH);


// zero:
void zero(){
digitalWrite(data, LOW);     // Load 0 on data
digitalWrite(clk,HIGH);    // bring clock HIGH
digitalWrite(clk,LOW);     // Then back low

// one:
void one(){
digitalWrite(data, HIGH);    // Load 1 on DATA
//      delay(100);
digitalWrite(clk,HIGH);    // Bring pin CLOCK high
//    delay(100);
digitalWrite(clk,LOW);    // Then back low

void enabl(){
digitalWrite(ena, HIGH);   // Bring ENABLE high
//    delay(100);
digitalWrite(ena, LOW);    // Then back low


Tags: , ,

I’m trying to make a data transmission link for my home automation system that I can receive in my city and nearby.
– For the moment tests are made with Arduino (UNO, MEGA2560 or MiniPro – Atmega328 @ 16MHz clock) and VirtualWire Library.
My first test & impresions:
– initial testing made with cheap 433MHz ASK/OOK Receiver (1 amp. stage + super regenerative stage + LM358 AF amp & data slicer) + the simple SAW oscillator type transmitter (both cost less than 3 euro) – all was ok @ 2000bps, tested only from one end to the other of the room!
– After the first step, considering that software and digital hardware side are ok, i wanted to see if this is possible also at a lower frequency… I have choosed 10,7Mhz: I made a simple crystal oscillator on-off keyed by the microcontroller by applying the data voltage to the bias resistor of the osc. transistor. As receiver I already had a MC3357 IF homebrewed years ago, so good i haven’t already moved it to the trash. But, hey, thats a NBFM receiver, while teoretically i need some kind of an AM receiver. Some success was achieved , but for limited distance and a lot of adjustments on the FM dicriminator coil and on the component values that make the conection from the FM IC to the the dataslicer. Basically i was trying to obtain the logic levels only by using the “silence” that makes an unmodulated transmitter when received by a FM receiver. Not good! I supose that much better operation will be obtained by audio modulating the frequency of the transmitter.

I’ve tried also with an TA7358 based direct conversion receiver and dataslicer, but with limited performance. I think i know what I should do now. Right now i’m restarting the ideea of using a crystal-stable , very simple RX and unmodulated transmitter because i believe this should really work with a better RX design especially in the AF+slicer area. I will also put an active filter.

Until now, AM Receiver seems to be best: if received signal is powerfull, i can decode 100BPS data imediatelly after the AM diode detector, filtered with 10k+100nF to ground. With dataslicer i get results even with almost unaudible signals, but i have to readjust the level to the slicer for almost any new level received. Maybe a comparator that compares noise vs signal and adjusts better the AGC should be a good idea.

One more thing: while doing tests, especially with the AM RX (an old 27MHz CB transceiver that i found in my shack), noise was very high if using Arduino Mega2560…? A lot of noise from the external display that i use with my laptop….

Tags: , , , ,

Sebi – YO5OQF was kind to give me two ATMEGA644-20PU after telling him that i would like to program via Arduino a larger DIP style microcontroller, with more IO pins to use it in a more complex transceiver.

Unfortunately, i spend about three days without luck in burning the Arduino bootloader. I read a lot about Sanguino, Optiboot. I even tried several tens of times without luck to do something. But I’ve learned things. Like for example that “Sanguino” or ATMEGA644P support is not by default visible in Arduino after putting the Optiboot in the /hardware folder (you have to uncomment  the “Sanguino” lines in the boards list because it’s not officially supported).

I’ve tried burning the bootloader using Arduino 1.0.5 and the Arduino Mega2560 hardware (i had no available Uno for the moment). I’ve got errors like “unrecognized signature Ox….”. Arduino was no recognising my chip signature, and i’ve discovered that the signature was looking for was the one for the MEGA644P (P suffix!).

I tried a lot of stupid things, until I have downloaded an older Arduino version (0023). Than I’ve found these: It is where I’ve found my luck!

The developer has been short 🙂 — “Arduino IDE support for the ATmega644 controller family. Based on Sanguino, but up to date. Promise. ” Even if up to date, was some years ago.

I tried to burn his code with Arduino 0023 version without luck (error: “cannot find ….. file), maybe because only UNO is working as ArduinoISP with this software version… Or maybe because… see below…

Than, i had a strange, working! ideea. Let’s put the atmega644 folder from the above mentioned site into the /hardware folder of the Arduino 1.0.5 software.

Ok, the Atmega644 appeared in the  menu, in Board list. Perfect. The same error while trying to burn the loader: “cannot find …./hardware/…atmega644p file” or something similar.

Than I’ve tot that this file should be one of the HEX files into the specified folder. What I did for my MCU type (the non-P version), I’ve changed the …atmega644\bootloaders\atmega644p\ATmegaBOOT_644.hex file name. ATmegaBOOT_644.hex to atmega644p. With no suffix.

And it worked.

Unfortunately, maybe because of the actual state of the Arduino 1.0.5 i wasn’t able to also compile/upload sketches to the ATMEGA644. But i was able to do it with the 0023 version.

For now, the Blink test sketch is working :-). When programming the mega644 with the USB/serial adapter, push for a short moment the reset pin (9) to ground after starting the upload. Uploading is done on RXD0 and TXD0 pins — 14 and 15. Crystal: 16MHz.

Tags: , , , , ,

Hello friends. Almost 2 years since my last post here. I was busy with drinking beers, University, my job and learning new things that fortunately relate to my old hobby (radio-communications) and that is “C” programming with Arduino platform. The following picture depicts my last project.  A project that will help me, I hope, in making faster and better the work related to amateur radio. I learned alot from it: programming, precision mechanical assembling, CNC insights. In the last two years I was not quite a stranger to Amateur Radio. I made my own automated antenna rotor, DDS with several transceiver related functions and even an HF antenna analyzer – all based on Arduino. Hope I will have time to dedicate a little of it, again, to what gained years ago my interest.



Tags: , ,

Looking for an interesting article I’ve just found this link: