I am looking to use a cheap wireless router as an affordable 3D printer server.
My printer has a CH340 serial chip, can the openWRT software assign an IP to this port and support patching network data through to a usb serial device in the onboard router USB port?
I mainly see these USBs being used for hard drives and 3g dongles, and any mention of ch340 seems to be used in the hardware hacking sense, not hosting.
I probably should have mentioned I have not got any openWRT devices yet and am a novice when it comes to linuxy stuff, not sure I have heard of netcat before, is it like putty?
You can boot Openwrt off flash drive on your PC, hook up the serial device/adapter, then try to connect to it using another netcat, locally or remote, using the IP.
Yes, this is possible. But I must ask, are you planning to stream G-code remotely from your computer to the 3D printer over the network? If so, this is a terrible idea. Think about what happens if the network connection cuts out for any reason. Your 3D print will very likely be ruined. You really need to put the G-code sending computer physically next to the printer, connected directly via USB.
Note that you can still connect the server to a network and control the printer remotely. The usual workflow is you upload the entire G-code file to the server, then you instruct the server to stream the G-code to the printer. Even if the network cuts out, the server can continue to run the 3D printer without interruptions.
Why does it have to be a wireless router? A 2 GB Raspberry Pi 4 Model B running OctoPrint is cheaper[1] and much better suited for this task. Don't bother with using an OpenWrt wireless router as the printer server, use it to provide the wireless network the printer server connects to instead.
Even after adding cost of the microSD card and the USB power supply! âŠī¸
I guess another thing you could do if there's linux software to drive the printer is just have anything that can run a distro capable of running x2go-server and then there's a persistent gui you can log in and out of that still runs while you're logged out