author
6Instructables55,854Views15CommentsCanadaJoined December 31st, 2015
Professional Firefighter who dabbles in electronics and is obsessed with vintage computers (1980s), tracker module music and old school BBS's. Always excited to help others with their projects if I'm able, so don't hesitate to contact me with questions!

Achievements

10K+ Views Earned a bronze medal
Raspberry Pi Contest 2017
Contest Winner Runner Up in the Raspberry Pi Contest 2017
Show 1 More »
  • Jagged_path made the instructable One Transistor Audio for Pi Zero W17 days ago
    One Transistor Audio for Pi Zero W

    Neat solution to the Pi Zero's lack of non-HDMI audio.I built it and it works great. The zero in this photo is running Volumio 2.x and streaming a web radio station.Thanks for the project!

    View Instructable »
  • Jagged_path commented on rgrokett's instructable One Transistor Audio for Pi Zero W17 days ago
    One Transistor Audio for Pi Zero W

    Neat solution to the Pi Zero's lack of non-HDMI audio.I built it and it works great. The zero in this photo is running Volumio 2.x and streaming a web radio station.Thanks for the project!

    View Instructable »
  • FridgePi : Leftovers Never Sounded So Good

    UPDATEI added two push buttons to the display.Both are momentary, normally open (NO), push buttons with an LED (just to look cool) :)Both buttons LED contacts are wired to the Pi's 3.3v GPIO pin and ground.The GREEN button (has a green power emblem) is wired to the Pi's two RUN pins.It can be used to force the Pi to restart should it become unresponsive. This is great for my setup, as the wall-wart power supply is behind the fridge and not easily accessible to pull if I need to restart the Pi. :)The BLUE button's NO contacts are wired to GPIO 26 and ground.I wrote a small Python script that uses UINPUT to emulate the keyboard strokes "CONTROL+TAB". This causes Chrome to cycle through it's open browser tabs when the blue button is pressed.So on boot, I setup a tab for the Vol...

    see more »

    UPDATEI added two push buttons to the display.Both are momentary, normally open (NO), push buttons with an LED (just to look cool) :)Both buttons LED contacts are wired to the Pi's 3.3v GPIO pin and ground.The GREEN button (has a green power emblem) is wired to the Pi's two RUN pins.It can be used to force the Pi to restart should it become unresponsive. This is great for my setup, as the wall-wart power supply is behind the fridge and not easily accessible to pull if I need to restart the Pi. :)The BLUE button's NO contacts are wired to GPIO 26 and ground.I wrote a small Python script that uses UINPUT to emulate the keyboard strokes "CONTROL+TAB". This causes Chrome to cycle through it's open browser tabs when the blue button is pressed.So on boot, I setup a tab for the Volumio interface, a tab for displaying weather and any other additional tabs I want to be able to cycle through.Wanna see how it's all put together?Read on...I'll assume you've already built your FridgePi (see above) and installed buttons into the frame somewhere. I used two 12mm metal buttons with internal LED/resistors.The next step is to install UINPUT if you don't already have it running (you probably don't).To do this, SSH into your internet connected Pi and type:sudo pip install python-uinputAdd it to your /etc/modules file so you don't have to manually type modprobe uinput on every boot.sudo nano /etc/modulesAdd the line: uinputNext, write your Python keystroke emulator script.Here's mine, which I store in /home/pi/python/keyboard.py#Original indispensable code example by Roger Woollett#Modified and built on by Jagged_Pathimport osfrom time import sleepimport RPi.GPIO as GPIOimport uinputGPIO.setmode(GPIO.BCM)GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_UP)device = uinput.Device([ uinput.KEY_TAB, uinput.KEY_LEFTCTRL, ])while True: if (GPIO.input(26) == False ): keyA = getattr(uinput,"KEY_LEFTCTRL") #The first key to press and hold device.emit(keyA, 1) #Hold keyA down keyB = getattr(uinput,"KEY_TAB") #The second key to press and hold device.emit(keyB, 1) #Hold keyB down device.emit(keyA, 0) # Release keyA device.emit(keyB, 0) # Release keyB sleep(0.25) #Debounce for a few ms else: os.system('clear') #Clear the screen print ("Waiting for button input") sleep(0.1)****Credit where credit is due!Thanks to Roger Woollett for writing a great example UINPUT Python program.Here's a link to his example: https://www.raspberrypi.org/forums/viewtopic.php?t=188941****The trick was getting the single mechanical button press to emulate a two key stroke combination.Using 1 (hold) and 0 (release) did the trick. Just remember to put the CONTROL before the TAB, else you'll tab trough the current tab's screen and not actually change the tabs. :)Next, we want to get the keyboard button emulator program we just wrote to run automatically at every boot.Let's write a little bash script and add it to the rc.local file to accomplish this.Inside the same directory you placed the keyboard.py Python file, create this script. Again, mine lives in /home/pi/python/keyboard.shsudo nano keyboard.sh#!/bin/shsudo python /home/pi/python/keyboard.py &Save the file and then set it to executable:chmod +x keyboard.shNow, edit your rc.local file (located in /etc) and add the path to your new .sh script:sudo nano /etc/rc.localAdd the line:/home/pi/python/keyboard.shabove the exit 0 statement near the bottom.If you reboot now, your FridgePi will start, load the Volumio interface and be checking your mechanical button on GPIO 26 for input and sending CONTROL+TAB when it detets a button press.However, you only have one tab!Let's create a second tab on boot so we can switch between them...From the terminal, we need to edit the autostart file for LXDE.sudo nano /home/pi/.config/lxsession/LXDE-pi/autostartNow, to create multiple tabs in Chromium, just add URL's one after the other.Here's the line from my autostart file:@lxterminal -e chromium-browser --start-fullscreen --incognito 10.0.1.27 https://dakboard.com/app?p=xxxxxxxxxxxxxxxNote that since I'm pressed for free time, I opted to use DAKBoard (free) for my weather / background display. Pretty slick service (free and paid available).you could just as easily use any other weather website or even an extension.Keep adding URL's for more tabs. I plan to add a full screen calendar / To do tab as well.If I ever get enough free time.. at least it's on my 'to do' tab... :)I hope that helps get you going with this modification!Have fun and let me know what you come up with! :)

    UPDATEI added two push buttons to the display.Both are momentary, normally open (NO), push buttons with an LED (just to look cool) :)Both buttons LED contacts are wired to the Pi's 3.3v GPIO pin and ground.The GREEN button (has a green power emblem) is wired to the Pi's two RUN pins.It can be used to force the Pi to restart should it become unresponsive. This is great for my setup, as the wall-wart power supply is behind the fridge and not easily accessible to pull if I need to restart the Pi. :)The BLUE button's NO contacts are wired to GPIO 26 and ground.I wrote a small Python script that uses UINPUT to emulate the keyboard strokes "CONTROL+TAB". This causes Chrome to cycle through it's open browser tabs when the blue button is pressed.So on boot, I setup a tab for the Vol...

    see more »

    UPDATEI added two push buttons to the display.Both are momentary, normally open (NO), push buttons with an LED (just to look cool) :)Both buttons LED contacts are wired to the Pi's 3.3v GPIO pin and ground.The GREEN button (has a green power emblem) is wired to the Pi's two RUN pins.It can be used to force the Pi to restart should it become unresponsive. This is great for my setup, as the wall-wart power supply is behind the fridge and not easily accessible to pull if I need to restart the Pi. :)The BLUE button's NO contacts are wired to GPIO 26 and ground.I wrote a small Python script that uses UINPUT to emulate the keyboard strokes "CONTROL+TAB". This causes Chrome to cycle through it's open browser tabs when the blue button is pressed.So on boot, I setup a tab for the Volumio interface, a tab for displaying weather and any other additional tabs I want to be able to cycle through.Wanna see how it's all put together?Read on...I'll assume you've already built your FridgePi (see above) and installed buttons into the frame somewhere. I used two 12mm metal buttons with internal LED/resistors.The next step is to install UINPUT if you don't already have it running (you probably don't).To do this, SSH into your internet connected Pi and type:sudo pip install python-uinputAdd it to your /etc/modules file so you don't have to manually type modprobe uinput on every boot.sudo nano /etc/modulesAdd the line: uinputNext, write your Python keystroke emulator script.Here's mine, which I store in /home/pi/python/keyboard.py#Original indispensable code example by Roger Woollett#Modified and built on by Jagged_Pathimport osfrom time import sleepimport RPi.GPIO as GPIOimport uinputGPIO.setmode(GPIO.BCM)GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_UP)device = uinput.Device([ uinput.KEY_TAB, uinput.KEY_LEFTCTRL, ])while True: if (GPIO.input(26) == False ): keyA = getattr(uinput,"KEY_LEFTCTRL") #The first key to press and hold device.emit(keyA, 1) #Hold keyA down keyB = getattr(uinput,"KEY_TAB") #The second key to press and hold device.emit(keyB, 1) #Hold keyB down device.emit(keyA, 0) # Release keyA device.emit(keyB, 0) # Release keyB sleep(0.25) #Debounce for a few ms else: os.system('clear') #Clear the screen print ("Waiting for button input") sleep(0.1)****Credit where credit is due!Thanks to Roger Woollett for writing a great example UINPUT Python program.Here's a link to his example: https://www.raspberrypi.org/forums/viewtopic.php?t=188941****The trick was getting the single mechanical button press to emulate a two key stroke combination.Using 1 (hold) and 0 (release) did the trick. Just remember to put the CONTROL before the TAB, else you'll tab trough the current tab's screen and not actually change the tabs. :)Next, we want to get the keyboard button emulator program we just wrote to run automatically at every boot.Let's write a little bash script and add it to the rc.local file to accomplish this.Inside the same directory you placed the keyboard.py Python file, create this script. Again, mine lives in /home/pi/python/keyboard.shsudo nano keyboard.sh#!/bin/shsudo python /home/pi/python/keyboard.py &Save the file and then set it to executable:chmod +x keyboard.shNow, edit your rc.local file (located in /etc) and add the path to your new .sh script:sudo nano /etc/rc.localAdd the line:/home/pi/python/keyboard.shabove the exit 0 statement near the bottom.If you reboot now, your FridgePi will start, load the Volumio interface and be checking your mechanical button on GPIO 26 for input and sending CONTROL+TAB when it detets a button press.However, you only have one tab!Let's create a second tab on boot so we can switch between them...From the terminal, we need to edit the autostart file for LXDE.sudo nano /home/pi/.config/lxsession/LXDE-pi/autostartNow, to create multiple tabs in Chromium, just add URL's one after the other.Here's the line from my autostart file:@lxterminal -e chromium-browser --start-fullscreen --incognito 10.0.1.27 https://dakboard.com/app?p=xxxxxxxxxxxxxxxNote that since I'm pressed for free time, I opted to use DAKBoard (free) for my weather / background display. Pretty slick service (free and paid available).you could just as easily use any other weather website or even an extension.Keep adding URL's for more tabs. I plan to add a full screen calendar / To do tab as well.If I ever get enough free time.. at least it's on my 'to do' tab... :)I hope that helps get you going with this modification!Have fun and let me know what you come up with! :)

    View Instructable »
  • Jagged_path's instructable FridgePi : Leftovers Never Sounded So Good's weekly stats: 3 months ago
    • FridgePi : Leftovers Never Sounded So Good
      6,700 views
      132 favorites
      12 comments
  • FridgePi : Leftovers Never Sounded So Good

    Hi Wild-Bill,Here's a pic of the finished Volumio player for the hottub project (I call it PetriPi).Power can be 12-18v directly applied to the AMP2, which in turn powers the attached Pi (thus the piano key sticker over the Pi's power / HDMI and earphone ports, blocking access).Added a momentary push button with a builtin power indicator LED. It's normally open contacts are connected to the two RUN pins on the Pi3 as an emergency reboot button, and the LED is connected to the 3.3v GPIO pin (the button's LED has a built in resistor already). :)It's headless with no dedicated control interface, since someone will simply use their iPhone to control it.

    View Instructable »
  • FridgePi : Leftovers Never Sounded So Good

    Hi CaptClaud,Thanks! It was a fun project to build, I'd love to redo it as I've thought of several other features since it's completion. Someday when I actually get free time maybe I'll revisit it.The screen I used was a Kuman Capacitive 7" touch screen TFT LCD.800x480.I picked it up on Amazon Canada for around $59 Canadian.I wanted to use a capacitive screen instead of a resistive (which would have been cheaper and easier to source locally) due to the frequent use and better responsiveness, especially since I really wanted my wife to enjoy using this and she's more use to a iPad style capacitive touch screen.A Pi Zero is a great idea, I agree that the processing power may be limiting factor, but since it's only the touch interface running on the FridgePi end (the Pi3 int he basm...

    see more »

    Hi CaptClaud,Thanks! It was a fun project to build, I'd love to redo it as I've thought of several other features since it's completion. Someday when I actually get free time maybe I'll revisit it.The screen I used was a Kuman Capacitive 7" touch screen TFT LCD.800x480.I picked it up on Amazon Canada for around $59 Canadian.I wanted to use a capacitive screen instead of a resistive (which would have been cheaper and easier to source locally) due to the frequent use and better responsiveness, especially since I really wanted my wife to enjoy using this and she's more use to a iPad style capacitive touch screen.A Pi Zero is a great idea, I agree that the processing power may be limiting factor, but since it's only the touch interface running on the FridgePi end (the Pi3 int he basment handles the actual streaming and Volumio software) it may not be bad. Something to play with.If you decide to try it, let me know how it works out!

    Hi wild-Bill, awesome!Great idea to use the Flirc!I'm really liking Volumio, it's not without a few minor bugs but overall it's stable and works as expected.I think the next revision to this will be a switch to cycle between desktops so I can run other applications in full screen mode, such as fridge/freezer inventory tracker, etc..I just purchased a Pi3 and HiFiBerry AMP2 to power the music system in a friend's old hottub.Coupled with Volumio's Air Play ability, it should be a nice little project. :)

    Thanks Aaaecm!You can never have too many Pi's! :)

    Hi Buddhageek,Thanks! It was a fun project to build.Sorry, I think I forgot to mention the actual make/model of the screen.It's a Kuman Capacitive 7" touch screen TFT LCD.800x480.I picked it up on Amazon Canada for around $59 Canadian.I wanted to use a capacitive screen instead of a resistive (which would have been cheaper and easier to source locally) due to the frequent use and better responsiveness.

    View Instructable »
  • Jagged_path followed Apple channel 3 months ago
  • Jagged_path's instructable PLANToys Parking Garage BRIO Conversion's weekly stats: 1 year ago
    • PLANToys Parking Garage BRIO Conversion
      488 views
      5 favorites
      0 comments
  • Jagged_path's instructable BRIO Bridge Underpass Modification's weekly stats: 1 year ago
    • BRIO Bridge Underpass Modification
      474 views
      6 favorites
      1 comments