Open Source Music Player

From Microduino Wiki
Jump to: navigation, search


  • Project name: Microduino open source player
  • Objective: To read the songs in the SD card.
  • Difficulty: Medium
  • Time consuming: 2 hours
  • Maker:
  • Introduction:
    • Open source music player is an open source speaker which can read SD card and decode it.
    • Appearance concise, simple button design, OLED screen display, easy to use.
    • This system is fully realized by Microduino, and the user can experience the fun of manual DIY.

Bill of materials

Microduino equipment

Module Number Function
Microduino-Core 1 Core-board
Microduino-USBTTL 1 Download programs
Microduino-Audio(with shield) 1 Decode,store music files
Microduino-Amplifier 1 Attack release
Microduino-OLED 1 Display
Microduino-Cube-S1 1 The OLED interface of extension board

Other equipment

Module Number Function
Fixed plate 1 Fix structure
OLED connecting line 1 Connect
Micro-USB line 1 Download programs, supply power
Speaker 2 Play audio
MicroSD card(optional) 1 Store music files
M2 Nylon screw 8 To fix
M2 Nylon stud 4 To fix
M2 Nylon nut 8 To fix

Programs to download


  • Stack Microduino-Core and Microduino-USBTTL together.
    • Connect the Microduino-USBTTL ready to upload program with a data line.
    • Note: It is best not to put all modules stacked together and then upload.
  • Open Arduino IDE for Microduino, environment, (Reference of the set-up: AVR Core: Getting Started).
  • Click[Instrument], assure the board card(Microduino-Core) processor(Atmega328P@16M,5V) selected correctly, and select the corresponding port number(COMX).
  • Click[File]->[Open], browse to the project program address, and click "Simple_player_V2.ino" to open program.
  • After all these items are correct, click the button "→"to download the program to the development board.

Store audio

  • Audio files need to be stored in a container in advance, then the player can play on them. There are two types of storage:

Steps of the set-up

  • Step1:
  • According to the picture 1-1, fix Microduino-OLED on Structure-A1 with nylon screw and nylon nut .
  • Note: Pay attention to the installation direction of the OLED display screen, and please take the LOGO Microduino as a reference, the LOGO located in the positive direction saying it installed in the right direction.
  • After the installation of the OLED display screen, please put the sensor line access to the interface on the reverse of the OLED.
  • Step2:
  • According to the picture 2-1, insert structure-D1 into the corresponding interface of the structure-B1.
  • According to the picture 2-2, insert structure-C2 into the corresponding interface of the structure-B1.
  • After step2, the player skeleton forms.
  • Step3:
  • According to the picture 3-1, embed the horn into the position as shown in the picture, taking care of the installation direction of the horn, the horn line needing threading to the behind of the structure-B1 in advance.
  • According to the picture 3-2, splice the structure-A1 installed with OLED display screen to the front of the player skeleton, then put the structure-D3 into the slot in structure-A1 and structure-B1.
  • After step3, the front of the player has been assembled.
  • Step4:
  • According to the picture 4-1, turn to the back of the player, stuck structure-D2 with the slot of structure-D3.
    • Pay attention to the force evenly, avoid too much force to break, and at the same time thread the two horn line and OLED line out from the hole on the back.
  • According to the picture 4-2, fix the baseboard of the Microduino-Cube-S1 on the structure-C2 with nylon screw, nylon stud and nylon nut.
  • After step4, the construction picture is as follow:
  • Step5:
  • According to the picture 5-1, insert structure-C1 into the back of the player.
  • According to the picture 5-2, stick structure-D4 to the corner of the structure-C1, and at the same time thread the two horn lines and OLED line out from the hole in the structure-C1.
  • Step6:
  • According to the picture 6-1, connect the OLED line to the IIC interface(There are SCL,SDA near the interface)on the left of the baseboard of the Microduino-Cube-S1.
  • Then connect the two horn lines to the audio interface in the Microduino-Amplifiermodule.
  • Now open source music player has been set up completely.

Operating instruction

Player power supply

  • According to the following picture, connect the USB power supply line to the USB interface in the baseboard of the Microduino-Cube-S1.
    • USB power supply can use computer USB port, USB charger, mobile power supply, and other forms.

Players use

  • There is a thumb wheel switch in the shield module of the Microduino-Audio, and you can control music playing through this switch. The method is as follow:
The use way of the thumb wheel switch Function
Click on the wheel Music play and pause switch
Long press on the wheel Play mode switch, such as looping, single play, etc.
Left dial the wheel once Switch to playing the last one
Right dial the wheel once Switch to playing the next one
Left long dial the wheel The volume reduces
Right long dial the wheel The volume increases
  • Player energized the default is the first song in the SD card selected, and in a suspended state, can press a allocated round to start playing music.
  • The volume range of the player is 0~30. The bigger the number is, the bigger the volume is. Player chooses the volume 20 by default.

Code instruction

  • The "userDef.h" is our configuration file.
  • The following code can set the thumbwheel switch threshold
#define PUSH_BUTTON    50             //If the threshold value is invalid, please try these thresholds   50
#define LEFT_BUTTON    100                                                                               150   
#define RIGHT_BUTTON   200                                                                               250
  • In the event of: The volume can only be increased and can't be reduced, the number of the song can only be increased and can't be reduced, or on the contrary.

Cause:The thumbwheel switches threshold setting is not reasonable in the "userDef.h".

The action of the thumbwheel A6 measured voltage(V) The corresponding code(voltage/5*1023) Threshold setting
Default 3.3 675.18 >600
Downward 0 0 0~50
Towards the left 1.6 327.36 150~400
Towards the right 2.6 531.96 450~600

Please change the threshold in the "userDef.h" to the actual using value of the thumbwheel.