I am running Mach 4 5000 and ESS 285a (283 is the last “released” version AFAIK). So far no issues. My CNC is just as much for play as making things so testing out new features and stuff is ok for me. Its very easy to go back to the last build if there is a problem so I don’t worry about introducing new problems.
We use the latest version recommended by Warp 9 with their latest plugin. I updated it in order to use a wireless pendant plugin that required a newer version. I have also built a fully custom screenset and figured if I have to update, I might as well build it on the latest recommended from Warp 9.
We have the Nema 34 plug and play electronics and have left it mostly stock. I have just added a few connectors to the box for a few inputs (tool and wireless spindle probe, spindle drawbar, safety light barrier) and an ESS 3rd port breakout board in an additional box. The added box handles the I/O for an ATC, dust boot height control, status lighting and automatic multi-zone vacuum table. At some point we will be swapping it out for a much larger box with everything integrated with a true safety circuit that isn’t software based.
I will preface this next part by saying that I am not upset and generally happy with what I bought.
When I was writing my ATC scripts I was told that Avid would not help me troubleshoot a script error with one of their compiled modules when setting a work offset if a G43 had been used at any point since starting Mach4. They also would not send me the non compiled version of the corner finding block module so I could debug it myself. After that part of the phone call they then thought it was reasonable to ask if I would be willing to share my script for the light barrier I have added… The only reason I built a fully custom screenset is because Avid has compiled most of its custom code so that it can’t be edited or viewed. There are ways to get around that but I decided if I needed to go to that effort I would rather just write the whole thing myself. Visually, it is loosely based on the Mach4Mill 4 axis set but I wrote the whole screen, PLC and other module and macro scripts behind it.
So no, I am not really interested in sharing. If Avid wants to promote an environment of open sharing of custom scripts and code, it needs to start by not obfuscating it’s own customizations. It is well within reason for Avid to make the business decision not to share the source for it’s custom modules or support anything outside what they have made. However, it does not seem reasonable for Avid to then ask to see it’s customers customizations.
Like I said earlier, I am not upset. I got what I paid for. Nothing more or less. The powers at Avid can run their business however they want. I don’t necessarily agree with that business decision and think that being open would probably be more beneficial to Avid in the long run especially when you consider the type of customer that buys their products.
I’m in the same camp, I would have liked to make some modifications to the touchplate script to support multiple sets of offsets, but couldn’t get the code. I also wasn’t upset, but I have had to put stuff for this in my screenset that I would rather have in the touchplate routine.
I’m sorry I should have been clearer, I was just curious what the screenset looked like, I wasn’t expecting you to share the code. Part of my work at Avid CNC making product decisions and suggestions and I’m always curious to see how users have customized things.
As for our screenset and our decision to share (or not share) the code that runs it… I actually don’t know the history of that decision, it was made long before I was here. What I can say is this:
In my previous work I was in software. Releasing code like that can get complex. The code likely wasn’t 100% written from scratch, and likely includes agreements/IP from at least two (if not more) vendors. The decision to intentionally not share it is likely the safest legal decision to make.
Just so I’m totally clear here I’m not sure if that’s what drove the decision here at Avid CNC, but having been in a similar situation myself where I wanted to have code released, I wasn’t in a position where I was allowed to for those reasons.
What I can say is that we love it when people hack and modify machines to make them work better for themselves. So for me as someone driving some product decisions I’m always interested in hacks and mods that users do (And why they do them)
I totally get that software licensing can be very complicated. Regardless of that, Avid could be open with it’s code if it wanted to be. Not saying that there wouldn’t be challenges or extra work involved in order to do that, just that it can be done. It is also fine to decide not to go down that path.
Thanks for the link. It looks like exactly what I was looking for at the time. I have already moved on from the touch block though. It doesn’t get used on our machine.
For a suggestion, I added an rs485 connection from the PC to the VFD in the plug and play box. Then with the modbus plugin I extract amps and commanded rpm from the VFD. I do a little math with those things and show a few actively updated DRO’s on the main tab for spindle load, amps and RPM.
This is a long shot. Since you are able to make suggestions, perhaps you should look at other motion planners. In my opinion, Mach4 has 3 major flaws that limit it’s usefulness in a higher production business:
An e-stop signal does not stop any running scripts, only motion. You can get all sorts of weird behavior and broken machine states because of this if you are not very careful with your scripting.
The actual motion planner is very basic. Only trapezoidal moves that result in behavior that a lot of people think is caused by too high of acceleration settings. EDIT: Don’t know if there is any real way to solve this one. I am not aware of any motion planner that can do this better that isn’t also connected to huge machine tool or robotics companies.
With basic install of Windows 10 Pro with no additional software and the correct configuration optimizations through the ESS SCU utility on a modern machine that has plenty of performance, I have seen communication stutters. I have tested this across different CPU’s and CPU manufacturers, motherboards, ethernet controllers and many versions of both Mach4 and the ESS plugin. I typically see it happen during probing while also doing a bunch of math and making register changes.
These things are the reason that we will be using something else when I change out the electronics box.
Is there a specific part of the screenset you can’t get to? I hack around in there a little bit… I have very little experience actually coding anything really useful though. I’ve been able to get at whatever I’ve needed (with no special “inside access”)
This is very cool. What’s the use case? Are you machining metal and keeping a really close eye on this stuff.
These are great suggestions, no guarantee on any of them but I will definitely bring them up.
Trying to recreate those topics here would be futile.
Yep, had you read the docs and forums, Mach 4 does not stop script execution for e-stop AND cycle stop AND cycle pause
To add insult to injury, checking for those inputs can return false results because the script engine and core are two separate runtimes. So you can test the e-stop and it will be negative and so you proceed but the user actually smashed that e-stop almost 50 to 100 ms before you polled it and you still got the wrong answer!
Sort answer, No.
To give you an idea of how much Newfangled cares about their customer, I filed a ticket on their broken ModBus implementation a while back. They didn’t even respond and moved the ticket to closed. When I reopened it they disabled my help account.
Yep, upgrade to Winderz 11 and it’s a bit better. Increase the ESS buffer (read ahead, I forget it’s actual label).
Anyways, time to join another forum and quit expecting AvidCNC to fix Newfangled BS.
@ThinkboxTech sorry, most of what I said was to everyone else. Not picking on you.
Actually, LinuxCNC does allow you to access the trajectory planner from within g-code. In fact, these modes are even available when they ported LinuxXNC to the Arduino Uno in project Grbl.
If you know the history of Grbl then you know Grbl is the basis for Marlin and is the basis of all modern 3D printers. So a friggin $99.95 3D printer on Amazon has a better trajectory planner than Mach 4 does
Well in my case it just meant that I wanted to change something in one of the compiled modules.
Obviously Avid can’t fix Mach4, hence why I suggested switching to a different motion planner. LinuxCNC would be my preferred choice and is what we will be switching to. It would be a pretty big deal to rewrite all the documentation and build up the support knowledge for a business. This is why I thought it would be a long shot to suggest moving away from Mach4.
True, but it is still using plain trapezoidal movement profiles. No s-curve acceleration. I have seen a few attempts at adding this feature but nothing that came close to a final product. The modes you can access through gcode are helpful. It would be cool to see a deep dive (maybe in another thread) into how those of us that have switched or are switching to LinuxCNC could use the different modes to improve over the behavior we see in Mach4.
We push our machine pretty hard in plywood and mdf sheets making cabinet box parts most of the time. It has helped me to optimize the speeds and feeds to get the most out of it. Additionally, over time we have built up enough info through observation that we can tell when the tool is dull and it is time to replace it. It is also easy to teach operators “if the spindle load is consistently over XX or is spiking over XX, something is wrong.”
And there is your first clue. I have a legitimate reason to get the headers for plug-in development and Newfangled wouldn’t give them to me either. They are highly protective of that IP. Probably because they are not programmers themselves and farm it out to India.
You can take out the PCBs from your electronics box and install a 7i76e at any time. This is all standardized components. The ESS just mimics 3 parallel ports.
AvidCNC’s market is entry level CNC woodworking. I think they have chosen wisely in not introducing a new OS on top of machining. Their intended customer base are computer users, not programmers.
There is absolutely nothing wrong or inferior with trapezoidal movement. In fact your CAM package expects your machine to be a “trap.”
The only thing S-curve buys you is a surface quality that you will never get on a sub-$20k machine.
Now, that said, Mach4’s G61 and G64 are terrible implementations and rank absolutely at the bottom of any implementation I have personally used. Mach4’s G64 is a preset table whereas in LinuxCNC it can be defined in the post processor or by hand using P codes.
All that said, I am going back to machining with my Mach4 until its time to change out the motors on it. Then I will probably do something with LinuxCNC. But until then I am squeezing every penny I paid for that Mach4 “Newfangled” stuff out of it
I do genuinely appreciate the spirited debate here. Putting on my moderator hat:
I was curious to see who’s actually running a newer version of Mach. Anytime NewFangled updates their version of Mach and Warp 9 updates the ESS software we always look at what’s new, and when would be a good time to roll a new update of our Mach 4 package.
I started this discussion to see if anyone out there has “jumped the line” and done it themselves. If there were any major snags for those that did it I was thinking it would be good to pay attention to those that already have taken the plunge.
If we could keep the conversation focused there that would be great. If we want to keep talking acceleration and trajectory planners I think it’s best if a new thread is started.
When I first upgraded, I went all the way to the latest version developed and available on Newfangled’s FTP. I immediately found a few issues and went back to the latest recommended by Warp9 at that time. The showstopping problem I found when on any version later than 4809 was that the Mach4 API function mcCntlGcodeExecuteWait did not behave the same. This broke several of my macros that I use. I have found zero problems with 4809 that I didn’t already have in the version Avid uses. I did have to do some trickery to get the plugin for the wireless pendant that started this whole process to work. It is actually for a newer version. I had to install the newer version, configure the pendant for the first time and then revert back to the version I wanted to use. At that point, the plugin will work with the older version and is fully configurable. I see that version 5000 and ESS 284 is now what is recommended. I will probably not be upgrading to it as my machine works and is in its final form with Mach4.
I upgraded to the latest version of Mach4 for the same reason ThinkboxTech did (to try and use a wireless pendant) but did not upgrade to the latest ESS version. I actually found this thread while trying to understand compatibility with newer Mach4 and ESS versions. I had no issues with the software relative to my router performance. That said I did not get the pendant (a WHB04B-4) to work reliably and will be reverting back to the current Avid-sanctioned Mach4 release.
@ThinkboxTech since I just joined the forum I can’t DM you, but I would like to find out more about your success with a pendant. I’d be happy to start a new thread with any learnings.