Rostock Max: HE280 accelerometer z probe & filament runout sensors
Thank you for writing and maintaining this amazing open source firmware!
I am refurbishing an older SeeMeCNC Rostock Max V2 (it was upgraded to V3 with the HE280 end effector and corresponding wiring whip). This delta end effector uses an accelerometer to detect when the nozzle has contacted the glass bed. SeeMeCNC stopped updating firmware at 0.92.2. They had inserted some crude code for detecting contact (at https://github.com/seemecnc/Firmware/tree/master/).
Basically, it uses a I2C configuration routine to configure an accelerometer (IIS2DH chip). The accelerometer chip has a physical
output pin that is triggered when a collision with the bed is sensed.
The accelerometer output line is brought back to the RAMBO as a physical
wire onto Pin 4 (PS-ON connector). Pin 4 is then set as an endstop for
the After collision, this interrupt line must be reset by resending I2C
commands to the accelerometer.
In the SeeMeCNC repetier 0.92.2 code... the accelerometer I2C communication handling was added in Communication.cpp. A function isZProbeHit was added to Printer.h to read the z probe status. Code for the z probing was inserted into Printer.cpp functions, with a handful of compiler macros to make it work with or without the sensors. This was set up as a quasi-state machine run through the z probing... I can understand why SeeMeCNC stopped updating their branch, because this would be hard to merge changes moving forward.
I will use a nice little library to add the accelerometer configuration code into the 1.0.5 branch. (based on https://github.com/trash80/HE280AccelerometerInterface). I could install a teensy to do handle the accelerometer, but I'd prefer to add the I2C reset commands into the repetier firmware (which will solve the same issue for others, and hopefully get people back on the main dev branch).
I could create gcode commands to set/reset the accelerometer, then call it as part of the Z_PROBE_START_SCRIPT and Z_PROBE_FINISHED_SCRIPT calls, but that seems quite ugly.
Where would you put the appropriate calls to the I2C commands for configuring the accelerometer before and after the Z probing is run?
Is there a location with example Configuration.h files for specific printer models? I think this could be helpful as a starting point for many users...
Thank you in advance!
Francis Esmonde-White
-----
Purely for others who might stumble on to this post while trying to upgrade their own Rostock Max V2 printers...
I have added some extra wiring to allow the rambo to directly control the layer and hot end fans. It's very annoying to have the fans turn on all the time. I'll connect the fans to Fan0 and Fan1 on the Rambo (screw teminals).
I'm adding filament runout sensors to the (two) extruders that I have installed on my machine. I'll connect them to Xmin and Ymin endstop inputs on the rambo using 0.1" pin headers. Wonderful help from Repetier on the forums here: https://forum.repetier.com/discussion/5770/filament-runout-sensor
I'm adding filament runout sensors to the (two) extruders that I have installed on my machine. I'll connect them to Xmin and Ymin endstop inputs on the rambo using 0.1" pin headers. Wonderful help from Repetier on the forums here: https://forum.repetier.com/discussion/5770/filament-runout-sensor
-----
For getting the old SeeMeCNC Repetier 0.92.2 code working on modern arduino, see this post (https://forum.repetier.com/discussion/comment/35188/#Comment_35188).
-----
I'm clearly not the only person to try adding endstop sensors to the Rostock Max...
https://forum.repetier.com/discussion/5817/filament-runout-sensor-v0-91-rambo/p1
Here's a link to a user doing bed probing with a precisionpiezo sensor...
https://forum.repetier.com/discussion/6424/z-probe-with-piezo-element-errors/p1
https://forum.repetier.com/discussion/5817/filament-runout-sensor-v0-91-rambo/p1
Here's a link to a user doing bed probing with a precisionpiezo sensor...
https://forum.repetier.com/discussion/6424/z-probe-with-piezo-element-errors/p1
Comments
in printer.h
With on you see if it gets enabled or disabled. So just add your reset code in on case and disable signal for off case you I guess you are done.
V2 would be in deed easier as it has dedicated z probe classes for different kinds and also has automatic geometry calibration. But at the moment avr boards are not supported. It is planned and I hope the 8 bit boards are fast enough for the new system which is especially for deltas much better. On the other side avr is quite slow so motion resolution will still need to be quite coarse. Even a due which is 10 times faster already allows a much higher frequency of updates and smoother moves. The nice thing with V2 is that quality will automatically increase with slower moves, so slow outer perimeter will run it with higher precision automatically.
We don't have that printer and hence no sample configs, sorry.
Thank you for your suggestions.
Photos
https://i.imgur.com/vqDKD0z.mp4
https://i.imgur.com/fXVI82c.jpg
Yes is it, is a SeeMeCNC special modification and unfortunately I cannot change firmware because it is the dual version modified by them and the only one I can use with two extruders and a single hotend, the thing to fix would be the removal of the HE280 support or the simulation of a port always connected to my Z-probe. I will try to contact them in this case but I doubt they support as they have already told me they do not provide assistance on modified hardware / software.
Regarding the G32 S2 does not produce the survey of the three points set on eeprom? X1 Y1 X2 Y2 etc. Unfortunately to me it would revire a solution like this in the video that you proposed on youtube that goes to buy the whole plate giving the correction differences, G29 doesn't need M500 to store the data on eeprom right? I'll try.
The shared heater is no problem. Current firmware has a option for shared heater with 2 extruders so this also works with stock firmware now.
EDIT: The motors are correct, the only problem is that when I start the machine with the request for pause and the end stops that do not work, the state of end stop with M119 is:
x_max: H, y_max: H, z_max: H, z-probe work well
Do you have a sd card inserted with a file init.g that runs on startup? Or a startup gcode set?
Edit: I try to check the resistance of the Bed, the fan of the power supply works, in short, I have to check what the problem is. I plugged in an old rambo and it won't turn on anyway.
Regarding #define ENDSTOP_Z_BACK_ON_HOME 20 I correct it immediately as soon as I connect the printer.
EDIT
My doubt is if for the bed the PDM_FOR_EXTRUDER is wrong, the pin I have always used is the last in the row, the digital Pin 3, and when I turned on the first time it did not go because the voltage did not pass, when I moved to the extruder pin 1 the Rambo, the digital pin 7.
In this link it confirms in all PWM pins, I suspect for this of my mistake but why then hotend was heating up?
https://reprap.org/wiki/Rambo_development
I confirm in the older firmware PDM_FOR_EXTRUDER is 0.
EDIT
Ok good news, fixed the towers again and even the tower z remains at the same height as the other two, great! Unfortunately now I have to get behind to understand how to fix the issue of the fan pins, they have always been those and I do not understand why they do not go, surely I will have selected a wrong box. I'll check
On the old firmware #define EXT0_EXTRUDER_COOLER_PIN is set to 7 and if I'm not mistaken it should be wrong because the pin I use for the fan is 6, in fact even on start configuration string the coolerPin is set to 6, I don't understand.
EDIT
On the LCD, under FAN2 the hotend fan works, yet on configuration.h the pins are very different, I'm going crazy!
In the firmware modified by SeeMeCNC the command for the hotend peek fan was M42 P6 S255, but correctly as it always had to be the right command is M106 P6. Same thing as the P8 with the difference that it does not turn and heats up! I assume a defect of the fan that until yesterday was going. I will understand!
Thanks Repetier for the support! AMAZING FIRMWARE I LOVE IT
Slicers normally just write
M106 S<vlaue>
which takes fan 0. So with taht configured now slicers will work much better with the firmware.
The coordinates are as follows:
I with G32 use these coordinates with method 1:
X1 90 Y1 90
X2 -90 Y2 90
X3 90 Y3 -90
What could it be?
When any of these points is outside allowed area it will stop and you need to shrink the area.
#define DISTORTION CORRECTION R from 100 to 90
and now it doesn't crash anymore. Should I also run S2 after G32 and G33?
https://imgur.com/Wbpntgi
Your values show clearly that your printer is not properly calibrated. First calibrate the delta geometry parameter to be precise. Your diagonal or horizontal offset is way wrong. Google "escher delta wizard" and use the 6 parameter variant to update the geometry. Run G33 R0 first to remove distortion correction. Once you have the escher values set in eeprom run G32 S2 and G33 and you will see that the Z corrections are much smaller.
Apart from this it looks good.
EDIT
It's ok, accelleration/print reset.