New Accel Board on a v2, without the HE280

A place to talk about user-made mods and upgrades to their machines
Post Reply
kraegar
Printmaster!
Posts: 158
Joined: Sat Mar 28, 2015 1:27 pm

New Accel Board on a v2, without the HE280

Post by kraegar »

I was lucky enough to con SeeMeCNC into letting me test, so I've been running the accel board on my v2 with an e3d v6 for a while now. Here's my experience and what to watch for.

1 - wiring. Run some stranded cat 5 or cat 6. You need 5 wires total. 3 for the I2C, and two for power. The connections were pretty straightforward, though I did get the I2C wrong at first, that's easy to correct. Looking at the connector for the board, from the side with the little o on the board denoting pin 1, if you're just using it for the accelerometer it's: empty, 12v, empty, Ground, scl, sda, int, empty. on the rambo board, the SCL goes to ISC1, SDA to I2C 2, and INT goes to Serial pin 2 just above it.

Connector (12v is on the right):
[img]http://i.imgur.com/byIWXbl.jpg[/img]

I2C connections (Purple is the brown wire from the previous pic, because I didn't have a brown jumper wire):
[img]http://i.imgur.com/j6JWoEv.jpg[/img]

Serial connection:
[img]http://i.imgur.com/4FHpbDa.jpg[/img]

2 - Mounting. I use the 723 Maker mount. I used a single 1/2 inch nylon spacer from the hardware store. As long as it's level, and solidly mounted, it'll work. If you run a flying extruder, be wary. And even if not... if your bowden or cables pull *at all* when you probe the edges of your plate, it'll cause your effector to tilt. This will throw the calibration WAY off, and you'll get bad results. I moved away from my flying extruder because of this, actually. I discovered no matter what I did, it could cause some tilt at some angles. Your mileage may vary.

Here's a picture of mine mounted:
[img]http://i.imgur.com/x0B7wfy.jpg[/img]

3 - Firmware. You have to be running the new firmware. https://github.com/seemecnc/Firmware

4 - Probing. The default routine JJ gave me is this:

Code: Select all

;  Rostock Max v2 Delta Auotcalibration Script
G69 S2 ;Endstop Calibration
M117 ENDSTOPS CALIBRATED
G68 ;Horizontal Radius Calibration
M117 HORIZONTAL RADIUS CALIBRATED
G30 S2 ;Z height calibration
M117 Z Height Calibrated
G4 S2
M117 SAVING CALIBRATION
The probe points in the EEPROM were these:
[img]http://i.imgur.com/gMZicod.png[/img]

That will give you a nice 4 point probe + horizontal radius & z-height correction. In two runs it could get things fairly level.

5 - Advanced probing. Ok, so I wanted to use this page: http://escher3d.com/pages/wizards/wizarddelta.php
Probem: the new firmware gets rid of the "standard" g30. Solution: put my own custom probing commands in. Try this at your own risk. I changed the g30 stanza in commands.cpp to this:

Code: Select all

    case 30: // G30 single probe set Z0
    {
#if DISTORTION_CORRECTION
        float oldFeedrate = Printer::feedrate;
        Printer::measureDistortion();
        Printer::feedrate = oldFeedrate;
#else
        float sum = 0, sum1 = 0,last,oldFeedrate = Printer::feedrate, offsetmm = 0; //add ofsetmm = 0 AJA
        bool oldAutolevel = Printer::isAutolevelActive();
  if((com->hasS() && com->S == -1) && (com->hasX() && com->hasY())){
	Printer::homeAxis(true,true,true);
	GCode::executeFString(Com::tZProbeStartScript);
	Printer::setAutolevelActive(false);
	Printer::moveTo(com->X,com->Y,IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
	sum1 = Printer::runZProbe(true,false,Z_PROBE_REPETITIONS,false); //First tap Y tower
        sum = Printer::runZProbe(true,false,Z_PROBE_REPETITIONS,false); //Second tap Y tower
        if ((sum1 - sum) > .1 || (sum1 - sum) < - 0.1){
          Com::printErrorFLN(Com::tZProbeFailed); //output to terminal Z probe failure
          sum = -1; // fail flag to stop probe
        }else{
            offsetmm = sum - Z_PROBE_BED_DISTANCE;
	    Com::printFLN(PSTR("Probed offset in mm "),offsetmm);
            Printer::homeAxis(true,true,true);
	}
  }else{
    //Back to normal seemecnc g30 AJA
    do{
        if(com->hasS() && com->S == 2){ // only reset eeprom if saving new value
        Printer::zLength = Z_MAX_LENGTH; // set Z height to firmware default
        EEPROM::storeDataIntoEEPROM(); // store default before calibration
        EEPROM::readDataFromEEPROM(); // would not take effect unless read!
        }
        Printer::homeAxis(true,true,true);
        GCode::executeFString(Com::tZProbeStartScript);
        Printer::setAutolevelActive(false);
        Printer::moveTo(0,0,IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
        
          sum1 = Printer::runZProbe(true,false,Z_PROBE_REPETITIONS,false); // First tap
          sum = Printer::runZProbe(true,false,Z_PROBE_REPETITIONS,false); // Second tap
          if ((sum1 - sum) > .1 || (sum1 - sum) < - 0.1){ //tap reports distance, if more or less than .1mm, it will re-run
              Com::printErrorFLN(Com::tZProbeFailed);
              sum = -1;
          }
    }while(sum < 1);
        if(com->hasS() && com->S)
        {
#if MAX_HARDWARE_ENDSTOP_Z
#if DRIVE_SYSTEM==DELTA
            //Printer::updateCurrentPosition();
            Printer::zLength += sum - Printer::currentPosition[Z_AXIS];
            Printer::updateDerivedParameter();
            //Printer::homeAxis(true,true,true);
#else
            Printer::currentPositionSteps[Z_AXIS] = sum * Printer::axisStepsPerMM[Z_AXIS];
            Printer::zLength = Printer::runZMaxProbe() + sum-ENDSTOP_Z_BACK_ON_HOME;
#endif
            Com::printInfoFLN(Com::tZProbeZReset);
            Com::printFLN(Com::tZProbePrinterHeight,Printer::zLength);
#else
            Printer::currentPositionSteps[Z_AXIS] = sum * Printer::axisStepsPerMM[Z_AXIS];
            Com::printFLN(PSTR("Adjusted z origin"));
#endif
        }
        Printer::feedrate = oldFeedrate;
        Printer::setAutolevelActive(oldAutolevel);
        if(com->hasS() && com->S == 2)
            EEPROM::storeDataIntoEEPROM();
        Printer::updateCurrentPosition(true);
        printCurrentPosition(PSTR("G30 "));
        GCode::executeFString(Com::tZProbeEndScript);
        Printer::feedrate = oldFeedrate;
        Printer::homeAxis(true,true,true);
#endif
    }
    } //close my if AJA
    break;
My probe points to go along with that for the least squares webpage 10 point calibration are:

Code: Select all

G30 S-1 X0.00 Y142.68 
G30 S-1 X123.56 Y71.34 

G30 S-1 X123.56 Y-71.34 
G30 S-1 X0.00 Y-142.68 

G30 S-1 X-123.56 Y-71.34 
G30 S-1 X-123.56 Y71.34 

G30 S-1 X0.00 Y71.34
G30 S-1 X61.78 Y-35.67
G30 S-1 X-61.78 Y-35.67

G30 S-1 X0 Y0
The S-1 triggers my check. The seemecnc method still works without it.

I hope this helps others! It definitely works, and is a great way to calibrate!

Edit: the pdf drawing of the accel board is very helpful: https://github.com/seemecnc/Machine_Ele ... CB_v5d.PDF

One more edit: video of my printer probing custom points: https://youtu.be/tRhgYBRGdhQ
Last edited by kraegar on Mon Sep 12, 2016 10:57 am, edited 1 time in total.
kraegar
Printmaster!
Posts: 158
Joined: Sat Mar 28, 2015 1:27 pm

Re: New Accel Board on a v2, without the HE280

Post by kraegar »

Some notes:
I've tested this with a prometheus, the e3d v6 with a brass nozzle, and the e3d v6 with a hardened steel nozzle. Works great with any of them.

I usually probe with the bed & hotend both up to full printing temps. Works well. HOWEVER - if you have *any* filament leak from your hotend, or *any* filament on your bed at the probe points at all, your calibration will be off, or usually just fails. For that reason, it's easier to probe with the hotend cold. But less accurate (seems to be about 0.02mm difference, so not much).

Once again, the biggest thing to watch for - eliminate ALL sources of effector tilt. Oh, and if your belts are loose, your calibration will suck.
User avatar
Eaglezsoar
ULTIMATE 3D JEDI
Posts: 7159
Joined: Sun Apr 01, 2012 5:26 pm

Re: New Accel Board on a v2, without the HE280

Post by Eaglezsoar »

kraegar, thank you for your hi-res picture and the detailed write up. Congrats on getting everything working.
“ Do Not Regret Growing Older. It is a Privilege Denied to Many. ”
kraegar
Printmaster!
Posts: 158
Joined: Sat Mar 28, 2015 1:27 pm

Re: New Accel Board on a v2, without the HE280

Post by kraegar »

Glad to share what I learned in testing.

The "probe any point" stuff is totally optional. I just wanted to be able to do it.

Common issues -
If the two taps are too far off of each other ( > 0.1mm) it throws and error and stops. Just re-home and try again... that usually means there's filament on the hotend.

I have in my experimenting caused it to just hit the bed and not register a tap. My advice is not to do that. It doesn't break the glass, but be near the printer to hit the kill switch if you do that. The tap code is blocking, so you can't just cancel it by sending a g28. (most recently I caused this by removing the wiring harness to take a picture of it, then forgetting to reconnect that harness)

Edit: You also *could* of course get more clever / fancy with how you mount it. The board just needs to be solidly attached to the effector and level. This was just the easiest approach that required the least modification to do, and is quite effective.
TwoTone
Printmaster!
Posts: 144
Joined: Tue Jun 14, 2016 6:36 pm

Re: New Accel Board on a v2, without the HE280

Post by TwoTone »

How hard are the taps? When we changed out the hotends, my son did something that screwed up setting the Z height. At one point the hot end hitting the glass several times hard and and damaged the PEI sheet we had. $20 mistake.

I'm assuming the accelerometer is fast enough to keep the taps light?
kraegar
Printmaster!
Posts: 158
Joined: Sat Mar 28, 2015 1:27 pm

Re: New Accel Board on a v2, without the HE280

Post by kraegar »

It's 90mm/s, you can watch the video I posted to see / hear what they're like. I've not used PEI to know if it would damage that surface or not. It's a pretty solid hit, though.
duvdev
Printmaster!
Posts: 167
Joined: Wed Aug 13, 2014 5:23 am

Re: New Accel Board on a v2, without the HE280

Post by duvdev »

Cool thanks for the info and pictures.

Can I run the auto calea from repetier host?
kraegar
Printmaster!
Posts: 158
Joined: Sat Mar 28, 2015 1:27 pm

Re: New Accel Board on a v2, without the HE280

Post by kraegar »

It's just gcode, so yeah. I run it from octoprint.

Side note: by default octoprint will disconnect on error. Two taps that are out of whack (due to filament buildup, etc) will throw an error, and cause octoprint to disconnect. I just disabled that setting in octoprint. If it taps twice and fails, I home with g28 and clean whatever caused the issue.
Circus621
Prints-a-lot
Posts: 21
Joined: Mon Jun 27, 2016 9:31 pm
Location: Hudson Valley NY

Re: New Accel Board on a v2, without the HE280

Post by Circus621 »

This is awesome! Thanks kraegar
O.o
kraegar
Printmaster!
Posts: 158
Joined: Sat Mar 28, 2015 1:27 pm

Re: New Accel Board on a v2, without the HE280

Post by kraegar »

I'm sure others will get far more creative with it - both in how it's mounted (713maker says they have a new wiring retainer coming out that will include a way to attach the accelerometer) and in how they work with it in firmware.

I just wanted to get out there what I found for a bare bones method to get it going, verify that it's very easy, and it does work great.

My typical calibration has a deviation of 0.02mm in the delta least squares page, and I can easily print a 210mm test print that's flat all the way across, even if I zero out my eeprom and start over.
Post Reply

Return to “Mods and Upgrades”