CTC A13 Printer

What is the problem?
This is certainly a problem with my printer, not OctoPrint. I think my printer is missing some functionality.

However, I'd be very grateful for any advice with this - has anyone managed to get a CTC A13 printer working with OctoPrint? If this isn't appropriate for your forum, my apologies, please delete me :slight_smile:

I've successfully set up OctoPi on a Raspberry Pi B v1. It's slow, but the webcam bit is working and it attempts to connect to my printer. It figures out the port, baud rate, and asks the printer for some information. I can see the printer replying with lots of configuration data.

Then, OctoPrint sends an M105 command, which I believe is requesting temperature data. This command always times out.

What did you already try to solve it?
Increased comms timeout, no change.

Connected to the printer from a Win10 PC using Powershell, opening the comms port directly. This also behaved in exactly the same manner as OctoPrint - everything worked until the M105 command. This is why I think it's a problem with the printer and not OctoPrint.

Logs (octoprint.log, serial.log or output on terminal tab at a minimum, browser error console if UI issue ... no logs, no support!)

Connecting to: /dev/ttyUSB0
Changing monitoring state from "Detecting serial port" to "Opening serial port"
Connected to: Serial<id=0xb00400d0, open=True>(port='/dev/ttyUSB0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
Starting baud rate detection...
Changing monitoring state from "Opening serial port" to "Detecting baudrate"
Trying baudrate: 115200
Send: N0 M110 N0*125
Recv: Test my message
Recv: echo: External Reset
Recv: 1.0.0
Recv: echo:(none, default config)
Recv: Dec 27 2018
Recv: echo:10075echo:Hardcoded Default Settings Loaded
Recv: echo:Steps per unit:
Recv: echo:  M92 X80.00 Y80.00 Z400.00 E93.00echo:Maximum feedrates (mm/s):
Recv: echo:  M203 X500.00 Y500.00 Z5.00 E25.00echo:Maximum Acceleration (mm/s2):
Recv: echo:  M201 X500 Y500 Z100 E5000echo:Acceleration: S=acceleration, T=retract acceleration
Recv: echo:  M204 S500.00 T500.00echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)
Recv: echo:  M205 S0.00 T0.00 B20000 X20.00 Z0.40 E5.00echo:Home offset (mm):
Recv: echo:  M206 X0.00 Y0.00 Z0.00echo:PID settings:
Recv: echo:   M301 P21.73 I1.54 D76.55echo:SD card ok
Recv: ok
Changing monitoring state from "Detecting baudrate" to "Operational"
Send: N0 M110 N0*125
Recv: ok
Send: N1 M115*39
Recv: FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:CTC 3D EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000
Recv: ok
Send: M20
Recv: Begin file list
Recv: End file list
Recv: ok
Send: M105
Communication timeout while idle, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Send: M105

at this point, OctoPrint reports that the connection has failed

Additional information about your setup (OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible)
OctoPi version 0.17.0
CTC A13 printer, firmware:Marlin V1; Sprinter/grbl mashup for gen6 (that's what the printer claims during the connnection attempt)
Firefox and Chrome used.
Also tried direct serial connection from Win10PC, same result.

I can't help you with the M105 problem but I got an idea what you can do about your firmware.

It seems to me like your printer is an Ender 3 clone so it shouldn't be too much work to flash a clean and up to date marlin. :slight_smile:
If you're able to find out which mainboard is installed (open the case) I can tell you more

Edit: lol they even got the same picture - just without Ender branding

1 Like

Hi there! That's very kind, thank you. I'll open it up later after work and post the board type in here.

Yeah, it's such a knock off it's funny. It was advertised on eBay as an Ender 3 Pro as well. I really should have kicked up a fuss, but it does work quite well, and it was Β£103 delivered.

It's kinda cute how they removed all the branding but forgot the little line in the display that says "Creality" ^^

1 Like

Do you realize that it's Photoshop'd? They just digitally-removed the earlier logos rather than building/photographing their own clone.

Yeah sure - I mean look how they removed the qr code :smiley:

This reminds me of the Fish License (Monty Python sketch).

LOL, the actual printer doesn't even look like that!

Here's the board diagram from the manual:

Do we trust that to be accurate? I don't think so! I'll go strip it down now and get some pictures of the actual board.

I dunno, but it looks a whole lot like this.

Does look like it's accurate:

Couldn't make out the writing on the microprocessor itself, but I'd bet it's the same as on the Creality board...

Had another look with a strong light and a magnifying glass. The microcontroller has the following markings:


So, it looks like a copy of of a Creality Ender 3.

Welcome to 8-bit. Search the forum for advice on tweaking the firmware to increase the receive buffer size.

Hey :slight_smile:
Sry for the late response - I was pretty busy today.
Yeah it looks like a Creality Melzi board - which is great because we can just use the Ender 3 Marlin example configuration.
I'll try to write you a little guide tomorrow :slight_smile:

That's very kind, thank you.

I've now acquired a Raspberry Pi 3, and OctoPrint is much faster. Guess the old Pi 1 isn't really up to much any more.

1 Like

Yeah a pi 3 is a much better choice :slight_smile:

Quick question - do you own an arduino?
I don't know if you board got a bootloader so we should flash one.
It would also work with a raspberry if you don't have an arduino.
What we need for the bootloader part are 6 dupont wires.
The board got male pins but depending of which device you use on the other end we got either male or female connectors.


I've got a box full of Wemos D1s, and an Arduino Teensy, but if they're no good I don't mind buying one. I like collecting these things! If you can suggest something suitable that isn't massively expensive I'll just order one.

I have the Arduino SDK installed already, and I'm a programmer so don't hold back on that side of things.

I can make up any wires, male or female connectors no problem.

Many thanks for the help!

Great that makes things easier :smiley:

For the arduino part - lots of devices would work. I would go with an UNO R3 clone.
I'm not sure if you can use those other devices for the bootloader flashing part - if you want try it :slight_smile:
As I said you could also use a Raspberry - but it's a bit more work.
I found a pretty good raspberry guide

If you want to go with an UNO this guide will help you

It also shows you the basics of compiling your own firmware.
The guide is a bit older and uses Marlin 1.1.x. Not too long ago Marlin 2 was released and you might want to try it.

Here the Marlin firmware git

and the example configs that should work with your printer

If you want to change your firmware again in the future (like because of updates or because you want to change something in the config) I recommend you use vscode with platform.io.
It makes life easier.
Here a quick vscode -platform.io - Marlin crash course :slight_smile:

I'm still on 1.1.9 but I got my new board already flashed with Marlin 2.0.4 and will join the Marlin 2 team soon :wink:

If you get stuck at some point let me know :slight_smile:

1 Like

That's brilliant, thanks! Not sure when I'll get time to do this, but I'll update this thread when I've done it.

I'll give it a go with the old Pi 1, at least it'll have some use then :slight_smile:

It works! I now have Marlin flashed onto my printer.

I'm getting an ERR: EEPROM Version at the bottom of the screen... but everything works, it prints, and Octoprint can drive it now.

Off to try to fix this EEPROM version thing