UPDATE Forget about USB Printing!
OctoPrint is a linux package which offers wireless printing, a nice web interface and lots of other features for your 3D printer. It is even capable of slicing a model itself, using a integrated Cura Engine!
I ordered a Raspberry Pi Zero W lately to comply with the latest hype and because of the PCB size. The W stands for Wireless, so you have WiFi and Bluetooth 4.0 directly on the board.
Of course, you can use any Raspberry Pi as the Octoprint host.
Then I Installed Raspbian Jessie Lite onto the SD-Card and configured OctoPrint. FYI There is a standalone Linux distro with OctoPrint installed called OctoPi. But somehow it didn’t work for me out of the Box.
On top of that, there is a Cura plugin OctoPrintPlugin which enables you to directly print your sliced model.
The Web interface has a pretty long Page Load time because the Pi Zero isn’t beefy enough as a web server.
USB Printing with Cura 2.x
In Cura Version 15.x USB printing as well as the Pronterface UI works with this printer.
In Version 2.x the developers implemented a programmer feature to upload firmware updates through Cura. The programmer initialization does not work with the Anet and it blocks the detection of the whole device. So we will just disable the programmer.
Go to C:\Program Files\Cura 2.3\plugins\USBPrinting and open USBPrinterOutputDevice.py with a (privileged) editor.
Search for method def _connect(self) probably still in line 312 (Cura 2.3.1) and comment out the initialization of the programmer as well as the whole try-catch block
def _connect(self): Logger.log("d", "Attempting to connect to %s", self._serial_port) self.setConnectionState(ConnectionState.connecting) # programmer = stk500v2.Stk500v2() # try: # programmer.connect(self._serial_port) # Connect with the serial, if this succeeds, it's an arduino based usb device. # self._serial = programmer.leaveISP() # except ispBase.IspError as e: # Logger.log("i", "Could not establish connection on %s: %s. Device is not arduino based." %(self._serial_port,str(e))) # except Exception as e: # Logger.log("i", "Could not establish connection on %s, unknown reasons. Device is not arduino based." % self._serial_port)
Now printing should work. If not, unplug it and connect it again.