Hi everyone,
I just wanted to share how I managed to integrate our Ultimaker 2+ with the FabMan System.
First of all, 2 pins of the Ultimaker Mainboard were connected to to Input 1 of the FabMan bridge. I used the EXT IO port (GND and digital pin 38):
(More information on the Ultiboard can be found here: Ultimaker2/1091_Main_board_v2.1.1_(x1)/Main Board V2.1.1.pdf at master · Ultimaker/Ultimaker2 · GitHub)
The Ultimaker Firmware must then be changed such as that the digital pin 38 is set to high when a print job started from SD-Card begins (i.e., after heating up), and to low when it is finished (or aborted).
Source Code: UM2.1-Firmware/Marlin at UM2.1_JarJar · Ultimaker/UM2.1-Firmware · GitHub
add 3 lines to cardreader.cpp, to the startFileprint() and printinHasFinished() methods :
void CardReader::startFileprint() { if(cardOK) { sdprinting = true; pause = false; enquecommand_P(PSTR("M42 P38 S255")); // FABMAN } }
void CardReader::printingHasFinished() { st_synchronize(); quickStop(); file.close(); sdprinting = false; pause = false; enquecommand_P(PSTR("M400")); // FABMAN enquecommand_P(PSTR("M42 P38 S0")); // FABMAN if(SD_FINISHED_STEPPERRELEASE) { //finishAndDisableSteppers(); enquecommand_P(PSTR(SD_FINISHED_RELEASECOMMAND)); } autotempShutdown(); }
add 2 lines to UltiLCD2_menu_print.cpp at the end of the abortPrint() function:
static void abortPrint() { /*..*/ enquecommand_P(PSTR("M400")); // FABMAN enquecommand_P(PSTR("M42 P38 S0")); // FABMAN }
The firmware is then compiled and uploaded to the Mainboard with the Arduino IDE (Arduino/Genuino Mega or Mega 2560) over USB.