Introduction: PIC16F1847 and AR1010 Based FM Radio Music Box

About: slave worker by day... hobbyist,maker,tinkerer at night....

This is my first Instructable post. I made a Digital FM Radio box using this cheap AR1010 FM Radio receiver module that I bought from Ebay and a PIC16F1847 Microcontroller from MICROCHIP. Why PIC's? Why not use Arduino? Because i have bunch of these IC's stocked in the parts bin. And also because most of the Digital FM Radio instructables and tutorials use the arduino.

Let's Make it.....

Step 1: Parts and Tools Needed...

The Basic parts are the Following:

  1. The Brain - Microchip Pic16F1847

  2. Digital FM Radio Receiver - AR1010 Module

  3. Display - MAX7219 8 Digit 7 Segment Led Module

  4. Audio Amplifier - PAM8403 5V DC Audio Amplifier Board 2 Channel 2*3W Volume Control

  5. Power/Charging - 3V to 5V 1A Step Up Module USB Charger Boost Converter w/ 1pc. 18650 battery salvaged from old laptop battery pack.

  6. Interface - 3 pcs. push button micro switches
  7. 3D Printed Box Enclosure - STL files link here

Tools to Use:

  • Soldering Iron
  • Long Nose Pliers
  • Digital Multi tester
  • Exacto Knife
  • Cutter Plier
  • Glue Gun
  • 3D Printer
  • Microchip PICKIT 3 Programmer/Debugger

Step 2: SCHEMATICS and WIRING ASSEMBLY

The Schematic is drawn using the Free version of Autodesk Eagle PCB design software.

The parts list for the main board are the following:

1 pc. PIC16F1847 MCU PDIP-18

1 pc. AMS1117-3.3 Voltage Regulator SOT223

6 pcs. 4.7Kohm / 0.5 watt Resistors

1pc. 10uf / 16v electrolytic capacitor

All these parts are mounted on a custom cut 30mm x 30mm single sided perf board to fit it inside the casing. The PIC Mcu is mounted on the top side the board. The AMS1117-3.3 SMD regulator and the AR1010 module are soldered on the copper side .

There is no external Oscillator because i used the internal 32 mhz clock of the PIC16F1847 MCU. I didn't use any headers and connectors to connect the modules, they are soldered with jumper wires. The headers are for serial debugging and ICSP programming.

Step 3: CODE

The code is written and compiled using the Code Limited version of the MikroC for PIC.

I used the Ar1010 Arduino Library of adamjansch/AR1010lib and ported it to be compatible with the MikroC for PIC IDE.

I wrote my own Max7219 library.

That's all... thanks

Step 4:

Updated the Source File to include the MAX7219 library...

Step 5: Future Updates:


I will add an RTC for Time and maybe some sensors like Temperature and Humidity.

Bluetooth audio input.

Mp3 player.

Microcontroller Contest

Participated in the
Microcontroller Contest