Embiggening the TronXY X1 3D Printer!

by rmmstnr in Workshop > 3D Printing

963 Views, 3 Favorites, 0 Comments

Embiggening the TronXY X1 3D Printer!

Modded Printer 2.jpg

Hello everyone! This is a guide on modifying your TronXY X1 3D printer with bigger axes and a heated bed. It’s more as a loose guide to help someone figure out how to design and undertake their own mods, so it’s less a quick how-to and more of a general guide. Also, while I will go over how to physically attach and wire a heated bed, updating the control board firmware to actually use it will be covered elsewhere at a later time. While you can do these same things to your printer, it may be better for your particular printing needs to use this to come up with your own design and may even be useful for different but similar printers (I hear some offerings from Creality are very similar).

Altogether it cost me about $112.95, but with a little shopping around (the $50 power supply could've been had for dirt-cheap if not free with a little time and searching) and different design constraints (this was meant to support two heated beds down the line), a far cheaper end result can be achieved.

First off, many times I have heard the question: “why not just buy a fancier printer?” For me it was a couple of reasons. I already had the TronXY printer as part of a college course I was taking, so the up-front cost was not something I had to contend with. Also, if I had already purchased this as a low-cost means of seeing what 3D Printing was all about, it’d be a shame to throw it out and start anew after having mastered its base capabilities. Finally, I wanted to learn more about the finer points and details of computer-controlled machines so I can eventually build bigger, better, and more capable machines from scratch.

Now, on to the actual printer stuff.

Supplies

TronXY X1 3D Printer

2040 and 2020 V-Slot Rail

6mm by 2mm pitch timing belt

2020 and 2040 angle brackets with T-nuts with associated M3 and M5 screws

3/16" cork sheet (optional)

100% silicone sealant (optional)

Heated bed (optional)

MOSFET power switch (optional)

1/4" thick acrylic sheet

PLA for printed parts (only needed 30-40 grams or so)

12V Power supply

Envisioning Your Embiggened Printer...

20220225_193840(2).jpg

Now that that’s out of the way, I was lucky enough to score a 220 x 220mm bed for free, so that would be the basis of the build. In the future after getting a hang of the heated bed I wanted to attach a second heated bed to the first, for a total print area of 220 x 440mm, so I designed with that eventual setup in mind. Some math and a to scale drawing (as close as I could get it at least) later, I had my measurements. They would change as the build went on, but I had my start.

I decided a horizontal 2040 rail for the Y-axis rail would provide a wider, more stable stance for the larger bed, and otherwise just lengthened the other rails. Originally I decided to make a new Z-axis carriage to decrease leverage on the top wheel by moving it further up, but decided it was more work than necessary and dropped the idea. Additional angle braces would help stiffen the larger structure and minimize flex at rail joints. By placing the old 2040 rails underneath the new Y-axis rail, this would tremendously stiffen the axis and overall structure of the base.

Note: Don’t forget to print all necessary parts for your build before you disassemble your perfectly functional printer; it’ll save you some time and frustration.

Peparing the Bed

Bed Assembly.jpg
Insulated Bed (Underside).jpg

To cut out the bed plate for the larger bed, I lightly clamped the two together, then repeatedly traced the shape of the bed onto the bed plate with a box cutter until it was cut free. It would have been much much faster to use a cutoff wheel on an angle grinder, but also much much messier, and I didn't want fiberglass dust covering everything.

Note: Wear a respirator when you cut fiberglass, and long sleeves is also a plus (unless you enjoy being itchy).

To help the heated bed maintain a more even temperature, I decided to insulate the underside with cork affixed with 100% silicone sealant (the technical data sheet says it is good to 400*F). I really like the removable bed plate that came on the TronXY X1, and to keep that same flex-to-pop-off-the-completed-print convenience, I sourced a sheet of 1/16” thick ultra-high-temperature Garolite from McMaster Carr, though 1/32” would likely have been just as good and less than $7 as opposed to about $16.

Note: It is highly recommended that new, unopened silicone be used if that is the chosen adhesive. Older silicone can have trouble fully curing, which is further exacerbated by how far the silicone at the center of the bed is from the exposed edge. Even with fresh silicone, expect at least couple days until a full cure is achieved unless a very permeable insulation is used. To ensure a complete and full cure, I occasionally lightly spritzed the center of the cork with water to get a little moisture to the center.

Note: Be aware that unless you get fancy (aka: pricey) neutral cure silicone, it will get acetic acid (the acid in vinegar) on whatever it touches, so keep it off electronics. It's not the end of the world, but not electronics friendly (it also smells like vinegar, 'cause that's what's in vinegar).

Getting/Making the Pieces

2040 Tensioner 5.jpg
Cutting Acrylic (With Grinder Saw) 2.jpg
Motor Mount 2.1.jpg
M5x0.8mm Tap 2.jpg
2040 Rails 2.jpg
Forstner Bit 2.jpg
Base Plate (Underside).jpg
Baseplate Sunk Holes 2.jpg
New Bed Carriage.jpg

After searching a few suppliers, I sourced the V-slot rails, additional angle brackets and fasteners, timing belt, new acrylic for the base and bed carriage, as well as cork insulation for the heated bed from Amazon, settling on 600mm for the Y-axis rail, 400mm for the X-axis rail. I bought two 600mm 2040 rails, so the Z-axis would be whatever was leftover after cutting off the piece that would connect the lower Y-axis spacer rail and the Z-axis rail (it ended up about 480mm).

The first things I actually made were a tensioner and motor mount for the Y-axis. I couldn’t quite find what I was looking for on Thingiverse, so I fired up Microsoft 3D Builder and used a couple items from the site as a basis for my designs. For both parts, I wanted the belt to be high enough that it didn’t rub the inside or top of the rail. For whatever reason, I found no designs that took this clearance into account, and none that mounted to a horizontal 2040 V-slot rail. Using some 2040 endcaps and a very nice tensioner designed for the end of a 2020 rail, I designed and printed these:

Tensioner: https://www.thingiverse.com/thing:5352508

Motor Mount: https://www.thingiverse.com/thing:5352513

I used some angle brackets to attach the old 2040 rails to the underside of the Y-axis rail, then prepared the base so I could fasten this rail, the Z-axis rail, and the short piece connecting the two to the base using T-nuts and screws coming up through the bottom. The Z-axis rail is attached to the base plate using M5 screws going into two tapped holes in the end of the rail, exactly like how the original Z-axis rail was tapped topside for the handle mount. These holes weren’t tapped in the new rails, but luckily my tap and die set had an M5x0.8mm tap, so I tapped every one of these holes in all of the rails (these also work great for fastening angle brackets).

Cutting the acrylic for the base and bed carriage plate went quickly with a wood-cutting blade on an angle grinder, but a circular saw probably would have been the ideal option (and less smelly; the grinder spins very fast and the smell of hot plastic was pretty strong afterward). From there I laid out the holes on the bottom of the base plate, centerpunched them (lightly to avoid cracking the acrylic), pilot drilled each with a 1/8” drillbit, drilled halfway through with a 3/8” Forstner bit (perfect for a flat bottom recessed hole for an M5 buttonhead screw), then final drilled each with 3/16” drillbit.

By drilling the recess immediately after the pilot, the point of the Forstner bit stays centered in the 1/8” hole. If you drill the holes to 3/16” first, the point of the Forstner bit would wobble around in the larger hole, making it very difficult to get an accurate recess. I used 1/4'” thick acrylic for this project, and while after drilling the recessed holes I was a bit nervous about not going with a thicker sheet, there have been no issues or cracking yet, and this thing has been hauled around a lot; I feel pretty good about it at this point.

Note: Before drilling through acrylic, you can avoid tear-out or chipping of the backside of the hole by drilling with the acrylic on top of a sacrificial piece of wood or similar material.

The bed attachment/adjustment screw holes are made by placing the bed on
the carriage plate and tracing, punching, then drilling the holes already on the bed. If there is sufficient clearance between the Z-axis rail and the side of the bed, the wheel mounting holes can be centered. If not, you’ll either have to offset the carriage or make a new longer version of the rail that connects the lower Y-axis rail support and Z-axis rail. When you lay out the wheels, keep in mind where the limit switch will be if the wheel is meant to actuate it.

Things Are Starting to Come Together...

Modded Z-Axis Motor Mount.jpg
Modified Z-Axis Height.jpg

From this point, assembly is largely the same as the stock Tronxy X1, just substituting in the longer X and Z-axis rails and corresponding longer length of belt, though I would also recommend using this X-axis tensioner: https://www.thingiverse.com/thing:2870933 , it works beautifully and makes use of the stock TronXY X1 pulley parts. It also provided the basis for my Y-axis tensioner.

Another departure from normal assembly is the gloriously simple trick used to gain an easy 40mm of Z-axis travel. All you need to do is attach the Z-axis motor further up the rail than normal, and if you really want the extra few mm, file the edge of the motor mount as seen below:

By doing this you get an easy 7 1/16” (180mm) of Z-axis travel with the leadscrew level with the top of the acme nut on the Z-axis carriage. If every mm counts for you, another ¼” (~6mm) can be had by mounting the acme nut to the underside of the Z-axis carriage bracket instead of on top. If 187mm (7 3/8”) of travel is enough for you (it was for me, for the time being), then there’s no need to get a new leadscrew, saving a good $15-25, plus shipping.

Electrical Stuff (Optional, to Support the Heated Bed)

ATX Connector (Assembled, Connected) 2.jpg
Drilling Panel For Switch 6.jpg
MOSFET (Mounted) 2.1.jpg
Control Box (Inside, Electronics Connected) 2.jpg

The wiring for the heated bed was fairly straightforward once I found out how I wanted to power it. I ditched the already marginal 12V 6A power supply for an ATX power supply for a PC. I didn’t like the cheesy-looking screw-terminal supplies on Amazon, so I decided to go PC seeing as they seem to live forever (crazy 1.5kW gaming rigs notwithstanding). If you have time, you can find used ones dirt cheap, if not free (I actually used to have a power supply I got for free a ways back that would have been perfect, but tossed it long ago), but I was in a hurry and went with an unused EVGA unit. It supports more power than I’ll ever need, and as a bonus has 5V and 3.3V outputs, and supports using a switch to power the supply On/Off as well.

I couldn’t stomach hacking up an unused power supply (even if it was on sale), so I bought extension cables for the 20 pin and 4 pin connectors, then depinned and repined them to meet my needs. As an added bonus, I still have a bunch of pre-terminated wires and extra plug-ends to use later if need be. Here are some useful links if you want to look into this route:

https://www.smpspowersupply.com/connectors-pinouts.html

https://www.instructables.com/A-Makers-Guide-to-ATX-Power-Supplies/

I added a switch to the back of the control box by drilling two holes and filing to a rectangle shape, then wired it to the PS_ON# and a ground on the 20 pin plug. I went with a MOSFET device to send power to the hotbed, which is wired so the control signal comes from the heated bed out put on the control board, the power in comes from two 12V sources from the power supply, and the power out goes to the heated bed. More detailed instructions can be found here: https://www.th3dstudio.com/hc/product-information/all-other-products/th3d-high-amp-12v-24v-mosfet-v2-installation-information-and-mounts/ . I mounted the MOSFET to the inside of the back plate of the control box as the vent slots matched perfectly with the mounting holes on the board, and there was just enough room.

Another two 12V sources from the power supply provided power to the printer itself, and the heated bed temperature sensor plugged into the existing BTEMP plug on the control board. The unused terminal on the On/Off switch is for a 12V input to illuminate the switch when it is “On”, I didn’t feel the need for it (at this time).

The Software Side of Things

Screenshot (162).png
Flash firmware to 3D printer without boot loader

Now that the printer was bigger and more capable, it was time to let it in on the news. I opened the Repetier Host program, connected the printer, and then modified the axis values in the “Firmware EEPROM Configuration” under the “Config” header. My printer at first wouldn’t connect to the program, as it turned out I had to change the baud rate to 115200 in “Printer Settings” (also in the “Config” header).

After much, much searching and trial & error using other guides, I found this video which got me through the process. Kudos to Keith's Pi Tutorials! It is very thorough, and even goes over stuff that I never saw in any of the other guides, such as display settings in the Repetier Firmware Configuration Tool, and the outlined method of adding Sanguino cores to the Arduino IDE was much simpler (and for me, actually effective) than other ways I've read through. I used all of the settings I saw in the video (I paused and noted what was shown when the Repetier Firmware Configuration tool was onscreen), but will mention that the INVERT_Z_DIR (under the Mechanics section of the tool) must be enabled, otherwise the TronXY Z-axis will function backwards.

Also, for the heated bed I used, the temperature sensor settings work well, and track with my own measurements. Some of the settings used can be taken from the “Firmware EEPROM Configuration” table seen in the previous step, so you might want to screenshot that or keep it up as you go through the Configuration Tool. I was lucky enough to be able to borrow an Arduino UNO for this project, but have purchased a NANO EVERY to experiment with (if anyone wishes a future guide on how to use that for burning a bootloader or updating firmware, let me know). If you have an UNO or can borrow one like I did, the video has you covered, but for pinout diagrams of various other Arduino boards, here's Arduino's own source:

https://docs.arduino.cc/

If there are any questions, go ahead and ask in the comments! There is a much longer version of this with more detail as to the how and why of this process for those who thought this was to short and to-the-point located here:

https://www.instructables.com/Embiggening-the-Tron...

Feel free to check it out for more of the nitty-gritty bits, or if you need something to help fall asleep. Happy printing everyone!