Hardware: Xin-Mo Dual USB controller

So I’m using this as my controller, which is a Jammaboard USB controller, and I’ve been having a devil of a time getting it to work. In hind sight, i probably would have just bought RetroPie’s ControlBlock as its about the same price.  It does appear that I’ve found a solution here.

The thread is 4 pages as of now and files have been updated, but in short, I downloaded this file and did the following:

tar xf custom_kernel_1.20150216-1.tar.gz
cd custom_kernel_1.20150216-1
sudo ./install.sh

This definately fixed the problem of not recognizing joystick 2; however, I still have a problem with some games not working with the player2 joystick. I can configure the 2nd joystick in the configuration menu, but when it comes to actually  using the joystick in the game, it doesn’t work.  The buttons do seem to work though. Go figure.

Samba sharing

As Retropie already has Samba installed I just needed to edit these two items to allow the folders to be seen on my Windows Workgroup:

wins support = yes

Hardware: HDMI to VGA Adapter

I’m using an old VGA monitor, so I purchased this HDMI to VGA Video Adapter. It wasn’t showing any picture at first so in this file: /boot/config.txt , I uncommented the line:


From there at least I knew things were working as I got the screen to work in low resolution. Here’s a full list of config.txt options: http://elinux.org/RPiconfig#Video. After that, I just tweaked the following lines until I got the monitor to work without being in safe mode (it’s monitor dependent though). Here’s the settings I used for my monitor:


I also uncommented this line to get audio to work through the monitor speakers:


Note that in Adafruit’s example, hdmi_mode=87 is a custom setting where you customize each value. I was able to use preset mode=9.

Static IP

After booting, I went into raspi-config and expanded the memory to the maximum card size. SSH is already enabled so that’s good.

I wanted to change my IP address to static, more for troubleshooting than anything as RetroPie has Samba and moving games to shared drives is super easy.

Here’s what i changed my /etc/network/interfaces file to:

auto lo

iface lo inet loopback
iface eth0 inet static
address xxx.xxx.xxx.113
network xxx.xxx.xxx.0
broadcast xxx.xxx.xxx.255
gateway xxx.xxx.xxx.2

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp


I’m using the RetroPie software (3.0 is the current one)…after imaging the SD card I put it in and had to unplug it a few times before it went through a full boot cycle. Everything seems to be booting fine now.

Raspberry Pi Video Game Console v2

I’ve decided to build a full desktop-arcade cabinet. Got half the parts already so I figure I’ll give it a start.  I’m shelving my window blind controller for the moment.

Hardware: config with reset wire

Here’s the wire – the blue one from pin 12 to reset pin.


Jitter Problem ‘fixed’

So here’s my code now and I think I’ve fixed the jitter. As noted in the prior post, I moved the servo attachment down into the loop so that it doesn’t attach until a button is hit (so no jitter before then). I’ve also added a couple lines and a wire so it reboots after the servo moves (which stops the jitter of course). Considering I’ll only be using this a couple times a day at most, I think that works. I think the real solution would be to get a separate servo controller, but I’m happy with my work-around. So far it seems to work really well. I haven’t really fixed the jitter problem…just made it so that it jitters for an acceptably short period.

#include <Servo.h>
#include <IRremote.h>

unsigned long Value2 = 0x7B8; // RED button where 7B8 is your remote button’s values.
unsigned long Value1 = 0x78B; // YELLOW button where 78B is another button on your remote

int RECV_PIN = 3;// initialize the digital pin as an output.
int resetPin = 12;// initialize the digital pin as an output.
IRrecv irrecv(RECV_PIN);
decode_results results;

Servo servo1;
Servo servo2;

void setup() {   // put your setup code here, to run once:
digitalWrite(resetPin, HIGH);
pinMode(resetPin, OUTPUT);
Serial.begin(9600); // initialize the serial port
Serial.println(“reset”);//print reset to know the program has been reset
irrecv.enableIRIn(); // Start the receiver

void loop() {  // put your main code here, to run repeatedly:

if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value

if(results.value == Value1) {
servo1.attach(9); // attach servo to digital pin 9
servo1.write(5); // move to 5 degrees
delay(5000); // 5 sec delay to let motor move
digitalWrite(resetPin, LOW);//restarts board

if(results.value == Value2) {
servo1.attach(9); // attach servo to digital pin 9
servo1.write(175); // move to 175 degrees
delay(5000); // 5 sec delay to let motor move
digitalWrite(resetPin, LOW);//restarts board


Jitter Problems

Still having jitter problems. I’ve tried all sorts of capacitor sizes and configurations trying to fix the problem but it doesn’t work.  My only significant progress is that I moved the servo attachment into the  individual ‘if’ statements so that the jitter doesn’t start until I actually hit a IR remote button. When I had the servo attachment at the beginning of the loop,  the servo would start jittering as soon as the Arduino powered up.  I think I can still figure out some kind of software solution by powering down the 5v power and restarting, but my attempts so far haven’t been successful.

still working on it.

Hardware: bad servo

Well, it looks like the micro servo is bad. For whatever reason, it doesn’t work right with the same sketch that I’m using on the bigger one…not only that but if I run the template “Sweep” program, it only turns about 90ish degrees, vs. the 180ish degrees that the big servo turns.

So I’m at a pause till I get either the capacitors or another servo.

BTW, Adafruit was super responsive on their forum and getting an RMA# was very painless…Thanks Adafruit!


Get every new post delivered to your Inbox.