The folks at Becausewecan, Oomlout, and others are all a-twitter because Shopbot has opened up their CNC control code, dubbed OpenSBP. Here’s what they say about it on the new OpenSBP site:
OpenSBP® is a syntax standard for the toolpath and instruction code used to control CNC machines and digital fabrication tools. As described here, it is in the public domain and freely available for use on any equipment. It may be generated and exported by any software for use on digital fabrication tools.
The OpenSBP Group
The OpenSBP Group is composed of CNC software companies, CNC tool manufacturers, and users supporting the development of this open syntax standard for the toolpath and instruction code used to control CNC machines and digital fabrication tools. The group seeks to develop a standard syntax that is easy for human users to read, is readily implemented by different controllers, and offers more flexibility and extensibility than legacy G-code. OpenSBPÂ® is freely available for use in any CNC or digital fabrication system and companies. The current certification process is described on the Licensing page. All users are invited to participate in the OpenSBP Group community.
The core coding format for OpenSBP® was developed by ShopBot Tools, Inc for use on ShopBot CNC routers. It has become attractive to other developers because of its simple, straightforward, and human-readable approach to machine control. ShopBots read g-code as well as OpenSBP but believe that OpenSBP is the most useful and efficient format for anyone not dependent on g-code for legacy reasons.
ShopBot has contributed the syntax, along with full documentation and support resources, to the public domain and it is available on this site. ShopBot encourage the use of OpenSBP® in any CNC tool or digital fabrication product and will continue to work with the OpenSBP Group and community of users on its development. The OpenSBP Group plans to develop an Advisory Board to establish general guidelines for using and expanding the OpenSBP® format and syntax, for managing certification, and for developing supporting documentation including helpful documentation for creating post-processors for OpenSBP®.
8 thoughts on “Shopbot open-sources their code”
So… Was G-Code not good enough?
From what I can gather about the article, no, G-Code was both too machine-specific and too clunky for most modern complex applications.
G-code is fairly generic, but extremely low-level. Think if it like machine language vs. C vs. Ruby on Rails, if you’re a coder. Except that in the real world, G-code is often specific to an individual machine, and not just an architecture.
As a result, no one shares G-code, since what runs on your machine will likely not run on mine. Instead, you swap DXFs, solid models, that sort of thing. This is because you often need to tune the “code” (manufacturing process) for the machine and tools that will actually run it. The part geometry is really the only thing you want to share.
G-code runs machines a lot more complex than Shopbots. I took a look at the code samples and briefly at the docs. I haven’t run shopbots before, so I could be missing a lot, but at first glance I didn’t see anything that different about it. It mostly felt like a slightly domain-specific version of g-code. Maybe it can do a better job of abstracting machine setup or other things like that.
Still, even if it’s nothing but a weird Shopbot g-code dialect, opening it up is a good thing for Shopbot owners.
the Shopbot code is a little more than what you make of it, The Snob.
While you’re spot-on about the problems with G-code, there are two things that I feel SBP has that give it somewhat of an advantage.
First off, it’s human-readable. G-code, as you say, is pretty low-level. SBP is a lot more ‘Ruby-like’ if you will, in that the codes it uses are pretty trivial to understand for non-programmers. I’m a designer who uses (the hell) out of CNC machines, and frankly I don’t care to memorize what all the G-codes are and what they are for. I’ve found the SBP so easy to work with, and I feel that it’s actually a big advantage.
Secondly, SBP actually has some nice programming features, such as parameters and subroutines and calling other files and listening to inputs more. So it can be a lot more flexible than some G-code. For example, we’ve got lots of routines that we use to zero jobs on the table that are just SBP code. Or, we could easily setup jobs where a certina hole size on a part is parametric, and can be defined on a fill-in sheet upon job start and automatically change. Or we can do crazy things, like have the Z-depth vary over the length of the table based upon an equation off of the X-value.
And I don’t think it’s going to be about swapping part files, I think it’s more likely going to be about swapping open plugins for generating SBP. For example, I can now make a SBP-generating plugin for Blender. Or someone could make an Aurdino understand SBP for homebrew CNC machining, and can use cheap or affordable CAM tools to drive it…
The title of this article is really misleading. ShopBot has not released any Open-Source code. They’ve release an open standard for their language. This is really very different.
Comments are closed.