arduino-audiobook-player

Arduino-based audiobook player with a focus on simplicity

Stars
2

arduino-audiobook-player

Arduino-based audiobook player with a focus on simplicity

  • When powered on, plays the recently played track
  • When SD card inserted, plays the recently played track
  • When next button is pressed (or clap sensor is actuated), plays the track after the recently played track
  • Whenever a different track is played, that track is saved to EEPROM as the recently played track (with wear leveling to greatly incrase the lifespan of the EEPROM)

Possible future extensions:

  • Smart sleep detection with last track repeat: If the listener has fallen asleep, then pressing the button should not play the next track but the recently played track (again)
  • Distinguish between short press, long press, and double press
  • Possibly IR remote control (but this waters down the concept of simplicity)
  • Switch between multiple audiobooks
  • Set the MP3 module into energy saving mode and wake it up again
  • Set the ATmega into energy saving mode and wake it up again
  • 3D printed enclosure waevguide/"Transmission line" https://www.youtube.com/watch?v=uujaBjf3Uwg (Also see https://www.youtube.com/watch?v=jN-E1dfMfO0 and http://www.mh-audio.nl/Calculators/TML.html)

Software

Libraries

Hardware

Using an Arduino Pro Mini (with voltage regulator) proved to produce too many unwanted noises. Hence using a bare ATmega 168P chip without oscillator.

To upload to the bare chip, I am not using a serial programmer, but upload directly from the Arduino IDE using a USBASP with Ctrl-Shift-U. For this to work, I need to set permissions: sudo chmod 666 /dev/bus/usb/*/*

Note: An ATTiny might possibly do as shown by https://github.com/accidentalrebel/abplayer-mini but in my test with an ATTiny45 flash storage was too small to use the EEPROMWearLevel library, and the lack of a hardware serial port complicates debugging.

Design inspiration

  • Dieter Rams