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 still working on additional extensions, like uploading music & sounds, having multiple scripts in cube, APIs for RF communication and etc. We will add as well some official forum for sharing ideas and scripts.

There is available FW 5.0, get information here

Available features in FW 4.5 Open Beta SDK

  • Multiple scripts support in Cube (in 50kB Flash and 10kB MyCube area) + debugging in Ram
  • Multiple scripts requires at least RFCSuite 0.9!
  • 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)

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

  • Download and install latest Rubik’s Futuro Cube Suite (0.9) WIN, MacOS, Linux, RELEASE NOTES
  • USB drivers for WINDOWS installs automatically with RFC 0.9!
  • With Rubik’s Futuro Cube Suite update to latest FW with SDK support (at least version 4.5), RELEASE NOTES
  • Go over few examples bellow, download them with futurocube.inc
  • Learn basic or advance APIs in SDK manual ver 1.4. Release notes in document.
  • Write, compile and test your application, report us bugs, ask us for help!

Examples

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()

Download

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)

Download

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.

Download

Example 4 – paint.mycube

This example shows simple application for painting on the cube with several commands. Serves perfect as MYCUBE script example. 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.

Download

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!

Download

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.

Download

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.

Download

HOWTO & FAQ

Is possible to add another menu and place scripts there?

There is possible during multiple scripts upload to have WHITE menu as addition to BLUE, GREEN and RED standard menu. But there are some limitations. WHITE menu at FW 4.5 appears only when script(s) without ICON information are uploaded. Position and appearance of these scripts without ICON is fixed starting from 1,2,..6. In this case additionally scripts that contain ICONS can be positioned in the WHITE menu on free spots as well, however sound files indicated in ICON description will not work (become default). Currently we are working on easier and completely free placement of uploaded scripts with GUI interface. Should be released before end of the 2013.

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. info@futurocube.com

Your Email (required)

Your Message