Fruitbox for Raspberry Pi3

Guide Revision 1.6

Introduction

This Dummies Guide will show you how to install Fruitbox V2 on a Raspberry Pi3 including additional things you might find useful with your setup. This guide is specifically for the CLI (Command Line Interface) version of Raspberry Pi OS (Buster). I’ll show you how to install the image and a way to boot it directly into Fruitbox. A lot of this is from Mike Kingsley’s instructions on the Fruitbox Github, and the rest is information I have used in the past. Every time I do a fresh build, I need to look some of this stuff up, so why not store it all in one place? Some of this I don’t use but I thought it might be useful to include as a reference. *PLEASE READ THE DISCLAIMER AT THE BOTTOM OF THIS DOCUMENT

Jay Thompson

How to use this guide – Please read

Below are some tips to help you get the most out of this guide.

If it has a red background it is a very important step not to be ignored.
Black backgrounds are commands you’ll enter so you can easily follow along (*click to copy, and paste into the terminal).
Blue backgrounds are default Fruitbox settings.
Yellow backgrounds are non-default settings worth considering.
Green backgrounds denote updated instructions from the previous dummies guide.
Grey backgrounds are helpful tips and comments.

To make this guide even dumberer, I’ve enabled click to copy on all commands. Open this webpage on your pi and you can copy/paste everything right into the terminal. Now you can’t mis-type anything. If this was any dumber, I’d just give you access to a pre-built image….

I’ve tried to be very literal when writing this guide. With that said, do not make changes to the operating system or basic Pi setup and expect my instructions to work. Examples of this include:
Changing from Wayland to X11 backend in OS bookworm before getting your Fruitbox running.
Adding a DAC hat before getting you Fruitbox running.
Plugging in a hard drive when I have only mentioned thumb drives.
Using a thumb drive to boot from instead of a micro-SD card.
Please also use a modern computer monitor during setup. TVs sometimes have weird resolutions that can mess with the install.
Prerequisite hardware for these instructions to work – a Raspberry Pi, a micro-SD card (At least 4GB), an official Raspberry Pi power supply, and a thumb drive formatted to fat32 with your music on it. As I mentioned before, you will need a modern computer monitor and initially will need a keyboard and a mouse.
These instructions do not go over DAC hats or touchscreen setups. It is completely fine to use these, but please setup your Fruitbox and get a working knowledge of the software before installing those.

The rigidness of my instructions might seem a little extreme, but we want a good baseline of where you are at if something doesn’t work as expected.


Imaging the SD card

I’ve made a basic video on how to image an SD card to use in your PI with Fruitbox. https://youtu.be/a5aUGGmsjE8 Please note this video is for the Pi4 but imaging the Pi3 is very similar. You will need to download the image referenced below.

Per Mike Kingsley on the Fruitbox Github page: It is recommended to start from a fresh OS install (latest Raspbian Buster release) Note that due to sound issues on the latest OS release (Bullseye, Debian version 11), fruitbox requires the Legacy (Buster) OS … This image can be downloaded here https://downloads.raspberrypi.org/raspios_oldstable_lite_armhf/images/raspios_oldstable_lite_armhf-2022-01-28/2022-01-28-raspios-buster-armhf-lite.zip.


Misc optional settings to consider before installing Fruitbox

I make these changes after the first boot of the newly imaged Raspberry pi before installing Fruitbox.

To set up wireless network connection: Type – sudo raspi-config -> System Options -> Wireless LAN > enter your SSID (name of your wireless network) and passphrase.

To change audio from HDMI to 3.5 mm jack or vice-versa: sudo raspi-config -> System Options -> Audio

To change the default PW (recommended): sudo raspi-config -> System Options -> Password

To skip Raspberry Pi login: sudo raspi-config -> System Options -> Boot / Auto Login, then select Console Autologin

To fix black border around screen if present: sudo raspi-config -> Display Options -> Underscan, then select no

To stop the screen from turning off: sudo raspi-config -> Display Options -> Screen Blanking then select no

To turn on SSH: sudo raspi-config -> Interface Options > SSH then select yes (you should also change the default PW afterwards -> System Options -> Password)

To increase GPU Memory: sudo raspi-config -> Performance Options -> GPU Memory (256 is max GPU limit with this build)

To change the time: sudo raspi-config -> Localisation Options -> Timezone, select your geographic area then timezone. Time should be set automatically based on timezone selected. To check time, type “date” at command line. You’ll definitely want to make sure the time is correct if you want to do reboots on a schedule.

To expand filesystem to utilize entire SD (if not already done on initial boot): sudo raspi-config -> Advanced Options -> Expand Filesystem

To change the type of Keyboard: If you are in the US, you should set the keyboard to US. Raspberry Pi defaults to UK (I think). Most of the keys are the same, but you may find yourself in a situation where you get an unexpected character while typing something. – sudo raspi-config -> Localisation Options -> Keyboard. For me the next screen is Generic 105 key PC – yours may be different. On the next screen you’ll see English UK is already selected. Scroll down to other -> then change the next screen from English UK to English US. Next screen select English US unless you have a specialized Dvorak keyboard or something like that. Next screen select default. Next screen select no compose key.


Installing Fruitbox

For Raspberry Pi versions Zero through 3, only a Buster Lite (not Desktop) version is available. (see first step in this guide – Imaging the SD card)

Increase GPU memory to (at least) 256 (sudo raspi-config -> Performance Options -> GPU Memory) Note raspi-config can also be used to set up Wi-Fi and enable SSH for transferring files from PC to Pi via WinSCP for example

From a command shell, type : wget https://github.com/chundermike/rpi-fruitbox-v2/raw/main/install_fruitbox then press enter
From a command shell, type : chmod +x ./install_fruitbox then press enter
From a command shell, type : ./install_fruitbox then press enter

Copy your music MP3 files either to the SD card /home/pi/Music directory, or to a USB memory stick. Fruitbox looks for music files in the /home/pi/Music directory on the SD card by default. If you want to use the Pi’s /home/pi/Music directory, you can upload mp3s via FTP. You will need to create this Music folder within the /home/pi directory if you don’t see it. See more info about this below.

If you want to use a thumb drive for your music, point Fruitbox to your MP3 files (edit /home/pi/fruitbox/fruitbox.ini and change the MusicPath parameter from MusicPath = ../Music, to MusicPath = /mnt/usb) SEE MORE INFO ON THIS BELOW IN THE SETTING THE MUSIC DIRECTORY SECTION

Run Fruitbox… From a command shell, type : cd /home/pi/fruitbox then press enter.

Next type ./fruitbox then press enter. Fruitbox will attempt to run but you’ll see an error about Fruitbox not able to find music. We’ll get to that next.

The following instructions depend on the fruitbox.ini file being present. This file is not created until you run Fruitbox at least once (see the Run Fruitbox step above).


Setting the Music Directory in the Fruitbox.ini file

Option 1. Where to put your Music – No songs found error.

If one is not present, you’ll need to create a Music folder in the /home/pi folder. Type mkdir -p /home/pi/Music and press enter. Fruitbox already is set up to look for this folder so you should now be able to add music to it via FTP (see section 7 below for how to connect via FTP). Alternatively, you could just FTP into the Pi and create the Music folder from there. Put it inside the /home/pi folder.

Option 2. Automatically mount a USB memory stick on power up and create database if one is not present.

Important Note, Once this is set, your pi might not boot without a thumb drive present. If so, and you want to boot without it, you’ll need to undo these changes.

At a command shell type: sudo mkdir -p /mnt/usb

At a command shell type: sudo nano /etc/fstab then press enter
When inside the nano editor, add the following line at the end of the table.

/dev/sda1    /mnt/usb    vfat    uid=pi,gid=pi    defaults,nofail    0    0

In the line above, the spaces are separated by the tab key. Save (Ctrl-X), then Y, then enter.

Now open your fruitbox ini file. Type cd /home/pi/fruitbox (press enter) followed by sudo nano fruitbox.ini (press enter). At the top under [general], set the ‘MusicPath’ parameter to MusicPath = /mnt/usb Then Save (Ctrl-X), then Y, then enter.

Now every time you plug in a new thumb drive and reboot the pi, the Pi will automount the thumb drive and Fruitbox will search for a database. If a Database is not found, it will create a new one.


Autostart – Setting Fruitbox to automatically load when the pi starts up (optional)

From the command line, type : sudo nano /etc/rc.local [and enter the following before the ‘exit’ line] cd /home/pi/fruitbox su pi -c '/home/pi/fruitbox/fruitbox --no-splash &' Save (Ctrl-X), then Y, then enter. If fruitbox fails to start and you see a ‘failed to start /etc/rc.local compatibility’ message, double check the rc.local file for spelling and correct character spacing.


Reboot the pi every day at a specified time (optional)

From a command terminal type: sudo crontab -e and press enter
Press #1 to choose the nano file editor (if this is the first time opening it). Then press the down arrow to scroll to the very bottom.
Enter this command to schedule a reboot. This command will schedule a daily reboot at 6:30am.

30 6 * * * /sbin/shutdown -r now

Save (Ctrl-X), then Y, then enter.
If you want to automatically reboot your raspberry pi at a different interval using minutes and hours (for example, 1:03pm), the command you’d enter would look like this:

03 13 * * * /sbin/shutdown -r now

Another example: you could set it to reboot with the @daily expression and it will reboot every day at midnight.

@daily /sbin/shutdown -r now

Raspberry pi runs 24 hr military time.

Fruitbox is pretty stable, but in my experience, l find if I let it run for several days at a time it will get bogged down or the Pi will run out of memory and kill the process. A daily reboot is easy to do and has worked well for me.


Miscellaneous optional things to help if you’re unfamiliar working with Raspberry Pi computers.

Finding your IP address

From the command line: type ifconfig to view IP address info.

Your IP address will probably be something like 192.168.0.xxx or something very similar if on a private network that uses DHCP to assign addresses. It will be listed on one of the inet lines. If all you see are loopback addresses (127.0.0.1) , then you are probably not connected to the network.

Using IP address and/or raspberrypi.local with FTP client and/or Putty in Windows

If using Filezilla, WinSCP, or Putty from a Windows desktop, you can connect to the IP address we found in the steps above (or raspberrypi.local if it’s the only Pi on your network). Make sure also that you have enabled SSH (sudo raspi-config -> Interface Options > SSH then select yes). Enter the Host, Username, PW and port 22 and click connect. If you are still using default login PW, you should seriously consider changing it. (sudo raspi-config -> System Options -> Password)

To connect a remote shell into the pi from Windows to run commands, you can use a program on Windows called Putty.

In Host Name, enter the IP address or (raspberrypi.local if the only pi on your network) and Port 22. Connection type is SSH

Enter your login credentials. If you are using SSH, and are still using the default login PW, you should seriously consider changing it (sudo raspi-config -> System Options -> Password), or turn off SSH altogether. See ‘To turn on SSH’ in the Misc setup notes below to access the SSH enable/disable menu.


Making sense of, and editing, fruitbox.ini.

Fruitbox.ini – General Settings

Fruitbox default settings highlighted in blue. Optional settings you may consider using are highlighted in yellow.
[general]
MusicPath = ../Music – Change to /media/pi to automatically use the thumb drive. You can have more than one MusicPath line here if you want Fruitbox to look in more than one place (see note on MusicPath below for more info).
MaxPlayQueueLength = 20 – Maximum songs you can queue at a time. Change this to what you like.
LoopPlayQueue = No – Change to Yes to enable the songs that are queued to be repeated. This setting can be toggled with the F11 key or touch screen if enabled in the skin. Note: This setting is ignored if NoDuplicates is enabled in the skin file.
IgnoreArtistPrefixThe = Yes – Yes = ignore the word ‘The’ in artist names for alphabetizing purposes. Example: The Doors would be alphabetized as simply, Doors. Set to No if you want to have artists with the word The as the first word in their name.
SongHistoryDepth = 20 – Determines the search range of number of previously played songs to ensure no repeated songs are chosen in Attract mode or Random selection. If not specified or set to 0, fruitbox will only check for repeated songs from within the play queue
SongHistoryIncludeUserSelection = No – Yes or No – User selection is included or excluded from the history search
SongVolume = 50 Initial volume when Fruitbox starts. Can be adjusted with the – and = keys, or touchscreen controls if enabled in the skin file. Set this to 0 if you have attract mode on and don’t want to wake up the neighbors when Fruitbox loads.
SongVolumeStep = 10 – Song volume step (0..100) (amount changed for VolumeUp / VolumeDown). When set at 10, the steps will be 10%, 20%, 30%, 40%, etc – 100% volume.
ReplayGain = None – Can be set to none, track, album (automatic gain adjustment – requires MP3 ReplayGain tag data) See https://mp3gain.sourceforge.net/ for info.
FreePlay = Yes – Set to No to require coin input to be toggled for song selection
CreditsPerCoin1 = 1 – number of song credits added when a coin is inserted. Toggled with F1 key or Touchscreen controls.
CreditsPerCoin2 = 2 – number of song credits added when a coin is inserted. Toggled with F2 key or Touchscreen controls.
CreditsPerCoin3 = 5 – number of song credits added when a coin is inserted. Toggled with F3 key or Touchscreen controls.
CreditsPerCoin4 = 10 – number of song credits added when a coin is inserted. Toggled with F4 key or Touchscreen controls.
CreditsPerCoin5 = 25 – number of song credits added when a coin is inserted. Toggled with F5 key or Touchscreen controls.
CreditsPerCoin6 = 100 – number of song credits added when a coin is inserted. Toggled with F6 key or Touchscreen controls.
CreditsPerSong = 1 – Number of song credits required to play one song
MenuColour = 255 255 255 – <r> <g> <b> Modify the on-screen menu colour
MenuBackgroundColour = 32 32 32 200 – <r> <g> <b> <a> Modify the on-screen menu background colour
SkinChooserTimeout = 0.0 Seconds – increments can be in ticks, seconds, minutes, hours – The time before Fruitbox loads the current skin if no choice is made. A value of zero or not defined disables the timeout and leaves the skin chooser open forever or until a skin is selected.

A Note on the Music Path: You can specify the music path in more locations for Fruitbox to search, just add a new MusicPath = line for each location. Fruitbox will simply look in each location. You won’t see a *no music found* error if it finds music in at least one of the locations you specify.
Example:
MusicPath = ../Music
MusicPath = ../Videos
MusicPath = /mnt/usb
MusicPath = /media/pi

Also, if you had one skin that you wanted to only search for Videos for instance, put the music path in the skin’s cfg file itself and Fruitbox will only look in that
location.
MusicPath = ../Videos

Fruitbox.ini – Changing the default skin that Fruitbox loads

The default skin that loads with Fruitbox V2.04 is the SB-M100 skin. To change it, specify a different skin in the [skins] section of fruitbox.ini.

[skins]
File = skins/SB-M100/fruitbox.cfg
Change to something else like…
File = skins/Modern/fruitbox.cfg

Fruitbox.ini – Enabling the Skin Chooser

By default, the skin chooser is disabled as there is only one skin specified in the fruitbox.ini file (SB-M100). To enable the skin chooser, you need to specify the skin configs you want to use in the fruitbox.ini file. Below is the full list of available skins as of the time of this writing, April 2024 (these skins are already downloaded with Fruitbox, you just need to point to them in the ini file). A good autoboot solution is to set SkinChooserTimeout = 20.0 Seconds (See Fruitbox.ini – General Settings section above) and place the skin you usually want to boot into at the top of this list. This way you can boot into the skin chooser and use it to choose skins, or have an unattended scheduled reboot happen and for the skin chooser to time-out and run the skin you have at the top of your skins list. For example, the list below will run the WoodysJukebox skin after the skin chooser screen times out. (For auto rebooting info, see step, Reboot the pi every day at a specified time).

[skins]
File = skins/WoodysJukebox/fruitbox.cfg
File = skins/AlbumPlayer/fruitbox.cfg
File = skins/AlbumPlayer/fruitbox-pb.cfg
File = skins/Aluminium/fruitbox.cfg
File = skins/BigBobsMillions/fruitbox.cfg
File = skins/CDPlayer2000/fruitbox.cfg
File = skins/City-II-1080/fruitbox.cfg
File = skins/City-II-UltraWide/fruitbox.cfg
File = skins/Classic/fruitbox.cfg
File = skins/Dynomite/fruitbox.cfg
File = skins/Fallout-1080/fruitbox.cfg
File = skins/FB-M100/fruitbox.cfg
File = skins/IndieGloJunior/fruitbox.cfg
File = skins/IndieGloJunior/fruitbox_blue.cfg
File = skins/IndieGloJunior/fruitbox_green.cfg
File = skins/IndieGloJunior/fruitbox_orange.cfg
File = skins/IndieGloJunior/fruitbox_red.cfg
File = skins/IndieGloJunior/fruitbox_violet.cfg
File = skins/IndieGloJunior/fruitbox_yellow.cfg
File = skins/JaysBigScreen/fruitbox.cfg
File = skins/JaysCDJukebox/fruitbox.cfg
File = skins/JaysIndieglo/fruitbox.cfg
File = skins/JaysMoldyOldies/fruitbox.cfg
File = skins/LowerDecks/fruitbox.cfg
File = skins/LowerDecks/touch_fruitbox.cfg
File = skins/MacFarlane/fruitbox.cfg
File = skins/MacFarlane/fruitbox
File = skins/Mahogany/fruitbox.cfg
File = skins/MikeTV/fruitbox.cfg
File = skins/Modern/fruitbox.cfg
File = skins/Modernified/fruitbox.cfg
File = skins/NewRetro/fruitbox.cfg
File = skins/NumberOne/fruitbox.cfg
File = skins/RadioGlo/fruitbox.cfg
File = skins/RadiOldie/fruitbox.cfg
File = skins/Rock-Ola-444-1080/fruitbox.cfg
File = skins/Rock-Ola-444-UltraWide/fruitbox.cfg
File = skins/Rock-Ola-507-Wallbox/fruitbox.cfg
File = skins/Rock-Ola-Grand-Prix-II-1080/fruitbox.cfg
File = skins/Rock-Ola-Grand-Prix-II-UltraWide/fruitbox.cfg
File = skins/SB-M100/fruitbox.cfg
File = skins/Seeburg/fruitbox.cfg
File = skins/SeeburgSmall/fruitbox.cfg
File = skins/SilverSky-UltraWide/fruitbox.cfg
File = skins/SmallSage/fruitbox.cfg
File = skins/SmalTrivue/fruitbox.cfg
File = skins/Terminal/fruitbox.cfg
File = skins/TouchBlue/fruitbox.cfg
File = skins/TouchMiniAlbums/fruitbox.cfg
File = skins/TouchOne/fruitbox.cfg
File = skins/WallJuke2/fruitbox.cfg
File = skins/WallSmall/fruitbox.cfg
File = skins/Wurly/fruitbox.cfg
File = skins/WurlyVideo/fruitbox.cfg

 

Fruitbox.ini – Advanced Skin Chooser Options

If you’re using a thumb drive for your music, you could have a skin loaded on your thumb drive and add this to the top of the [skins] list in Fruitbox.ini. This is handy for special music collections, or a Christmas collection you want to use with a specific skin.

File = /mnt/usb/MagicOfChristmas/fruitbox.cfg (PLEASE NOTE, this requires the usb drive to be set to be mounted at boot up)

In this example, Fruitbox will look for a skin named MagicOfChristmas in the root of the thumb drive. Whatever it is named, the fruitbox.ini file will need to match what the actual folder name is. Skin would be a good generic name to use if you plan on changing the skin on the thumb drive frequently and don’t want to hassle with the ini file. If there is no skin folder on the thumb drive regardless of how it is named, Fruitbox will skip (even though it is specified in the ini) it and then search for the next skin in the list. When the skin chooser screen times out, it will load whatever it can find at the top of the

Fruitbox.ini – Attract Mode (Formerly Autoplay in V1) defaults and options highlighted

[attract mode]
Enable = No – set to Yes to enable. You can also turn attract mode off and on with the ‘ (apostrophe) key, or set in the Fruitbox menu.
Choice = Random – set to Sorted to play in the order songs are sorted.
Interval = 1.0 Minute – increments can be in ticks, seconds, minutes, hours – The time between end of song and beginning of next song.
MaxVolume = 500 to 100 – Maximum volume of attract mode song (with respect to current volume level)
FadeIn = 5.0 Seconds – increments can be in ticks, seconds, minutes, hours – Length of fade in time of attract mode song (0 = no fade in)
FadeOut = 10.0 Seconds – increments can be in ticks, seconds, minutes, hours – Length of fade out time of attract mode song (0 = no fade out)
FadeInPosition = 60.0 Seconds – increments can be in ticks, seconds, minutes, hours – Start time of attract mode song
FadeOutPosition = 70.0 Seconds – increments can be in ticks, seconds, minutes, hours – Stop time of attract mode song
SkipLoad = Yes – Set to No to turn off a skin’s song loading sequence.

*To get Random Play like Fruitbox V1 had, make these settings in Fruitbox.ini

[attract mode]
Enable = Yes
Choice = Random
Interval = 0.0 Minutes
MaxVolume = 50
FadeIn = 0.0 Seconds
FadeOut = 0.0 Seconds
FadeInPosition = 0.0 Seconds
FadeOutPosition = 0.0 Seconds
SkipLoad = Yes

Fruitbox.ini – Default Buttons – informational

There is a Reset Button Mappings tool in the Controls menu in Fruitbox. That’s assuming what you’ve changed hasn’t also broken the ability to navigate the Menu (been there). If you have, you can reset the button mappings within the Fruitbox.ini via FTP or remote shell. (*The button Mappings Tool does not work on Raspberry Pi 5s due to a change in the 5’s GPIO).

[buttons]
Quit = KEY_ESC
Coin1 = KEY_F1
Coin2 = KEY_F2
Coin3 = KEY_F3
Coin4 = KEY_F4
Coin5 = KEY_F5
Coin6 = KEY_F6
VolUp = KEY_EQUAL
VolDown = KEY_MINUS
Random = KEY_SPACE
Select = KEY_ENTER
Skip = KEY_BACKSPACE
Pause = KEY_SEMICOLON
Up = KEY_UP
Down = KEY_DOWN
Left = KEY_LEFT
Right = KEY_RIGHT
LeftScreen = KEY_LEFTBRACE
RightScreen = KEY_RIGHTBRACE
LeftSort = KEY_COMMA
RightSort = KEY_DOT
AttractMode = KEY_APOSTROPHE
LoopQueue = KEY_F11
FreePlay = KEY_F12
ClearQueue = KEY_DELETE
MusicGroup = KEY_BACKSLASH
Mute = KEY_LEFTCTRL
PowerOff = KEY_SYSRQ
Select0 = KEY_0
Select1 = KEY_1
Select2 = KEY_2
Select3 = KEY_3
Select4 = KEY_4
Select5 = KEY_5
Select6 = KEY_6
Select7 = KEY_7
Select8 = KEY_8
Select9 = KEY_9
SelectA = KEY_A
SelectB = KEY_B
SelectC = KEY_C
SelectD = KEY_D
SelectE = KEY_E
SelectF = KEY_F
SelectG = KEY_G
SelectH = KEY_H
SelectI = KEY_I
SelectJ = KEY_J
SelectK = KEY_K
SelectL = KEY_L
SelectM = KEY_M
SelectN = KEY_N
SelectO = KEY_O
SelectP = KEY_P
SelectQ = KEY_Q
SelectR = KEY_R
SelectS = KEY_S
SelectT = KEY_T
SelectU = KEY_U
SelectV = KEY_V
SelectW = KEY_W
SelectX = KEY_X
SelectY = KEY_Y
SelectZ = KEY_Z
Flag1 = KEY_F7
Flag2 = KEY_F8
Flag3 = KEY_F9
Flag4 = KEY_F10
Menu = KEY_TAB
Search = KEY_SLASH
Mouse = BTN_LEFT
Screenshot = KEY_RIGHTCTRL

Additional Buttons: These can be helpful if you are trying to manually edit fruitbox.ini. The below mappings are for the number pad.

Numlock = KEY_NUMLOCK
Enter = KEY_KPENTER
/ = KEY_KPSLASH
* = KEY_KPASTERISK
– = KEY_KPMINUS
+ = KEY_KPPLUS
7 = KEY_KP7
8 = KEY_KP8
9 = KEY_KP9
4 = KEY_KP4
5 = KEY_KP5
6 = KEY_KP6
1 = KEY_KP1
2 = KEY_KP2
3 = KEY_KP3
0 = KEY_KP0
. = KEY_KPDOT


Common Issues and Fixes

How to address common issues with either Fruitbox or Raspberry Pi OS

Fix black border around screen if present: From a command shell, type – sudo raspi-config -> Display Options -> Underscan, then select no 

Stop the screen from turning off: From a command shell, type – sudo raspi-config -> Display Options -> Screen Blanking then select no. 

Fruitbox stops and returns to the desktop after 20 minutes or so: See step above titled ‘Stop the screen from turning off’.

Time is Wrong: *Time is set up after first boot, but this is a way you can change it. From a command shell, type – sudo raspi-config -> Localization Options -> Timezone, select your geographic area then timezone. Time should be set automatically based on timezone selected. To check time, type “date” at command line. You’ll definitely want to make sure the time is correct if you want to do reboots on a schedule.

Change audio from HDMI to 3.5 mm jack or vice-versa: From a command shell, type – sudo raspi-config -> System Options -> Audio

Fruitbox can’t find any of my music: See section titled setting the music directory in the fruitbox.ini file.

I see my music in Fruitbox but all the song titles are messed up or not what I expect to see: Fruitbox reads the ID3 tag metadata in your MP3s. To edit the ID3 metadata, you’ll need to use something like MP3Tag or Musicbrainz Picard to edit your MP3s. It’s easier to address this on your PC before moving the music over to your Pi.

I see music in Fruitbox but I’m not seeing album art: Fruitbox reads the ID3 tag metadata in your MP3s. The album art is embedded inside the MP3s. To edit the ID3 metadata, you’ll need to use something like MP3Tag or Musicbrainz Picard to edit your MP3s. The exception to this is album based skins. With album based skins, you’ll need each album to have it’s own folder and have a folder.jpg in each album folder. If you have a large library of albums, I have found it helpful to have Windows Media Player catalog my MP3 files as it will automatically download folder.jpgs for each folder. I am not aware of any other software that will automatically do this. See this link to get album art (folder.jpgs) in each album folder.

Fix volume too low: If your speaker volume is at 100%, the volume in Fruitbox is 100% and it still sounds too quiet, your Raspberry Pi master volume probably needs to be adjusted. At the command line, type alsamixer. Within AlsaMixer you can define which sound card is used (HDMI, Headphones, etc) and adjust the master volume with the up and down keys on your keyboard. I typically set mine to 100% and just use Fruitbox to adjust the volume.


Bonus section

How to install a power button on your Raspberry Pi.

After all the work to get this far, it is highly recommended to install a power button to perform safe shutdowns so you don’t fry your SD card.

To power off your Pi from within Fruitbox, you can use the SysRq key Which on my keyboard is also the PrintScreen key. You can change this key in the menu to any key you want (make sure it’s not already assigned to something else). To start your pi, you’ll need to short pins 5 and 6. It’s easy to wire a momentary switch to those pins. Since Fruitbox can access the GPIO, you can now go back into the menu, configure buttons and go to the power off entry and press enter to change it. Press your power button. If you wired it properly, it should change from SysRq to GPIO-3. Now you can power the Pi off and on with that switch.

From the command line: sudo nano /boot/config.txt

At the very bottom of the file type – dtoverlay=gpio-shutdown

ctrl-x to exit nano. Y and enter to save.

You can now short pins 5 and 6 to perform a safe shutdown or to start the Pi. It’s easy to wire a momentary switch to those pins.


Acknowledgements

Special thanks to Mickey Knox, Larry Peterson, Laverne Krahenbil, Colin King and the creator of Fruitbox himself, Mike Kingsley.


For further jukebox discussion (not limited to just Fruitbox), you are invited to join my Discord channel. https://discord.gg/sK6hm3rvKu

For custom Jukebox talk in general, check out the Digital Jukebox Builder’s Group on Facebook.
You can find several of my Fruitbox videos on Youtube. https://www.youtube.com/channel/UCf8BgT0W1ezCv5JZsFRBumw

DISCLAIMER

This guide is not gospel. If you are not good at this kind of stuff, assume you might need to start over – including re-imaging your SD card. This guide is intended to be used on a fresh Raspberry Pi installation and sticking with the defaults (User pi) and file locations specified in the instructions. If you can’t get something to work, make sure you double check the commands for proper spaces, dashes, underscores, etc. Please note: if you go off the script at all, don’t expect this guide to work. Once you get everything installed – then feel free to make your customizations.

I’ve given you a lot of tools here to install Fruitbox on your own. If you have questions, feel free to ask over on my discord (link is above). Having a hissy fit or saying you are going to smash your Raspberry Pi with a hammer because you can’t figure it out will get you nowhere.