Close



Results 1 to 9 of 9
  1. #1
    Student
    Join Date
    Jun 2015
    Location
    Edmonton Alberta Canada
    Posts
    8

    Assistance with Rumba/ABL/pins.h/cardreader.cpp errors

    I am trying to follow the Zennmaster tutorial on setting up ABL, BUT... Ihave hit a snag as his instructions follow the RAMPS board and I have the RUMBA.

    Now I have googled and searched the forum and I thought that I had found the answer in the form of modifying my "pins.h" to contain the following:

    Code:
    #ifdef NUM_SERVOS
         #define SERVO0_PIN         5
    
         #if NUM_SERVOS > 1
              #define SERVO1_PIN         4
         #endif
    
         #if NUM_SERVOS > 2
              #define SERVO2_PIN         -1
         #endif
    
         #if NUM_SERVOS > 3
              #define SERVO3_PIN         -1
         #endif
    #endif
    So I did this and I tried to verify and compile and I got a mass of errors, as seen below

    This report would have more information with
    "Show verbose output during compilation"
    enabled in File > Preferences.
    Arduino: 1.0.6 (Windows 7), Board: "Arduino Mega 2560 or Mega ADK"
    In file included from /Marlin.h:23,
    from cardreader.cpp:1:
    /pins.h:1250:1: error: unterminated #if
    /pins.h:1247:1: error: unterminated #ifdef
    /pins.h:1206:1: error: unterminated #if
    /pins.h:1:1: error: unterminated #ifndef
    cardreader.cpp: In constructor 'CardReader::CardReader()':
    cardreader.cpp:28: error: 'DIOSDPOWER_DDR' was not declared in this scope
    cardreader.cpp:28: error: 'DIOSDPOWER_PIN' was not declared in this scope
    cardreader.cpp:29: error: 'DIOSDPOWER_RPORT' was not declared in this scope
    cardreader.cpp:29: error: 'DIOSDPOWER_WPORT' was not declared in this scope
    cardreader.cpp:29: error: 'DIOSDPOWER_PIN' was not declared in this scope
    cardreader.cpp:29: error: 'DIOSDPOWER_WPORT' was not declared in this scope
    cardreader.cpp:29: error: 'DIOSDPOWER_PIN' was not declared in this scope
    cardreader.cpp:29: error: 'DIOSDPOWER_WPORT' was not declared in this scope
    cardreader.cpp:29: error: 'DIOSDPOWER_PIN' was not declared in this scope
    cardreader.cpp:29: error: 'DIOSDPOWER_WPORT' was not declared in this scope
    cardreader.cpp:29: error: 'DIOSDPOWER_PIN' was not declared in this scope
    cardreader.cpp: In member function 'void CardReader::initsd()':
    cardreader.cpp:154: error: 'SDSS' was not declared in this scope

    Now I am fairly new to arduino coding, but to me it looks like I closed my end ifs correctly. So does anyone have any suggestions that could help me out?


    In my system currently running the Marlin firmware supplied from Colin's server on my RUMBA board.

  2. #2
    Technician
    Join Date
    Nov 2014
    Location
    New Orleans
    Posts
    50
    I would highly recommend upgrading to the newest arduino IDE and the latest Marlin firmware. A lot of bugs have been worked out since then and ABL works almost out of the box with the latest firmware. In the latest firmware pins_rumba.h (they were split out sometime last year I think), I just have a single line with no If statement (I only have one servo, so this works):

    #define SERVO0_PIN 5

  3. #3
    Student
    Join Date
    Jun 2015
    Location
    Edmonton Alberta Canada
    Posts
    8
    arduino IDE you mean the arduino application, and I get the latest marlin firmware from the reprap.org forum?

  4. #4
    Technician
    Join Date
    Nov 2014
    Location
    New Orleans
    Posts
    50
    Yes,

    Download the latest firmware from GitHub: https://github.com/MarlinFirmware/Marlin

    It will require the use of arduino 1.6.0 or newer (I think 1.6.9 is the latest) https://www.arduino.cc/en/Main/Software

  5. #5
    Student
    Join Date
    Jun 2015
    Location
    Edmonton Alberta Canada
    Posts
    8
    A Suggestion to correct the problem is to change all of the above code in pins.h to the following

    Code:
    //#define SERVO0_PIN 5  //Less the " // "


    Does anyone else concur? or got any other ideas? I will try to implement this tonight and see if it works.
    Last edited by jlhR2; 06-16-2016 at 08:53 AM.

  6. #6
    Student
    Join Date
    Jun 2015
    Location
    Edmonton Alberta Canada
    Posts
    8
    Woohoo, it compiled. Thanks for the help Dustin. If I should have any further comments or questions on my ABL I will address them here on this thread.

    James

  7. #7
    Student
    Join Date
    Jun 2015
    Location
    Edmonton Alberta Canada
    Posts
    8
    okay (good news, bad news)x2 =

    Good news1 = I uploaded the file and it worked, I have servo control.
    Bad news1 = M401/M402 didn't work, and when I tried to check the G29 ABL program, nada. It would send the code but nothing would happen.

    So additional review I realize that the base makerfarm firmware just wouldn't cut it.

    I then downloaded latest marlin 1.1.0-RC6, tried to port my settings based from zennmasters thread. BAD NEWS2 = Compiling issues again. Today I look online and find a post from Roxy stating that there is a bug-fix fork for RC6, downloaded it and placed it into my firmware folder.and rana a compile on it "AS-IS" and it compiled (Good news2).

    So now I am going to try to port my makerfarm information over the the RC6-BugFixed version, and see if it will compile.

    One thing I still can't get to compile is the probe_servo_deactivation.


    Can anyone tell me if there is or ever will be a centralized location of different "UP-to-date" firmwares offering simplified example of enabling or disabling elements such as ABL, or configuring for your specific printer?

    James

  8. #8
    Technician
    Join Date
    Nov 2014
    Location
    New Orleans
    Posts
    50
    James,

    I would have to dig up the old firmware to see what is causing that error, and I think transposing settings from the old to the new RC6 would be your best bet. Did you define the number of servos? define the z endstop as a servo? Define the servo endstop angles?

    Unfortunately firmware varies wildly from printer to printer, and I don't know if there will ever be a one size fits all guide for adjusting it. The Marlin firmware is relatively easy to manipulate, in that you will only really need to make changes in the configuration.h file, and possibly the configuration_adv.h file after you become a little more familiar with the settings and what they do. Configuration.h is essentially a list of parameters while most of the "code" that makes it work is behind the scenes. Unless you are proficient in C/C++, I wouldn't recommend mucking around with anything other than the .h files. After a couple of firmware updates, you will be intimately familiar with the settings necessary to run your printer. Printbus has several excellent guides for adjusting firmware settings in his build guide.

    I posted a rough guide for major firmware changes for RUMBA using clough42's dual extruder setup a few months ago. It may be useful in pointing out the variables you will need to change (note that you can ignore some of the settings related to dual extruders). You can see it here: http://3dprintboard.com/showthread.p...-Firmware-help

  9. #9
    Student
    Join Date
    Jun 2015
    Location
    Edmonton Alberta Canada
    Posts
    8
    Quote Originally Posted by dustmann View Post
    Did you define the number of servos? define the z endstop as a servo? Define the servo endstop angles?
    Thanks Dustin,

    Yes I did define the number of servos to 1, pretty sure I defined the z endstop as a servo, and yes I set the angles. Someone did point out to me today one possible issue is that I am not 100% that I tried to run the G29 right after I did a G28. And then I was told the G29 apparently WILL NOT run unless if ran immediately after a G28. So I will test that.

    Otherwise yes I did download the RC6+bugfix and was trying to again port all the settings and give it a go. And let everyone know by Friday where I am at with this then.

    Thanks for the link to your settings, it will come in handy as I do own all the parts for the itty bitty flex v2.1, I just need to print the parts. And I was trying to get just a basic auto bed level setup before I printed two sets of the itty bitty parts and get building.

    James

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •