Category Archives: Construction

Project SDVX: Part 3

← Part 2 | None 

Previously I got the Arduino Uno with the intention of using it to read my rotary encoders, which were to be used as my controller’s analog knobs. It turns out that the Uno can read the encoders… it just can’t output to keyboard/mouse. So I went and got myself another Arduino, the Leonardo. Should have done my research first.

It's about the same size as the Uno, but uses a micro-USB cable

It’s about the same size as the Uno, but uses a micro-USB cable

In any case, after a bit of research I found this tutorial on bildr. The code works well, and throwing in a Mouse.move statement allows the encoder to control a mouse cursor. This is useful because K-shoot Mania has a setting which lets you control the left and right lasers by “Custom Controller (Mouse X/Y)”.

The middle pin connects to ground, and the other two connect to input pins.

The middle pin connects to ground, and the other two connect to input pins.

I’m still doing a bit of fine tuning with the code so that it plays smoothly, but I’m glad that the encoders work. I’ll have to start making a box to house all the components soon.

← Part 2 | None 


Project SDVX: Part 2

← Part 1 | None 

A lot of loot

A lot of loot

I came home today to find, with joy, that my Sparkfun shipment had finally arrived. Sure it took a while, but to be fair I did choose the cheapest shipping option.

What I got was:

  • A pack or resistors, because I have no idea which ones I’ll need. In fact, I have no idea how to work out which ones I’ll need either, but I’ll figure that out somehow.
  • A new breadboard, because I like having an entire column for for + and – voltage. It makes breadboarding much easier (my previous breadboard only had rows of 5 holes).
  • An Arduino Uno, to program the rotary encoders.
  • 3 rotary encoders and 3 knobs. I bought one extra just in case one breaks, because Sparkfun shipping is not the cheapest out there. These ones have a clicky feeling as you turn them, which from memory is different from how the arcade knobs feel.
  • Some wire, just in case.

I probably didn’t need the resistors, breadboard and wire, but I thought that I might as well get a few more things while I was at it.

The Arduino really is quite small. Here’s a comparison with my favourite Pilot ballpoint pen.

The box this came in was probably small than a deck of cards

The box this came in was probably small than a deck of cards

Unfortunately, as much as I’d love to start testing the rotary encoders straight away, I can’t yet. The first reason is because I’ll be busy for the next few days, but the second and bigger reason is that I don’t have a USB cable.

Yes, I should have checked when I bought it.

So now it’s time for a bit more waiting while I buy a USB cable for my Arduino. Meanwhile I’ll also have to figure out is how to use the rotary encoders – there’s about 8 pins on the bottom and I need to look up which one’s which. Also, it doesn’t actually fit in the breadboard so I can’t test it that way – it looks like I’ll need to attach wires to it directly.

Oh and the BT buttons from last time? I gave up and bought the round ones. Saves me money that way.

Perfectionism wishes restrained by monetary budgets

Edit: After a few minutes of research leading to Sparkfun’s USB buying guide, it appears that what I need is a USB-A to USB-B cable, which isn’t necessarily designed specifically for the Arduino. In fact, my printer cable is exactly that type, so it looks like I won’t need to buy any cables. I still can’t play around with the encoders any time soon though, due to being busy for the next few days.

← Part 1 | None 

Project SDVX: Part 1

← None | Part 2 



Sound Voltex is an arcade rhythm game by Konami featuring analog devices (knobs), DJ-ing effects and a song list made up almost exclusively by independent artists. To get an idea of how awesome it is, see here, here, here, here, here and here. (These are all Niconico videos so if you prefer Youtube, here’s one.)

Unfortunately, there aren’t any Sound Voltex (often abbreviated SDVX) machines near where I live :(. To remedy this problem, I decided that I would try to build my own Sound Voltex controller. Custom-made Sound Voltex controllers aren’t anything new, so thankfully I was able to get a good idea of what I needed to do.

Luckily I don’t have to do anything on the software side, thanks to a game called K-shoot MANIA. To explain what K-shoot is, I like to use the analogy “DDR is to Stepmania as SDVX is to K-shoot MANIA” – it’s basically a recreation of the game for the computer. Unfortunately though, the creator of K-shoot doesn’t want any official beatmaps distributed via the internet, which is a bit of a shame.

But back to my SDVX controller. Sound Voltex has a total of 7 buttons and 2 analog devices, and the buttons are split up like so:

  • 4 large white square BT buttons,
  • 2 rectangular FX buttons,
  • 1 square start button.

A week or two ago, I started the project by purchasing some buttons via eBay – specifically the start button and FX buttons. They didn’t cost me that much – somewhere around $12 for the lot.

This is my first time doing anything like this, so I'm pretty excited

The FX buttons I got measure 50x33mm, while the start button measures 33x33mm. I based the dimensions off the plans linked in the description of this video. And yes the original FX buttons are black, but they light up red so I got red ones.

It’s my first time doing anything like this, so once the buttons arrived I hooked one of them up to my Makey Makey, hoping that I would be able to play the one-button game Canabalt with one big red button. And it worked.

The other side of the FX button

It didn’t take much to work out what plugs into where. There’s 5 metal contact spots at the base of the button, and as far as I can tell this is how they work:

  • The side two are used to light up the button. You can take out the LED inside, so how you connect the wires to these spots depends on which way you’ve got your LED.
  • The bottom-most pin (top-most in the picture above, since the button’s upside down) connects to ground.
  • For the remaining two pins, one only gets power when the button is pressed and the other always has power except when the button is pressed. You only need to connect to one of these.

I’ll have to figure out how to configure the button so that it lights up when pressed, but that shouldn’t be too hard.

If I connect the button to power it just lights up continuously

If I connect the button directly to power it just lights up continuously

As for the 2 analog devices and 4 BT buttons, well…

I have some rotary encoders and knobs coming in the mail, so hopefully I’ll be able to test them out soon. Rotary encoders can be turned round and round without limit, which is exactly what I need. I’ll have to do some Arduino coding to get them to work with K-Shoot though.

The BT buttons, on the other hand, is where my problem currently lies. They’re expensive – about $20 each expensive.

So currently I’m deciding between choosing an alternative (round buttons the same size are much cheaper for some reason, but don’t look as cool) and going over budget and into “My controller costs as much as a 3DS” zone. It’ll be a tough decision.

← None | Part 2 

Robotics notes for Lego NXT 2.0

A few days ago, fun came in the mail. And by fun, I mean Lego Mindstorms NXT 2.0.

Basic driving robot made by following the instruction manual

Mindstorms NXT 2.0 is a robotics set by Lego, featuring a programmable “brick” which cables with and controls sensors and motors. And in true Lego fashion, you can connect pieces together and customise parts to create what you want.

I first encountered the kit in Legoland (on a trip to the US), and have searched for it ever since. Unfortunately, it was expensive, so it was only a week ago when I decided to finally buy this extremely extravagant toy. Completely worth it.

The programming for the robot is done via a drag-and-drop interface on the computer, and is very beginner-friendly.

Pretty colours!

Pretty colours!

NXT 2.0 comes with instructions for building and programming 4 models, the first of which is a driving robot that shoots coloured balls. The balls are shot at a very fast speed, so looking for and picking up the balls afterwards quickly became a hassle.

The second and third models are a robotic alligator and a ball sorting machine respectively. Not really interested in them yet, though.

The fourth model, however, is a humanoid robot dubbed Alpha Rex. It is capable of walking and swinging its arms around, with an ultrasound sensor for eyes (to gauge distance) and a colour sensor on its right arm.

Meet Alpha Rex

Alpha Rex took two nights to construct – there were a lot of instructions to follow. It doesn’t always walk straight and the cables get in the way of its arms moving, but it’s pretty impressive nonetheless. What I find amazing is how the hands open and close as the arms swings – all of this is done by only one servo motor. The legs are also pretty interesting too – there’s a motor for each as well as a touch sensor in order to tell when the leg is on the ground.

But this is the start though. In a week or two I’m planning on dismantling Alpha Rex and making something of my own. And that’s when the fun will really begin (or so I claim).