Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Custom firmware development
I guess I was not really even considering the auto leveling situation part, But yeah it does look to want a z-max for that. I was really more interested in manual adjustments after a probe just as it is done on the machine now really.

Yes You are totally right on the 5v rule this is a due 3.3v board after all.
So after a little playing and a quick test print. offsets made in eprom at 3mm z 30mm y and 20mm x. Couple things popped out at me. The buttons are backwards. Welll the left right button are when moving the machine and up down when changing percentages and speeds. It is very easy to accidentally home the machine while in a print, and well the printer does not like that one bit. It home then tries to go on printing running into the bed. I will also have to look into what this "dump area" is.
I have bed leveling working. Essentially, I followed the repetier documents.

All in configuration.h
// #################### Z-Probing #####################

#define FEATURE_Z_PROBE true
#define Z_PROBE_PIN 5
#define Z_PROBE_PULLUP false
#define Z_PROBE_ON_HIGH false
#define Z_PROBE_X_OFFSET 0
#define Z_PROBE_Y_OFFSET 0
// Waits for a signal to start. Valid signals are probe hit and ok button.
// This is needful if you have the probe trigger by hand.
/** Speed of z-axis in mm/s when probing */
#define Z_PROBE_SPEED 5
#define Z_PROBE_XY_SPEED 0
/** The height is the difference between activated probe position and nozzle height. */
#define Z_PROBE_HEIGHT .28
/** Gap between probe and bed resp. extruder and z sensor. Must be greater then inital z height inaccuracy! Only used for delta printer calibration. */
#define Z_PROBE_GAP 10
/** These scripts are run before resp. after the z-probe is done. Add here code to activate/deactivate probe if needed. */
/* Autoleveling allows it to z-probe 3 points to compute the inclination and compensates the error for the print.
This feature requires a working z-probe and you should have z-endstop at the top not at the bottom.
The same 3 points are used for the G29 command.
#define Z_PROBE_X1 25
#define Z_PROBE_Y1 6
#define Z_PROBE_X2 25
#define Z_PROBE_Y2 215
#define Z_PROBE_X3 211
#define Z_PROBE_Y3 215

"featureAutolevel": "1",
"zProbeX1": 25,
"zProbeY1": 6,
"zProbeX2": 25,
"zProbeY2": 215,
"zProbeX3": 211,
"zProbeY3": 215,


And then enter those numbers into the eeprom config.

CAUTION: Be ready to turn the printer off quickly if anything goes wrong. Do this at your own risk.

To auto level:
1) Home all axis
2) move the z down so that nothing can hit (I used 10mm)
3) send g32 s1

LOL, WTF, I don't even get a chance to try. OK well I am going to do a little bit of forum spamming on different sites today then. If I cant solve issues I can at least get us a following. I was more than a wee bit disappointed in our last hack a day entry. The most important post was a one liner in a group of others at the end of a paragraph.

OT there is a plugin for notepad++ or sublimetext I don't remember witch one for the arduino to make it much more context sensitive. It was a couple weeks ago atleast since I saw it.

On T, OK well what can I do then? How about a custom start message?


I upload sketch without the autoleveling, and it all works as it should. I home it ant it reports position as -30,-20,-3. This is correct and prints with no code changes.
As soon as I enable the bed leveling and past in your changes keith, with the proper changes for my relative homes, It homes then goes to 0,0,0. This is not an issue, but I then no longer have position control in the menu or in repietier, so my mornings experiments are a bust. I will play around a bit more later with homes at 0,0,0. that is also with a probing start script as g28 n/g0z10.

There are a few minor bugs with repetier host having to do with shutting off the printer and back on the port is not found, but I can live with this stuff. I look forward to making a few prints today.
It will be important to check any improvements into BGM's branch by pull requests.
That we ensure the best image always can be built.
Optimally Repetier syncs it into their Branch as well.

I am a bit busy as Computex is upon me, but will spend more time on this after.

Did you home first, then immediately lower the Z 10mm, then send g32 s1?

If so, Maybe you need to change the z point height.

It is working fine on my setup. I intentionally adjusted the bed out of leve, ran a AL, then built a block. The z axis worked as hard as the x and y, but it was better than anything xyzware spit so far.

Like I stated, I am not even able to use repetier host after I do a home.

Now my machine will home and shows position at the neg values it actually is at. and it stays at that homed position. I copy and pasted your code block into that working config.

power cycle machine

home, and when it homes it goes to 0,0,0 That would be fine, But from that point on no move functions work nor does and code sent to machine. It is very odd, I am working from the master branch in arduino IDE.

I do understand the z working harder, That is why I also suggest having it display errors so that they can be adjusted for and not even use the auto plane alignment, I'm afraid it will wear on the screw and nut.... But at the same time this really should be straight forward, like I said maybe my negative home values interfere. But with it set up as is, I can straight run any code I had previously made with no z offsets. And so far the the only print I have done looks like crap, but it was hella fast and OMFG did it stick to the bed with actual proper bottom layer infill.

I'll be in the shop all evening so no play time for me, but tonight I will get back on it.

But while I am in the house, here it should be processed in a min or so
[video][video size=400 width=425 height=344 type=youtube]Ya0SPLHGKs8[/video][/video][video size=400 width=425 height=344 type=youtube]Ya0SPLHGKs8[/video]
I dont understand your negative values. How did you achieve a negative value at position 0? It stands to reason that my values are completely wrong for you if you are starting 40 in the hole.

Here is a copy of the source. The eeprom_sd_card.bin is a copy of the eeprom from my sd card. presumably you would rename it and copy it to your card. If this doesn't work, maybe you have something in R-H set up differently.? (rename the file to .rar)

As always, use at your own risk. Smile

the negative values are there cause the machine homes at a negative position from the glass. And considering the usable area is less than the glass area I could be safe to do the negatives more. But that puts parts near dead center.

It does work fine as I stated, but for the weird issues.

To get the negative values I defined home at the values I came up with after moving to a safe spot on the edge of the glass with tip spaced at .005 above platter.

I used the repetier branch he forked right before was rolled int mainstream and compiled from that.
RH does report the Z status if you log info from the printer. With a bit of patience it is possible to use auto leveling where the bed is so level there is no Z action during printing.

Here is my last calibration data:
19:06:27.831 : Info:Autoleveling disabled
19:06:34.052 : Z-probe:7.25 X:25.00 Y:6.00
19:06:45.536 : Z-probe:7.25 X:25.00 Y:215.00
19:06:56.571 : Z-probe:7.26 X:211.00 Y:215.00
19:07:00.226 : Info: 1.00000 0.00000 -0.00008 0.00000 1.00000 0.00000 0.00008 -0.00000 1.00000
19:07:00.255 : Info:Autoleveling enabled

BTW, I added the home command, move Z down 10mm, and auto calibrate to the gcode custom field - that way the printer is in a known state when the print begins. Also, the Z offset in sliced in is set to zero. Sorry, it was so late when I got it working I forgot some of the minor details.

Of course, this still doesn't explain why you can move anything after homing. I noticed another glitch where if the leveling fails it sometimes goes off on its own (send x/y/o z in motion) with no stopping; it requires a power off/on of the printer to abort the attempted movement, and yes - it will "bottom out" the axis being moved if allowed to.

Im of the opinion this is very usable at this point. IMO still an Alpha until that random crash of the axis when leveling fails gets fixed. I just dont know where to start because it is not all the time.

Hope this helps.

Yes, I did, but I may replace that again and try again with it.
Nope, nothing.
Not that it really helps but those black bars are what I saw before I actually flashed the new firmware to the board.

There are instructions on this thread to flash a pre compiled .bin to the machine. And as it sits there are 2 bins in this thread.

Also on another note, No kieth the xyz ware no longer see's the printer if you are wondering. So I think tomorrow I will do a vid of the easy way to upload the new bin with a stock printer. I should of Done that first to be honest, but I like to play.

But yeah James back too you, I would have to say the best bet is to either use kieths .bin or the one posted on the last page. And we will help out so just stick with it.
Did you checkout the 'master' branch or the 'davinci' branch. Make sure it's 'davinci'.
yes this is the correct branch correct?

It was easier to find before they merged it,

Yes I will have to update my info.

Good call bgm
If the printer is running the repetier firmware but not communicating with repetier host my first guess would be the setup of RH is not looking at the correct com port.

Successfully printed the Volkswagen "Buggy" with rolling wheels. It is definitely a better quality piece than the ones printed from XYZ.

Im noticing when the printer cools off and reheats the values for bed level sometimes shift. So, Im thinking it isnt a bad idea to have it checking every time with the automatic bed level.

Ill try BGMs fix for the LCD later tonight, getting ready for work now.

I found a rather nasty bug in the Mac Repetier host and decided to try the Windows version. Took me awhile to figure out how to make the COM port work.
First of all you need Arduino Due drivers from Arduino 1.5.6r2, and then (the non obvious part) you need to set "Reset on Connect" to "RepRapPro Duet Firmware" in the "Printer Settings" "Connection" tab. I couldn't make it connect reliably otherwise. It kinda makes sense, because the Duet Board uses the same CPU. No such problem with the Mac version. Also it's kinda strange how they inverted the +/- controls comparing to the Mac version.

The Mac Host sometimes generates invalid line numbers. You need to check the "Use Ping-Pong Communication" checkbox to fix it.
Thank you!! I actually had a problem with the opposite starting conditions.

I was having a terrible time getting the Windows version to work last night, I Googled info on "commands waiting", got all sorts of info including baudrate mismatch, Mac USB incompatibility, USB extension cords issues (which I'm using), etc.

But then I booted into OSX and it worked fine, which pointed directly at the USB drivers under Win7. I sat down this morning to rip out every package containing a USB serial driver and start over but read my email first and lo-and-behold there was your post that fixed the issue.
The command line to reprogram the board from windows is

bossac -p com19 -R -e -w -v -b 3DP01_20140310_FW_V1.1.G_RELEASE.bin

I am working up a video for simple an easy firmware update for the still stock users and could not get it to flash till I made the com correct.

Repetier doesn't calculate and store z offset when it's doing the probing. So Z axis require a manual adjustment. I've added some experimental code to do that automatically, it's working for me, still I want to run it by the Repetier guys. Also, I've got a more precise thermometer and remeasured all the temps. The extruder temperatures were way off, showing up to 40C less than the true temp, fixed, but would appreciate someone remeasuring them, just to be sure.
I enabled some advanced features in the firmware, they seem to help with the print quality, z probing is enabled as well.
To run z probing you need to:
1) thoroughly clean the contact pads on the bed, as well as the pin on the extruder; I use rubbing alcohol for the pads and the metal brush for the pin.
2) home all the axes
3) preheat to your working temps (e.g. 100C bed and 210C extruder)
4) lower the bed by 10mm or so, this should make more than enough clearance for the extruder
5) issue G32 S2, that head will move to 3 different positions and touch them momentarily. if it touches the bed for more than half a second that means you didn't clean well, the readings will be off. If the bed get's stuck and doesn't go down - turn the printer off, then on, then move the bed down using manual controls. If you don't turn the printer off first, you won't be able to control the bed.
6) done. check new "z home pos" in eeprom settings to see if it makes sense. do the paper test, adjust if needed. let me know what adjustments (if any) were necessary.


p.s. I've updated the firmware binary in the dav10 repo as well. as always USE AT YOUR OWN RISK
bgm - Can you tell us more about:

1) "Repetier doesn't calculate and store z offset when it's doing the probing. So Z axis require a manual adjustment."

With the changes I made to turn on auto bed leveling It does appear to store the results. I have intentionally made the bed out of level and then printed - and I can watch the Z adjust - and my first layer height visually looks correct.

2) regarding the extruder temps - Im printing very nicely as-is, and when it was too cold before I had huge issues getting things to stick. Im not having that problem now. In the past, extruder temp was as big of an issue as bed temp, so it seems strange the abs would print so well at 190 as it did under xyz at 230. Perhaps the XYZ temps are off as well?

3) Did you correct the eeprom settings for the zero of bed, center, and home positions? My numbers (eeprom) are as follows:
X home pos [mm] -29.000
Y home pos [mm] -15.000
Z home pos [mm] 0.000
X max length [mm] 237.000
Y max length [mm] 217.000
Max. z-probe - bed dist. [mm] 8.000
Z-probe offset x [mm] 0.000
Z-probe offset y [mm] 0.000
Z-probe X1 -4.000
Z-probe Y1 -8.000
Z-probe X2 -4.000
Z-probe Y2 202.000
Z-probe X3 182.000
Z-probe Y3 202.000
Autolevel active (1/0) 1

In Repetier I have the following settings:

Kieth[Image: settings.jpg]

Forum Jump:

Users browsing this thread: 2 Guest(s)