Cubify Cube 3D printer

Table of Contents

The Cubify Cube 3d printer is a plastic filament 3D-printer. It's production is discontinued but I got mine for free from one of the members of the Warsaw Hackerspace so I thought I might as well see what's it worth. The online reviews of this printer are pretty bad (it has > 50% 1-star reviews on Amazon) but hey, I got it for free together with two cartridges of filament.

Screws are Allen H2.5 not Allen H3 or Torx like I thought.

1 Main board

1.1 Chips

Item Type Notes
Microcontroller PIC32MX450F256H  
WLAN chip RN131C//RM  
  VN5050J Automotive driver, purpose unknown
Stepper motor drivers A3979 4 x stepper motor drivers. Makes sense, the 3d printer has 4 stepper motors (3 axes and extruder).
LCD https://www.docdroid.net/JLZDTjm/pt0242432t-c402-j-vera.pdf#page=11  
OTG transciever   For both host (usb sticks) and device (back connector for firmware programming).

1.2 Connectors

There are the following connectors on the board:

  • a PICkit2 connector (unpopulated)
  • a CONN12 connector (unpopulated)
  • a microSD (TransFlash) connector (populated with a 4 GB card). It is likely used to store the print gcode files and settings
  • a twopin cartridge plug-in detect connector. Connected to the PIC pin 63 RPE3/CTPLS/PMD3/RE3
  • spring pins connecting to a chip inside the cartridge via 1-Wire, connected to the PIC pin SDA2/U2RX/PMA9/CN17/RF4

1.3 Tapping the PIC <-> WLAN communications

I soldered two new pin headers onto the board to access the PICkit2 connector as well as the CONN12 which I expected would be the serial port. My suspicions were correct, when plugging in a USB<->RS232 adapter I started seeing some interesting output. This is actually the interface between the PIC microprocessor and the WLAN module.

Here is what can be seen on the console when the Cube is powered on:

# picocom -b 57600 /dev/ttyUSB0 picocom v2.2

port is        : /dev/ttyUSB0
flowcontrol    : none
baudrate is    : 57600
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        : omap is        : emap is        : crcrlf,delbs,

Type [C-a] [C-h] to see available commands

Terminal ready


0.000 Cube V2.07
0.000 Baud:227272

Later after the button is pressed and the GUI starts:

2.000 $$$
2.200 D_LOAD_SETTINGS_FILE_CHECK_FS
2.200 D_LOAD_SETTINGS_FILE_CHECK_FILE
2.200 D_LOAD_SETTINGS_FILE_AND_RENAME
2.200 D_WRITE_NVM
CMD
2.200 set u m 0x31
AOK
2.225 set w l 5
AOK
2.225 save
Storing in config
2.225 get mac
Mac Addr=00:06:66:21:f1:46
2.250 ver
wifly-GSX Ver 4.00.1, Apr 19 2013 11:48:31 on RN-131
2.250 exit
EXIT

Each message has a timestamp in it's header which is like sysUpTime in that it counts time since boot. Some more interesting strings are produced when a WiFi scan is triggered:

126.550 $$$
CMD
126.600 set w j 0
AOK
126.625 save
Storing in config
126.625 reboot
*Reboot* 128.625 $$$
CMD
128.675 set sys printlvl 0x4000
AOK
128.700 scan
SCAN:Found 4
01,06,-75,04,3104,28,40,xx:xx:xx:xx:xx:xx,ZyXEL XXXXXX v2
02,11,-39,04,1104,28,00,xx:xx:xx:xx:xx:xx,XXXXX
03,11,-84,04,3100,28,00,xx:xx:xx:xx:xx:xx,XXXXXXXXXX
04,11,-83,04,3100,28,00,xx:xx:xx:xx:xx:xx,XXXXXXXX
131.300 exit
END:
EXIT

The commands are documented on Microchip's site

Example WLAN association output:

525.150 $$$
CMD
525.325 set w j 0
AOK
525.350 save
Storing in config
525.375 reboot
*Reboot*
527.375 $$$
CMD
527.425 set sys printlvl 0x4000
AOK
527.450 scan
SCAN:Found 6
01,01,-84,04,1105,28,40,xx:xx:xx:xx:xx:xx,XXXXXXXXX
02,08,-76,04,3104,28,40,xx:xx:xx:xx:xx:xx,XXXXXXXXXX
03,11,-40,04,1104,28,00,xx:xx:xx:xx:xx:xx,XXXXXXx
04,11,-78,04,3100,28,00,xx:xx:xx:xx:xx:xx,XXXX
05,11,-78,04,3100,28,00,xx:xx:xx:xx:xx:xx,XXXXXXXXX
...
Read more »