Videos and reviews

Software development kit

Welcome to the Software development kit for Rubik’s Futuro Cube. You find here all information how to write, compile and test applications written by yourself or someone else. We are continuosly working on additional extensions.

In 2016 Q1-Q2 we will release complete up to date online documentation, that we are working on just right now. Meanwhile please start with available information here, check latest “”, which has description of the newest APIs and do not hesitate ask us questions!

Detailed information about latest Drag & Drop RFCSuite and FW feature get here

Available features in FW 5.2 Open Beta SDK

  • Multiple scripts support in Cube (total around 50kB Flash) + debugging in Ram
  • RFCSuite 1.2 required for drag&drop!
  • Possibility of auto script start when USB is plugged (replacing charging) and USB unplugged (before Game Menu)
  • MyCube script starts automatically when Menu Gesture is performed in Game Menu
  • Icon customization and placement in source code
  • More than 100 APIs (music upload and RF will be available soon)
  • Radio APIs VER3 + text and binary transfer
  • Upload of the customized audio

Easy steps to start writing applications for Rubik’s Futuro Cube


Example 1 – cursor

Simple example that shows how to get position of cursor and draw it onto the cube. Color is created each time when the cursor is placed. Function printf can be used for various debugging purposes. This example also shows typical drawing sequence, which is usually used in most complex cases:

ClearCanvas() …. draw scene …. PrintCanvas()


Example 2 – tapping

This example shows how to easily setup taps to side to be recognized. Also, double tap signal is used for lighting up entire cube. Example also shows how to use palette colors and how to set up them from arrays. Palette colors are those represented by number lower than 256. (lower 8-bits at color value)


Example 3 – walker

This example shows how walk with walker by taping to sides. If tap from same side is detected, walker continues his direction. Orientation of walker can be optionally displayed by debug function DrawTail. If tap from bottom is detected, red color cube is displayed. AdjustCanvas is used to demonstrate how to fade without using FlashCanvas.


Example 4 – paint_my_cube

This example shows simple application for painting on the cube with several commands. Serves perfect as script example, that can be placed by CUBE MANAGER into MYCUBE place. Tap from side changes color of brush, tap from top draws with selected brush. Double tap from top fills the top side. Double tap from side runs small animation with music. Double tap from bottom erase whole cube and single tap from bottom moves one action back. This example also shows more advance work with Push Pop Arrays and Variables. Push Pop Array is used for storing actions and variable is used for keeping the art-work in non-volatile memory. If named variable exists, it is loaded every time with animation when the script starts.


Example 5 – animated rubik’s

This example shows simple implementation of rubik’s cube with animated rotations. Direction of rotation is determined by inclination of tapped side. SolveDir function reads accelerometer data and compares them with threshold “ACC_THRESHOLD” for direction. Also each move is stored into variable, so the progress is never lost. Example of correct use of ICON() is demonstrated as well. Note that definition of icon[] must be placed in global namespace!


Example 6 – disco cube

This example shows an easy way to determine time of the tap and how to (not completely accurately) extrapolate it to future time. It does not use mean deviation, so after while it is little bit off beat. If you give 8 taps in a row, cube continues in given rhythm. Double tap resets the rhythm and a new one can be entered by another 8 taps.


Example 7 – motion

Motion detector – by Josip Miskovic. This example shows a bit advanced working with raw accelerometer data. Detects motion and colors of the whole cube depending on motion direction. Mildly amusing.



Is it possible to communicate with cube outside RFC?

Yes, if you connect the cube to computer via USB cable, virtual serial comport become available and it provides simple prompt shell, echo is initially switched off! Simply press few times enter to get answer. Do not forgot to switch off flow control, speed is not important! For all available commands search in SDK manual. Remember, that RFC uses multiplex protocol and it is automatically set up when cube connects first time to RFC. If you would just close RFC, than the multiplex keeps running. To switch back for simple mode, simply cycle USB cable.

Is it possible to use data from CUBE and control LEDs?

Yes, cube shell (connection is described above) offers several commands for retrieving data from accelerometer and commands for full control of all LEDs. Read the SDK manual for more information, commands of interest are: “clr, pled, pleds, pledarr, motion”. Motion is a special command that sends in frequency 125 Hz state information from game state machine. That means not only raw accelerometer data, but for example as well recognized taps.

How shell can communicates with scripts?

FW 4.5 allows to use command “prunf N”, which starts automatically script on N-th position. Future version should be able to start any scripts via its name if present. Also SDK implements standard function “printf(…)” which outputs formatted text to shell line. So this output, even originally designed as debug function, can be parsed by external program. At this moment there is no line that would allow to send message to the script, but it is planned for next update.

Contact form

We will be releasing updates on the regular basis. Feel free to e-mail us with your ideas for new features, or report any problems. [email protected]

Your Email (required)

Please fill your Email Again (required)

Your Message