Repetier for K8200

Dear all,

I've more or less easily managed to run Repetier Firmware on my RADDS board, and as I am very satisfied with Repetier, I now desire to run it on my stock K8200 motherboard as well (it has been switched from my K8200 to a homebrew router, but it looks like Repetier might be well-suited for this task, too).

I assume it would be feasible to tweek some repetier pin configuration "manually", or modify/add some entries in boards.h (or similar).

But then again maybe:
  • somebody did this already!? (I searched this forum and saw some people use K8200 with Repetier, but no details)
  • it is preferable to introduce K8200 support "on a higher level" (maybe including web configurator).

So I ask myself about the best approach. Even if my C/C++ programming experience dates back 30 years and the last 15 years I did mostly Java, I could probably help and contribute, though some basic guidance would be welcome.

Kind regards,



  • Hmmm. I tried to use "userpins.h".

    Got very strange error:

    In file included from Repetier.h:457:0,
                     from Commands.cpp:22:
    HAL.h:34:20: fatal error: avr/io.h: No such file or directory
     #include <avr/io.h>
    compilation terminated.

  • My fault. Seems my ide was still set to the Due because of RADDS board.
  • I now have a working "userpins.h" for a 3DRAG/K8200 printers motherboard. At least all pins used for CNC milling have been tested. Thermistor pins are defined, but untested.

    Lets see where I can contribute is. Perhaps it would be feasible to weave it in the original pins.h, so Repetier firmware supports K8200 "out of the box"?. Velleman already uses Repetierhost, but only with Marlin.

    And for "out of the box" you'd have to consider the different modes of enable/direction with regard to the stepper drivers.
    I replaced mine with the Watterodt SilentStepStick (direction pin inverted).

  • For inclusion in original firmware I need a full setup meaning all stepper/heater/thermistor pins set correctly. Then I could assign it to pins.h. Is 3DRAG the motherboard name?
  • I have a more or less complete list of pins obtained from some other post. But as I currently use the board in a cnc router, I could not verify all pins. But the risk should be minimal. The primary confusion is about heaters. The userpins.h mentiones heaters by number (0, 1, ...). I used "0" for the printed bed heater and "1" for the extruder heater.

    (slightly off-topic: when playing with M3, M4 and M5 with the router I observed strange behaviour; after some analysis it seems a statement like "direction = 0;" is missing in CNCDriver::spindleOff(). At least this fixed it for me.)

    "3DRAG" is the name of a (Italian?) 3D printer. The same printer was sold by (Belgian?) Velleman later as "K8200" and became quite popular in Germany. The firmware shipped with it is Marlin, but they recommend RepetierHost as Frontend.

    The motherboard does not have a special name; I heard it is a modified Sanguino something.

    Should I simply post the pin assignments here?

  • Yes, please do. I could add it with flag untested. Would at leat help. Not sure with heaters as we use heater 1 for bed traditionally. If that is how it came wired I should switch pins for 0 and 1 to keep repetier numbering.

    If it is sanguino did you uload/compile with sanguino board selected? If you used mega2560 to compile it is is not sanguino.
  • #define KNOWN_BOARD 1

    //////////////////FIX THIS//////////////
    #ifndef __AVR_ATmega1280__
    #ifndef __AVR_ATmega2560__
    #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.

    // X/Y/Z Steppers and MIN endstops verified

    #define ORIG_X_STEP_PIN         54
    #define ORIG_X_DIR_PIN          55
    #define ORIG_X_ENABLE_PIN       38
    #define ORIG_X_MIN_PIN           3
    #define ORIG_X_MAX_PIN          -1

    #define ORIG_Y_STEP_PIN         60
    #define ORIG_Y_DIR_PIN          61
    #define ORIG_Y_ENABLE_PIN       56
    #define ORIG_Y_MIN_PIN          14
    #define ORIG_Y_MAX_PIN          -1

    #define ORIG_Z_STEP_PIN         46
    #define ORIG_Z_DIR_PIN          48
    #define ORIG_Z_ENABLE_PIN       63
    #define ORIG_Z_MIN_PIN          18
    #define ORIG_Z_MAX_PIN          -1

    #define ORIG_E0_STEP_PIN        26 // from schematic
    #define ORIG_E0_DIR_PIN         28 // from schematic
    #define ORIG_E0_ENABLE_PIN      24 // from schematic

    #define ORIG_E1_STEP_PIN        -1
    #define ORIG_E1_DIR_PIN         -1
    #define ORIG_E1_ENABLE_PIN      -1

    #define SDPOWER                 -1
    #define SDSS                    25 // from schematic
    #define ORIG_SDCARDDETECT       -1

    #define LED_PIN                 13 // from schematic
    #define ORIG_FAN_PIN             8 // from schematic
    #define ORIG_PS_ON_PIN          -1

    #define HEATER_0_PIN            10 // schematic: HEATER1 (Extruder)
    #define HEATER_1_PIN             9 // schematic: HEATER2 (Heated Bed)
    #define HEATER_2_PIN            -1

    #define TEMP_0_PIN              13 // schematic: THERM1 (Extruder)
    #define TEMP_1_PIN              14 // schematic: THERM2 (Heated Bed)
    #define TEMP_2_PIN              -1


    // following pins (LCD, ENCODER, SDCARD) reverse engineered from schematic diagram:

    #ifdef ULTRA_LCD
    #ifdef NEWPANEL

    #define LCD_PINS_RS            27 // from schematic
    #define LCD_PINS_ENABLE        29 // from schematic
    #define LCD_PINS_D4            37 // from schematic
    #define LCD_PINS_D5            35 // from schematic
    #define LCD_PINS_D6            33 // from schematic
    #define LCD_PINS_D7            31 // from schematic

    #define BTN_EN1                16 // from schematic
    #define BTN_EN2                17 // from schematic
    #define BTN_ENC                23 // from schematic

    #endif //ULTRA_LCD

    #define SCK_PIN                52 // from schematic
    #define MISO_PIN               50 // from schematic
    #define MOSI_PIN               51 // from schematic
    #define MAX6675_SS             53 // from schematic
  • I used this as "userpins.h" and set motherboard to 999. Worked for me.
  • BTW: could you verify my problem with missing "direction = 0;" in  CNCDriver::spindleOff() which I described above?
  • Hmmm. Just noticed the 0.92.7 which has the spindle issue fixed. Thank you.
  • I'm a bit unsure about this

    //////////////////FIX THIS//////////////
    #ifndef __AVR_ATmega1280__
    #ifndef __AVR_ATmega2560__
    #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.

    that makes no sense since it will not trigger if you have sanguino or Mega selected, but it can only be one of both I think. So what board do you use to compile? With that info I know which one is the needed one.
  • edited December 2015
    Here is a board description from K8200 Wiki.

    3DRAG and K8200 both use the same ATmega2560-based design.
    The wiki article explains that it is a successor of Sanguinololu Controller (ATmega644 based).

    I have 'Arduino Mega' selected when compiling.
    I assume the pins _will_ fit the 3DRAG as well.

    I fear the pins will _not_ fit the older Sanguinololu.

    Does this sound reasonable?

  • 3drag states it self you can use native arduino ide with mega as is not a real snaguino any more. Just maybe designed from the same people, so the mega condition is the right. I have now included the pins as board 66.
  • I can confirm that the stock 0.92.7 works for me using board number 66. Thank you very much.
  • edited January 2016
    I can confirm that 0.92.8 works with board 66.

    Seems to work better then Marlin so far in the sense that the temperature curves in Repetier Host now work all the time. In Marlin they block during M190 G-code. Also I have the feeling it's smoother. Marlin has little mechanical glitches during communication.
  • Hi all,
    i'm trying to set Repetier Firmware for my 3Drag.
    Anyone can tell me witch DISPLAY_CONTROLLER i have to set for the one that comes with the printer: ?
  • popeye said:
    Hi all,
    i'm trying to set Repetier Firmware for my 3Drag.
    Anyone can tell me witch DISPLAY_CONTROLLER i have to set for the one that comes with the printer: ?
    I would also like to get repetier firmware to work with vm8201 display. I'm stuck using Marlin firmware if I want to use my display.
Sign In or Register to comment.