Installing TunerStudio on Raspbian with autostart and push button clean shutdown!

NO LONGER SUPPORTED. GO TO THE WIKI AND DOWNLOAD THE LATEST IMAGE.

Requirements:

  1. Raspberry Pi 3 or 4
  2. Raspbian Linux
  3. TunerStudio
  4. Header to plug into the GPIO pins
  5. Push button

Basic Concept:

  1. Start up the Raspberry Pi
  2. Boot into Raspbian
  3. Start TunerStudio automatically
  4. Exit TunerStudio clean with a push button
  5. Shutdown Raspbian clean after TS exits

Download Raspbian here:
https://www.raspberrypi.org/downloads/

Installation notes for Linux, Mac OS, Windows images to SD Card here:
https://www.raspberrypi.org/documentation/installation/installing-images/

In Linux, my command was below. Be absolutely certain that /dev/sda is the location of your SD CARD!!!

dd bs=4M status=progress if=2019-09-26-raspbian-buster-full.img of=/dev/sda

Download TunerStudio or copy it to your SD Card. You can also boot into Raspbian and do this. My example will use Raspbian to do all of the work.

Insert the SD card into your Raspberry Pi and power up. It may take a little bit to go thru the startup sequence for the first time. Once its booted up into Raspbian you’ll see the following screen, click Next and answer the questions. You’ll be asked for your locale, network config, change the password etc.

Once complete, head over to download TunerStudio. Click on the blue globe on the top left to open your browser and go to this URL. Scroll to the bottom and download the latest TunerStudio for Linux version.
http://www.tunerstudio.com/index.php/downloads

Once the download is complete, open up a terminal session. Top left corner, looks like a >_ sign in a black box.

Now we need to install TunerStudio, so you’ll do the following commands to decompress the file. At the time of this article, the version is 3.0.28 and the filename is TunerStudioMS_v3.0.28.tar.gz. The below commands will get you to your Downloads directory and show you the contents. If your file has a different name, use that instead of the one I just typed.

cd Downloads
ls -lsrth

Lets move that file from our Downloads directory to the main directory and extract the contents.

mv TunerStudioMS_v3.0.28.tar.gz /home/pi
cd
tar xf TunerStudioMS_v3.0.28.tar.gz
ls -lsrth

Now you should have a TunerStudioMS directory. Lets run TunerStudio and see if it works. You should see output saying something about it not being registered and then the awesome TS pops up. Once you do that, just exit. Time to get to work.

cd TunerStudioMS
./TunerStudio.sh

You should be back at the terminal screen. Lets create a script that starts up TunerStudio. We will be using the editor called nano. Paste the EXACT commands in the file and then save. If you screw up you can delete the file “del startts.sh” and start again.

nano /home/pi/startts.sh

Put this in the script and then save:

#!/bin/bash
cd /home/pi/TunerStudioMS
./TunerStudio.sh

Make the script executable once you get to the prompt:

chmod +x startts.sh

Now lets run that script to see if TunerStudio starts up.

./startts.sh

You should see the same TunerStudio screen. Exit. More work.

Lets modify the boot up to start TunerStudio automatically. The following will change directory to the autostart directory where you will create a script to run TS.

cd /etc/xdg/autostart
sudo nano StartTS.desktop

In the editor type this EXACTLY and when you’re done, save.

[Desktop Entry]
Type=Application
Name=TunerStudioMS
Comment=ts
NoDisplay=false
Exec=/usr/bin/lxterminal -e “/home/pi/startts.sh; read -n 1 -s”

At this point you should be able to reboot and then TunerStudio should start up automagically. You should be sitting at a terminal prompt. Type the following to reboot:

init 6

Once rebooted, a terminal screen will pop up and then TunerStudio will start. Exit TunerStudio, hit return and then the terminal session will disappear.

Lets set up the auto shutdown script. Click on the terminal icon which looks like a black box on the top left with a >_ in it. Then type the following two commands. The first copies the necessary commands you’ll need and the second installs it:

git clone https://github.com/Howchoo/pi-power-button.git
./pi-power-button/script/install

Now this is the interesting part. Once installed it runs some python code and starts waiting, listening for you to select the power off by hitting a button. Here is where it is on your Raspberry Pi, 3rd from the right. If you hook up a push button, once you press it, by default this will cleanly shut down the Pi but YOU’RE NOT DONE YET. The jumper was off of some old computer parts I had. You can do the same or make one. The other end of those two wires, I do not have a button on it yet. Need to order some since I lost my pack of buttons. If you’re like me and just want to test, expose the wire off of the red and black and then touch them together briefly. Your Pi will clean shutdown. Go ahead and power back on. We need to modify the python code and TunerStudio startup script that comes with TunerStudio.

Exit TunerStudio and open a terminal session. Lets modify the original startup script TunerStudio comes with. We’ll create a backup in case you have a typo.

cd TunerStudioMS
cp TunerStudio.sh TunerStudio.sh.bak

Here is the TunerStudio script. What is in BOLD RED is what you will ADD at the EXACT SPOT PICTURED!!! If you do this wrong you will screw up the TunerStudio startup script, but we have a backup. Scroll to the bottom of the script with your arrow keys and look for the line pictured. Add what is in BOLD RED. Once done, save.

nano TunerStudio.sh

cd “$BASE_PATH” && java -Djava.library.path=${SERIAL_DRIVER}lib -cp “.:lib:plugins” -jar TunerStudioMS.jar $1 &
RESULT=$?

echo $! > /tmp/ts.pid
echo “kill -s TERM `cat /tmp/ts.pid`” >/home/pi/stopts.sh
chmod +x /home/pi/stopts.sh


if [ -d “$LAST_PATH” ]; then
cd “$LAST_PATH”
fi

exit $RESULT

At this point you should be back at the terminal prompt. We should be able to run TunerStudio and it should still start up the same. Lets give it a shot. Exit TS after it pops up.

cd
./startts.sh

If TunerStudio came up, no typos, you’ve done well. Last but not least, lets modify the python code to shut down TunerStudio and the Pi.

Here is the original code:

#!/usr/bin/env python

import RPi.GPIO as GPIO
import subprocess

GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(3, GPIO.FALLING)

subprocess.call([‘shutdown’, ‘-h’, ‘now’], shell=False)

Edit the file :

sudo nano /usr/local/bin/listen-for-shutdown.py

Insert the lines in BOLD RED:

!/usr/bin/env python

import RPi.GPIO as GPIO
import subprocess
import os
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(3, GPIO.FALLING)

os.system(‘/home/pi/stopts.sh’)
time.sleep(15)


subprocess.call([‘shutdown’,’-h’,’now’], shell=False)

You can now reboot. Once booted into Raspbian, TunerStudio will start up and in the background you will have a process monitoring to see if you hit the “power button”. Once you do, TunerStudio will exit, 15 second time out, then the Raspberry Pi will shut down clean.

If there is a way to improve on this, do so and reply back. Here’s a video of this done with my instructions.


10 Responses to Installing TunerStudio on Raspbian with autostart and push button clean shutdown!

  1. hey man. great tutotial. i’m stuck on the auto start step. when i reboot, i get a box titled, startts.sh; and it doesnt go past that. i used the commend to check and see that tuner studio does indeed start up manually. any chance you know how to fix it?

    • ok, it might take a while to debug via my website. I can remote in and look at it if you want, using AnyDesk. If not, go to a terminal and type the following

      cat startts.sh

      …and paste what you have as a comment here. You might have a typo. Or you can also do the following command:

      ./startts.sh

      ..from a command line. It should run TunerStudio. If not, it might spit out an error. Let me know what it is.

      • thank you so much man. i really appreciate it. ./startts.sh does work. TS opens just fine with that command. heres what i get with cat ./startts.sh

        #!/bin/bash
        cd /home/pi/TunerStudioMS
        ./TunerStudio.sh

      • I GOT IT!!
        what i did was:
        1: open command prompt
        2: sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
        3: @TunerStudioMS/TunerStudio.sh add that line to the top
        4: hit ctrl+x then yes to save.
        5: init 6 to reboot
        Now it boots just like it does in the walk through above.
        I’m using the Raspberry pi4. Don’t know why that would make a difference but apparently it does.
        Now I can continue on. Thanks again man for the work put into this. It is very well written out.

        • Avatar John Trout
          John Trout says:

          I had to do the same thing to get it working on my raspberry pi 3b+

          • Avatar John Trout
            John Trout says:

            jk nvm it didnt work, I was having the same issue as dennis and I followed his fix but it still shows an empty terminal window titled startts.sh. the cat startts.sh command gives the same output dennis got and ./startts.sh starts tunerstudio as well. I followed the edit dennis did to autostart but it didnt seem to work for me. Any suggestions?

            Thanks

          • Avatar John Trout
            John Trout says:

            Got it working. I instead added the phrase @TunerStudioMS/TunerStudio.sh to ~./config/lxsession/LXDE-pi/autostart and deleted the StartTS.desktop and startts.sh as they were unneccessary

          • I no longer support this version. Please go to the PiDash Wiki and download the image there.

  2. man all this stuff is great! ive been looking for a good tutorial on how to do this i just wish there was a video going step by step