Fidget Cube controller for the Boldport Cordwood Too.
Here's a quick video showing it in action..
A colleague gave us all Fidget Cubes, I think mainly to keep idle hands from causing too much mayhem in the office.
After building Boldport Club Cordwood Too, I was trying to think of interesting controls for it, and started wondering if the Fidget Cube could be converted into a workable controller.
Answer is: Yes! It was a bit finicky, but here's what I have so far:
- the toggle switch on the Fidget Cube is also the main power switch for the Cordwood
- the cube contains a simple 5.1V zener dropper so everything can be powered by a convenient 9V battery
- many of the controls in the Fidget Cube are active and turn off one of the LEDs:
- ball bearing switch
- 5-button keypad switch
- joystick control
Secrets of the Fidget Cube
First step was of course to find out what was inside the Fidget Cube to see if was suitable for re-purposing, and whether there was even enough room inside to do anything useful.
The most unexpected discovery was the neat use of neodymium magnets, which have replaced more traditional mechanisms with simple machines that give a great tactile experience.
Here's a quick guide to what I found inside the cube..
Getting it Apart
I left a few prize marks on the case until I found the secret: pull off the rotating wheel, and underneath are two screws. Remove those and the cube case comes apart in two halves.
- the plastic rocker has a neodymium magnet in each end
- a metal shaft is press-fit through the mounting posts on the inner chassis
- two screws are mounted on the inner chassis under each end of the rocker
So when you toggle the switch, the magnets provide a very nice resistance gradient.
I decided to use this switch as the main power switch. I wired up power to one of the magnets, and tapped a wire from the corresponding screw, so closing the switch completes the circuit.
Ball Bearing Button
The ball bearing simply sits on a metal "clicker" (what is the technical term??)
I replaced the clicker with an SMD push button. I had to file out a bit more space in the plastic mounting for the 1.5mm height of the push button so it could still be activated by the ball bearing when re-assembled.
The joystick control is another ingenious mechanism. The metal joystick pole has a spherical base with flattened bottom. This sits on another neodymium magnet, so movement in any direction is nicely resisted and the the joystick snaps back to central position when released.
I decided to wire up LED controls to eight positions around the circumference of the joystick which would be grounded. So a full rotation could control all LEDs
The keypad is just a silicon button fabric backed by a metal plate. Metal "clickers" were positioned under 3 of the buttons.
I decided to replace all 5 with SMD push buttons.
Unfortunately, these are just plastic spinners on a common metal shaft. Not much I could do with these, so I left them as-is.
This is just a plastic disk pressed into a metal shaft. No space and I couldn't think of anything to do with this.
For simplicty, I decided to use a 9V bettery power supply. The Cordwood Too wants 6.5V at most, and I decided to use a 5.1V zener dropper.
The 1N4733 is rated for 5.1V and maximum power of 1W. The Cordwood Too draws around 100mA with all LEDs on at this voltage.
- max current = 196mA
- minimum value of Rs = 19.9Ω
- maximum value of Rs = 39Ω
- power dissipated over Rs when 39Ω = 3.9mW
So I selected a 22Ω 1/4W for Rs:
Joystick and Keypad
Wiring up the neck brace of the joystick and replacing clickers with push buttons under the keypad:
Kinda visible here:
- power wire to the rocker switch (connects to the magnet in the end of one arm)
- push button under the ball bearing is wired up
- micro PCB for the power circuit and terminating connections within the cube to the wires that will connect to the Cordwood
Final Connections before Closing the Cube
A few more more wires to solder before closing the cube, connecting the keypad.
All back together
Power and Cordwood pins terminate on a small strip of protoboard: