Duet Wifi setup - need help
-
Hey Tim,
Here it is…; Configuration file for Duet WiFi (MP Select Mini)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool on Tue Sep 27 2016 08:50:26 GMT-1000 (Hawaiian Standard Time); General preferences
M111 S0 ; Debugging off
G21 ; Work in millimetres
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves
M555 P2 ; Set firmware compatibility to look like Marlin
M208 X0 Y0 Z0 S1 ; Set axis minima
M208 X120 Y120 Z120 S0 ; Set axis maxima;Wifi Networking (may not need this section)
;M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address
;M552 S1 ; Enable WiFi; Endstops
M574 X1 Y1 Z0 S0 ; Define active low and unused microswitches
M558 P1 X0 Y0 Z1 H5 F120 T1200 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
G31 P500 X0 Y0 Z2.5 ; Set Z probe trigger value, offset and trigger height; Drives
M569 P0 S1 ; Drive 0 goes forwards S1=forwards S0=reversed
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes forwards
M569 P3 S0 ; Drive 3 goes forwards
M350 X16 X16 X16 X16 I0 ; Configure microstepping without interpolation
M92 X93 Y93 Z1097.5 E406 ; Set steps per mm
M566 X900 Y900 Z12 E120 ; Set maximum instantaneous speed changes (mm/min)
M203 X1500 Y1500 Z180 E1200 ; Set maximum speeds (mm/min)
M201 X800 Y800 Z20 E1000 ; Set accelerations (mm/s^2)
M906 X800 Y800 Z600 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Heaters
M143 S260 ; Set maximum heater temperature to 260C
M570 S150 ; Set maximum heating time to 150s
M305 P0 T100000 B3950 C0.0000000000000000 R4700 L0 H0 ; Set thermistor + ADC parameters for heater 0
M305 P1 T100000 B3950 C0.0000000000000000 R4700 L0 H0 ; Set thermistor + ADC parameters for heater 1; Tools
M563 P0 D0 H1 ; Define tool 0
G10 P0 X0 Y0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C; Network
M550 PMP Select Mini ; Set machine name
M552 P0.0.0.0 S1 ; Enable network and acquire dynamic address via DHCP; Fans
M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on; Custom settings are not configured
-
I just noticed this line in my config.g:
M350 X16 X16 X16 X16 I0 ; Configure microstepping without interpolationShouldn't it be M350 X16 Y16 Z16 E16?
Would I want with or without interpolation?BTW, this config.g is from the configurator. I was reading about it in another thread and it seems this happened to someone else.
-
From the Wiki:
"The 5V circuit can be supplied from USB (for example, with no actual PSU attached; recommended for initial setup), an external 5V supply (for example, the +5VSB rail on an ATX power supply), or it can be powered from the 12/24V supply through an internal switching power supply. Jumpers must be set up appropriately. Specifically, the board can always safely be powered by USB, but if the INT 5V EN jumper is set, the internal switching-mode power supply will feed the 5V circuit from the 12/24V circuit; if instead the EXT 5V EN jumper is set, the board will be powered from the 5V in pin."
The bold text is where I got confused. It sounds like, as you said, you can always safely connect the USB cable. That makes sense as there could be numerous instances where you'd want to do that. Reading it again, and hearing your advice, makes me feel comfortable connecting the USB with 12v power applied to the board.
Thanks! -
The I0 or I1 is to turn off or on interpolation. Turning it on should result in smoother/quieter printing. It shouldn't cause any problems. I use it on "I1".
You need a T0 at the very end of that config.g file. Perhaps that got cut off when you were editing?
-
The only thing I changed is the 1 after the S…changed it to 0. Then the extruder motor would no longer turn (it would turn before, just going the wrong way). I even changed the 0 back to a 1 and the motor still doesn't turn. Very strange as the config.g is exactly like it was before when the motor was working.
-
T0? Ah…I see that on the config.g file that came default on the SD card...it's not on the config.g file that the configurator spit out. Let me try adding it...
-
Okay, tried it with the T0 at the end and discovered something…it gave me an error message saying you can't extrude because the hotend wasn't up to temperature! Ah, this thing is far smarter than me! I did try turning on the heater to make sure it worked and that must have been when the motor would turn. So the error message that says no tool selected is because the Heater 1 thing somehow gets set to standby...that's what the message means...make the Heater 1 active.
I removed the T0 and it seems to still work the same. What does the T0 mean?
-
Great! I think it's mostly functional now! Next up is the IR sensor…
-
T0 sets the active tool (extruder) as tool/extruder 0.
-
Thanks, Tim. I put the T0 command back in. Got the IR sensor hooked up and functioning. Just need to do the final adjustment/calibration process.
How can I use the original Z-axis limit switch as well as the IR sensor? Reason being, if I home the machine, the IR sensor will be off the edge of the bed. Some mechanical modifications I made to the machine cause this, namely the addition of an E3D V6 extruder and glass plate over the stock aluminum heated bed. So, for bed leveling, I can move the test spots to a good location, away from the edges, but then still need the Z-axis limit switch so I don't crash.
-
In yor homez.g and homeall.g files, before the G30 command to home Z, use a G1 command to move the head to the centre of the bed. Or you can use your microswitch for Z homing if you prefer. See https://duet3d.com/wiki/Configuring_RepRapFirmware_for_a_Cartesian_printer#Homing_files.
-
What does this mean?
G28 X
Triangle interpolation: point outside all triangles!I get this message when homing any axis. I've been messing around with the bed.g file and and auto bed compensation and it seems to have started shortly after this.
-
I think that can be ignored.
-
Thanks, Tim. Well, I have things working. Not sure if it's correct, but it's working.
When I do a Home All, the X and Y will move to the limit switches, then the Z home portion will move to a position where the IR sensor is over the bed (it hangs over the edge at X0,Y0). Home Z will show 3.5 for the head position. If I send G0 Z0, the nozzle will just contact the bed.
I have adjusted the bed.g file to probe around the 4 corners and the center of the bed. It's a tiny machine and the IR sensor has a fair amount of offset from the nozzle (>20mm), but I set it as best I could. Doing an auto bed level works and it displays values. Sometimes the values change a bit if I do another bed level.
Anyway, I have a question. Once I've done a bed level, do the values get stored somewhere? Will powering everything down then require another bed level? I'm confused on how often it needs to be done.
I just tried to print via USB from Simplify3D. It's working, but something seems weird…like the printer is confused on who to listen to, the web interface or S3D. I'll try to figure out how to print from the web interface.
-
I'm glad you got it working. A few points:
-
You can declare X and Y offsets from the nozzle to the probe in the G31 command in config.g. These offsets get subtracted from the coordinates in the G30 commands in bed.g. So you can declare the actual coordinates you want probed in bed.g.
-
If using S3D to print directly over USB, make sure you have S3D configured to use hardware flow control. The printer will continue to response to requests from the web interface and PanelDue - this is intentional. However, we recommend that you save the toolpaths to disk, upload the file via the web interface, and print it from SD card instead.
-
Most people run G32 after powering the machine on, and preferably heating to operating temperature too, so there is no need to store the calibration values. Any permanent bed levelling errors you have are best eliminated by adjusting the 3 bed height screws that most printers have. But you can store the bed calibration manually if you want. After running G32, run M122 and extract the Z height from the "bed equation fits points…" values. Then construct a sequence of the same G30 commands as in bed.g but instead of using Z-99999 use the Z heights from M122. You can put that sequence near the end of config.g.
-
-
Good morning and thank you! I will attempt to digest all your information. Just to clarify, running G32 will allow the printer to compensate for an unlevel bed until it is powered down? My bed is manually leveled quite accurately but after removing a print or other handling, it seems to get skewed just enough to cause the next print to have first layer issues. My plan is to run the bed level process after any print where I could have moved the bed in some way.
I have been reading up on the heater controls at the link you sent earlier. I'm currently using the default bang-bang control and it seems to do a nice job with stable temperatures reported. Is there any reason why I shouldn't just leave it as is?
On the web interface, for heater control, the max temperature selection available for the nozzle is 240, I believe. I have no real need for anything higher than this but am wondering why there are no higher selections available?
And last question for now…I had really wanted to get a PanelDue setup but figured I should at least get the board working and controlling the printer. While this was a big learning experience for me, it's done and I'm slowly coming to terms with all the settings, concepts, terminology and such. Based on my many questions and all, do you think setting up an LCD will be possible for me? I started reading the link you sent and that's a LOT of information!
Thanks once again, Scot
-
On the web interface, you can type in any temperature you want. There is a default maximum temperature (262C AFAIR) but you can increase it with a command in config.g (M143 AFAIR).
PanelDue is very easy to get going, especially if you buy it with ready-made cables - "it just works". (OK, I am biased because I designed and manufacture it, but it's true).
-
If bang-bang is working fine, you don't need to change it.
You can change the max temp with M143 S###. You can add more temp selections via Settings/List Items tab.
The PanelDue is practically plug & play and you may already have it set up in the config.g, it uses the line:
M575 P1 B57600 S1 ; Set auxiliary serial port baud rate and require checksum (for PanelDue) -
Hi Scot,
I'll jump in here to try and save DC some time (although he is far more knowledgeable than I).
If your bed is a bit "flexible", it's generally best practice to run the bed compensation whenever you first start the printer up, just in case something got knocked while it was turned off. Thereafter, whenever you do anything which might cause it to twist or deform in some way. It's also best practice to do it heated (if you normally run the bed heated) as thermal expansion can have an effect on how level it is.
DCs latest firmware has some safety features to try and catch something like a heater cartridge falling out. I believe these features rely on having a heating model in order to detect any change which is outside of expected behaviour. So, although "bang bang" might be working just fine, the control system may not be able to detect heating events which are outside of normal operating parameters so it might be safer to tune the heaters and use PID control. (I think I got that right but no doubt DC will correct me if I'm wrong).
On the web interface, there are a selection of "default" temperatures that you can choose from and which appear in the drop down boxes for both active and standby temperatures. if you go into "Settings" and then click the tab "List Items" you'll see a table of these default heater temperatures. You can delete any of these and / or add new ones. The upper limits are 300 deg C for the hot end heater(s) and 180 deg C for the bed/chamber heater. So if you try and input a higher value, it won't let you.
HTH
Ian
Edit. DC and StephenRC posted while I was typing so I didn't save anyone any time.
-
I don't think the bed compensation is working…no idea why. This is my start script in Simplify3D:
G28 ; home all axes
G32 ; auto bed level compensation
;G28 ; home all axes
G1 Z0.2 F1200 ; raise nozzle
G92 E0 ; reset extrusion distance
G1 X20 Y5 ; (move nozzle to front edge of glass)
G1 X100 Y5 E12 F600 ; purge nozzle (changed Y0 to Y5 to keep purging on glass)