I am trying to install Repetier on my new Ultratronics board.
When compiling I get the following errors:

Arduino: 1.6.9 (Windows 10), Board: "Arduino Due (Programming Port)"

Build options changed, rebuilding all
sketch\HAL.cpp: In static member function 'static void HAL::importEEPROM()':

HAL.cpp:271: error: no matching function for call to 'EEPROM::readDataFromEEPROM()'



sketch\HAL.cpp:271:32: note: candidate is:

In file included from sketch\Repetier.h:1016:0,

                 from sketch\HAL.cpp:28:

sketch\Eeprom.h:193:17: note: static void EEPROM::readDataFromEEPROM(bool)

     static void readDataFromEEPROM(bool includeExtruder);


sketch\Eeprom.h:193:17: note:   candidate expects 1 argument, 0 provided

exit status 1
no matching function for call to 'EEPROM::readDataFromEEPROM()'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Can anybody help me?


  • Uploaded a fix. Please redownload newest HAL.cpp.
  • Downloaded the new HAL.cpp.
    I use the dev version.
    Still get an error, only different one:

    Arduino: 1.6.9 (Windows 10), Board: "Arduino Due (Programming Port)"

    sketch\HAL.cpp:2:24: fatal error: compat/twi.h: No such file or directory

     #include <compat/twi.h>


    compilation terminated.

    exit status 1
    Error compiling for board Arduino Due (Programming Port).

    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

  • We don't load twi in HAL.cpp, at least not in due version. I guess you have copied the avr version of HAL.cpp instead.
  • I downloaded the complete firmware here:

    and copied the HAL.cpp file.

    I will give it another try.
  • I can compile now. Must have done something wrong.

    One other question:
    I use the reprapworld graphical LCD on the Megatronics 3.0. To get this working I had to change the pin settings in ui.h for the Megatronics.
    I can not find info for the Ultratronics in the ui.h to do the same for the Ultratronics.
    I sthere another place were I can change the pin settings for the display to work?

  • ui.h would be the right place for supported boards. Alternatively select user defined lcd and set data in uiconfig.h instead.

    Is there a connector that fits the display? If so and you changed successfully ui.h let me know what to add and I add it to default distribution.
  • My programming knowledge is unsufficient to be able to implement such code.

    I can give you the code that is used to test he display and buttons with the graphical LCD connected to the Ultratronics.
    Is it possible for you to implement his in your firmware?

    Here is the test code:


    this software will test the graphical CLD v1.0 
    Uncomment the desired board below before compiling 
    Download and install the U8glib library from https://github.com/olikraus/u8glib/wiki

    //#define ULTRATRONICS

    #include "SPI.h"
    #include "SD.h"
    #include "U8glib.h"
    #include <Arduino.h>

    /* ultratronics */

      #define SDSC A5
      #define SW_BACK A9
      #define SW_ENC A10
      #define ENCA 20
      #define ENCB 21
      #define LCDSC A8

      U8GLIB_ST7920_128X64_4X u8g(SCK, MOSI, A8);

      #define SERIALTYPE SerialUSB

    void u8g_prepare(void) {

    void draw(void) {

      char s[2] = " ";
      uint8_t x, y;

      u8g.drawStr( 0, 10, "Back:");
      if (digitalRead(SW_BACK) == 1)
        u8g.drawStr( 100, 10, "Down");
        u8g.drawStr( 100, 10, "Up");

      u8g.drawStr( 0, 20, "Enc sw:");
      if (digitalRead(SW_ENC) == 1)
        u8g.drawStr( 100, 20, "Down");
        u8g.drawStr( 100, 20, "Up");

      u8g.drawStr( 0, 30, "Enc A:");
      if (digitalRead(ENCA) == 1)
        u8g.drawStr( 100, 30, "Down");
        u8g.drawStr( 100, 30, "Up");

      u8g.drawStr( 0, 40, "Enc B:");
      if (digitalRead(ENCB) == 1)
        u8g.drawStr( 100, 40, "Down");
        u8g.drawStr( 100, 40, "Up");


    void setup(void) {

      pinMode(65, OUTPUT);
      pinMode(52, OUTPUT);
      pinMode(51, OUTPUT);
      pinMode(50, OUTPUT);
      pinMode(59, OUTPUT);
      pinMode(61, OUTPUT);
      digitalWrite(65, HIGH);
      digitalWrite(51, HIGH);
      digitalWrite(52, HIGH);
      digitalWrite(50, HIGH);
      digitalWrite(59, HIGH);
      digitalWrite(61, HIGH);

      pinMode(MISO, INPUT);
      pinMode(MOSI, OUTPUT);
      pinMode(SCK, OUTPUT);
      pinMode(SS, OUTPUT);
      pinMode(LCDSC, OUTPUT);
      pinMode(SDSC, OUTPUT);
      pinMode(LCDSC, OUTPUT);
      pinMode(SDSC, HIGH);

      pinMode(SW_BACK, INPUT_PULLUP);
      pinMode(SW_ENC, INPUT_PULLUP);
      pinMode(ENCA, INPUT_PULLUP);
      pinMode(ENCB, INPUT_PULLUP);
      digitalWrite(LCDSC, HIGH);

      digitalWrite(SW_BACK, HIGH);
      digitalWrite(SW_ENC, HIGH);

      SERIALTYPE.print("\nInitializing SD card...");


    unsigned long nextMillis = 0;
    void loop(void) {

      if (nextMillis < millis()) {

        nextMillis = millis() + 5000;

      // picture loop
      do {
      } while ( u8g.nextPage() );

  • Can you please give me some tips how to get the graphical LCD working using hardware SPI?
  • LCD with hardware SPI is really hard. I tried it with viki 2 and failed since it always conflicted with sd card. Better is a solution with software spi for display, which was what I did with viki 2 to get it running.

    I don't have the hardware for testing, so I can just say check how it's done for viki 2 and redo the steps.
  • thank you to the repetier team !!!

    So easy to set-up my new delta printer with Ultratronics board + RAPS128 !
    One week that I tried to fix it with the reprapworld firmware ... and send email to them without reply :-(

    With the Repetier Firmware configuration tool version 1.0.0dev : it was PERFECT !!
    I just made a donation :-)
    So happy !!!

    Frederic - alias Pi-Wi 74 (france)
Sign In or Register to comment.