The eagle-eyed among you may have noticed something odd on the last post's header image: a wire that I hadn't labelled, on the +5V and GND pins of the mainboard's DC supply, as well as a distinct lack of cables going to the display connectors. That's for a number of reasons, one of them being my incompetence, but I'd rather blame BTT's weird lack of documentation.
Honestly, this part and the last one kind of happened all at once, but I felt that separating the two would make all of this a bit easier to read.
So, the original plan was to have the SKR Mini do all the thinking, and because I doubted that it was compatible with the LCD-2004 module that came with the printer, I also got a nicer display module from BigTreeTech, called the TFT35. I expected these to work out of the box, because that's how they've been portrayed in various promotional materials. That did not appear to be so.
When the TFT35 boots up, it looks for a pre-existing file with a mesh representation of the printer bed, and if there isn't one, the display just plain says that auto-bed levelling doesn't work. Not why, or what to do, just a "it don't work". Considering that you need an after-market board to use the display, and the board doesn't come with a dummy mesh file, this led me to a number of misunderstandings. On top of that, I'd installed the wrong firmware on my board. I also didn't manage to build the RIGHT firmware for my board, because there's a stark difference in chips between versions 3.0.1 and 3.0.0, to the point that one can't work at all with the other. Also the screen will complain about the wrong kind of RAM even IF you use the right firmware.
So I figured BTT had abandoned Marlin, and was focused squarely on Klipper. In short, Klipper separates the job of being a 3D printer into two processors: a child and a parent processor. The parent processor makes up the user interface, keeps tabs on what exactly all the hardware is, processes the 3d print G-code file, and checks for errors in all these things; the child processor connects to the steppers and provides info on what all the sensors are saying. I'm not too fond of Klipper, mostly because it's completely aimed at Raspberry Pis, which don't exist outside of scalper stores anymore, and at scalper prices you could pick up a laptop or a business terminal at a thrift store - but Klipper is real shitty at working on those. There's also just the fact that the Klipper community sucks. Like morally sucks. Like "have engaged in active harassment campaigns" sucks. But I'm also not made of money, and a cheaper, less fast Pi alternative looked like my only way to actually get this printer back to working order.
Turns out that BTT does sell one of those pi alternatives: Their Raspberry Pi CM4 adapter, and CB1 compute module. It's MUCH cheaper than the real Pi 4, and it's also not quite as powerful so it won't get gobbled up by scalpers. I went this route because RepRapFirmware would require me to take a trip to eBay or AliExpress, as well as redo the whole job of making mounting standoffs. Putting 4 of them in for the Pi-alike, and having that just being off to the side would be easier, not to mention faster since a local place sells the thing. Anyway, after an entire month of back and forth with BTT customer service, and my finally actually putting my eye almost up against the processor on the mainboard and seeing the number printed on there, I got Klipper/Mainsail installed.
Ish.
To start with, I used BTT's provided OS image off their Github, got the not-a-pi running Mainsail and logged in. That's the easy part. The Geeetech A10 Pro isn't quite shaped like an Ender 3 though. It's got different dimensions, a different hotend and so on. Before compiling Klipper, I managed to find a Klipper printer.cfg file configured for the A10, and snagged that, did a compile, put the results on a micro SD card, then shoved that in the . I then had the startling realisation that I'd accidentally kept around the pinout configurations from that file instead of using the correct SKR Mini E3 pinouts. The poor thing was complaining about a missing thermistor when it was looking at one of the stepper driver pins. Anyway, once I had all that corrected, I put the new and improved Klipper onto the SKR Mini, rebooted and then the whole package ran.
As for the hardware side, that pi thing needs power. You CAN connect it by USB-C, but that cable has to be USB-A on the other side pretty much, because there's no resistor to identify it as 5V-in. You have two other options:
- Get a buck regulator for cheap and set it to 5V, then dupont that to the DC in pins.
Hope your mainboard has a 5V output for something more than LEDs, and use that. Luckily, the SKR Mini E3 V3 has that.Turns out that no, that's not going to work. The CB1 isn't quite a Pi 4 but it still demands 12 watts, and that's more than the SKR Mini can provide. I'll be addressing the buck regulator in a future post.
I got that mounted in much the same way as the SKR Mini, but that 5V cable doesn't transfer data. All the data has to go through USB, and I kinda didn't account for that cable. I wound up having to get out the sheet metal snips and expand the prior SD card and USB-B holes. And my set of files. It was at this point that I regretted not getting files for jobs bigger than a watch. I would have gotten out the rotary tool but it was snowing or raining and I didn't wanna put on 5 different items of safety equipment just for a hole that might look just as bad as the one for the SKR Mini.
Anyway, the BLTouch is wired up, the X and Y sensorless homing jumpers are where they are, but there's a few lines needed in printer.cfg to activate it. After that it's a question of trial and error, making sure the motor can overstep the initial jerk to get the axis moving, but won't keep on grinding forever when it bumps against the end of track. You get a range of values from 0-255, you just play over-under and go for whichever half you need to be in. I landed on values of about 80
Aaaaaand that's it. Well okay, taking the time to do PID tuning couldn't hurt. It's just a question of putting in "PID_CALIBRATE HEATER=extruder TARGET=210", waiting for it to do its thing, and then putting in "SAVE_CONFIG", then do the same thing with "PID_CALIBRATE HEATER=heater_bed TARGET=60".
The print head homes, the heaters heat up like they should and it all happens at MUCH less noise than it used to. The stepper current is also digitally controlled, and set much more accurately than I could ever manage on those potentiometers on the old A4998 drivers. You'd think that up next is to just calibrate the BLTouch, level the bed and get to printing, but just because the electronics work, that doesn't mean there isn't still some actual physical problems at play here. Up next, I'm hoping to make this printer a lot less clog-prone.
