Apr 12

AdvanceMAME 1.4 and AdvanceMESS 1.4 for Raspberry Pi3

Hey All,

I compiled AdvanceMAME 1.4 and AdvanceMESS 1.4 for the Raspberry Pi3.

On the Pi3, games like Street Fighter II and The Simpsons run like butter with full audio.  It’s great!

You can download them here:



To install run:

sudo dpkg --force-all -i advancemame_1.4-1_armhf_pi3.deb
sudo dpkg --force-all -i advancemess_1.4-1_armhf_pi3.deb

On another note, our first “PiPlay Advance” boards came in:

2016-04-05 (3) 2016-04-05 (2) 2016-04-05 (1) 2016-04-05

There was of course an issue with our pin routing, so we had to order a new revision of the boards.  So excited to see this project start coming together!


Mar 18

Friday Post: Cool Stuff

Hey All,

Got some cool stuff to post!

First off, got my Pi3 and have pics to show.

IMG_20160305_123135035_HDR IMG_20160305_123142557_HDR IMG_20160305_123151811_HDR IMG_20160305_123201893 IMG_20160305_123221663 IMG_20160305_123230360 IMG_20160305_123255506 IMG_20160305_123303098 IMG_20160305_123338411Love this device so much!

BUT, what I’m more excited to show off is a very early prototype of a project a coworker and I are working on!

12722257_10104959026967052_78897063_oIt’s a Raspberry Pi Zero powered portable gaming system styled after the Nintendo GameBoy Advance using an SPI TFT and some other little cool things.

This is the first PCB I’ve ever helped design, and I placed the order for it this week.  Boards shipped today, which means they will get here between 8 and 40 days.  Argh, the waiting sucks!

On another note, Pokken Tournament came out today for the Wii U.  It’s a really cool Tekken inspired Pokemon fighting game and so far I am loving it!  My Nintendo Network ID is SSilver2k2 so if you want to fight, add me :D

I also picked up some really cool Nintendo retro consoles this week.

IMG_20160318_212020422 IMG_20160318_212026477 IMG_20160318_212054261 IMG_20160318_212134085

This is the Sharp Famicom Twin.  It is the Japanese version of the NES (Famicom) and the Famicom Disk System combined into one unit.  I also picked up the Family BASIC addon which allows you to do rudimentary programs in BASIC (HuBASIC) for the NES.  BASIC programs can be saved and loaded off of a cassette tape player, or loaded from any audio player.

Have a good weekend all!





Feb 12

Friday Post: StepMania on Raspberry Pi2

Hey All!

So this week the Raspberry Pi Foundation released a new version of Raspbian that includes experimental support for OpenGL.  This is a big leap from OpenGL ES.  This is real OpenGL that tons of games and software use.  No mobile versions required anymore.  That being said, its super experimental.  It basically breaks the official screen and the camera doesn’t work.  It also only works in xwindows and not on the command line.

BUT! One of my favorite games (and the way I lost 50lbs) is now available on the Pi!  StepMania!  The Dance Dance Revolution simulation game!

Here’s how to compile it:

First clone the StepMania repo:

git clone https://github.com/stepmania/stepmania stepmania
cd stepmania

Install the dependancies:

sudo apt-get install cmake gcc g++ libmad0-dev libgtk2.0-dev binutils-dev git-core make libasound2-dev yasm libc6-dev libogg-dev libvorbis-dev libbz2-dev zlib1g-dev libjpeg8-dev libpng12-dev libxtst-dev libxrandr-dev libglew-dev libglu1-mesa-dev mesa-common-dev automake autoconf libva-dev

A lot of these you will probably already have installed.

Now cd into the Build directory and start the configuration process (and run it one more time afterwards)

cd Build
cmake ..
cmake ..

Now you will want to edit the CMakeCache.txt which has some of the configuration options.

nano CMakeCache.txt
Look for CRASH_HANDLER and set it to OFF, SSE2 should be set to OFF, and Full Release should be set to ON.
press ctrl-x then y to save.

Now lets compile StepMania!


Let that run until it is done, should take about 3 or 4 hours.  When it’s complete run

cd .. 

and you should now be playing StepMania!

All of your configurations  will be under ~/.stepmania, and your songs and stages go under ~/stepmania

Have Fun!

Also, GO SEE DEADPOOL (if you are 18 and older!!)


Jan 22

Friday Post: AdvanceMAME 1.4 debs

Hey All,

Updates maybe sporadic for the next few weeks.

AdvanceMAME updated to 1.4 so I have recompiled the source and made .debs out of it.  This will work on the Pi and Pi2.

AdvanceMAME 1.4 Deb Download

To install goto a terminal and type:

sudo dpkg --force-install -i advancemame_1.4-1_armhf.db

You will now have a directory in ~/.advance and will need to edit your advmame.rc file.

nano ~/.advance/advmame.rc

Add to the first line:

device_video_clock 5 - 50 / 15.62 / 50 ; 5 - 50 / 15.73 / 60

Then press ctrl-x then y and hit enter to save.

You can now place your game files into the ~/.advance/roms directory and launch a game with the command:

advmame gamename
advmame sf2

Have a good weekend all!


Nov 14

Friday Post: Less than 24 hours left on the Deskcade Kickstarter!

Hey All!

Less than 24 hours left on the Deskcade Kickstarter!  So excited!!!

On  a related note, I picked up a Steam Controller to see what the hype was about.  It’s cool, but what’s really neat is that it can be a keyboard, mouse, or gamepad at the same time, depending on the game.  Whats not cool is it requires steam to be running to set that.


ynsta (Staney Marcel) is writing some code to make it run locally under Linux without the steam driver.  The github repo is here: https://github.com/ynsta/steamcontroller

I’ve forked it (https://github.com/ssilverm/steamcontroller) and I’m going to see if I can get it running as just a joypad for now.  It can currently run on the Raspberry Pi, and I can see the buttons being detected and get the feedback.  It’s just not being passed into a uinput item yet.  Soon :D

Also, I’m trying to get the bootsplash to work again in Raspbian Jessie.  Jessie introduces Systemd, which takes over for init.d.  Currently the bootsplash runs later in the startup, so by the time omxplayer starts, the login screen is about a second away from showing up.  I’m working on that too.

Here’s my current steps:

sudo nano /etc/systemd/system/bootsplash.service

Insert this:

After=sysinit.target local-fs.target

ExecStart=/usr/bin/omxplayer /home/pi/PiPLAY.mov


Then run:

sudo systemctl enable bootsplash.service

and reboot.

You should now get a bootsplash on startup, but it may be running to late.  I’m going to try and fix that.

Have a good weekend all!


Sep 11

Friday Post: Orlando Maker Faire is here!

Hey All!

Orlando Maker Faire is here!!!  If you are in Orlando, make your way to the Orlando Science Center and come see 300+ exhibits including PiPlay and our custom arcade machine!

IMG_5647.JPG-1 IMG_5648.JPG-1


Factur, FamiLAB,  PiPlay, and Free Play Florida also have the worlds largest arcade machine being setup!  It stands at 15 feet tall and plays Bubble Bobble!

IMG_1827 playing_some_bubble_bobble__1024

The screen is 60″ and the buttons are 2.5″.  This thing is a beast.  More pictures to come!

I am exhausted from the push to get this all done today!  Hope to see you there!

Aug 28

Friday Post: Cool Stuff for Maker Faire Orlando

Hey All,

First week of the semester is done!  Can’t say everything went off without a hitch.  Ran into a nasty timezone issue between servers that I just couldn’t figure out.  One image, two servers cloned from that image.  When pulling the info from Python one reported UTC, the other Eastern.  Tried a bunch of different ways to force Eastern, but eventually used this:

from datetime import datetime
from pytz import timezone
fmt = "%m/%d/%Y %I:%M:%S"
# Current time in UTC
now_utc = datetime.now(timezone('UTC'))
print now_utc.strftime(fmt)
# Convert to US/Eastern time zone
now_eastern = now_utc.astimezone(timezone('US/Eastern'))
print now_eastern.strftime(fmt)

So yeah, that was a fun couple days trying to make sure our data wasn’t 4 hours off :)  Also, we might be getting hit by a Tropical Storm / Hurricane on Monday.  Yay.

Onto the cool stuff!  Maker Faire Orlando!

I am working on two projects for Maker Faire.  The first is with Factur and FamiLAB.  We are making the worlds LARGEST arcade cabinet!  It is so awesome.  I can’t wait for the electronics to come in so I can help wire it up.  I’ll be posting more details as we get closer to the Faire!

facturworldsbiggest facturforscale

The top panel was recently added on, but I couldn’t get a good picture of it because it is about an inch from touching the ceiling of the warehouse, and I just couldn’t get a good angle on it.  This thing is massive!  It’s a beast!

My personal project is a new modular arcade cabinet.

This is a 3 piece cabinet that breaks down into sections for easy movement, transporation, and customization.  My main requirement was that it had to fit in my PT Cruiser, everything from there was negotiable.  This is what it looks like so far:

2015-08-26 copy1/3 Model.  Cat for Scale.

IMG_5534 IMG_5533 IMG_5516 IMG_5514 IMG_5511Team working the ShopBot CNC Machine.


3D Printed a Bulbasaur using glow in the dark filament!


Have a good weekend all!





Aug 21

Friday Post: Start of Semester

Hey All,

Sorry for not posting last weekend.  I needed a break.  I have been super swamped these past two weeks.  Fall semester begins on Monday, and for some reason, this feels like a weird one.  Something is in the air.  My team is launching a new app for teachers and students.  It’s coming out of pilot phase after a year.  I’m so excited and nervous!

Of course things didn’t roll out as they were supposed to.  Network errors, department ticket freezes, ubuntu issues…everything but the software has been blowing up around me.  Though this means on Monday, everything will work A-Ok!.  If everything went smoothly, I would really be worried :D

Next week, once I hopefully have some time to breathe, I will have some big things to post about.

Have a great weekend, and a great start of classes to my fellow friends in Academia!


Aug 07

Friday Post: Raspberry Pi iBeacon

Hey All,

Now that Hack Day at the office is out of the way, I would like to post about what I learned and some examples to get you started.  The following is some example code and an introduction to iBeacons.

Setting up a Raspberry Pi to be an iBeacon

Longer guide available here: Adafruit PiBeacon

On a fresh install of Raspbian, login to the terminal and type:

sudo apt-get update
sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev

Next we want to download, build, and install BlueZ, a bluetooth stack for Linux and the Raspberry Pi.

sudo mkdir bluez
cd bluez
sudo wget www.kernel.org/pub/linux/bluetooth/bluez-5.11.tar.xz
tar xf bluez-5.11.tar.xz
cd bluez-5.11
./configure --disable-systemd
sudo make install

Now that BlueZ is installed, plug in your Bluetooth Adapter and reboot your Pi with:

sudo reboot

When it is finished rebooting, log back in and go into the bluez folder by typing:

cd bluez/bluez-5.11

Check that your bluetooth device is listed by running:


You should see a few lines appear about hci0 and that it is currently down.

Issue these commands to bring up your bluetooth device:

 sudo tools/hciconfig hci0 up
sudo tools/hciconfig hci0 leadv 3
sudo tools/hciconfig hci0 noscan

Now we are going to turn the device into an iBeacon.

 sudo tools/hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 01 00 00 01 C8 00

The long set of character E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 is actually the iBeacon’s ID.

The next four numbers: 01 00 are the major id and show up as 100.

The next four numbers 00 01 are the minor number and show up as just 1.

You don’t have to worry about the numbers before E2 and after the minor value 00 01.

You can set the major and minor to anything from 0 to 9999. This is how you will be able to tell apart different beacons in your app. The app is currently set to recognize Major 100 Minor 1 and Major 100 Minor 2.

If you change these numbers on your device, make sure to update the app.js code as explained below.

If you reboot your Pi, you will find that the bluetooth device has been reset and that it is no longer functioning as an iBeacon.

To fix this we are going to edit /etc/rc.local.

sudo nano /etc/rc.local

You will want to place the following code above the exit 0 at the end of the file.

sudo /home/pi/bluez/bluez-5.11/tools/hciconfig hci0 up
sudo /home/pi/bluez/bluez-5.11/tools/hciconfig hci0 leadv 3
sudo /home/pi/bluez/bluez-5.11/tools/hciconfig hci0 noscan
sudo /home/pi/bluez/bluez-5.11/tools/hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 01 00 00 01 C8 00

Press ctrl-x then y to save and quit.

Now reboot your Raspberry Pi and it should become an iBeacon on startup.

Application Side

We are now going to create the iBeacon app. The instructions below are to do this on a Mac with XCode, PhoneGap, and an iOS device with a developer subscription.  You can also do this on Android with Linux, OS X, or Windows, the Android SDK, and PhoneGap.

First, you want to install cordova. On a Mac or Linux machine use:

npm install -g cordova

(If you don’t have NPM on a Mac install the amazing tool Homebrew and then install node.js)

Then create your app directory:

cordova create beacon com.yourname.beacon beacon
cd beacon
cordova platforms add ios

(for android do cordova platforms add android, but make sure the android sdk is installed)

Add some basic plugins:

cordova plugin add org.apache.cordova.device
cordova plugin add org.apache.cordova.console

and the ibeacon plugin:

cordova plugin add https://github.com/petermetz/cordova-plugin-ibeacon.git

Now lets rename the www folder in the folder. We don’t need it, it’s the default phonegap application, but it could be a useful example later.

mv www www.example

Now let’s clone the ibeacon example!

git clone https://www.github.com/ssilverm/ibeacon-www www

Edit lines 7 – 23 of app.js to match the ID, Major, and Minor of your beacons. They will trigger the page changes on your device.

app.beaconRegions =
		id: 'Page1',
		major: 100,
		minor: 1
		id: 'Page2',
		major: 100,
		minor: 2


You can see how the above code is set to the same as the iBeacon we set up above, as well as another beacon with the minor value set to 2.

The next steps are how to build your iBeacon app for an ios device like an iPhone or iPad. I don’t have an Android device, but as long as you have the Android sdk the functions should be the same. Change ios for android.

When you have finished editing app.js, save it and then type:

cordova build ios

After a few minutes your terminal should read Build Succeeded.

Open the platforms/ios folder and double click on the beacon.xcodeproj file to launch XCode. With your device connected you should be able to run your app on the device.

Make sure location services are enabled for the app.

Now go walk around to where you set up the beacons and the pages should automatically change as you get closer to them. It will also revert to the main page as you move out of range.

Screen Shot 2015-08-07 at 11.06.17 PM

I hope this has been helpful!

Have a great weekend all!


GitHub Code: https://github.com/ssilverm/ibeacon-www


Aug 01

Friday Post: Forgetting to set DNS

Hey All,

So for the past month I’ve been racking my brain trying to figure out the issue where PiPlay says Could not check for updates.  I KNEW it was because of my server move but I couldn’t figure it out.  I couldn’t reproduce it on my end.  I really thought that it was because the requests module coudln’t do redirects.  Tonight I was dealing with a PiPlay issue with a cool teacher in Canada who is making games with her students, and we were troubleshooting a bad wifi card.  We got everything working, and then the can’t connect to piplay server message came up, and I was going to admit defeat, but I then saw it was going to WWW.pimame.org.  I had set up www on piplay.org, but I had never setup the WWW redirect on the old domain.  I feel dumb.  One DNS change and a 5 minute propagation and everything is working now.

On a side note, I designed this warp pipe planter in OpenSCAD, and printed it out today.  I drove out to a local nursery and picked up some venus fly traps, and voila!  One Super Mario Bros. “Piranha Plant” in my own home :D

11807716_10104381579905592_3981371305566672176_oYou can download the STL file at thingiverse, and it will be up on my Etsy as well.