2016
03.03

Raspberry Pi launched a new model on Monday the Raspberry Pi 3. Today is Thursday just a few days after launch and I am quite happy that mine has arrived.

At first glance it looks identical to a 2 however there are a couple differences to note. The foundation logo has moved over a bit and there is now an antenna next to the USB ports for the built in wifi.

The Raspberry Pi 3 upgrades the CPU to a ARM v8 Cortex A53 that runs with no overclocking at 1.2ghz and with 4 cores that gives you a good chunk of power for the size and price. The RAM is still 1GB, I would have liked to have seen 2 or 4 but 1GB will still hold the fort.

The microSD card slot changed slightly and this threw me off for a couple minutes. It no longer does the spring loaded lock/eject so you just slide the card in and that’s it.

CPU

There’s tons of bench marks out there so I am not going to rehash it here but it is safe to say it’s significantly more powerful than the Pi2. In fact it is at the point where I’d actually recommend a heatsink because the device generates much more heat. You can still get away without one as some tests have shown and the device has built in precautions against heat however I like to err on the side of safe and functioning devices.

To test the CPU I ran it through some Dreamcast emulation and the improvement was significant. On the 2 the Dreamcast was playable but the sound was wretched and poppy. The Pi 3 on two games all the sound issues were gone and a 3rd they were significantly reduced.

Boot time is also drastically improved with the new device

Wifi

Not having to waste a port on wifi is fantastic! To me it’s like the Rpi3 came with a new feature and an extra usb port. However I suspect the drivers and firmware might need some tweaks. Connecting to the internet from the device seems to always work no issue but if you have any services like ssh or samba going into the Pi seems to be intermittently bad. It feels like the device sleeps the wifi and it takes 10-30seconds to wake it? If i hammer the device with pings it eventually comes back and stays up as long as traffic is active.

As it turns out this hypothesis was correct and the issue can be corrected with the following command:

sudo iwconfig wlan0 power off

Pop that into a boot script somewhere and you’re off to the races!

Bluetooth LE

Can’t really review this yet, drivers don’t exist but it’s another saved USB port if it works out.

Good times

So in a years time we have gone from ARMv6 to ARMv7 and now with the 3 ARMv8 that’s some impressive headway. I now have a Model B, A+, 2, 3 and hopefully at some point a Zero. It’s clear I enjoy the products as they have opened up computing and electronics to a new generation (including myself) so keep up the great work Raspberry Pi.

2016
02.08

I was at Walmart yesterday and taking my usual browse through the electronics section looking for a gamepad. The PC section had a wired logitech gamepad as its only option and wired is not what I am after. In the console section I was looking at the PS4 area and they had a Rock candy wireless gamepad for $26. This seemed like a good buy as I had a bluetooth adapter already and PS3 used bluetooth!

Not bluetooth

Once I had the gamepad out of the glass case it was obvious this used a usb key to facilitate the wireless functions which is actually a better option so I bought it.

Why not bluetooth?

Well I like bluetooth don’t get me wrong. I made a bluetooth arcade controller not too long ago remember? But there is one slight issue with bluetooth and the Pi. Linux. Bluetooth works on Linux and you can pair things and use them but it can be finicky. I had horrid issues getting a device to reconnect after a power cycle (of the device) before having to manually compile the latest bluetooth stack and even doing that it still took 30seconds to 5 minutes to re pair sometimes. So while I do have working bluetooth on my Pi a usb key is still more convenient.

But did it work

So I got the controller home and took it out of its razor sharp slit your hands plastic container, put in 2 AA batteries and plugged in the key to the Pi. The key blinks every 2 seconds the controller does nothing…. Hmmm. I was looking all over for a switch, no switch. I pressed the home button…Nothing. I held the home button and the controller came to life!

I opened up the Piplay menu and started the configure SNES wizard and sure enough each button press responded and it moved to the next. When I got to the directional keys however the thumb stick worked but the digital directional buttons did not…Oh well. In general it did work.

Play test

I tried out a few SNES games now that the controller was set up and the controller responded well from across the room. Using the thumbstick on 2d games is a bit to get used to but it passes

Conclusion

Rock candy wireless ps3 gamepads are a cheap and easy to use wireless gamepad solution for the Pi

2016
02.04

Some time ago I made a post about adding a shut down button to my Raspberry Pi which I then followed up with how to set it up to also be the power on button. It’s a very popular post but it used a goofy large arcade button for the task. In a recent order to Adafruit I decided to but some small tactile buttons to see if I could come up with a better solution.

When the order arrived I was hoping that the buttons would fit in the PiBows ribbon slot which would have been the ideal solution. What I found was that the 2 pins were longer than the slot so I decided to modify the PiBow a bit to make this work.

Construction

I cut the red layer where it creates the lip for the ribbon cable. This was quite easy and does not affect the stability of the layer.

For the button I used one of the easy connector cables from Adafruit from my original button project and cut it to a shorter size and then soldered the wires to the pins.

I then put the case back together and slid the button into place. on the bottom side of the button I also used some plastic adhesive to keep the button from sliding but still allowing me to remove the top layer.

Making it work

To make the button power on your pi when it is off (standby mode) make sure to put the button on Pin 5 (GPIO 3) this pin when activated will wake the Pi and start the boot process. For the shutdown feature I use retrogame a utility maintained by Adafruit for reading GPIO presses and interpreting them into keys or actions. My custom retrogame for shutdown is on my github here and you can find details about it here in another post.

 

 

2015
12.29

Every good Pi deserves a case. A case keeps your Pi from getting damaged or static shocked. The Pi ecosystem is plentiful in the case department ranging from basic function cases to higher end beauties that take your little credit card sized board that extra mile in getting attention.

My first Pi was bought 2.5 years ago and with it I got the most interesting case I could find at the time, The Pibow. The Pibow is a series of cases by the Pimoroni company. This company is based in the UK and has all sorts of interesting gadets and accessories for the Pi but it is good money the first time you ever hear of them it is in regards to the Pibow.

My first Pibow was in the original Rainbow colours. This case reminded me of the C64 and the old Apple logo and it is a very striking case that gets anyone who sees it to ask you about your device.

The second Pibow which I just received recently is for the Pi model A+. This case is called “Royale” and it is a shorter coupe style case and it is partially translucent. It gives the A+ an even more unique appearance than what it comes with by default. The A+ had spent about a year inside my arcade controller box which I just recently replaced with a Bluetooth controller so it was time to get the computer an official case.

My A+ is still doing the same emulating it was before but it is now a part of the entertainment system instead of hidden away in a black box. On the other side of the entertainment system is my original Model B inside its Pibow serving movie and musical entertainment. With both striking cases it never takes long for someone new to ask me “hey what are those” and potentially lead someone new into the rabbit hole of the Raspberry Pi universe.

Yes the Pibow cases may cost a bit more than their competition but the build quality and the visual appeal it adds to your Raspberry Pi can be well worth it.

 

2015
12.15

It’s been some time since I made any significant changes to my arcade emulator system. The last change of course being 2 years ago when I made a controller out of my 4 years service award box to replace my first shipping box arcade controller. It was time to build another!

This time around I wanted to put it in a more solid case. The service award had lasted much longer than its predecessor but it was beginning to sag as time dragged on. I found several pre made box styles available at local craft stores that would fit the bill for the replacement. I also wanted to get rid of the other problem with my previous 2 attempts. Cables. I wanted to be able to sit across the room and play and not be bogged up by cables. So for this I was looking into Bluetooth. Adafruit of course has several solutions to this dilemma already but the one that caught my attention was the Bluefruit EZ key.

The Bluefruit EZ key is a 12 input breakout board that will appear as a Bluetooth keyboard to any device that supports bluetooth connections (v2.1 and higher). It was a perfect for the job! As always Adafruit also had a tutorial to go right along with this very idea. I took parts of the tutorial and modified them to suit my goals and I started to plan my new controller.

  • First, I was going to have more buttons. All said and done I used all 12 inputs in my plan and I was able to have a Joystick, 6 play buttons, 1 player button and a coin button.
  • Second, I used a bigger box
  • Third, I use solderless terminals to connect my buttons, the main reason being is I tend to do rebuilds and remakes and being able to reuse my parts is handy and if I need to take it apart for any sort of reason it’s easier.

The box

I traced out my layout on the box I had purchased. I used the plastic nut the buttons come with to trace the button sizes. For the joystick screw holes, after I drilled the stick pilot hole I placed the joystick in it upside down and traced it. To drill the button holes I had to buy a new paddle bit that was the correct size otherwise the buttons may fall through or not go in at all. The 1″1/8th is the perfect size for the button style I used and all 8 holes were drilled out without any problems. I then sanded the holes so that the buttons would fit easily. The top of the box was a bit thin so I had to make a minor compromise with the Joystick mounting. Normally you would want to mount the screws from underneath so that they weren’t visible. Since the Joystick is fairly heavy and the wood was thin this would not work so I bolted them from above. It doesn’t actually interfere with Joystick use it’s just slightly annoying from a cosmetic standpoint.

Bluefruit

The Bluefruit comes as a breakout with 2 optional sets of headers you can solder in if you desire. The headers for the pinouts were too long and had to be cut, I am not sure if that’s normal it didn’t match the picture but it wasn’t a serious issue. Since I would be using the pins I needed to solder them to the Bluefruit. This was my fist attempt at soldering so if you happen to take a close look at the globs on the board I invoke the “It’s my first day” clause. After the pins were mounted I tested them before proceeding and things appeared to be working. I would later discover I had not made a good connection on a few pins and had to re solder the joints but after round 2 everything was great.

Battery pack

I had a 3xAAA battery pack for this project to power the Bluefruit. I had bought a power button to go with this project so that I could shut the device off when not using it because I thought it would be a nice feature and something new to try. The ground goes from the battery pack to one of the 3 grounds on the Bluefruit and the red wire goes to the power button terminal and then a second red wire continues from the opposite terminal to the Bluefruit. The button makes a connection when pressed for the power to be turned on.

Configuring the Bluefruit

This revision of the Bluefruit allows you to configure the buttons over the air to a device that it is paired with. This allowed me to alter the keypresses to match the identical MAME player 1 controls so that this device should work with any MAME in default configuration. To achieve the configuration you need to install software called “Processing” and open a file from Adafruit to run within that application. This allows you to select pinouts on an image of the device and then assign a keyboard output to them.

For this to work make sure you install the exact version Adafruit mentions. The latest version of processing did not work. I had to downgrade it.

Pairing with most OS’s

With the device complete and functioning it should appear on any device with bluetooth enabled and searching as “Adafruit Bluefruit EZ key”. On Mac OS X pairing was painless and simple. The device connected with ease, reconnected when power cycled and all keys worked

Pairing with Linux…

Since my main goal was to use this with my Raspberry Pi MAME emulator I of course need to be able to pair it with Linux. This was not so straight forward…. I installed the packages and got the bluetooth service running and I eventually got it to pair using the CLI but I ran into a very irritating problem. If I power cycled the device on Linux it did not reconnect as expected. I waited, 5, 10 min…an hour even. No reconnect. If I restarted the bluetooth service…reconnected. Clearly the issue was with the service so I headed to the internet to see what to do about it.

I found several suggestions of using cron to force the service to poll every X minutes, changing various settings in the configuration, lots of frustration but all in all not too many good answers. Then I found one post where a user mentioned Bluez 4 is junk, try 5. Now I am running Wheezy on my Pi so 4 is the apt version available to me so this meant a source build. I removed all the Bluez 4 packages and then downloaded the source for the 5.x branch and decided to give it a shot.

After an hour of compiling and then an hour of finding some relevant documentation on how to use the 5.x bluetooth stack and create a service file for it in init.d (it’s a systemd service by default) I was able to get the device paired and low and behold…it reconnects on a power cycle. Now the reconnect isn’t perfect, it takes 5-10 min sometimes but it does reconnect. I suppose I’ll just have to suffer through it.

Battery lifetime

I just recently had to replace the batteries after 2 weeks of use and I think I forgot to shut it off over night a couple times so it isn’t bad. I had a bluetooth mouse before that I had to replace weekly..

 

All in all this was a fun project and I got plenty out of it. I learnt more about bluetooth, how to solder, the underbellies and limitations of Linux bluetooth….and I got a sturdy cordless Arcade controller out of it. Now that’s Education!