What is really blocking developers from outputting file for the 5th Gen printers ?

906 views
Skip to first unread message

ESAAA lab - fab manager

unread,
Jan 4, 2015, 7:50:14 AM1/4/15
to makerbo...@googlegroups.com
Hi everyone,

I guess the subject has already been discussed quite a few times but I'd like to put it again on the table.

I've taken a look at the jsontoolpath file generated by Makerbot Desktop. Even though it's way too big a file for the purpose (gcode is more than enough, and not necessarily less readable or parsable) and it seems like a couple of functions are integrated in the firmware (no platform leveling instruction or endstops checking in either print.jsontoolpath or meta.json), everything else is just x/y/z position, extruder amount and feedrate.

These are parts of the Makerbot Licence Agreement :
1.1 This Agreement is a legal agreement between you (or the Company you represent) and MakerBot Industries, LLC, ("MakerBot") for the MakerBot Desktop App, the MakerWare for Digitizer software and the MakerBot Replicator 3D Printing Platform, which may be provided separately or in the form of pre-installed, embedded software on a MakerBot product and which includes all associated media, printed materials and "online" or electronic documentation (the "Licensed Software"). 
(b) you shall not modify, make derivative works of, disassemble, reverse compile or reverse engineer any part of the Licensed Software; 
(c) you shall not access the Licensed Software in order to build a similar or competitive product or service;   

I am by no mean a legalese expert, but it looks like that the firmware and Makerbot Desktop are part of the "licensed software". However, the .makerbot files that are needed to print and that are output by the Desktop app aren't.

So if anyone would like to output the same .makerbot files, they shouldn't reverse engineer the firmware or makerbot app but they could take a look at some .makerbot files and work from there, right ?

Seems to be awfully doable to me, maybe the uuid field in meta.json would take some tinkering (unless it's just a random uuid).

So why hasn't anyone come up with another software that would output code for the 5th Gen printers, except Simplify 3D (haven't tested it but it's listed as compatible on their website) ? Did Simplify 3D pay some kind of licence to Makerbot ? Are the others afraid of the possible legal repercussions from Stratasys, even though I don't see them in the agreement ? Or maybe the people behind skeinforge etc... just don't care ?

I'd understand daid and other open source software developers not wanting to back up the Makerbot policy by providing software that would run with their machines, but maybe a fork of Cura (or any other software) by a 3rd party with output for the 5th gen printers would be "legal" and give us the possibility to tweak the parameters ?

Please correct me if I'm wrong or link any article about that subject, I'd be really interested to know more about why this hasn't been done yet.

Jetguy

unread,
Jan 4, 2015, 10:14:17 AM1/4/15
to makerbo...@googlegroups.com
While everything you speculate is true here's the reality check.
 
There is zero interest.
The 5th gen hardware is junk- period. There is no counter argument, everything about it is wrong from the Z stages to the H-bot implementation, to the heavy smart extruder swinging like a pendulum. It's pure crap.
 
The folks who might have the skills to port something stayed away because they read these groups and review and my an other hardware teardowns and know the above is true.
 
Why spend time, effort and money on junk?
Sailfish team flat out said no way in hell are they going to touch it with a 1000 foot pole.
Most other camps (Reprap, Ultimaker, etc) have very little interest in supporting any MakerJunk project, let alone the 5th gens.
 
So, both the hard facts that it sucks, has low adoption rate by experienced user crowd, and that commercially, why should anyone help the dying brand of Makerbot- no there isn't a lot of support.

Dan Newman

unread,
Jan 4, 2015, 11:49:53 AM1/4/15
to makerbo...@googlegroups.com
On 04/01/2015 7:14 AM, Jetguy wrote:
> While everything you speculate is true here's the reality check.
>
> There is zero interest.
> The 5th gen hardware is junk- period. There is no counter argument,
> everything about it is wrong from the Z stages to the H-bot implementation,
> to the heavy smart extruder swinging like a pendulum. It's pure crap.
>
> The folks who might have the skills to port something stayed away because
> they read these groups and review and my an other hardware teardowns and
> know the above is true.
>
> *Why spend time, effort and money on junk?*
> Sailfish team flat out said no way in hell are they going to touch it with
> a 1000 foot pole.
> Most other camps (Reprap, Ultimaker, etc) have very little interest in
> supporting any MakerJunk project, let alone the 5th gens.
>
> So, both the hard facts that it sucks, has low adoption rate by experienced
> user crowd, and that commercially, why should anyone help the dying brand
> of Makerbot- no there isn't a lot of support.

+1

Dan

Jeff Davis

unread,
Jan 4, 2015, 11:50:26 AM1/4/15
to makerbo...@googlegroups.com
I have used Simplify 3D with my rep gen 5 and it works great. They did not reverse engineer anything from MBI. The Json language is not owned by Makerbot. All Simplify 3D did was create a script that takes a Gcode file and turns it into a Json file. I see the script running after the Gcode file is written. And let me tell you it takes a long time to do the conversion! Well compared to how long it takes to do the Gcode.

This site is not very friendly to Gen 5 owners but some of us are stuck with them and try to do the best we can with them. I have mine working good enough for home use. It may not be what others have but it's what I have that matters!


TobyCWood

unread,
Jan 4, 2015, 1:07:41 PM1/4/15
to makerbo...@googlegroups.com
Jeff... The anger and angst towards the Gen5 designs and MBI in general is well founded. Be that as it may... if you have success with your Rep Gen5 and post here many will appreciate your efforts... and I emphasize "efforts"(an irony given all the bells and whistles). When you get your next printer you will be stunned by the lack of required effort. Who knows what is on the horizon for MBI, but one thing you can bank on... the Gen5 machines will have a very short product life span. We can expect major design changes which will obsolete the 3 Gen5 machines within the next year based on past company behavior. We know they do have at least a couple of people there that know what is what (based on the white board pics we all saw from the Smart Extruder meeting that was reported online) and there is now a relatively large corporate entity that owns them and will no doubt be demanding results.
For SSYS's sake... lets hope they DO something and provide a means for current owners to easily upgrade. Otherwise... It will not be good for their stock value. A strong motivator for a corp.

Dan Newman

unread,
Jan 4, 2015, 1:53:35 PM1/4/15
to makerbo...@googlegroups.com
On 04/01/2015 8:50 AM, Jeff Davis wrote:
> I have used Simplify 3D with my rep gen 5 and it works great. They did not reverse engineer anything from MBI.

Well actually, they did: they reverse engineered the contents of the JSON file. JSON is just a file format
and syntax with no semantics (interpretation for the content). S3D determined the semantics of the content,
the names of the parameters, the format of their values, their grouping within JSON tables, elements, etc.
Actually a fair amount of reverse engineering, but none of it difficult by any means.

> The Json language is not owned by Makerbot.

JSON is a file format specification, not a language.

Dan

Jetguy

unread,
Jan 4, 2015, 2:48:34 PM1/4/15
to makerbo...@googlegroups.com
The problem is, Makerbot could change the format with the next firmware and Makerware desktop release and invalidate the entire thing.

MakerBot actually announced the format would change over time in their blog.

So yes, another reason folks would stay away from making a conversion tool- supporting that tool across changing firmware versions might be hard if not impossible.

ESAAA lab - fab manager

unread,
Jan 4, 2015, 3:09:08 PM1/4/15
to makerbo...@googlegroups.com
Jetguy 

I completely understand the people behind Cura, Skeinforge, etc... to not want to lose time trying to support a product that is a piece of crap, and the company making it being a prime example of a betrayal to the Open Source movement that gave it birth.
The file format changing with software releases could be a show stopper, but you'd also need to upgrade the firmware in the machine to stop being able reading the current files. 
Unless you do a lot of things with Thingiverse and absolutely need the new file format, I don't really see a need to update the firmware (but then you'll lose some "functionality" of the machine, and that might not be the best thing for some).

Jeff Davis  
All Simplify 3D did was create a script that takes a Gcode file and turns it into a Json file

That's real nice to know. Actually, it's just logic they did that since there's nothing else needed, but a confirmation is always a good thing.

some of us are stuck with them and try to do the best we can with them
 
My case too, I work with that replicator 5th gen and even though I'd love to be able to get a full refund and get a couple of Prusa or Ultimakers, this won't happen anytime soon.

dnewman
We might be playing on words here, but you can't reverse engineer a "content". If Makerbot was outputting some sort of binary or encoded file, trying to figure out how it's generated would be reverse engineering, but unzipping a package and opening a json file in a text editor is merely looking at stuff :)


I'd just like to add that the EU Directive on software licensing allows "reverse engineering" for interoperability means (article 6).
Again, I'm not that good with law speak, so maybe I don't get something.

And some nice informations in this discussion :

Ryan Carlyle

unread,
Jan 4, 2015, 4:47:25 PM1/4/15
to makerbo...@googlegroups.com
1) Simplify3D did exactly what you're asking about -- they made a script to convert gcode to .makerbot files. It's doable, and from all appearances, not particularly difficult. So... the point of your question is kind of invalid. Are you asking why they don't share it for free with everyone? They did it to benefit themselves and then put it in their for-profit software. It doesn't really benefit them to release it for free as a stand-alone.

2) Seriously, no one else WANTS to do it. The Cura, Slic3r, etc guys spent years having zero interest in exporting .x3g files for older Makerbot printers, and now will continue to have zero interest in exporting .makerbot files for 5th-gen printers. The 3D printing hobbyist world has VERY clear camps when it comes to platform support, and everyone works in silos. Most of the people who work on these slicers are either firmly in one of the other camps or have an outright financial reason to avoid helping Makerbot. Why would Daid/Cura want to support MBI products? 

3) Free/open-source, standalone software development (like GPX for gcode-x3g conversion) only happens when at least one person exists who is A) passionate about the subject, B) has the right skills, and C) has sufficient time/energy to develop it to completion. Apparently, there is literally no one on the planet who meets those three criteria. 

Dan Newman

unread,
Jan 4, 2015, 6:51:32 PM1/4/15
to makerbo...@googlegroups.com
> So yes, another reason folks would stay away from making a conversion tool- supporting that tool across changing firmware versions might be hard if not impossible.

And at the end of the day, does anyone really want to be left holding the
bag supporting a turkey of a printer?

Customer: My prints keep on failing with the extruder jamming
MBI support: can you tell us your MBI Desktop settings?
Customer: Sure, I'll send you the Simplify3D factory file.
MBI support: Huh? We just want the gobbledy-gook .json file.
Customer: I'm not using your Bundle of Awesome Desktop. I'm using S3D.

[Yes, MBI calls MakerWare and Desktop "MakerBot Bundle of Awesome". Seriously,
you cannot make this sh_t up. It's the name for their actuall installer package
file.]

MBI support: Well, please try again with MBI Desktop.
Customer: I don't use it because it doesn't work as well as S3D for my models.
MBI support: Call back after you've tried with MBI Desktop.
...

Net, Net, S3D may be taking on a lot of extra MBI support by attempting
to support their turkey of a Gen 5 printer. Personally, I don't want
such aggro which is why, despite knowing pretty damn early on the format
and semantics of these files, I know bid requests to support them somehow.
(Jetty and I figured out about two days after Gen 5's started shipping how
to modify a Linux kernel to unpack their firmware .zip file and explode
the whole thing and look at it all.)

Dan

Dan Newman

unread,
Jan 4, 2015, 6:58:32 PM1/4/15
to makerbo...@googlegroups.com

> *dnewman*
> We might be playing on words here, but you can't reverse engineer a
> "content". If Makerbot was outputting some sort of binary or encoded file,
> trying to figure out how it's generated would be reverse engineering, but
> unzipping a package and opening a json file in a text editor is merely
> looking at stuff :)

1. I get paid an embarrassing amount of money to do a lot of reverse engineering
in the software world. (Network protocols.)

2. We'll have to disagree since there's lots of fine detail. Just seeing what
looks like a floating point number doesn't tell you the entire picture. Maybe
there's range limits. Maybe some parameter at the start of the file rescaled
things. Maybe you have to always use a particular string representation (e.g.,
no E+00 notation). Maybe you cannot use UTF-8 or even ISO-8859-1. In the industries
I work in, you cannot run with "worked for me". People get pretty ticked off
if you haven't explored and tested all the corner cases. As such, just because
it looks obvious and you only had to "look at it" doesn't mean crap. You need
to test edge conditions, do fault injection, etc., etc. in order to make sure
you really understand what the black box parser on the other end will and will
not accept and what frosts its cookies and what doesn't.

Dan

ESAAA lab - fab manager

unread,
Jan 5, 2015, 4:24:58 PM1/5/15
to makerbo...@googlegroups.com
If you're talking about a completely unknown specification for a black box we know nothing about, then I'd kind of agree but I'd maintain that analyzing the content itself is not reverse engineering, you're reverse engineering the logic that went into outputting that content.

I don't get paid an excentric amount of money to do RE on a daily basis, and that may be why I'm wrong, though. But I don't think that rewriting a routine to output files in the .makerbot "format" is any kind of reverse engineering : there's no funny business going on with the params, encoding of the file, the uuid in the metadata, etc... There's no "challenge". x-y-z positions are in mm, extruded material is in mm too, temperature is in °C, and fan speed is a duty cycle written as a float. Everything else is just metadata to display on the pretty screen.
I "reverse engineered" all that info in 30 minutes of squinting at it while seeping my morning coffee, a couple more hours to try to figure if the tags like "Outline" or "Leaky travel move" have any significance and since we know an awful lot of stuff about that black box called replicator (like the bed size or filament diameter) and the general inner workings of 99% of FDM printers, I'll stick with "looks ok".

All those magic parameters have been integrated in my local Cura fork. And it works for me on the small tests I ran (lots of printing parameters tweeks needed, though, but the commands were interpreted just fine).



I won't push that fork on any public repo since I don't want to get Ultimaker (or myself) into trouble, be it legal or an increased amount of people requesting some kind of customer support. I contacted them to ask what they want me to do, we'll see how it goes from there.

As I see it, Makerbot spent way too much time on getting the 5th gen printers to look pretty with the fat button and the colorful screen, and that's a good thing : they didn't spend enough time obfuscating the outputs from the so-called Bundle of Awesome. Or maybe a couple of kind devs at MBI said to the higher ups "no-one will care", secretly hoping we'd integrate other tools in the workflow by ourselves.

Hynek Štětina

unread,
Jan 5, 2015, 4:30:31 PM1/5/15
to makerbo...@googlegroups.com
Hi,
I´m almost done with python script for generating jsontoolpath file from G-code. It supports only G1 and M104/M109 since all other things except the cooling fan is controlled by the FW. I will test it tomorrow on MB, but i believe that it should work :)

H.

Ryan Carlyle

unread,
Jan 5, 2015, 4:38:52 PM1/5/15
to makerbo...@googlegroups.com
On Sunday, January 4, 2015 3:47:25 PM UTC-6, Ryan Carlyle wrote:

3) Free/open-source, standalone software development (like GPX for gcode-x3g conversion) only happens when at least one person exists who is A) passionate about the subject, B) has the right skills, and C) has sufficient time/energy to develop it to completion. Apparently, there is literally no one on the planet who meets those three criteria. 

I retract the above statement, since people now seem to be stepping forward to fit those criteria. 

Hynek Štětina

unread,
Jan 6, 2015, 1:53:17 PM1/6/15
to makerbo...@googlegroups.com
Seems that my python script is working fine. I was able to print the things exported with slic3r. Sadly I can't compare print quality due to the constant extruder jamming :(

Anyway I've discovered one interesting thing which bothered me for a long time. Speed of cooling fan was still unreasonable slow during the print. There was only a .5 duty cycle by default. Change of duty cycle was even not allowed in custom slicer profile (MB: weightedFanCommand - Allows you to set an extruder fan speed. MakerBot 3D printers do not use this setting.). So I changed the duty cycle in Slic3r to .8 and SmartExtruder was not able to maintain the set temperature. Instead of 215°C there was only ~205°C.


I hope that I will find some time next week to finish the script.

ESAAA lab - fab manager

unread,
Jan 9, 2015, 9:12:52 AM1/9/15
to makerbo...@googlegroups.com
After talking to David Braam, developer of Cura, I uploaded the modified fork of Cura & CuraEngine to github.
Right now, it's just a prototype that works on the small test objects I've put into it (like the 20mm box test file), and the .makerbot files that are output were digested by the Replicator and the printing was done. There's obviously a lot of tweaking of the machine profiles & print parameters that needs to be done.
If anyone wants to try it or help in developing it, feel free to get it there :

Jan Skraba

unread,
Oct 22, 2016, 2:45:15 PM10/22/16
to Makerbot Users
Hi
I read your post with interest and have a RepGen5 printer, with the new smarthead+ is great. Using desktop and started using Simplify3d. I am having trouble getting the settings right even with the start point of the AutoConfuration tool. Do you have a good profile that you could export to an .FFF file and post hear or email direct. ja...@shevron.co.uk

tramalot

unread,
Oct 22, 2016, 7:07:52 PM10/22/16
to Makerbot Users
just do not buy crap

TobyCWood

unread,
Oct 24, 2016, 12:43:57 PM10/24/16
to makerbo...@googlegroups.com
You cannot make a profile from scratch. S3D has to know to make the ".makerbot" file. If you go to the Help menu and select "Configuration Assistant" you get the full list of all the printers S3D supports. In there (assuming you have an updated S3D) you will find the Replicator Gen5 profile. Select it and it will then show in the pull down for the process. 
Reply all
Reply to author
Forward
0 new messages