Whats in a Firmware: a year later

When I started looking into all this I thought I would find some one who wrote software that would be something like S3D or Cura, but for CNC. But all I found was references to software that could not talk to anything that was not 8bit. Reportedly there is a branch of GRBL that can, so I am not saying it doesn’t exist. A user on Redit pointed me to a software called JSCUT, and it does even support Marlin. JS cut looks like it would make a simple Laser cutter controller for Marlin if I wanted it.

The issue is, I still don’t have a slicer for CNC. JS cut can slice but it does one layer. Candle too.
I tinkered with GRBL for a moment before deciding I wanted to just burn the tissue paper it’s code was written on.

Next say I do get a file sliced up, material is mounted to the bed and the machine is ready to go. The file can be run from SD card natively in Marlin. Alternatively I can load the card into a SD slot on a stand alone controller for a GRBL based CNC. But if I want to run that file from the PC, there are slim pickins without much to any intelligence.

I suppose if I am lucky I can get Fusion360 to talk to the printer, but really thats just over kill. Having the 3D engine, the slicer and the controller all under one hood.

Maybe part of my issue also comes from the vocabulary.
For 3D printers You have the 3D engine or whatever tool you use to make/cleanup your object. Then there is a slicer that is used to render your object into instructions the printer can follow. Lastly is the Controller and the Firmware. In 3D printers these two play a tug of war to see who gets to control the machinery. But the distinction in CNC is that whatever the firmware does, isn’t much. The Controller is GOD, and the firmware obeys without question. This means that if the software doesn’t have instructions for how to deal with an end stop, that all there is.

My experience with GRBL.
With GRBL and endstops. The software just stops. The end stop cannot be used to find center, cannot be used to find the edges and self calibrate. If the machine hits and end stop, it is always as if an e stop was pressed. Everything stops. The machine must be soft reset several time to get the carriage to move away. So now rather than the carriage moving to a end stop and self calibrating, it must be centered manually and the code must direct the head from where ever center was placed. How has any one put up with this? How is it that it is now the year 2022 and basic CNC is still operating in the 1970s?! With 3D printer tech you give it an instruction and it performs the calibration and reports ready, but with CNC tech, if the software cannot perform a calibration the user is on their own… (fighting urge to start pulling hair)…

Hardware in hand:
SKR PRO running Marlin 2.x
3018-Prover running ???

Find a good slicer that can out put code that Marlin can use.
Better yet a Slicer with a Controller built in so an extra piece of software is not needed.
Ditch the laser cutter engraver controller that came with the 3018-ProVer.
Learn as much as possible using the 3018-Prover Toy CNC as training wheels.
Upgrade the controller and other parts as needed until it behaves as desired.

Find a controller that supports USB, a USB pendant, and Mach3/4
Augment the controller with stand alone drivers that have built in TMC drivers.

Motors with integrated Controller for lossless motion:
Since these newer motors are now more common it is now only a matter of finding a combination of hardware and software that will work together. They already work find in Marlin. But will they work with any non marlin controllers?

wow, there’s alot there to address… Maybe I’ll start by listing out what a workflow looks like for 3D printers, laser cutters and CNC machines.

3D printer workflow:
Get or create a 3D model, typically that is exported in the STL format.
Slice the STL file into GCode commands your 3D printer will understand and that means lots of things need to be known. Machine specific things like what filament diameter, what hotend temperature for the filament, how large your build area is, how fast can your machine move and do things. The slicer then needs to know how you want to build the object. Upside down, sideways or in little .05mm layers or fat .4mm layers. How solid do you want it etc etc.
Once Sliced you need to get the GCode file to the 3D printer and lots of times the slicer does that too. But there are other “GCode Sender” programs which can send the GCode to your printer like OctoPrint, Pronterface, etc.
Finally, it is the job of your firmware to know what to do with the GCode so you even have to specify in your slicer what firmware you are running because there are differences between Marlin, Sailfish, Smoothieware, GRBL, Klipper etc. The firmware needs to know details of your machine and limitations like how the endstops work(N.O. or N.C.) how many microsteps the stepper motor drivers use, acceleration limits, default speeds for moves,etc.

Laser Cutter workflow:
Since laser cutters are generally 2D devices they usually work from a 2D drawing which is either a vector drawing or a raster image(picture). Many drawing tools can be used to create the 2D drawings.
Next you need software which can convert those drawings into GCode commands to be sent to the laser. Again, these bits of software need to know things about your laser cutter like where the origin is, how big the work area is, Where Home position is, how big is the laser curf, how fast you can move the machine and how much power to set the laser to while doing an operation.
Often there are many “layer” operations so the laser design software will let you create layers and specify speeds and powers for that layer and another layer will be different. Layers can be executed in different order. Like you would not cut out a part before you rastered an image on it since a cut out part will move as it becomes free from the main work material and the curf made room for it to move.
All that generates the GCode file which has all these sequential commands/processes in them.
As in the 3D printers, sometimes the laser software will also send the GCode to the laser and other times you can save off the GCode and use another software package, a GCode sender, to load the GCode, move the design around and then send to the laser cutter.
As in the 3D printer, the firmware on the laser cutter knows intimate details about the laser cutter hardware and capabilities so too the laser cutter design software needs to know what firmware is on the laser cutter so it can generate the correct GCode syntax.

CNC workflow(I’m a bit greener on this but I think I understand most of it):
As with the others, there’s a need to design or have a design first. For CNC these can be 2D designs which are cut out like a laser but using a router/spindle bit to cut out the 2D shape. Some of these 2D shapes can be varied by the bit shape. Like a V-bit can be used with a 2D design to make a sign and/or lettering which doesn’t cut all the way through a work piece. There are many bit shapes and sizes but the designs are generally 2D vectors or DXF drawings.
There are 3D designs which allow the CNC to carve out 3D shapes/designs. These can be in OBJ, STL and other 3D design formats.
As before, there is the software which now takes these design files and creates the GCode to operate the machine. On CNC these are called “toolpaths” but they are just GCode files. Unlike the other machines though, the CNC toolpaths are more often than not saved as different files for a single design. There are often many different spindle mill/bits used for different operations it makes sense to separate the GCode/toolpath files relative to the bits or operation.
For example, if carving a bear out of a tree stump with a chainsaw you would not start carving the tiny details first. You would clear off large chunks of wood to get close to the outline of the bear you want to make. Next your would cut maybe with a chisel to get a much closer outline and then finally you would use the small hammer and chisel to start carving the fur, eye details etc. Same for CNC.
But, you have to enter or have setup all the various mill ends you have and plan to use. The ‘slicer’ needs to know not only these mill bits and their exact shapes/features but also needs to know how fast to drive the spindle and how fast to move the machine(Speeds and Feeds). Some bits will break quickly if the wood is very hard wood and the feed rate is too aggressive for the bit to remove the wood before the machine pushes the mill bit faster than it can remove the material.
So again this layer of software requires details of the machine, the tools to be used, and details specified by the operator as to how the machine should operate with the material intended to be milled out. Not too unlike setting up the 3D printer filament parameters only on CNCs the material often changes greatly. One day your cutting on pine the next day oak and the next aluminium.
Once you’ve generated all your toolpaths for clearing, roughing and finishing you need software to send this to the machine. Sometimes it’s combined with the CAM software(which generates the toolpaths) and sometimes there are different GCode senders or even “controllers”. In CNCs there usually was not firmware on the machine like GRBL, Marlin, etc. There was “control” software on a PC which in realtime( or close to it ) commanded drivers on the machine directly. Only within the last 10 years or so have seen started seeing buffered firmware like Marlin, Smoothieware, GRBL on CNC machines. Controller software like LinuxCNC and Mach have been around for many decades and are still in use today doing what they’ve always done. Taking GCode based toolpaths and digesting them into commands so it can control the machine movement. With the buffered firmware on the CNC machine you do as you did with the others, you used a GCode sender to send to the machine( bCNC, cncJS, etc are examples of CNC specific opensource GCode senders). You can also used LinuxCNC on a PC or even a Raspberry Pi(controlling a 32bit 3DP controller running realtime firmware called Remora) or use LinuxCNC and a Mesa FPGA board which will do the realtime hardware control interface.
Unlike the 3D printer and the laser cutter you have bit changes and other things which effect where the machine is in 3D space so almost all CNC machine controllers and GCode senders have zero’ing capabilities to set where the top of the material is, where the origin/corner of the material is. Many times there’s not even a need for endstops because ever operation is relative to where you defined 0,0,0 to be. And if you run your machine off the edge and into the end of travel and break a motor they will let you do that. Operators need to know what they are doing and many times beginners should keep their hand over the E-Stop switch until quite familiar with the machine contraints and the CAM software used to generate the GCode. I’ve heard people say they hated F360 CAM but used it so long they now know how to keep it from doing bad things and expect other software to be the same so they stick with “the devil they know”. There’s little hand-holding with the controller software like LinuxCNC and Mach so there is also a learning curve. If you are only into using a V bit and carving letters in signs, there are things like Shapeoko’s which use buffered firmware( GRBL ) and custom software which does the design and CAM and GCode sending all in one package and a few dollars.

1 Like

Yikes, I think you succeed at making it sound worse than I thought it was. I have visions of operators holding together industrial hydraulics and chainsaws with nothing but the belts off theirs pants and hoping it all works out.

The sign carving software. Yes, those I am familiar. Though, they have not come back in any results when attempting to search for software that exports directly to gcode (Marlin) or direct control comparability with Marlin.

At work we use vcarve with the shark cnc from nextwave. The shark, can only be updated by nextwave and they haven’t offered actual updates in years. The downside of putting cards on a small company that depends on constant purchases of new proprietary hardware to stay in business. The machines are for the most part accurate but they have all kinds of tracking quirks which don’t often show up until after a cut is finished. I do not operate then so i cannot really dig into their issues to much. Just that from cut to cut some parts come out perfect and others have slight drift, or there irregularities that cause loss of material.
I am aware the operator exports files when selecting a cut and that each file, representing a layer operation also has tied to it a bit change, and or shift in how the path is followed.

I also have a poor mans laser cutter, a Cricut. The Cricut software, I think works very much as a good laser cutter software. Except for the fact that it drags a knife and the machine is arguably 100X more sophisticated than typical consumer laser cutters. having a camera for material tracking, and edge finding. The software interface also sets up work in layers. This of course may include a change in the material, the cutter, a pen, and the pressure the tool applies to the material.

I use Simplify3D on the 3D printer side. Have used it since my days operating a M3D Micro. I quickly learned that there were things that I wanted to do that their software a skinned Cura program could not. But their software did handle calibration and controller interface, so I could preslice the file in S3D and process that in the M3D software. I also paid attention to the commands that their software added and were lost in the process and carefully replicated them. Lastly S3D’s whole claim to fame is in their ability to do multiple objects, multiple “layers”, multiple configurations, etc. I have taken full advantage of the highly complex capabilities of this software, though I know there are those who have an even deeper relationship with it than I do. It would be all to convenient if S3D offered a switch to go from FDM to CNC. Too bad they dropped off the radar.

Have you looked or or heard of Kiri:Moto? kiri.
It’s a slicer and dicer for Lasers, 3D printers and CNCs


Nice find! I will tinker with this one.

  • It does CNC but doesnt do STEP. Thats curious. Most seem to REQUIRE STEP for CNC. Refuse to accept models used for FDM.

I’ve been very happy using Kiri:moto for toolpathing.

STEP is more complex and defines features; STL and OBJ are “meshes” — that is, definitions of the surface of a part. Kiri:Moto supports both STL and OBJ mesh definitions.

It doesn’t include a controller or sender built in, though. Stewart, the author, has talked about that at least on Chrome which now has an interface to allow access to “serial ports” (like USB), but I don’t think it’s high on his priority list compared to adding good slicing features, letting people who focus on talking to machine controllers focus on doing that well.

1 Like

I’m very happy with that fact, that Kiri imports just STL. :slight_smile: Before I used LaserWeb for 2.5D parts and Fusion 360 for more complex shapes.

My GRBL machine is controlled by CNC.js on a Raspi.


So far not happy with what I have seen on the CNC side for control or firmware. I imagine that it is unlikely that I will be happy with what I find anytime soon. Does not mean I will be giving up either.

Although, I have seen some really nice stuff out there it was all running in the $$,$$$.$$ just to start. For example, though complete over kill, I watched ThisOldTony on YouTube transform an old milling machine into a EitherCAT with full function DRO. That was a very impressive build.

I just read a post about the so called best controllers and although several were not available at the time I made the list on my last topic. There are a few decent additions. One being a company CNC xPRO V5. I am not looking to run out and try it since it is another GRBL based controller. But that its a 32bit branch with Trinamic 5160 drivers, so it’s not all bad. Their controller of choice is CNCjs. which does look fairly solid. Downsides are, requires constant contact with machine, or an offline controller, since it is GRBL. I will assume it also suffers from the same lack of intelligence that other GRBL controllers do. The zero tool and the power supply look like something I would hand assemble at at work. But the final product for the controller looks solid. Their slicer of choice is Vcarve.

Kiri:Moto at least looks to be a nice set of training wheels. In time either it will become more or I will hopefully find something better. Basic as it is. Reminds me of the LycheeSlicer Pro, for resin printers.
I am hopefull still to find something better than sign making software that can export to gcode as needed. Kiri at least gets me started. :slight_smile:

The lack of a controller, based on what I have seen is not surprising, though maybe the author figures out to make that bridge. My guess is that windows security will make that very hard since this is running off the web, and not a local device.

Previous suggestions online was jscut, which like many others looks to make a decent laser cut option. Kiri is a solid step forward from the barebones single layer cut tools. Glad to move on from that very limited option.

It has long been said that FDM would also start using STEP or some other file structure direct from AutoDesk formats to do away with meshes, which are not all exported equally, and are sometimes damaged requiring a repair.

lol, literally just noted a reference to CNCjs based on a topic I was reading per a google search. The product CNC xPRO V5 uses it as their controller. This was the first reference to the product I have read of.

So a few new products to add to my lists. Slicers, Controllers, and Hardware. No real changes in firmware options though. However that GRBL has active 32bit branches is promising. I just need it to get smarter. However, if CNCjs can talk to Marlin, then it is only a matter of choosing a good slicer who does not specialize in cutting wood signs…

Tinkering with it now. Connects and can home Marlin with the colored tabs over the upper right, but nothing in the DRO functions. I cannot control the gantry, and based on the serial log, CNCjs is not trying to either.

  • bug list 1.9.22: Jog not working on Marlin (PR #583, closes #581)
  • running 1.9.24: looks like bug wasn’t fixed in 1.9.22?

Looking in the settings and configurations there is the red line of text in almost every window. An Unexpected error has occurred.

Nifty to say the least and I hope they do get the jog function working. This one product could lay the ground work to tie together many types of hardware on the CNC side. At the very least spur a new wave of development in similar software. I would love to see what comes of it.

Well, 32-bit-capable grblHAL · GitHub is getting “smarter” if you mean having more features and capability, but also there are other firmwares that have many features. @dougl reasonably mentioned LinuxCNC, which can now run on Raspberry Pi. People run massive industrial CNC as well as 3D printers, laser cutters, and so forth with it. So if you are looking for maximal capability, that’s not crazy to consider!

1 Like

Yes, Kiri imports STL’s but you can also import grayscale and it will create the 3D design from that.
I think that is an under used feature.


I specifically mentioned CNCjs in my long post along with bCNC only I capitalized the wrong letters(cncJS instead of CNCjs). Those were the two I could quickly think of and have had my hands on at one point or another.


Sorry you rattled off so many, most I had seen before. Completely overlooked overlooked that one in your reply. Good find.

I filled a ticket on GIT concerning the jog tool in the Desktop version. Crossed my fingers it’s a quick fix.

I look forward to testing it on both my Marlin and 3018-Prover machines. The Marlin one is strictly a 3d printer but all the CNC tools are enabled in the firmware just for this very purpose. I can use this current setup and firmware as a boiler plate for the next.

Although I have run Linux on my desktop at work for several years the bosses decided to force every one onto Microsoft Office. So the Linux box is a strict backup only now. They have taken up a stance against Linux and Google, in support of a strict Windows / Office environment.

So even if I did enjoy LinuxCNC, I would never be able to sell my bosses on upgrading our CNC controller.

Also I cannot say I am fan of the Rasberry Pi, but the one I saw on the list today was saturated with features. Infact as I have been reading its been named now on a couple lists. But ATxmega192a3u can only do so much.

LOL, if it were me, I would run from that job quickly. You are SOL with Raspberry Pi too since that runs Linux. You probably should stop using 75 to 80% of the internet since that all runs on Linux. Don’t buy a Tesla, Ford and many others because…yup uses Linux and so do most TV sets, Roku, IP cameras, etc etc etc.

Maybe it’s best you don’t tell your bosses they are literally surrounded by Linux so they can live happily on their island. :wink:

1 Like

Forgot to hit reply to when I started this and its quite hard to correct that after the fact. Even now after deleting the reply it is still fighting me. With luck this goes through.

Wouldn’t you love to be a fly on the wall while I am arguing these things with people who think they already know everything.

I know, all of us have to deal with it from time to time, especially those of you who are nice enough to sit and respond to questions all day. I have been the PC tech, a Computer Store manager, and several times over helped to answer questions from the noobs in forums for Marlin, BTT, and Anycubic. But there are always those who cannot be helped since then wont hear anything said that doesn’t fit their expectations or assumptions.

Another big battle is making it clear that FIRMWARE, SOFTWARE and OPERATING SYSTEMS are all separate functions. Even if they are often lumped into one Upload as with ARDUINO technology. The cell phone industry helped to confuse people by telling them their firmware was being updated or reset when it was in fact a very limited number of files in the Operating system being defaulted. So when I upload to ESP32 every one says its the firmware, but really it is not. The firmware is already installed and if it wasn’t I could not connect to upload the sketch. Though a clever person might notice that with every upload, there are typically 5 separate spaces that are written to, and this can include a current copy of the chip set firmware. That big software update from the cell phone company is nothing more than a patch to the operating system, and is unlikely to include any patches to the firmware on the device.

Now then, arguing that most anything is running some version of Linux is a mind boggling pill. Especially for die hard Microsoft users. Even if they accept the premise they cannot connect the software running on desktop PC with the tiny bits of code that make a toaster work.

I think in our case as company, some one managed to convince them that this a good move to put us all on the same page, reduce troubleshooting and or save on insurance, or something to that effect.

The definition of what firmware is reminds me of defining what real time is. There are always layers one could step down and declare as the correct definition. Is the bootloader the firmware and everything on top an application or is everything on the micro-controller firmware and the application is what interfaces to the micro.

My definition resides in the following facts:
Is it on a micro controller with limited memory, generally all onboard
Is the software running purposed for access to local hardware which has little to no onboard firmware( sensors, motor drivers, lights, etc ).
Is the device packaged as a stand-alone device with crude display/UI and generally a feature rich processing system(computer) with full featured OS running is used to interface/control the device.
Is the software generally a state machine, “embedded” RTOS or the like.
Then the software running can be called ‘firmware’.

Calling a Linux/Android software update a firmware update is probably a marketing choice. Not a fan of it being done that way but the days when the general population even understand the slightest bits of what an OS does are still decades or more away from now. As a computer user to show you that their print spooler is empty and photograph the face they make. You might just as well tell them it’s a firmware thing and they’ll probably nod their head. LOL

1 Like

Couldn’t just listen to this recurring debate … but probably should have.

Spending years [currently still consulting] building hardware, firmware, middleware and software across the entire stack, I now look at these arguments contextualized by the evolution that computing has taken since I entered the field 45+ years ago.

I look at the whole computing wars/words thing as a collection of architectural choices not a competition, not a religion.

Of course my response is my opinion and its largely rhetorical!!!
Therefore I am not trying to fan the flames of the OS debate just rendering one mans read-only version of the evolution of OS technology and it impact on what OS we use. I guess you might say this is my firmware talkin …lol


-Most OS’s (including windows) have some form of Linux running. Do we really care what OS is running under our services? To my thinking that’s like saying a computer is better because it uses a multilayer vs single layer motherboard??? …Maybee, Ya so what?

-Windows is a capable desktop and enterprise OS. It is stable and btw does not need to be routinely rebooted anymore [a realtime belief of Linux bigots]. Todays windows is secure if you let Microsoft manage it for you. Modern windows is a combination of local and cloud based OS.
Windows employs linux modules and Azure environments are being run by a large share of enterprises.
Modern windows is more about the UI than the guts. Purely windows enterprises are chosen more as a means of having a single neck to choke for backend and frontend technology VS a choice of what OS to run. Most pure windows shops also employ cloud based services that run Linux OS’s, they interface to them with API’s but do not manage the cloud/server infrastructure. True that, who cares!

-Linux when properly managed is also a secure and stable OS choice. Most large enterprises run some form of linux on their silent but critical backend infrastructure servers and most enterprise desktops are windows used as client to access a service that probably runs Linux… !
Not to forget, there was time when IOS was thrown out of enterprises [poor management and compatibility] but it is now back on the desktop especially in technical environments. True that, who cares!

-Every computer has some form of firmware, we need to differentiate it in some way so why not firmware? Typically firmware directly interfaces with and is specific to the hardware (bits) and software is displaced from it by interfaces, API’s and middleware [whoops that’s another software stack word].
Then again, thats a generalization and therefore is not always true. In some cases the firmware is so thin it barely exists in other cases what could be called an OS is loaded into read only memory. Bootloaders will always be necessary as the core firmware. Modern rewritable memory technology has mostly replaced pure read-only memory (ROM) anyway and most embedded devices have OTA updates… so who cares?

The answer to “Who cares” is that the use of a particular OS technology somewhere in the stack is an architectural choice not an allegiance to a religion. There was a time when these environments were unstable (I lived through that) and at that time a practitioners experience in one environment or the other drove the creation of religions around a particular OS’s. The truth be told, the underlying issue with these OS’s was a much about how users managed them than the technology itself. When software is not kept updated it runs poorly and is generally insecure.

With the maturation of software technology and the availability of automated and cloud based computing both Linux and Windows have proven to be capable OS’s. Like any technology choice there is a best fit application for the use of either or both technology. It’s no longer a religion but an architectural choice based on its use-case in the stack and its ability to be properly managed at the lowest cost.

The IT strategy in my house and my shop is to minimize my activity as an IT manager. This strategy is not that different than most enterprises.
You know backups, software updates & security management. There was a day when this was fun for me, and I got some form of intellectual high doing it, not any more. I do not miss updating software and installing OS’s only to spend inordinate amounts of time trying to make it work together. When confronted with a choice of where to compute I always choose the “cloud” option. I never think about what OS the service is running.

  • I choose Windows as the default environment for desktops and I let MS manage them.

  • I standardize on android for remote things and my home automation therefore is Google Home. I minimize the #of vendors I use for IOT devices. Google and the device providers manages all those “things”.

  • My network is a google mesh and someday I will be using Google fiber [when it finds its way up the mountain].

  • My important data is cloud based so data management is done by the respective services I subscribe to.

  • My computing devices run on windows, Android and IOS, 99% of the computing done in my home is browser based [oh my! another OS of sorts?].
    It does not matter what OS is running under any browser choice.
    It really does not matter what hardware I use to access those services as long as it runs a browser.

  • Bottom line: I can comfortably compute from any machine anywhere as long as it runs a browser.

  • Google, windows and Apple manage all my devices and I seldom have to intervene or reboot … anything. That is what I care about.

  • I would like to be a pure Windows and Android environment but my wife is stuck on IOS … that’s another story [happy wife happy life].

These days I spend my time being a user not a CIO and not an IT admin.

Whew this is exhausting … won’t be back on this subject again.


And some of us have been in software development, NOT IT, for 40 years writing code on UNIX, DOS, Windows, OS/2, Linux and various embedded RTOSs and microcontrollers. The fact that Windows can now stay running for more than 30 days is something new to the last decade and for a good 30+ years their products were the POS developers were forced to deal with due too poor management platform choice. So much time had to be dedicated to dealing with OS and API issues instead of the application space. On some jobs where both UNIX and Windows were developed the Windows guys would get quite vocal when any little UNIX issue popped up like a required service patch. They were quickly put in their place simply telling them this is an integration issue and 99% of development time has been spent in the application space, not dealing with OS issues.
Top that off with the decades of ‘if you don’t run only our Windows software, we don’t like you’ marketing from folks at One Microsoft Way when other than a pure Microsoft software stack was considered for projects, there is quite a bad taste in the mouth when someone says they will only allow Microsoft software in the door.

And it went beyond the corporation in Redmond WA. I had a solution for browser based computing for public libraries which would have saved them 50% or more on hardware costs and more on software costs and after months of getting ‘thanks but no thanks’ I finally got a one-on-one with an IT tech at a site who told me they accepted money from the B&G Foundation and therefore could not accept any Linux based software. Feels like religion to me.

So when someone brings up that they can’t bring a LinuxCNC based control platform into their building, feeling compelled to be stuck with only buffered firmware choices because management will not allow anything but Microsoft in the door, it’s likely to be very much a religion-like decision on the part of management at that shop. Again, from the eyes of someone who’s seen hundreds of millions of dollars spent to keep choice out of computing and decades of that platform being a total PIA to develop software on willing to accept nightly system reboots(made much easier with Virtual Machine technology) and choices being tied to Microsoft’s stack so often for one non-technical reason: because ‘nobody gets fired for choosing Microsoft’.

For the OP, too bad Klipper is taking so long to move out of the 3DP space as it has the potential to grow into what LinuxCNC, Mach and others ‘high-end’ controllers have been doing for decades while using COTS 3DP embedded controller boards. Oh but it runs on Linux inside a Raspberry Pi so rules would be broken to get that solution in the door even if the desktop software is on the ‘Yes’ list.

I confess, I’m one who will run from clouds at my house. The only critical system on a cloud is our lawn and garden irrigation system. I figure if that cloud collapses it will still run stand-alone so nothing lost. IoT stuff reflashed with Tasmota with MQTT and Node.js running on rPi’s. Oops, Amazon Alexa is also cloud based and adds convenience to lighting and remote control but everything is locally controllable on the LAN(thx Tasmota) without it.

And the world still turns, the tides rise and fall and people and companies come and go.


Just to be clear my “IT” software experience is not installing and managing IT software or being a script kitty. It was developing [architecting, writing, testing and releasing] desktop, client and enterprise software and firmware along with the embedded hardware they used. These products were developed on and ran on every OS, client and server side, consumer and enterprise. When I referred to IT I meant literally the software development of products that provided Information Technology advancements.

Other than that I should have taken my own advice and let sleeping dogs lie, but no worries :slight_smile:

… and no I am not going to be baited into the “to cloud or not to cloud” religion :).