Teaser: we are rewriting a huge portion of Marlin.
I may regret it, but I’m letting the cat out of the bag. We dug into Marlin to see if we could get an esp8266 to connect to wifi and our cloud services. After cleaning out a bunch of unneeded, (non-Printrbot) code, it became more and more obvious we needed to extend its functionality for a variety of reasons. And it was painfully obvious that many things needed fixing. I can’t overstate that last sentence enough.
It’s not that Marlin didn’t work, it does. But so many things we found in there just didn’t make sense. Some features were poorly written, some were not apparently abandoned and some features needed improvement. In all, we determined that if we were to move things forward, we couldn’t build on top of the existing system.
Mick is our rockstar software dude and he has done a variety of things to the code to bring it up to a level that will allow it to reach new heights. It now makes good sense and is well organized. We borrowed best practices from several places and in the end, it isn’t Marlin anymore. It’s something better.
Programmers will appreciate the change. Some non-programmers may not fully get why it was necessary. But I wanted to go on record and explain why we did it and what people will be able to with it.
Keeping with our values and the requirements of the license, it will be open source. To be clear, though, we won’t be helping anyone with an endless list of features that we haven’t built into it. At least we don’t promise to do so. Printrbot has specific needs and we are laser focused on our own hardware, software, and road map. We wrote what WE needed and make no apologies for it. We hope people use it as the basis to meet THEIR needs, but will offer no promise of support. We will document how it works and the code (for the first time) is sufficiently documented. That is our contribution. We won’t go back and add in all the the various features and mcodes, etc that don’t suit our own purposes. While Marlin is currently a community project that serves many, we have made something that serves our purposes alone. That is not to say it won’t work for others, I’m just saying this “fork” for lack of a better term will be maintained by us alone. Forks of this new improved Marlin will, undoubtedly, go in wonderful directions but we won’t be guiding those projects.
A few features:
It works on stock printrboards. It should work on all of them
It will allow the printrboard to accept a shield we are making that contains an esp8266 for wifi and an ad card
It will connect via wifi to our cloud services and software to authenticate the connection and let you control it with our UI that works in any browser.
It will not be usable with any desktop software until someone writes plugins for octoprint, repetier and Cura… We think this is a good idea, and will publish the knowledge needed to do so, but we don’t intend to do it ourselves. We are going all in on our own software to try and improve the overall experience for users.
It will allow us to include our vendor ID, product IDs and even add unique serial numbers to each board. This means that our software will be able to identify what equipment it is running on and smooth out several pain points that is too much to go into right now. In short, it will get the user up and running faster without laborious configuration, changing settings and the need to understand the nuances of slicing for your specific equipment you are using.
It will track the version of firmware you have and ease the decision process and execution of upgrading firmware.
It will introduce a few new features that we are working on in our road map… Many that are not ground breaking, but would have been impossible with the current Marlin. More details on this later.
It has been a huge undertaking and may become the subject of healthy debate, but our hope is that a newbie won’t need to know any details about what we’ve done… It will just render Printrbot’s easier to use.
This project marks a major shift in Printrbot’s course: we are transitioning away from the use of today’s most common desktop open source software and moving to our own cloud based software. This will eventually make the need for a computer hooked up via usb a thing of the past and soon have people using their phones, tablets and computers to run their machines wirelessly. I think this is where the industry needs to go and we are hoping this helps others go there with us.
Writing the cloud software has not been trivial, but it opens the door for lots of nice features that are absent from today’s typical 3D printer experience. Checking on your print remotely… Running print farms or multiple machines from one device… Freeing up your computer from its tether (usb)… Bringing a modern UI to your phone- the nicest screen you own- instead of some janky LCD or expensive, but limited touch screen…ditching sneaker-net (transferring files across the room on an sd card)… Doing away with the need for complicated driver installs and antiquated requirements for usb on a dizzying array of operating systems -some which are super frustrating to install. It will be a step forward.
So there you have it. We are working on it but it’s not done. We have enough success under our belt to know it will work. The amazing thing, both from a business perspective and a buyer-friendly perspective, is that we are doing this on very inexpensive hardware. We expect the add-card to be around $50, bringing the total package with the printrboard to $99. This should put Printrbot in a category all its own on price and feature comparison.
Yes, someday, we will integrate an Arm processor and maybe take advantage of the newly announced esp32, but for now it’s not necessary. We will make those changes when the time comes. We will launch this as an add on card, and if it goes well, put it all on the printrboard later.
We still think Tinyg is the future for our higher end machines and CNCs, etc but this is doable now with existing hardware and will allow us to continue building out the software chain, in readiness for bigger changes later.
Brook