Introducing Unijoysticle 2+

Unijoysticle 2+

For those not familiar with Unijoysticle 2, it is a device that allows you to use modern Bluetooth gamepads like Sony DualSense or Nintendo Switch controllers (to name just a few) on old computers like the Commodore 64 or Amiga.

What’s new in version 2+:

  • Case friendly: lower profile, LEDs & buttons are close the border and has mounting holes.
  • Looks nicer: Uses SMD components for almost everything
  • Supports buttons 2 & 3 in port #2. Some Amiga games might use them.
  • Cheaper to manufacture. I reduced the price from $60 to $35
Continue reading “Introducing Unijoysticle 2+”

Bluepad32 support for Arduino and CircuitPython

It is now possible to use Bluetooth gamepads both in Arduino and CircuitPython projects.

This means that you can use your PlayStation (PS3, PS4, PS5), Nintendo (Wii, Wii U, Switch) and Xbox One S gamepads in your electronics project: control a robot, home-automation, video games, etc… everything controlled from your favorite gamepad.

The catch is that not every Arduino or CircuitPython boards are supported. In fact, only a few of them are supported.

For Arduino, the boards that have the NINA-W10x (ESP32) co-processor are supported, like:

And similar for CircuitPython, the boards that have the AirLift (ESP32) co-processor are supported, like:

With the additional benefit that you can use any CircuitPython board by attaching the stand-alone AirLift module:

Continue reading “Bluepad32 support for Arduino and CircuitPython”

Building Quico: improved sound, gamepad, and more (part III)

This is the third blog-post regarding “building a video-game console for (my) kids”. See Part II: chiptune, and Part I: gamepad.


We have name: Quico. From now on, I’ll refer to this project as “Quico”:

  • Quico (/ˈkiko/), short for Kids Console (or Kids Computer)
  • Also, one of the main characters of El Chavo del Ocho

Sound Shield

I converted the breadboard into “shield” for the MatrixPortal M4.

Shield for the MatrixPortal M4

“Shield” features:

  • Output:
    • Headphones: Audio jack
    • or Speaker: 5V/GND/AudioOut pins
  • Fits perfectly on top of the MatrixPortal M4
  • Sturdy connection: 8 pins + 2 screws
  • Easy to solder: All components are through-hole, except audio-jack (SMD) but it is as easy to solder as the rest.
  • Open source / open hardware (docs, schematics, layout)
Shield + MatrixPortal M4 + LED matrix
Continue reading “Building Quico: improved sound, gamepad, and more (part III)”

Designing a modern retro console for (my) kids: Adding chiptune music

The ideal modern-retro video game console

My goal is to build a video game console for (my) kids. I want to teach them programming in a fun way: fun for them… and also fun for me. The video-game console features are:

  • Modern components, with a retro “spirit”.
  • Easy to program, a must.
  • Gamepad support: Multiple gamepads at the same time (multiplayer is a must).
  • “Retro” sound:
    • Chosen: SN76489 (more info down below)
  • “Retro” screen:
    • Chosen: 64×32 LED matrix. Let’s see what we can do in this extremely low-resolution screen.
  • A powerful enough micro-controller:
    • Chosen: Matrix Portal M4, mostly for convenience since it comes with an ARM Cortex M4, ESP32, “expansion port” + header to connect to the matrix LED. It already supports CircuitPython. As a bonus it has an accelerometer.
  • Portability: It should be portable, no need to use an external power supply.

In other words, I’m building a Nintendo Switch killer. What will happen next is that Nintendo will run out of business. If this happens, my 7-year-old kid will kill me, since his dream is to be a video game designer at Nintendo… so probably I shouldn’t be that aggressive in my marketing campaign.

Continue reading “Designing a modern retro console for (my) kids: Adding chiptune music”

Bluepad32: Gamepad support for ESP32

I’m happy to announce the release of Bluepad32: gamepad support for the ESP32.

Bluepad32 is a firmware that runs in the ESP32 microcontroller. It supports all the modern Bluetooth gamepads like Sony (PS5, PS4, PS3), Microsoft (Xbox One S) and Nintendo (Switch, Wii) gamepads.

Who is this for?

This is for:

  • …tinkers / makers / electronic hobbyist
  • …that want to add gamepad support into their projects
  • …in a maintainable and easy way

For further info, read: Adding new platforms.

Real world examples

Just add an ESP32 to your project, and control it with a gamepad!

Continue reading “Bluepad32: Gamepad support for ESP32”

Unijoysticle 2: Nintendo controllers and more!

Unijoysticle 2 Christmas 2019 update, with support for:

  • Nintendo Wii Remote
  • Nintendo Wii U Pro Controller
  • Nintendo Wii Remote + Nunchuk extension
  • Nintendo Wii Remote + Classic Controller extension
  • Nintendo Switch Pro controller
  • 8BitDo family: all modes supported (Switch, Windows, Mac, Android).
  • iCade 8-bitty

It also supports:

  • Amiga / Atari-St 3-buttons joystick

And it is self-powered!

For further info see:

Commando disassembled – fully commented code


In order to create Commando 2084, I had to disassemble Commando. My original intention was to patch what was only needed and stop there. But I got carried away and I ended up analyzing and commenting the entire Commando code.

The commented code (that can be recompiled to generate the exact original binary) is here:

Continue reading “Commando disassembled – fully commented code”

Commando 2084 – a game for the Commodore 64

Commando 2084

Commando 2084 is the mix between Commando and Robotron 2084: it is like the original Commando game, but using the Robotron 2084 controls.

You play it using the two joysticks at the same time:

  • Joy #2 controls the hero direction
  • Joy #1 controls the bullets direction

But better if you play it with a Unijoysticle 2 with a Dualshok4 gamepad (or similar).


Continue reading “Commando 2084 – a game for the Commodore 64”

Unijoysticle 2: modern bluetooth gamepads for retro computers

Announcing Unijoysticle 2:

Use modern Bluetooth controllers (gamepads, mice, smart TV remote controllers) in retro computers like the Commodore 64/128, Atari ST, Amiga and more.

For further info go here: