OpenFL: an API for the Form 1 / 1+



See this thread 10 Micron Print Layers. I posted a settings file for FireCast resin. But read it through.

I bought some Photocentric resin to give it a try (this is the result of my first try: but none of the standard settings work on my Form 1+. The resin gets overcured. I’m now doing a settings file for their grey resin and will be posting it in the next few days.

Just one final word. Formlabs has expensive resins in comparison with other suppliers and I as an hobyist in Europe find it hard to agree paying approximately 200€ per liter of resin (resin+vat+transports). But the truth has to be said, no other resin that I’ve tried is as easy and has such good results as the ones from Formlabs.


I think I may have been the first person to post relating to Photocentric resins, and as far as I’m aware, the best results have been for form2 users. I’m currently helping Photocentric with testing of new resin formulations, so should be able to post some results at the end of the month. With regards to what Silvio states regarding prices, he’s absolutely right, it currently cost £150 or so for 1 litre of formlabs resin in the UK, the Photocentric resin is around £45 per kg - not sure which is the largest quantity, but there’s not much between them in terms of quantity and it’s a no brainer in terms of budget. I have had great results just using 100% firm grey, others report great results using the Hard Grey (again, all on form2). But I have also had very good result using a mix ratio of 1 part formlabs grey to 2 parts photocentric firm grey.


I created this icon so I could differentiate between PreForm and OpenFL. I sent it to FL but all I heard were crickets so I figured I would share it with everyone.


Does the API work for the Form 2?


No, this is only for Form 1/1+.



I’m not sure to understand the difference between the motor speed and the laser speed. Can somebody explain this difference please?


When the laser is drawing, it moves at some speed, typically on the order of a meter per second. That’s the laser speed. When the motors are moving, they move at some speed, typically on the order of millimeters per second. That’s the motor speed. Does that answer your question?


Does anyone know if it is possible to set the raise height in openFL ? i have a rubber material and i designed a custom flex fep vat and build plate that works great but i cant raise the platform enough for a good separation.


I think you need to create a custom build platform for that. There is a guy that is making FEP tank and maybe his build platform will save you the trouble:


I have been asking for this since the questionnaire sent out to Kickstarter backers of the original Form 1 before it even started shipping and on the Kickstarter forums. I have also if you look through my history had terrible luck getting machines with some real problems, but I’ve stuck by you guys believing that most of the machines you make where better than the ones I ended up getting and upgrading as time went on hoping you had fixed some problems and a new machine would be in better working order. The last round of this was me selling a freshly recalibrated and repaired Form 1+ and cashing in the Kickstarter backer coupon to get a shiny new Form 2. This resulted in me, for the first time since I received my Kickstarter Form 1, having a dependable Formlabs printer without any major flaws, even though it’s still not aligned as well as I would like. Now my request has started to be met but the only correctly working Formlabs printer I’ve owned out of the many I’ve been through is excluded :(. Well it’s good to hear it’s out there and hopefully you guys will extend some of the features to include the Form 2’s as they are awesome machines and more flexibility would be awesome.


Hi All!
Is there anybody who tried this OpenFL with Detax or Dreve reisins?
In our company we have Form2 printer and we’re using it for audio solutions with Detax reisins…with quite nice results. Although it could be better.

If I’m right getting longer exposition time with less power from LED should give us better resolution and thinner layers? Do you think this would give better results (we have “steps” in the sound-tubes)?
If so I think we can buy Form1+ and play a bit with the setting :slight_smile:
Do you plna to create OpenFL API for Form2 as well? Ther is open mode in Form2 but you have to use pre-set setting which can create some issue with the outcome.


I’m afraid at the moment we do not have plans to provide OpenFL for Form 2.


What about Detax materials? Do you have any results/information?


Still no plans for Open FL for Form 2? I would be very happy to have it.


Hello. What is the safe laser power limit for Form 1 (not +)?


One would think by now that this would be a simple process already incorporated into the form 2. I would wager that more people would purchase the form 2. Especially when carbon fiber filaments are available for standard 3d printers


Hi. Thanks for creating this forum. I have Form1+. I liked the idea of controlling the curing setings so I did firmware upgrade using the preform 2.3.3 oOpenFL software. The minute I pressed the firmware update icon the printer froze and shot down. It is now a dead rock, not seen nither by the computer nor the software. What should i do. Please help. Thanks.


HI, great stuff here.
Is it possible to read in an FLP without a printer?
I want to download them from the SD and alter the commands.
After that I want to put them back on the printer and print them.

Thanks in advance


You have to print the FLPs from Preform to a Form 1/1+, then read them back with the API; there’s not a way to go from Preform to FLPs on your local machine.


Hi. sorry for the misunderstanding.
I want to get the .flp files that were formerly send to the printer from my SD card in the printer on my hdd and the into python using the API. Is that possible?

Anyway. Is ist possible to alter the XYMove commands like the ZMove command.
I have in layer 21 these points:

[LaserPoint(x=34858, y=34845, dt=4), LaserPoint(x=34858, y=34792, dt=3), LaserPoint(x=34728, y=34886, dt=8)]

I user this command to change them:

layer[21].points = 32000,32000,5

this should give me a Laserpoint with x=32000 y=32000 and a dt of 5

layer[21] gives me

File “”, line 1, in
File “/home/pi/OpenFL-master/OpenFL/”, line 125, in repr
File “/home/pi/OpenFL-master/OpenFL/”, line 167, in _reprContents
def _reprContents(self):
File “/home/pi/OpenFL-master/OpenFL/”, line 171, in points
def points(self):
TypeError: ‘int’ object is not iterable

I also tried numerous commands with rackets but nothing works.

layer[21].points = (32000,32000,5)

then layer[21] gives
Traceback (most recent call last):
File “”, line 1, in
File “/home/pi/OpenFL-master/OpenFL/”, line 171, in points
def points(self):
TypeError: ‘int’ object is not iterable

Thanks for the reply.