Here is a summary of the work I have done and appreciation that I have for the Freetronics Cube. The Cube provided a point of focus for many technical aspects of electronics and computing. By the way, I am letting Grammarly suggest changes to the spelling and grammar in this particular article.
The Cube is programmed and powered using the USB port. The USB protocol appears to be handled in a non-standard way which causes some operating systems to reject the connection. To circumvent this issue there are specific software drivers for Windows and Linux. I often support both those OSs but will concentrate on Linux first as my experimental programs are developed using Linux, primarily. This has worked well in the past, however, development slowed down for a while as the Arduino IDE was upgraded in rapid small steps and the libraries for the Cube failed to compile due to more stringent tests being applied to types in the code by the later compilers. Some mods have been made to allow the code to compile but they are not totally sensible.
-
The Cube can run in a standalone mode where patterns are generated by the onboard Arduino.
-
The Cube can accept commands from the USB port.
CUBE4 RGB Cube Command List The external programming works even if the uploading of new code will not work, which could be due to USB drivers.
-
The Cube can be programmed with ICSP - thus avoiding the USB interface.
-
The Cube has many standard I/O pins available on it's PCB for external device connection.
Sections of the project that are receiving attention, by myself, at the moment, are:
-
USB interface. dmesg -xT shows this before the device is correctly configured :
kern :info : [Mon Jun 25 11:55:09 2018] usb 1-1: new full-speed USB device number 6 using xhci_hcd
kern :info : [Mon Jun 25 11:55:10 2018] usb 1-1: New USB device found, idVendor=26ba, idProduct=8002
kern :info : [Mon Jun 25 11:55:10 2018] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
kern :info : [Mon Jun 25 11:55:10 2018] usb 1-1: Product: USB IO Board
kern :info : [Mon Jun 25 11:55:10 2018] usb 1-1: Manufacturer: Unknown
kern :info : [Mon Jun 25 11:55:10 2018] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
kern :info : [Mon Jun 25 11:55:10 2018] input: Unknown USB IO Board as /devices/pci0000:00/0000:00:15.2/0000:07:00.0/usb1/1-1/1-1:1.2/0003:26BA:8002.0005/input/input17
-
Code compilation for target Arduino
-
Code compilation in a language of choice: I have some examples using Vala and some thought is taking place with Haskell.