What. How did you accomplish this. I’m not even mad I just want to know. For science.
What. How did you accomplish this. I’m not even mad I just want to know. For science.
It’s been way too long since I’ve updated anything here. I’m definitely burned out like one of those terrifying light bulbs and my work environment is really absolute blowage like a poorly balanced 5015 blower hanging off a 3d printer carriage and making the print look absolutely raunchy as its vibration slightly shifts the base of a bridge in the print as the GCode rolls off an M106 S255 to increase airflow. Not that I’d know anything about that. (I wonder if ebm papst makes 5015 size blowers? Their dynamic balancing is TOP NOTCH.) Yeah uh. In the last few weeks we upgraded the brains of our stupid robot camera pedestals and now they’re…. somehow less reliable. Cool.
Meanwhile I experienced a really dumb thing: after one of our new members of the engineering team was telling me about the features of his Prusa 3d printers, I realized I have a couple that were sidelined ages ago due to failures I didn’t really understand how to fix, and… Oops now I have too many working machines
Fun fact: the big delta had been previously, incorrectly assembled by a Tesla engineer and had never successfully printed anything. It works now!
Everyone in the room understood me when I said “oops I accidentally printed a Triscuit”. This is the result of accidentally using a stock ender 3 profile in PrusaSlicer on one of the two direct drive machines up on top here with an all metal hotend, that setup really doesn’t like the 5mm retraction distance! 1mm works fine.
The Ender 3 is running Klipper now. This one has a Creality 1.1.3 mainboard which I should just replace – it’s fairly awful. The CPU on it doesn’t have enough storage for Marlin to use its latest and greatest bed mesh leveling tricks (the UBL features). That being said it’s also kinda short on pins….. but it isn’t! Note this unused EXT-A2 header in the middle with the capacitor stuffed in it. It goes to pin PA2 / 29 on the CPU. Marlin calls it 29, Klipper calls it PA2. Creality famously never provided schematics for this board so I stabbed it with a Fluke till I found it. I soldered on a header and put the cap back as well.
On a side note be very very careful if you buy a Creality branded Bltouch. Their ribbon cable has the wire colors completely wrong. Go by pin number, DO NOT TRUST THE COLORS. The only reason this atrocious board didn’t blow up from having its +5v rail shorted to ground by the Bltouch cable when I went by color code was that it is simply such a stubborn abomination with its loud ass A4988 stepper drivers that sound like a running toilet that it simply refused to be cleansed from the earth by a mere short circuit. Well that and think it essentially just has a LM7805 on there somewhere.
There’s also this post on Simon’s Tech Blog detailing some more intricate hacking of this board by repurposing an SD card IO line, though not the low hanging fruit there on pin PA2. I’ll be honest, it was kinda me seeking an *easy* place to land the BLTouch control wire that led me to look here.
I mean it about the running toilet noises. It’s kinda obnoxious. I remember my Monoprice mini delta printer* making these sounds too and…. ugh.
* probably a lost cause and it’s been thrown in my bin of crap to trade to a fellow tinkerer for something I actually want. On a side note I started looking at my old Monoprice Select Mini V2 last night and realized maybe I can revive that thing too.. But why? Or why not? Uhhh.
Anyway, now for an assortment of fine balderdash.
“hey, it’s warm in here, I wonder why?”
Thankfully this all just hosed off. This condenser is less than a month old.
Not pictured, sadly: the surprise indoor waterfall that occurred when an air vent valve on the chilled water air handler in one room at work blew up following a chiller failure. Squirt, squirt. 💦💦💦
* If you’re just here for kitty silliness, scroll down.
No one in particular: “Desktop 3d printing will revolutionize everything! We will have limitless access to rapid prototyping and production of vital parts where and when needed and the resulting advances in technology will be amazing!”
Absolutely no one in particular: “But people will print untraceable weapons and… terror!!! aaaahh!”
Me: “heehee it’s a tiny Waffle House.”
So I made a bit of a silly mistake. I saw that Micro Swiss had this sexy new NG extruder for the Creality CR-10 and Ender 3, and I’d just bought this Geeetech A10M which had a COMPLETELY AWFUL extruder and hotend that had an incurable case of plasti-slobber that more or less made it incapable of skipping and resuming extrusion — retraction doesn’t even stop it AT ALL. I figured, hey, this would fit on the Geeetech too, right?
….the answer is, kind of, if you replace a LOT OF CRAP 😀
I do not recommend this if you’re not dedicated and/or kinda in need of a severe distraction from the trials and tribulations of the outside world like I am. Start with an Ender 3 instead if you want to get up and running on this sexy extruder system quickly. (As of when I wrote this the extruder is out of stock – I hope it’ll be back soon, because it’s SO NICE.)
So, what I found it needed:
* New belt. The belt comes up like 1/2 inch short.
* New heater. Not only is the stock heater a weird size, but… it SUCKS!!! The stock heater is only 30 watts. I don’t understand why they did this but it explains why I was never able to get the thing to heat above 215C without timing out and Marlin screaming “Heeeeyyyy, I’m halting now and just wanted to let you know I might be on fire over here” at me. I replaced it with a 60 watt 24 volt heater which works just fine (don’t forget to PID tune again!)
* New fan. The shroud that comes with the Micro Swiss NG is sized for the 40mm fan on an Ender 3, but more importantly, the (20? 30?) mm sleeve bearing fans that come on the Geeetech are terrible. 😀
Amazingly, the print cooling fan which is a 4010 blower can stay – that is identical to what comes on the Ender 3 so it transfers over.
I spliced the wires on the fans to use the original JST plugs because they’re weird and I wanted to keep the neat little carriage board.
* Lots of random Metric screws!!
The original Geeetech mixing extruder is a hot sloppy soup sandwich of failure and it just had to go. This is what it looked like as I was disassembling it. Also, the “3dTouch” probe is a wobbly shaky mess with poor repeatability and has been replaced with a real BLTouch. Only buy the 3dTouch if you really really like having to mess with the Babystep Z function EVERY DAMN TIME you want to print something. Argh!
…also the default config for Marlin 2 on this mainboard does not enable babystep! WHY? Enable this!!! HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH—-
And now……. the new, beautiful little extruder…..
First off, I found it necessary to add washers and different length screws to secure the rollers to the carriage. The washers were needed because I guess the wheels Geeetech uses are thinner than the Ender’s wheels and the carriage scraped the rail.
The spacing of the mounting holes in the carriage board on the Geeetech are the same as the mounting holes in the stepper. I mounted it around the top of the stepper with a couple of longer screws and spacers. Please note the pinout of the probe – this is documented exactly nowhere by Geeetech aside from a very poorly made video. The pinout from left to right (facing the heater plug) is brown, red, orange, black, white. Also note that the heater wire fell out, it was not tightened correctly at the factory and I’m sure that helped that 30 watt heater warm up even faster! Uh, no.
So, the Micro Swiss is kinda cool but boy, can it ever develop extruder pressure – if you have the first layer too high, it will buckle *violently*, catch on the nozzle, and result in the print getting yeeted right off the bed!!! So, if you get lumps, bumps, buckling, waves, etc, STEP UP! I’m used to the behavior of cheaper Bowden extruders where the extruder doesn’t have reduction gears and will just skip steps when the pressure gets high, combined with the spring action of the filament in the Bowden tube – you can get away with having the first layer too tight and it will mostly print accompanied by thumping noises. This one will not let you get away with it, the print will get yeeted! 😀
Anyway, that’s dialed in and it’s printing a tiny Waffle House. Good times.
Now, as for that feline silliness: This is Gingy being all like “HOW ABSOLUTE DARE” over having to share her dish with a wild turkey. The turkey would be absolutely fine with sharing, but Gingy doesn’t trust him.
A while back I bought a semi assembled Anycubic Kossel Linear Plus 3d printer from a Tesla engineer down in the bay area. He was selling it pretty cheap because it had just become a project he couldn’t finish while working 80 hour weeks (WTF, Tesla?!). I completed the build but could just never really get reliable prints from the thing – I’d often have issues with what looked like one of the stepper drivers losing a lot of steps and the effector drifting off to the side.
The stock configuration came with the “Trigorilla” motherboard which is a perfectly fine atmega based board, but doesn’t have support directly for TMC2209 stepper drivers from Trinamic. One of the things that bugged me about the hardware on this printer was that the screws for the endstop switches just barely rubbed on the belts, and, uh, no thanks. The endstops also basically took up about half an inch of possible travel – that could be more build area.
I ran into what was either a bug with Marlin or an issue with the SKR V1.4 Turbo board wherein the three tower motors (some people still call them X, Y, Z, but I’ve also seen Alpha, Beta, Gamma, which makes more sense) would run just fine but the extruder motor wouldn’t turn. The most I could get would be the motor being enabled which caused it to get a hold current, but then it just wouldn’t move. I kinda have in to cargo cult ways and just changed that driver to an A4988 from the old setup. A4988’s still a perfectly fine driver with microstepping, it just isn’t as quiet and doesn’t have the missed step detection, which didn’t matter to me for the extruder which doesn’t have to be an absolute position sort of system.
Now what to do with all this horror pasta?! As soon as I get it up and printing I’m gonna make a little box for the controller.
The bracket it’s on is reused from the stock setup which had the controller right under the heated bed! I didn’t like that. I think that was inherited from the early Anycubic Kossel delta printers which originally came out without the heated bed – that came out as a later option. Mine has the glass bed which I put the build plate sticker on (…why?) – I’ll probably strip that off later as I’m a believer in the magic of the glue stick. All hail the glue stick.
I can’t figure out if it’s actually possible to do Marlin’s delta calibration without a leveling probe. I tried using the delta calibration menus and just didn’t get anywhere. A probe is on order and I’m going to get some spiral wrap or split loom and Velcro for all that… aaaargh!
The Printrbot Simple Metal was a really cool design. It’s a Cartesian 3d printer built like a brick house by Printrbot out of Lincoln, California, who went out of business facing powerful competition from a lot of low-cost Chinese printers but recently decided to get going again. One of my coworkers had one that had an old version of Marlin on it (1.0.0?!) and I wanted to update it to improve on some features and add support for a heat bed.
It was available with or without a heated bed, and even if you didn’t have one, it can still be added easily using a stick on heater mat/thermistor like this. The connectors are present on the Printrboard controller for it. One cool thing about the Printrboard: it has two big beefy mosfets onboard, and the DC in connector just mates straight to a standard ATX12V connector on a PC power supply. All you’d need to do to power the Printrbot is go to the ATX motherboard connector on the supply and jumper the small green wire to one of the black grounds to make it auto start. On Rev. D boards, this was a 4 pin; on Rev. F, it’s 6 pin.
There is a solder jumperable pad, supplied OPEN, for USBPWR 5V. This will allow the board to power up from the USB host it’s plugged into. Don’t jumper this unless you have a very good reason to for your configuration. An onboard switching regulator will supply +5V to the components onboard once +12V is input to the ATX12V connector.
This is based on the RevF board, as that just happens to be what landed on my bench. Printers using the RevD are not uncommon too, apparently.
Steppers: The board supplies four Allegro A4982 stepper drivers, an improved version of the A4988. These do not have a heatsink on them like a lot of newer boards do, but I haven’t seen them get hot either. It certainly won’t hurt to add some stick-on sinks if you want. The datasheet suggests that the lion’s share of the chip’s thermal dissipation goes out the bottom though. The driver type in Marlin should be left on A4988 as the I/O behavior is identical.
Microstepping IS supported on this board – you will find a small solderable jumper pad next to each driver. If you solder bridge that entire pad, you will get 1/8 microstepping. On this particular printer, all four are un-jumpered and microstepping is not used. On a printer that was NOT built like a brick house, this would lead to it having a very loud sound about it. On the Simple Metal… it just sounds smooth and sweet. Don’t forget to change your steps per unit if you bridge the microstep pads! The VRef voltage that sets the stepper motor current comes off a DAC, making the motor current adjustable in software. I haven’t experimented with this yet or found any reason to move it off defaults – the motors and drivers stay cool and I am not experiencing any skipped steps, even when making the printer SCREAM at 150mm/sec! (it will DO IT with the stock hotend and not skip any steps, but you will lose detail. Dang.)
Updating Firmware: Before updating, if you’re doing this on an already functional machine, get your EEPROM settings with M503 and copy them into a text file. Otherwise you’ll wind up with defaults that may or may not be correct.
The CPU and serial interface: Another cool thing about the Printrboard: Unlike many ATMega based 3d printer controllers that came out at that time, the ATMega AT90USB1286 has native USB support. This will prove to be a double edged sword but won’t stop you from having fun with this board, read on. A Marlin build bug may show up when you’re trying to build as a result of this unique platform target. This is currently fixed in the nightly “bugfix” branch, so start from that if you are compiling Marlin yourself.
There is a “BOOT” jumper next to the chip. If you jump this and press the reset button, the chip will come up in DFU mode. It comes stock with a bootloader from Atmel that supports their FLIP utility for programming under Windows. (Todo: figure out what tools would be needed for this on other platforms.)
Dealing with Windows Being A Stupid Doodiehead As Usual: To program this chip, download Atmel FLIP and install it. On Windows 10 64-bit, get the version with the JRE included (as documented here). Tip the Printrbot over on its side and place a jumper cap on the BOOT pins, then press the reset button. You should see Windows detect the AT90USB in DFU mode— however, it may not properly install the driver. Open FLIP and click the USB cable icon in the toolbar, then choose USB connection. If you receive a message about a missing DLL, close FLIP again, and go into Device Manager. Right click the DFU device that’s showing up with a warning icon and choose Update Driver, then manually choose the location. The driver will have been dropped in C:\Program Files(x86)\Atmel\Flip [version]\usb. It should install ok, then Flip is ready to use.
To flash a file with Flip, go to File > Load Hex File. Click the USB plug icon and select USB connection. It should identify the AT90USB1286 if the chip’s already up in DFU mode. By default the options on the left will all be checked except Blank Check. That works fine… make sure it’s set to write out the Flash space and not the EEPROM space (the button in the top center toggles this), then click start at the lower left. It’ll take about 15 seconds to complete. IN THEORY, you should be able to reset out and run the newly programmed application in the chip with the button at lower right, but that doesn’t work for me – probably because the BOOT jumper is still set and it just loops back into DFU. Pull the jumper and press reset, and Windows should detect the
I have provided two compiled versions here at the end, one for printers with a heated bed and one for those without. The version for printers without a heatbed bed will work fine on those that do, you just won’t be able to heat the bed. The other way around, I suspect, would make it refuse to work with a MINTEMP error being thrown.
Building Marlin: I used PlatformIO and the Build Marlin addon tool. You can also use the Arduino IDE after installing Teensyduino. (Board type will be Teensyduino++ 2.0!). My configuration files are at the end of this post; my changes were mostly to invert the inductive probe output behavior (which MAY have been different for Rev. D boards!) and to add bilinear bed leveling with a 16 point probe. I tried using the new Unified Bed Leveling architecture but it caused the code size to exceed available memory. Bilinear is working fine on the machine here, so I’m just using it 🙂
Yes, you can buy that funky UBIS hotend and parts for it. The distance between the nozzle and probe center-to-center is 25MM, I’ve checked this and included it in the configuration file.
I have a sneaky suspicion that the example configurations for Marlin 2.0 just haven’t been touched since shortly before/after(?) Printrbot blinked out of existence and the example was only built and tested for the Rev. D Printrboard. A bit of searching around online suggests that the big change between D and F was the addition of a buffer transistor for the input from the inductive probe, which was prone to damage on Rev. D. If you have Rev. D, the stock config should be fine, but I think the buffer basically inverts the input. The way to tell will be to try homing the printer with G28. If the Z axis rises, pauses, then rises again, but never comes back down, use M119 to test the endstop input states. If the Z axis is not at the bottom and the LED on the proximity sensor is out, it should not say TRIGGERED for the Z endstop. Place a metal object under the probe so its light comes on and check again, it should say TRIGGERED. If you get the opposite behavior, you will need to toggle that state. The relevant lines are #define Z_MAX_ENDSTOP_INVERTING and #define Z_MIN_PROBE_ENDSTOP_INVERTING. These must match or it will toss an error on compilation.
Verification and Final Settings: Once you have the firmware loaded and running, open your terminal of choice. You can use Pronterface, the G-Code terminal in Octoprint, RepetierHost, whatever works.
Send M115 to get the firmware version.
If you previously had an older version of Marlin installed, send M502 then M500 to load the defaults from the firmware to the EEPROM space and save them. If this printer had an LCD (it CAN be added!) it would prompt you to do this from the front panel on first boot.
PID autotune: I usually start the fan first with M106 S255. This may not be necessary but I find it helps on some platforms.
Start the tuning routine with M303 S215 C8 U1
(8 cycles to 215 degrees C, and the U1 flag will save the values to RAM)
M500 to save the results to EEPROM for later use
Bed leveling: If you have a heatbed, heat it first to a normal use temperature (say, 50C for PLA) and let it stabilize a minute before continuing. The hotend temp won’t matter for now as it’s not going to affect the inductive probe.
(this will auto home all three axes)
(a magical dance will begin)
If you already have a working Z probe offset value from your old settings, enter it now
M851 Z-0.7 this will vary by your printer and build surface
Once G29 is done, it will output a small table of the measurement values. Save the results with M500. Re-home with G28
Test the Z height by heating the hotend to a normal use temperature, placing a sheet of paper on the bed and sending G0 Z0. It should kinda just grab it. If you need to adjust it, check these instructions.
If your extruder is stock, well…. for the FIRST TIME EVER… and that is to say I have literally NEVER seen any other Chinese printer I’ve worked with factory calibrated correctly…. YOUR E-STEPS ARE PROBABLY CORRECT!!! See, this was why you paid extra for a Printrbot. Thing’s hardcore. If you want to verify/calibrate, go here. Otherwise it should Just Work.
If you have Rev. D and these binaries don’t let the printer home right, let me know – I don’t have that version to test on and I’m curious about that probe behavior…
Gingy would like to remind you every time is the right time for petting your feline assistants.
The cool looking radar is sadly no longer in use. Anyway, as for the title, we’d been having issues with the big transmitter here for months and it just wouldn’t run on all three cabinets. Its intermediate power amp had been giving issues on one cabinet and our other engineers had been over the manual and talking with tech support for months, it just wouldn’t make wattage.
Finally the solution was to not trust the manual. It said the arbitrary “IPA Gain” number was supposed to be between 100 and 450. It was set on 100 and that led to only 9 watts drive to the IOT tube — 150 was needed. The solution in the end was … set the gain to about 520 or so. Amusingly, it only raised up from 9 watts once I went past 420.
420 blaze it
One of the other engineers had this Printrbot Simple Metal that he hadn’t gotten working so I took it back to play with it through the boring Thanksgiving morning shift. Despite it being a SOLID chonker, the carriage plate was bent up causing the hotend to hang at a weird angle, and some screws were loose or incorrect, so I fixed that and got it extruding. The only thing I wasn’t able to do which bugs me was to get a bootloader onto the Printrboard in there and load it with a newer version of Marlin supporting mesh bed leveling. This one is old and appears to take no parameters to G29 – it probes only three points. Weird. I couldn’t get Atmel’s FLIP utility to work and had issues with building Marlin for that particular cpu — it seems like you either have to use the toolchain for the Teensyduino++ or use PlatformIO, neither of which wanted to cooperate. Thus, it remains on old firmware.
Don’t be upsetti, print some spaghetti
It’s…. pretty well acceptable that the sock falling off was the cause of this silliness. It’s so ridiculous I can’t even be mad.
Behold, my poor hacked on Ender-3. I had bought a clone of the Micro Swiss hotend (I believe off Amazon) so I could print PETG and other high temp materials without PFTE tubing damage issues. I’d also had issues back then with getting the PTFE tubing to seal against the nozzle so I figured this setup would be great!
Unfortunately, I bought… the lowest caliber of dumpshit.
In what I thought was just desperately throwing parts at my printing issues, which led to “missing layer” kind of faults everywhere, I bought this titanium heat break from TH3D. It works with all the other stock hotend parts, which I’d saved in a box of bits. Turns out that’s exactly what I needed… So here’s what I replaced.
I’m not actually sure what kind of metal this was made of to be honest or if it was even advertised as titanium, stainless, —???
All I can say though is I suspect it’s way too thermally conductive. I had to print hotter than I expected on this machine and the PID tuning values were WILDLY different after changing the heat break. Previously, with the same filament, this temp tower was just starting to print acceptably at the lowest floor which is 230C; now the lower floor is string city, which makes a lot more sense for PLA. Oh, and no missed layers either.
There it is. The FORBIDDEN OBJECT.
….I can’t coax it off the plate.
Derparoni and cheese.
I’ve been at odds for over a week with a small plastic object that apparently has, encoded in its folds, some devilish conflict with the laws of physics and sacred geometry of the universe
It’s not even that tricky, it’sjust a little box for an r/c receiver, but so far I’ve tried it on two different printers and every time it just curls into a ball of fail.
First layer on blue tape… OK! Looking good, this one’s gonna be perfect aaand
Ok fine let’s try with the bed hotter, looking good so far, hey wait STEPPER DRIVER ERROR JET PIPE OVERHEAT DUMPING CORE
What the deuce? Now the skirt lifts and I get all sorts of unhappy noises from the extruder??
It was about at this point that I grabbed the top of the effector and shook it very gently and it rocked about like a pendulum. I looked and saw that all three linear guides on the towers were not moving, so I grabbed my hex keys and started going around to all the bolts. I found a couple loose by about a whole turn. Now there’s a peculiar offset so I ran the DELTA_CALIBRATE again…
Will I ever get the FORBIDDEN CURSED OBJECT to print? Stay tuned for either a post of blissful success or me giving up and printing it ass over teakettle on breakaway supports.