• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Connect FSK modulator with fm transmitter circuit?

Thread starter #1

I am wondering how to superimpose a square wave input signal onto a fm carrier signal?

Using this circuit as an fm transmitter

and then this is the modulator

I've given a lot of thought and research for this project. It is for school. One thing I have noticed is, the fm transmitter uses a microphone as a varying resistor which modifies the base current to the transistor. There is some parasitic capacitance, so this varies the fm carrier signal.

My issue is two things.
1. You are varying the input base current of a transistor with a voltage divider. Replacing the input base current with an oscillatory signal and much larger peak to peak will change this a lot. Is it possible to replace the voltage divider with an oscillatory input for it to perform the same function?
2. The modulator outputs square waves from 0V to +5V. This is an issue because this causes the transistor to be effectively "ON" or "OFF". Will this affect the overall functionality of the circuit?


Well-Known Member
Most Helpful Member
if you had a PLL to generate the FM signal, you could mix your binary data into the control voltage for the VCO, and that would directly modulate the carrier. what you are proposing with the 555 timer is frequency modulating an audio tone, and feeding that audio into an FM modulator. so you are sending "FSK audio" on an FM signal. you would only need a standard FM receiver and some way of decoding the FSK audio. another way to get FSK audio to feed into an FM transmitter is to use a digital soundcard modem such as [fldigi]
Thread starter #3
Would this suffice as an FSK transmitter?
I'm particularly worried about the input to the arduino and 555 timer, will they be affected by the AC?
Also, the output of the 555 oscillates between 0-5V, is this ok? Or would i need a voltage divider to reduce the strength of the signal, and have a negative bias so it oscillates about 0


Your circuit is incomplete and has some errors, but once those are fixed, it should work ok as an FSK transmitter once it is tuned up. For starters, let's talk about the input to the oscillator circuit. By this, I mean the audio ac voltage that is presented to the base of the 2N3904 transistor. The amount of frequency swing, or frequency modulation, that you get is called the FM Deviation. This Deviation is proportional to the input audio voltage. So, as you present an audio AC voltage to the base of the 2N3904, your carrier frequency will deviate up and down following the input voltage. The amount that it deviates up and down is important as this sets the bandwidth of your broadcast signal, which in turn is important because FM receivers are designed to hear signals with a specific bandwidth. That bandwidth is roughly 150KHz. The amount of deviation we get from your transmitter divided by your ac input audio voltage is called your modulation gain, with units of KHz/Volt. Unfortunately, we don't exactly know what the modulation gain is for this transmitter circuit you have selected, and the video does not reveal this, so we have to make an educated guess. I hope other readers who have built this circuit will chime in with their experience, but I am going to guess that the right amount of audio ac input is much less than 9 volts peak to peak in order to get the right deviation for a bandwidth of 150 KHz. I will guess that the amount of audio needed is somewhere around 200mVac peak to peak, but this is just a guess. In order to make it easier to tune this later on, you should add a voltage divider circuit to feed the audio to the base of the 2N3904.

So, you will have to add two resistors to form this voltage divider. One resistor will be in series with the transmitter input capacitor and the other resistor will follow this one and be connected to ground. The output from the junction of the two resistors then connects to the coupling capacitor feeding the 2N3904 base. This coupling capacitor blocks DC and insures that the bias to the 2N3904 is not altered.

Now, let's talk about errors. First of all, when I compare your transmitter circuit to the one in the video, I notice that yours is missing a capacitor from the 2N3904 emitter to ground. Put that in. Next, you show a connection from 9V to the Q output of the LM555. This will guarantee that the LM555 won't work, so you have to remove that connection.
Next, it is necessary to develop your circuit further by adding in names for each component (replace the question marks), and assign values to them.

Now some attempts to answer your questions further:
1) In order to modulate the transmitter, it is only necessary to superimpose an AC voltage onto the bias voltage present at the base of the 2N3904. Yes, in effect you are putting a voltage divider at the input and yes you can replace this with an oscillating voltage input and expect it to work.
2) as explained above, you don't want to turn the transistor completely on and completely off and in fact you want a much lower input level than a 9V swing, and this is why we must insert a voltage divider to reduce the amplitude from the LM555.

Now, this next comment is not meant as a criticism but rather a suggestion. It is possible to eliminate the LM555 circuit completely from this and still get it to work. They way you have it designed right now, the Arduino turns the 2N3906 on and off, which in turn causes the audio oscillator to change frequency from one audio frequency to another. This is generating AFSK (frequency shift keying) where a binary 1 is one audio frequency, and a binary 0 is another. The output of the Arduino is a sequence of 1's and 0's representing your data stream. It is possible to generate the audio frequency from the Arduino instead. You would have to program the D2 output to swing up and down at one of the two audio frequencies when a 0 bit is to be sent and have it generate the other audio frequency when a 1 is to be sent. Of course, what this means is that your program has to run fast enough to toggle the D2 output up and down at the two audio rates, but I think this is well within the capabilities of the Arduino. But you can save this idea as an enhancement step for later on, if you like.

You can include a couple of additional parts as insurance to protect the Arduino and LM555 from being disturbed by the high frequency AC. What you must do is include bypass capacitors from the 9V rail to ground at each IC. These capacitors must be connected as close as practical to the actual leg of the IC on the VCC side and on the ground side to be most effective. Use ceramic capacitors of something like 10 nF or 100 nF for this. The value isn't critical as long as the reactance of this capacitor is low (as in less than 2 ohms) at the carrier frequency.

Once you have made your changes, post your circuit again (with names assigned to each part so that we refer to them more easily) so we can comment.


Well-Known Member
Your transmitter is looking reasonably good with this latest schematic. I noticed that you changed Q2 to a type SS9018. That's a reasonable choice.

I was wondering whether your goal was to design an FSK transmitter or an AFSK transmitter. Can you explain? What you have here so far looks like an AFSK transmitter.

You will need to add a capacitor to ground from the junction of R3 and R5. The purpose of this capacitor is to filter the sharp edges of the square wave coming from U2. Without this capacitor, your bandwidth will be extremely wide which may cause poor reception at the other end of the link. The value of the capacitor may have to adjusted once you have it all working, but to start with, use a value around 1 to 3 nF. This value will work with R3 to form a low pass filter that rolls off at around 10KHz.

When you are ready to build this, start by building just the circuit with the U2 and Q2 stages and leave out the Arduino and Q1 to start with. This will help simplify your debug and tuning.


Well-Known Member
View attachment 117750

This is my schematic for the fm receiver and demodulator, I will edit the transmitter soon. I was also thinking of only having +5V...
This schematic makes no sense to me, so I had to find other examples of this circuit online along with an explanation. It seems that you have drawn a very crude type of FM receiver that is found on numerous other sites. The RF circuit comprising Q1 and Q2 form an oscillator that operates in the FM broadcast range of frequencies depending on the tuned circuit of L1 and C1. There is an error that will prevent it from functioning, however, and that is that the base of Q2 must also be connected to the left of R1 for DC bias. I understand that FM detection is achieved due to the junction capacitance of the transistors and this particular configuration. I anticipate that it is a rather poor FM demodulator, and it will have rather poor performance as a receiver, but at least the parts count is minimal. Perhaps others can chime in with more direct experience of this receiver.

I am suspicious that pins 1 and 8 of U1 should not be grounded as you have shown. Application notes don't mention grounding. Perhaps leave them open to start with, setting gain to 20 for now. I would also leave U1 pin 7, the bypass pin, open circuit for now too rather than grounded.

What prevents the output of U3 from swinging to -5V? This voltage is not tolerated at U4 pin 20. Perhaps U3 should be configured as a single voltage amplifier to prevent this problem.
Last edited:

EE World Online Articles