Connection problems to RP3B over Ethernet
Hi. I normally connect to my RADDS/DUE/Repetier based printer via an RP3 which provides wired ethernet connectivity to a dedicated PC running Repetier Host. I find I need to set the TCP/IP Transfer Protocol to ASCII to get decent connectivity. The issued command to the RP3 is nohup socat TCP-LISTEN:5577,reuseaddr file :/dev/ttyACM0,raw,echo=0 &
Now, I have been trying to setup Repetier Server on the host PC as a next step. There doesnt seem to be a way to specify the ASCII transfer protocol on the Printer Settings page, and this appears to be essential to get connectivity to the Due via the RP3.
Am I missing something obvious here? If not, is there some other way to configure the connection to work the same way as when I connect directly using Repetier Host?
Thanks
Tony
Now, I have been trying to setup Repetier Server on the host PC as a next step. There doesnt seem to be a way to specify the ASCII transfer protocol on the Printer Settings page, and this appears to be essential to get connectivity to the Due via the RP3.
Am I missing something obvious here? If not, is there some other way to configure the connection to work the same way as when I connect directly using Repetier Host?
Thanks
Tony
Comments
The server defines firmware settings in /usr/local/Repetier-Server/firmwares here repetier.xml - this line
tells to use repetier protocol. You can change it to ascii to force that for repetier-firmware, but as said there are only drawbacks normally, which is why I do not understand that you need it.
This is a high-end machine which includes a Raspberry Pi host with 7" touch screen. My connection to Repetier is therefore through the RP, not directly to the Due.
I am not (yet) knowledgeable about embedded systems. Could it be the fact that communication with Repetier on the Due is through the RP3 is the reason why there is an issue with binary comms?
My objective here is to:
1. Update the Repetier firmware
2. try and get the machine running with Repetier Server
3. to install Z-probing/bed levelling.
Any help you can offer would be most useful, thanks
Tony Owens
Anyhow, to make repetier-server communicate to repetier-firmware in ascii protocol you need to go to installdir/firmware and edit repetier.xml
There is a line
Change protocol to ascii and restart server and it will connect in ascii protocol instead which if I understand you correctly is something the massportal software can handle.
Thanks.
Having thought about this a bit more, I believe I am going to:
1. Add another PI 4B+ to this machine, with a second 7" touchscrween, to host Repetier Server, the webcam, and act as a front end to the Due/RADDS board.
2. Update to the current Repetier firmware and add bed probing/autolevelling, which dont work on this machine
3. Segregate the existing RP 3B+ that runs the Massportal software bundle so that it only runs the filament driers. There are two fitted to this machine.
The effect of this should be to regain control of the machine from the maker's proprietary (and incomplete) control system with minimal effort and with minimal loss of functionality. The only negative element is that I will now have to find time to understand the operation of PI's, and the Linux environment. And that might be a blessing in disguise!
Tony
I was hoping to access the existing configuration.h file, but in my developing understanding about Arduino Due, there is no filing system to speak of, and this file would only exist in the hands of the machine developer. So I'll have to use the online configurator, in combination with the EEPROM data which I have, to build a new printer firmware.
All in a days work!
Firmware is on the due and is ok - just connect the usb port to the other pi and all is done. Then your pi controls the printer directly over isb and not tcp any more. The printer display still controlls the dryer.
The 'but' is that the Due is still running 0.92.8, while I plan to add both autolevelling and filament sensing. My thought was that release 1.00 would be better.
To provide a path back, I'm going to install a fresh Due with the upgrade and additions, and a different PI with Server on it. The existing PI can stay, and just control the dryers. I will add another 7" touch screen controller to display the Server GUI, and attach this to the machine frame with a small ergo arm.
If there are major issues, I can always swop the Due's and reconnect the old one to the new PI.
Quite a lot of work, but I want to stick with Repetier and RAMPS due to the step/direction interface for motors. Duet doesn't offer that, and it isn't a priority for them. That allows me to look at replacing the belt-drive delta sliders with ballscrews and closed-loop stepper motors later this year, which opens the door to increasing the chamber temperature beyond 80C.
Tony
Our machine is a D600, which has almost identical motion hardware and control components to an XD40. This is very helpful!
Thanks
Tony
Next, there are some bugfixes to do e.g. the chamber temperature sensing which doesn't work, and the extruder selection servo needs testing. Then, we will provision control pins and wiring for filament sensing and bed probing. I expect we will reverse-engineer a pins.h and configuration.h file, as we go through that process.
When we receive our new Due board, we will then use these .h files to upgrade to the latest firmware.
Unfortunately we cannot count on support from the manufacturer.
An update on my project:
The extruder selection servo and chamber fans work directly from the Repetier Server HMI panel with no changes. I am working my way through definition of a new configuration.h file.
One question arises:
The chamber temperature is sensed using a thermistor connected to Channel 4 of the RADDS thermister input header. Running Repetier Host, through the Massportal RP3, to the Due/RADDS, the chamber temperature is correctly polled for and displayed by an M102 command, which seems to be issued each second by the RP. Fine.
Now, when I swop out the Massportal RP3B and replace it with the Repetier Server RP4B, which is configured to expect a heated chamber, the current chamber temperature is shown as 0 C. See linked PP file with picture of the display on the Server HMI:
https://www.dropbox.com/s/vdijl18bbapxrlc/Re-engining of MassPortal D600 with Repetier Server.pptx?dl=0
Can you clarify the questions on the final slide in my PP document for me please? Thanks
Tony
The Problem with the chamber temperature is that 1.x firmware has no chamber support. Only firmware V2 has this. Server/host expect in temperature response M105 C: for chamber, but when you define it as extruder it gets returned as T1: for second extruder. One question is if you should better directly start with V2 firmware which is describe here: https://docfirmwarev2.repetier.com/ and is available in dev2 branch on our github repository. All functions and your board are already supported also I did not have tested very much with the delta, but all seems to work as expected so far and should give superior results to V1. there is a sample config for delta as well just for different board with 2 extruders.
For open door detection you need to define DOOR_PIN with the door sensor pin. It will issue a message that server understands. In server configuration you can tell what to do when it is detected. It ranges from nothing over show in interface to pause print.
When I swop over the RP4 with Server to the orignal RP3 running the Massportal front end, Host (running on a Windows box connected via hard Ethernet to the RP3) starts streaming the string "M105 S" at 1 sec intervals, followed by the response "XX.XX C" (a single temperature reading) and the suffix "Chamber temperature". I assume this is a formatted response to an M105 command issued by something running on the RP3.
OK, so I will restart building a config.h file, but based on V2 firmware. All very interesting!
Tony