I am posting this out of general concern for my fellow makers on this forum. I am not trolling. I am not trying to scare people. I am not trying to hurt SnapMaker as a brand. Over all I love my SnapMaker and plan of using it for many years to come. I have found something though in the design of the 3D printing module that has me genuinely concerned and has led me to stop using the 3D printing module. I feel that it is in the best interest of this community to warn you about this. I emailed SnapMaker Support about this yesterday and have not heard back from them yet. I have debated all night if I should post this. If something bad happens to someone and I had not posted this I would have felt very bad. All in all I hope that I am just flat wrong about this at which point I will apologize to everyone here and remove this post.
So as some of you may know I have been doing a bit of reverse engineering on my SnapMaker. I am in the process of designing my own 3D printer controller and want to use their hardware with it. I also want to use my E3D Titan extruder with it for printing flexible materials. However while in the process of reserve engineering it I have found something that if I am correct is a fire hazard. For those not interested in the technical side of things the TL;DR is that the RJ45 jack and connector are probably not rated for the amount of current the 3D printing module draws.
So here are the details. Based off my findings the 3D printing module is wired like this:
PIN1: VCC, Heater Socket Pin 1, Fan+
PIN2: Stepper Coil A+
PIN3: Heater Socket Pin 2
PIN4: Stepper Coil A-
PIN5: Thermistor Socket Pin 1
PIN6: Stepper Coil B-
PIN7: GND, Fan-, Thermistor Socket Pin 2
PIN8: Stepper Coil B+
So PIN1 is feeding both the heater cartridge and the positive side of the fan. The other side of the fan goes right to ground on PIN7. The other side of the heater cartridge goes to PIN3. PIN3 is most likely routed to a MOSFET which then links to ground. That MOSFET is controlled with a PWM signal to regulate heater’s temperature. What this means is that all the power for the fans and the heater cartridge is being passed through PIN1.
Now the 25mm fan on the bottom of the unit draws 0.1A at 24V. The 30mm fan on the heat sink inside draws 0.08A at 24V. The heater cartridge is 40W at 24V. Current = Wattage / Voltage. So 40W / 24V = 1.66A. So if the heater is running at full power, PIN1 is handling 1.84A of current. Every RJ45 jack that I have been able to find is rated to a max current of 1.5A per pin. Now it is quite possible that SnapMaker was able to source an RJ45 connector that can handle more than that per pin. If so that is awesome. It is also possible that I have missed something or messed up my calculations. If so I am terribly sorry for worrying anyone. If I am correct though, the 3D printing module and possibly the controller needs updating.
The simplest fix would be to switch to a 30W heater cartridge. 30W / 24V = 1.25A. So with the fans it gets the total amperage below the max the connector can handle. It would not leave much of a margin though. To compensate for this lower wattage heater they will need to provide some way to insulate the heater like a silicone boot. They may also need to redesign their heat break. Theirs is a little thick and is bringing more heat up into the heatsink than is necessary. This way more of the heat from the heater will say in the heater block and allow it to get up to temperature properly.
If they go this route they should also adjust the PID_MAX variable in Marlin. This variable limits the maximum current the software will allow to flow to the heater. It defaults to full current. Please note that implementing just this is a bad idea as if the heater MOSFET fails in a dead short situation, full current will flow through the heater no matter what. Before anyone asks, I also know for a fact that this variable has not been adjusted in their code. More on that in another post.
A better fix would be to move the wiring for heater off the RJ45 jack and onto it’s own connector. It could even be run through an RJ25 connector as long as multiple pins on the connector are used to carry the current. Other connectors though are more appropriate for this like an XT30 or XT60 connector. The problem with this option is it would mean that their controller and 3D printing module would need to be redesigned deal with the extra connector.