comakingspace / do-something

CoMakingSpace tasks and small projects
21 stars 2 forks source link

Make the 3D printers available in the network #46

Closed NitramLegov closed 3 days ago

NitramLegov commented 6 years ago

It would be pretty nice to have our 3D-printers available through our internal network. While discussing with different people (mainly @emka and @Pakue95), the following considerations came up:

When doing some further research, it seems that the printers offer a serial connection via USB. There is even some software which already uses this interface: https://github.com/kliment/Printrun Interesting is that this software even creates a network service publishing the printer status (see section "RPC SERVER") https://github.com/kliment/Printrun/blob/master/printrun/pronsole.py In this script (starting from line 872), a basic status checker is implemented.

If we write our own software, the following page describes the available GCodes: https://github.com/prusa3d/Prusa-Firmware/wiki/Supported-G-codes for us, the following sound interesting:

For me, the following points should be discussed:

NitramLegov commented 5 years ago

I started a basic repository for this: https://github.com/comakingspace/3D_Printer_Status This is just a copy of previous projects I have been working on. It´s done entirely in python, which I would very much like to keep. Basically it starts a small webserver using web.py Since web.py is not yet released for python 3 (only a development release), we should possibly change this to another framework (django? flask?) Do we have any python enthusiast here?

NitramLegov commented 5 years ago

I just connected my computer to the printer using Putty and had the following observations:

With this I think we can start the development

NitramLegov commented 5 years ago

We discussed this further. There seems to be a general issue with opening the serial connection provided by the usb port: https://github.com/johnnyr/Mini-Rambo/issues/5#issuecomment-331730695 Therefore, the current idea is to use the testpoints available on the back of the control board. We would solder some cables to the TX/RX Test Points and connect a ESP8266 to it. The ESP would then broadcast the status of the printer via MQTT to our network (of course, there would be no possibility to actually control the printer).

Is it OK to modify the printers in such a way? @emka @LukasFreeze @Pakue95 @beanobeano Is there any reason why we should not do this?

Johannes09 commented 5 years ago

Pinout von dem Kabel das aus dem 3D Drucker 1 rauskommt Die dunkelblaue Markierung ist zwischen 5v und TX +5 TX RX GND

+5 ist auf Drucker Seite nicht angeschlossen

emka commented 5 years ago

@beanobeano is fine with testing improvements on P1. Please ask him again before modifying P2-P5.

NitramLegov commented 5 years ago

Ich habe heute mal die USB-Serial Converter aus dem E-Raum unter Windows zum laufen gebracht und wollte die nutzen, um die Drucker anzusteuern. Das ist leider genauso schief gelaufen wie der Versuch, die über einen ESP anzusprechen.

Ich habe dann auf das Board geschaut und auch die Kontroll-LEDs blinken entsprechend nicht.

Mein Vorschlag wäre daher zunächst mal zu testen, ob das ggf. besser wird, wenn wir auch 5V anschließen. @Johannes09 kannst du das mal testen?

beanobeano commented 5 years ago

The proposed solution to this issue is beyond the limits discussed in person when we met in August. To be clear - it is not acceptable to modify the 3D printers (that are on loan to our space) in the manner indicated above. There is no justification to continue with this project in this direction.

NitramLegov commented 3 years ago

In the meantime, we have received new information regarding the possibility to open serial connections to the printers without resetting the print. For details, please see https://github.com/prusa3d/Prusa-Firmware/issues/1000

Basically, we would need to send the following command to the printer once: ;C32u2_RMD

After this, the printer should not reset anymore when a serial connection gets opened and we could continue with this issue.

From a software perspective, some of us have in the meantime started working with homeassistant. Maybe somebody is motivated to implement this with ESPHome. A brief research showed that this might need a cutom implementation thoug: https://esphome.io/components/text_sensor/uart.html?highlight=uart

NitramLegov commented 3 days ago

I don´t think this is worth it anymore :)