Tag Archives: My Project

Steps toward getting a BLTouch Bed Level Sensor on my CR-10…

I’ve had my Creality CR-10 for quite some time, and fairly early on I decided that I needed a bed leveling sensor. It wasn’t just because it was difficult to level the bed. The bed itself isn’t anywhere close to flat. Since the printer doesn’t know that, you have all sorts of problems with adhesion. To be honest, I’m not 100% certain I understand what math the bed leveling sensor does (it’s been on my list to understand). Let’s say that the bed has a 0.1mm crown in the center. Does this make the printer lay down a first layer which is 0.1mm thinner in the center? Or does it distort the print so that the first layer actually follows that contour and maintain a constant layer height?

I don’t know, but for now I don’t care. I just wanted it to work better when laying down the first layer to make sure that it stuck.

So I ordered the easiest bed level sensor solution I could find: the EZABL from TH3D. It’s not super cheap, but it’s convenient and didn’t require any soldering. They also have a version of the Marlin firmware available (the TH3D Unified Firmware) for download which is simple to configure for a wide variety of printers and directly supports their hardware.

And it works… okay.

About 9 times out of 10 I’ll get a good first layer. But every once in a while, the calibration will be twitchy, and something bad will happen. I think that ultimately it boils down to lack of repeatability. The sensor is a non-contact capacitive sensor and it appears to me (without scientific testing, and no slander intended) that the repeatability of probing (especially if I haven’t let the sensor heat up for quite a while) is pretty low. I’ll probably investigate that further, but in the mean time I thought it might be worthwhile to consider using a different type of sensor entirely: namely, a BLTouch, which uses a contact sensor. This has the advantage that whether I print on the aluminum bed, on tape, or on mirror tile I usually do, it will sense the actual surface that I’m printing on. That seems good to me, and the BLTouch has been pretty well regarded.

So I ordered one. Not super cheap either. You can get cheap clones on AliExpress, but I didn’t feel like waiting. With Prime I received mine yesterday.

The Bullseye duct…

So, I started thinking about installing it. I knew that I’d need a different mounting to put it on my printer. I had been using the PetsFang duct with the EZABL, so I thought about printing another one, but I noticed that they had updated a new design called the “Bullseye” which seemed to fix a few mechanical issues that I didn’t especially like with the original. It was also a modular design that enabled me to print holders for either the EZABL or the BLTouch, so that seemed like a good thing. I downloaded the parts and it took about six or seven hours to print all the parts.

Now, onto firmware and wiring…

And here’s where this project turned into a bit more of a headache than I would like. In a previous posting, I complained that the MELZI motherboard in the CR-10 used an ATmega1280 which has just 128K of flash. As it happens, the firmware that they’ve jammed into the CR-10 is really close to the limit. Thus, when you add new features to the firmware, you are often playing a game of “what features do I enable or disable to get it to fit.” This game is annoying. When I was using the TH3D Unified Firmware, they had done a lot of the work already, but the BLTouch is not (or badly) supported by recent versions of their firmware. The stock Marlin is a bit of a rats nest though, and while it does use platformio to compile (which I love), getting the configuration options set up properly is not a lot of fun.

But it gets worse…

The BLTouch sensor has basically five pins which need to be wired to it, and the MELZI motherboard doesn’t direct support for it. The usual solution is to hijack the pin that provides the buzzer sound (pin 27) and hijack it to control the BLTouch. This requires a bit of wire snipping and soldering, or you could use a board which looks like this:

Pin 27 adapter board…

It’s a dumb little board whose purpose is to inject itself between the the connector for the display and the motherboard, and then breaks out the right pin to the side where you can easily attach the BLTouch. It’s got no active components on it at all: just a 10 pin IDC socket, with 10 header pins on the bottom and three 90 degree header pins on the side.

And they sell for a ridiculous amount of money (one seller on Amazon charges $20 for this little adapter board.) Absolutely insane. I’m pondering spending an afternoon to dust off my meager KiCad skills, draw up a quick PCB board, and have a bunch made by JLC PCB, as well as making the Gerber files made available so you can make your own. Stay tuned for that.

And I’ve found it difficult to find instructions that compile a reasonable version of Marlin for such a configuration. If I get time this weekend, I’ll try to work my way through it and document it so that any humble reader who stumbles across this can make one for himself.

Okay, that’s it for 3D printing this weekend. Have fun melting plastic.

Pondering the 18650 Li-Ion Battery…

Back in October, I attended Pacificon, the local ham radio convention. While I was there I picked up a couple of wacky things that were super cheap on the vendor’s tables, and among them was a super inexpensive battery charger along with an 18650 3.7V Li-Ion battery.

If you’re like me, you are probably used to the common AA and AAA type batteries for most of your portable electronic needs. If you seek rechargeable batteries, these are often the NiMh or nickel metal hydride type. Typical ratings for such batteries is 1.2V and 2400 mAh, or about 2.88 watt hours of power per AA cell.

Recently though, lithium ion batteries in the 18650 format (18mm diameter, 65mm long) have become available and popular. They are a bit better than a AA (which are 14mm in diameter and 50mm long) but are pretty lightweight, and common types have a voltage of about 3.7V and capacity of maybe 2600 mAh for a total power of about 9.6 watt hours, or a little more than three times the power of a good high capacity AA.

Anyway, decided they might be interesting to play with, and the price was (suspiciously) cheap at the show, so I thought I’d give them a go. The combination was an “Ultrafire BRC18650”, along with a super cheap looking charger with the product identifier of “HZM888MA”. It’s hard to overstate how uninspiring the charger actually is. I admit that I buy a fair amount of dodgy Chinese electronics, but this seemed dodgier than most, and because of the energy density and the rumors of batteries bursting into flames has me paying rather more attention to it

My recollection is that when I bought the charger I did test it by charging up the battery and that it did its usual “red while charging, turn green when done” with its indicator LED. But when I found the charger and battery in my storage case, I decided to try it again. Now, my dodgy charger just blinks the red LED, which in the international language of devices should indicate that something bad has happened. Nothing appears to have caught fire though, the battery doesn’t get hot, so I am not sure what is going on. I decided to get a higher quality Tenergy model to test it, and the same thing happens: blinking red LED.

I have decided that ordering a higher quality charger is probably a good idea, especially one that can handle different battery types, so when that arrives I’ll give them both a try.

In the meantime I looked up the UltraFire BRC 18650, and found this article on YouTube, showing that their rated capacities are nowhere near realistic, and they often have less than one third of the total listed on the packaging.

I guess you get what you pay for.

Anyway, these might find their way into an IOT device that I’m working on, and it will be interesting to see how they perform. I may also tinker together a constant current load to test their capacity myself.

In the mean time, buyer beware.

My Computer Controlled Etch a Sketch…

I’ve been wanting to make a computer-controlled mechanical gadget for quite some time. When I finally got a 3D printer a little more than a year ago, I began to think of how I might make a device that could direct a pen under computer control. I even took the time to order a CNC shield which could be used to drive the four channels needed for a 3D printer, but I never really got too far on that project. The NEMA-17 steppers that I ordered have largely sat in a box.

Until a couple of days ago. I wanted to do something, but maybe wasn’t quite ready to embark upon a project as complex as a 3D printer or CNC milling machine conversion. If the cost was low enough, it wouldn’t matter if the thing I built was particularly great: I would learn enough by doing the project to make it worthwhile, and I would gain confidence that perhaps would make me enthused enough to try a bigger project.

Hence, the computer-controlled Etch A Sketch project was born.

I’m of course far from the first to do such a thing. I didn’t let that particularly bother me. I sometimes refer to my hobbies as “timidly going where others have gone before,” and this is no exception. I knew that I wanted to use two of the steppers I had on hand, and probably use the CNC shield that I had. A quick order to Amazon Prime had a nice shiny new Etch A Sketch delivered to my house, and I went to Thingiverse to see what kinds of brackets and adapters people had used on their project. I settled on this set of parts and set my newly repaired and functional Creality CR-10 to printing the new parts.

There were a couple of issues. The original page didn’t have STL files for all the parts, you had to refer to older projects to get the STL files for the larger gears. When I printed one, I found that the center hole was significantly loose. Luckily, the author had uploaded the OpenSCAD file for generating the gear. Reading through the code, I found that the shaft hole was set to a diameter of 5.25mm, whereas a quick check with calipers revealed that mine were more like 4.5mm. I went ahead and printed a new one and tested it. It was a very tight press fit, which was just what I wanted. Huzzah!

The two mounting brackets are curved to fit the front panel and are to be attached with hot glue. I was dubious about this, but a reasonably large amount of glue was spread and the brackets pushed into place. It seems to work rather well, and it looks like they will hold just fine. I then pushed the two gears onto each side. There was a little bit of vertical misalignment: the large gear on one side was originally pushed quite deep, and didn’t mesh well with the smaller gear when it was in place. I used a flat bladed screwdriver to pull it back away from the body until it lines up pretty well. As yet, I don’t have any code to drive the motors, but turning the shaft by hand seems reasonably easy and the amount of backlash or slop is, well, probably not a big deal.

My intention was to drive the two steppers with a system like GRBL, which is a G-code interpreter that is used to drive CNC machines using an Arduino and some stepper drivers (provided by the CNC shield that I mentioned above). But as of this moment, I seem to be having some difficulty configuring the software. I may actually instead just write some simple code to test the stepper motors (perhaps by driving the steppers to draw a square on the Etch-A-Sketch) before I try to anything more complicated. It really wouldn’t be hard to drive the steppers using a simple set of drawing commands: all I’d need to do is dust of the Bresenham’s algorithm that I learned back in my early teens, and I’d be good to go. Next step is to read up on the wiring for the CNC shield wiring, and get the 12V supply running to the steppers to power the gadget. It might also be good to 3D print a stand to hold the Etch A Sketch in a more upright position. Hopefully, by the next time I post about this, I’ll have some video of it doing something nice.

Stay tuned.