“Maybe because the GCode was generated in CNC mode instead of 3D printing mode?”
Certainly a point to note, but when first powering up Snapmaker it seems to be in printer mode. It may well be necessary to issue commands to have Snapmaker assume CNC and Laser modes, but I’m not privy to such information.
I have determined that Snapmaker balks when it finds an open circuit thermistor (and presumably with a short circuit one as well). Confirming CthulhuLabs’s pinout of the RJ45 (Reverse Engineering the Module Wiring), I made up an outrigger PCB with an RJ45 jack and soldered an 82K SMT resistor between pins 5 and 7. This replicates a nominal room temperature and has overcome Snapmaker’s sanity test.
At this stage I was able to fit the solder dispenser and have it dry run the sequence of visiting PCB pads.
Next was to find a way to signal the dispenser to expel paste. Well there is no fan control on the printer module (as CthulhuLabs attests) so a Fan On/Off is not possible.
But there is the heater signal - and now things get interesting. The heater in the print head connects between pin 1 (+24V) and pin 3. Pin 3 I bet, connects to an open collector or open drain semiconductor switch so that pin 3 is grounded and power flows through the heater.
Now I had a signal - then there was the gotcha. Turning on the heater would have Snapmaker eventually close down with a standard Marlin heating error. Obviously the firmware determines that the heater is faulty as the thermistor (82K resistor) reading does not change.
The good news is there is many seconds of delay before the heater error kicks in. If a dispensing cycle is over (say) a second or so, the heating error will not appear.
So, at this stage I have Snapmaker dry running a solder paste session. The first/next pad is visited, Z down to the expel position, heater on, dwell, heater off, Z up to travel position.
I’ve put a halt on further development until I receive a new controller. I want to divide the functionalty of normal 3D printing etc and what I am attempting across separate controllers.
BTW. I wasn’t aware there was/is consideration for open source.