FM transmitters and receivers are among the most popular topics for electronics projects. However, building a digital FM transmitter can be quite challenging for hobbyists. Once completed, the transmitter can be connected to an audio source, such as a phone or computer, to broadcast music or other audio content.

In this project, I introduce a compact stereo digital FM transmitter circuit that operates in the 87MHz to 108MHz frequency range. The frequency is adjustable in 0.1MHz steps using two tactile push-buttons. The core of the circuit is the ATMega8 microcontroller, which communicates with a 0.96-inch SPI OLED display and the KT0803L FM transmitter chip via an I2C interface. You can connect a microphone or an AUX cable directly to the board to broadcast your preferred audio, such as music from your phone or computer. After testing, the circuit proved to be highly stable, with clear and sharp audio reception.

For the schematic and PCB design, I used Altium Designer 23 and shared the project with my peers to gather feedback and make improvements using Altium-365. The fast component search engine, Octopart, helped me quickly evaluate component specifications and generate the BOM. To ensure high-quality fabrication, I sent the Gerber files to WellCircuits. I’m confident that using this circuit will be an enjoyable and rewarding experience for you.

Download the Gerber files or order 10 high-quality boards for just 5 USD

If you’d like to order a fully assembled PCB (including free shipping), click here.

Specifications

Input Voltage: 7-9VDC

Current Consumption: 50mA

Frequency Range: 87MHz to 108MHz

Frequency Step Size: 0.1MHz

AUX Input: Stereo

A. Circuit Analysis

Figure 1 shows the schematic diagram of the digital FM transmitter, covering the 87MHz to 108MHz range. Below is a breakdown of the circuit components.

Figure 1

Schematic diagram of the digital FM transmitter project (Altium)

A-1: Power Supply

P2 is an XH connector used to apply power to the board. The input voltage can range from 7V to 9V DC. FB1 and C11 form a low-pass filter to reduce input noise. REG2 is the TLV1117-5.0 regulator [1], which provides the +5V rail. C12 and C13 stabilize the output voltage and reduce noise. REG1 is the TLV1117-3.3 regulator [2], supplying the +3.3V rail. D1 is an LED indicating proper supply connection, while C10 and C14 further stabilize the output and reduce noise.

A-2: Microphone Input

P1 is an XH connector for connecting an electret microphone to the board. C8 is a decoupling capacitor to filter out noise, and R6 provides the supply rail for the microphone. C9 removes the DC component of the signal, while Q1 [3] amplifies the weak microphone signal for transmission to the FM transmitter chip.

A-3: Logic Level Converter

T1 and T2 are 2N7002 N-Channel MOSFETs [4] used to convert the 5V I2C logic level from the microcontroller (U2) to the 3.3V logic level required by the FM transmitter chip (U1). R2, R3, R7, and R8 are pull-up resistors completing the circuit.

A-4: FM Transmitter

The main component in this section is the KT0803L chip (U1) [5]. S1 is an SMD headphone jack for connecting an AUX cable, allowing you to transmit audio from your mobile phone, PC, or other devices. C5 and C6 couple the audio signal to U1. C2 and C3 are decoupling capacitors, and ANT is a UFL connector for connecting a telescopic antenna to the board.

A-5: Microcontroller and Display

The core of the circuit is the ATMega8-AU microcontroller (U2) [6]. Capacitors C15 to C18 decouple the power supply to reduce noise. R10 is a pull-up resistor for the RESET pin. The display used is an SPI 0.96-inch 128×64 OLED display, as shown in Figure 2. C19 decouples the LCD’s power supply. SW1 and SW2 are tactile pushbuttons for adjusting the frequency, while C20 and C21 debounce the buttons. R11 and R12 are pull-up resistors. ISP provides the necessary pins for flashing the microcontroller, though soldering a pin header is optional.

Figure 2

The 0.96-inch 128×64 Yellow-Blue SPI OLED Display

B. PCB Layout

Figure 3 displays the PCB layout, which is a two-layer board with most components in SMD packages. Figure 4 shows the board assembly drawings.

Figure 3

PCB layout of the digital FM transmitter project

Figure 4

Board assembly drawings of the digital FM transmitter project

C. Code and Programming

If you want to build the project exactly as described, simply download the HEX file [7] and program the microcontroller. Set the MCU Clock Fuse Bits to 8MHz (Internal).

If you plan to modify the code, the MCU code for the Arduino platform is provided below. Ensure that you have the FM library [8], SPI OLED library [9], and MiniCore board manager library [10] installed in your Arduino IDE. Set the clock source to Internal, 8MHz.

#include <FMTX.h>
#include <SPI.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiSpi.h"
#define CS_PIN 7
#define RST_PIN 9
#define DC_PIN 8
#define Down_Key 15

Leave a Comment

Contact

WellCircuits
More than PCB

Upload your GerberFile(7z,rar,zip)