Why is the TMC2209 Pen/Laser Controller - by Bart Dring recommended

I just don’t get it. The design, the quality of the stl files, and the step by step instruction for assembly are excellent. Even the hardware kit seemed like this was top notch. Then when it comes to the controller it feels like they are playing an April fools joke and I am the fool.

I have compiled 3d printer firmware. I have modified, added components, rewired, and build octopi. I may have spent a few hours looking up tutorials but was alway able to find the info.

V1 recommends and obsolete card. When I asked here before I started, several people here recommended the new board from Bart. I have spent days trying to find information on how to get this working until I get frustrated and put it to the side only to come back and have the same thing happen again. In my searching I have found several other people having the same problems but none of them ever post they found a solution. This is a card very few people have used, it uses a new language that few people use so I have found it impossible to find information on putting this all together.

There are 2 power wires, 4 wires on each motor and 3 on each sensor. The design of the printed parts had to of taken 10’s if not a 100 hours. If this is the recommend controller why can’t someone take 2 minutes and post a picture or 15 minutes a draw a wiring diagram so first thing you can make sure the wiring is correct. Second, from all the reading FluidNC you only need to load a config file for your machine. This only needs a x and y size. It should be easy. Instead Barts video goes through setting up every setting linking to separate wiki pages but doesn’t show how to simply update this so you don’t get alarms and you can get it to work.

So I have spent another 7 hours reading how simple this is and feel I am worse now than before. I looked at the build page and see the people with successful builds, this is not the card of choice so why keep recommending it?

Sorry for the rant, just frustrated and disappointed.

I use one of the Bart Dring boards. That one lives at a very much nontechnical household. I donr even think they have created/downloaded their own Sandify patterns, they just use the ones I loaded onto it as samples.

Now I loaded that before FluidNC was its own thing, so its running the older.firmware, but it wasn’t much of a problem.

I also have another one of those boards running (as it happens) a laser. I never did implement homing switches on the laser, so it runs without them, but it’s dead accurate with the laser. Caveat, it also has some really weird issues if I let.lightburn try to control it directly.

However, for the ZenXY that lives in my house, it has a RAMPS stack and a v1pi that lives there. This is mostly because I built this as a beta of the new design before i had any of these boards, and I never switched it over because the boards were getting hard to find.

I will say that the Bart Dring board makes for much quieter notors than the RAMPS stack with DRV8825 drivers. Its also much smaller and the built in wifi is very appealing. It made for a cheaper and smaller package wiring with a simpler PSU, which is why I went on to recommend it. I found it to be a very straightforward experience to set this up with GRBL-ESP32 with the custom homing and coreXY files that Ryan had done for it. Once set up, it was a breeze to teach someone nontechnical.to use the wifi interface to start an installed file. This is someone who couldn’t quite manage Sandify, so I thought that was quite a victory.

I am sorry to hear your experience wasn’t good. This certainly can be done with Marlin, and anything that can run Marlin, or it.can be done with a CNCshield and GRBL, or just about anything that can.manage CoreXY motion kinematics. If you’re having trouble, I would suggest that Marlin would be an ideal fallback. To get Wifi connectivity is a little more difficult that way, though maybe an ESP01S board could do it (I might try that).

I guess that the sample size of people who have worked with the Bart Dring board is still small, and I don’t know where my working firmware for it is. I should look for it.


When the Dring board was available I bought one, but it looks like I’m not likely to build the ZenXY. Contact me if you would like to buy the board from me.


1 Like

Or the next version seems to be currently available

Sorry you feel that way. The zenxy is not as mature as the mpcnc or low rider. There isn’t an option for a tiny board in the shop so there isn’t the same push to get it tested and finished.

FWIW, I have the previous board and I use grbl_esp32 (not fliudnc). It seems to me like a great fit (quiet, builtin wifi, relatively cheap, small). The one I have is rock solid and has been fine for all this time.

But I don’t have the new board and I haven’t tried configuring fluidnc for corexy (I have for the mpcnc). So I can imagine it being different.

I can’t spend 10 mins and create a good configuration. I don’t have the board, so I can’t check that it is working.

The zenxy is still a DIY project, including the electronics. If you wanted to try a different board, I am sure people would appreciate it.


I was considering going with an Arduino with 2209 drivers and a Pi. The Bart board is list on the build page. Then I had post here on this forum and the most common recommendation was to use the Bart board. So I got the new board from Bart. As clear and concise as the build guild was I would had never though it would be this hard to find information.

Because this is not a mass produced board and it is using a new language it has been frustratingly difficult to find what seams like a simple answer. I have to have over 30 hours in to trying to figure out what I believe should be quick and simple if I can ever find the information to connect the dot. It is a combination of information overload without a complete understanding. I feel as if I could program an eight tool cnc but just don’t understand where to put the file once done. It as if the information I can find is full detail of how to do the most complicated processes but is leaving out the basics and as being new to this I need the basic common knowledge that I don’t have.

The board you link to is the one I have.

Thanks for the offer. I have the new Bart board. It is getting the config file load in the right place I believe is the issue.

IIRC, It is case sensitive. So Config.yaml is not the same as config.yaml.

I remember that being a little annoying too. But I don’t remember exactly why. I thought there should be more feedback about why it didn’t load.

1 Like

EDIT: I was writing this before your post above and didn’t see it until after I posted this. I will go through that link . Maybe it will answer what I have missed. Thanks

I have read where a sand table was seen at a show and it was asked about interest in building one, I believe you were the fourth person to comment and if not the biggest one of the biggest contributors. When I was considering this project and posted I believe you had recommended the Bart boards partly due to them having a built in esp32. I may be mistaken, I have read tons of post and may have it confused with another post. That this was a good card to use but I would have to put in the work. I don’t mind putting in the work but it would be nice if the tools were available. I have a small YouTube channel that I had never thought anyone would watch that just went over 25,000 hours of view time. I had considered doing a build series on a sand table but wanted to build one first just to see how well it worked. Had I went with the arduino this would have been finished months ago. Now I have so much time invested I would like to see it finished even if I never use it.

The wiring seems simple but it would be nice to have a diagram to confirm. If I ever get this working to confirm I have it right I have no problem drawing one up and submitting it. The only wires I am not sure about are the sensors. Once I get the machine running if they are not correct it should be easy to figure out. The sensors have 3 wires VCC, GND, and SIG. I connected sensor GND to board Gnd R15, sensor SIG to board X-limit(gpio.39:low)C14, and sensor VCC to board Digital Output (5v)#1.

I am able to log into the card and get the controls. I would not get any movement as it would go into an alarm state. I seen someone else was having the same issue. I tried updating the firmware with the file linked from the Zenxy page here through the web interface. All the guides seem to want to show how to change tools or control cooling I am missing the basic first steps. From what I understand the whole concept behind creating FluidNC was the the firmware did not have to be updated that you just put your machine parameters into a yaml file. I can see a yami file on the Bart board and downloaded it. Does this have to be changed using Fluidterm? Can it be loaded off the SD. These are the basics that that are skipped over or mixed in with other information and I do not realize it. I have spent hours reading or watching were they it is easy, all you have to do is… without showing how. It is like teaching someone how to create formulas in a spread sheet but don’t tell them it is on a special system that you have to right click instead of left clicking to open. It just feels like I can find steps 2-400 but can"t find step 1.

I ran into this as well… if fluidnc experiences an error on loading it’s config file it loads a “virtual” machine instead which appears to work but doesn’t actually do anything.

If you hook it up via usb and run their terminal app you should see the load errors displayed there.

Personally I really like the board I got from Bart especially the built in wifi as raspberry pi’s aren’t available right now but the learning curve is steeper and the community to support it smaller.

W.r.t the alarm state, if you have homing enabled, then grbl requires you to home before you move it. I believe you can send a reset to clear the alarm and move it without homing.

I would recommend removing the homing sequence and the homing switches from the config first. Just to make sure the mechanics are working. I still haven’t wired in my homing switches (oops). I just manually move the machine to the 0,0 corner, start it up, and sometimes I have to hit the zero x and zero y buttons, but it draws just fine. After you have it working as well as mine, you can spend “extra cycles” getting the homing switches recognized and running.

I’m sorry you feel like so much time has been dumped into this part of the project. You’re clearly very smart and have the relative experience and motivation. No one is questioning that.

Often in the diy projects, we can’t write the docs for everyone because people know different things. Stuff falls through the cracks.

You can post specific problems here and you will mostly either get good advice (like the comments about the alarm state) or get people trying to problem solve with you. Bart’s discord is also pretty good. Although I prefer the forum format, there are regulars there (including Bart himself) that could immediately help you understand the alarm state, which config file is loading, and how to wire the endstops. They would also be getting feedback that some basic docs are missing and they have the power to add them to the fluidnc docs.

We also have the power to add docs to the zenxy pages. And if we had a good wiring diagram and a known good config.yaml, we could add those (they would be very helpful). But you do have to remember there are maybe a few dozen users of the zxy. So it is less work to actually answer questions than create documentation. It is also hard for me to write docs when I don’t have that board (so I can’t confirm the docs are right). The docs are a community project (but Ryan/V1 is the main contributor). So you can also submit changes and make them part of the docs. We have more than a dozen contributors so far.

1 Like

I have run into similar problems with another board and firmware. I have an skr 1.4 turbo and compiled grb-hal for it. It was in a permanent alarm state.
It turns out i didn’t wired yet the homing switches and that made the alarm pop out. I could invert the homing switches in the firmware and the motors started moving!

Look if the firmware expects a high or a low signal when the homing switches are triggered and check the ones you have work the same way. :wink:

Now that we have a new board that seems to be available, it would be worth the time to spend the valuable time on the instructions.

While working on that project the boards became nonexistent so there was no reason to do anymore work for a board that would no longer be available.

I am sorry it was so frustrating for you, please, come here for help sooner. Before the super frustration sets in. We can and will help. From my end it was very frustrating to finish a such an attention getting project and find I had no obvious controller choices.


Right there with you guys, it’s been a large source of frustration for the past two weeks… currently working on a config file for his 2130 board. Once I get it working properly I’m happy to share/document.

1 Like

Got it working! Very glad I started on the motion control before building the table itself, that would’ve been frustrating.


I’m sure that is going to help some people. I changed the topic title to make it clear it was for the zenxy.

1 Like

I went through the EXACT SAME FRUSTRATIONS!!!
But I now have a working sand table that I took to Burning Man last month, and am now tweaking to work even better.
I’m using one of Bart’s newer boards. GRBL is a big learning curve, but the hardest part of all of this is getting a working config file. I have one and I’ve seen a couple more on the forums in the past month or two.
Bart’s boards are recommended because they are cheap, work well, and have a built-in wifi connection and WebUI. Those were major selling points for how I’m using mine.


Is the newer FluidNC board recommended or would it be advisable to not get it? I am a newb to the ZenXY and the programming will/may be my downfall. (I have not started a ZenXY build, nor have I started to accumulate parts for it.) I am also not in a rush because I am about to build a Lowrider 3. (I have all parts, except half of printed parts.)

Edit: I guess I am impatient. I went ahead and ordered the board. My first part for the ZenXY. Hopefully I can get it all working (at some point).

You will have to learn a bit to get it going. But it isn’t programming, exactly. FluidNC just uses a config file, in yaml format. There are some examples here: #software:fluidnc.

Grbl_esp32 is not being developed anymore and FluidNC is where it is going. So I would get the newer FluidNC board.


Well, I went ahead and bought the newer board from FluidNC and it arrived a couple days ago. I don’t know when I’ll build the ZenXY. Hopefully within the next couple of months. I guess I’ll deal with the frustrations then. I have a lot of unknowns with the programming,etc aspect. So, I’m sure I will be bugging this forum and Bart’s discord.