Tuesday, October 14, 2014

5th Egham Raspberry Jam - 5th October - Report

A year after the 4th Egham Raspberry Jam the 5th Jam was held.
A bit of fun getting it organised but in the end it was really worth it.

I put the list in Eventbrite and the Raspberry Pi Forum with a month to go and began tweeting and spreading the word.

With such a long gap between Egham Jams I was wondering if people would turn up.

On the day about 40 people came which was fantastic and there was a brilliant variety of projects on show.

Everything from home made conductive paint being used to add glowing eyes to Halloween pictures to 3D printers controlled by Raspberry Pi.
There were (count them) 4 robotic arms. A scalextric controlled from Scratch. A section of model train train controlled using the DCC protocol from RISC OS.
A Thermal printer that gave you a crossword, word search or Sudoku at the touch of a button and a nice big robot that looked like it could do some serious moving.

Also Stephen Cornes did a fantastic timelapse video of the day. For some reason I cannot embed it here. Not sure why but the link is below.


Roll on the next Egham Raspberry Jam.

Below are some of the pictures from the day.

Raspberry Pi model B+ composite/RCA video/audio adapter

With the release of the Raspberry Pi model B+ the previous arrangement from the A/B of having a 3.5mm stereo audio jack and an RCA for video has been changed to a single 3.5mm jack that includes stereo audio and the composite video.

I kept reading online that the arrangement was the same and the iPod and also the Zune so there are loads of cheap cables and adapters out there that work.

After lots of searching I found a number of cables that looked like they would work, but since they were all cheap no specifications for the wiring were listed.

From the Schematic (http://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/Raspberry-Pi-B-Plus-V1.2-Schematics.pdf) the arrangement needed from tip to base is.

Tip - Audio Left
Band 1 - Audio Right
Band 2 - Ground
Base - Composite Video

It doesn't really matter if the audio connections are reversed as you could just swap the leads, but getting the ground or the composite in the wrong position means no video would be output and in the case of ground no audio also.

So, I went mad and took the plunge to buy a £2.00 adapter from eBay and see if it works.

Here it is plugged into the Raspberry Pi Model B+

RCA/Composite video adapter for Raspberry Pi B+

It covers the HDMI port which isn't a problem. As, when I'm using composite I'm not using HDMI.

I am delighted to say it works perfectly. The wiring is correct. I plugged it into a television and up popped the display from my RetroPie install. Playing Double Dragon on the big screen.

Double Dragon played over composite with stereo audio
The price was only for the adapter, but I had an RCA cable from my kids Karaoke machine, but if you don't have one handy then this one for £1.99 also from eBay would work.

Meaning for £4.00 all in you  have an adaptor for B+ to connect to composite and analogue audio as well as the required connecting cable.

I like that it is a 2 piece configuration as a composite cable can have other uses.  I spliced one before to work with an Arduino and the TV-out Library.

Gathering more bits.

Saturday, September 20, 2014

Setting up RetroPie on Raspberry Pi with USB gamepad

Every since it started I've watch the development with RetroPie a Raspberry Pi image that includes a number of console/computer emulators optimised for the Raspberry Pi.

I'm not a major gamer but sometimes a bit of nostalgia is worthwhile so I decided to install RetroPie

A few things to note. RetroPie is built on Raspbian, so the foundation is solid.
You can even use raspi-config to expand the SD partitions and set overclocking and GPU memory split.

The easiest way to use RetroPie is to download the pre-made image from the website http://blog.petrockblock.com/retropie/

Use your tool of choice to burn the SD card.  I did it on Windows 7 so I used Win32DiskImager

Once install in the Pi and all cables attached I added power.
Up comes the lovel RetroPie splash screen and it boots straight into Emulation Station which is a great front end giving access to the emulators where roms are available.
Splash Screen

On first boot Emulation Station prompts you to configure your controller/gamepad to operate the menus in Emulation Station. This confused me a little as I thought it was asking to configure the gamepad for the games.

But once I got a few roms on it became clear the this setup was only for Emulation Station and for that it worked perfectly.

I quit Emulation Station and ran raspi-config to expand the partition, split the memory 256MB/256MB as I read the PSX emulator may need it and also to do some minor over clocking (it can't hurt to have a bit more speed)

Then to get RetroPie setup correctly.

From the home directory do:

cd RetroPie-Setup
sudo ./retropie_setup.sh

This brings up the RetroPie configuration menu.
I selected Option 1 to do the Binaries-based INSTALLATION.
RetroPie comes with the bare minimum to get going in the image so you have to do this to get the other emulators.
As expected this can take a bit of time. 
Main Menu for retropie_setup

Once this finished I then selected option 3. SETUP (only if you already have run one of the installations above)

This is where you get the extra options to customize RetroPie.
If you are building a cabinet or want that genuine old school feeling of using original controllers there are a number of tools in the SETUP menu to make it a lot easier.  I was not interested so the only thing I enabled here is 310 SAMBA ROM Shares.
This enables SAMBA shares so you can drag and drop files from your computer to the Raspberry Pi making it much easier to get ROMs into RetroPie

SETUP menu 
At this stage RetroPie has all the emulators installed and the menus works but there are no ROMs and the games (once ROMs are copied across) will only work with the keyboard.

I mentioned I enabled SAMBA above so I could copy ROMs across. In the end I didn't use this. I used WinSCP which allows you to login to the Pi and drag and drop files from your computer onto the Pi in a nice GUI tool 

You have to copy the ROMs to the relevant folders for the different emulators.
Really simple. Reminded me of the olf Windows 3.11 FileManager with 2 panes to drag and drop between.

Last item was to get the gamepad working with the games and not just the Emulation Station menu.
This took a bit of hunting online as I have a feeling the method may have changed in the last update of RetroPie to v2.3.

In the end the method I found that work for me with my gamepad was from a reply on the following webpage.  http://blog.petrockblock.com/forums/topic/how-to-configure-a-controller-on-retropie/ from user flipbug

sudo chown pi /opt/retropie/configs/all/retroarch.cfg

cd /opt/retropie/emulators/RetroArch/installdir/bin

sudo ./retroarch-joyconfig -j 0 >> /opt/retropie/configs/all/retroarch.cfg

The first command gives the user pi the right to change the retroarch.cfg file.
The second goes to the directory where the retroarch-joyconfig command is located
The final command rund retroarch-config and outputs its results to retroarch.cfg 

I found the tool to be a bit sensitive when dealing with the analog sticks so ended up having to do it a few times.

In case my configuration matches some elses here is the configuration I use.

input_player1_joypad_index = "0"
input_player1_b_btn = "2"
input_player1_y_btn = "0"
input_player1_select_btn = "8"
input_player1_start_btn = "9"
input_player1_up_btn = "h0up"
input_player1_down_btn = "h0down"
input_player1_left_btn = "h0left"
input_player1_right_btn = "h0right"
input_player1_a_btn = "3"
input_player1_x_btn = "1"
input_player1_l_btn = "4"
input_player1_r_btn = "6"
input_player1_l2_btn = "5"
input_player1_r2_btn = "7"
input_player1_l3_btn = "10"
input_player1_r3_btn = "11"
#input_player1_r3_axis = "+3"
input_player1_l_x_plus_axis = "+0"
input_player1_l_x_minus_axis = "-0"
input_player1_l_y_plus_axis = "+1"
input_player1_l_y_minus_axis = "-1"
input_player1_r_x_plus_axis = "+3"
input_player1_r_x_minus_axis = "-3"
input_player1_r_y_plus_axis = "+2"
input_player1_r_y_minus_axis = "-2"

It was a bit of a trial and error session getting RetroPie working but in the end I have a fantastic emulator system set up on a model B+ that looks well and performs brilliantly.  I am really impressed at how well it runs PSX games as from a raw CPU power I always though the PSX and the Raspberry Pi would be quite similar.

Now all I have to do is actually be better at the games to fully enjoy them.