, ,

FAB UI, the FABtotum user interface.

A while ago we talked about the FABtotum User Interface. Today we’re back on the topic to discuss some of the features of the FAB UI.
You may have seen many 3d printers web interfaces, but how many multipurpose personal fabrication user interfaces? None? so did we before starting this project.

In the Alpha version of the personal fabricator there was simply no user interface. to print you had to rely on external software like Pronterface to print, a processing script to scan on the PC.
The main challenge we faced with defining the FAB UI was to answer the following questions:

  • How do you provide a integrated panel to assist you seamlessly during all the personal fabrication process?
  • How do you do that without making the interface too complex or alienating the user?

FAB UISetup Wizard
Once the FABtotum starts for the first time, the user is asked to set it up selecting a wifi network, user & password, and other things.
The informations provided (like email, user etc) are saved locally on the FABtotum SD card and are used to identify the owner.The email in particular will come handy in future updates.

User Login
A log in is required for safety and security purposes.
Safety because someone in your network could just access, push a botton and crush your hand while you are adjusting an object to scan in another room, Security because your local file database, as well as your informations or projects should not be shared unless you want to.
This makes also perfect sense if you think about connecting the FABtotum to the internet and allowing remote logins.

The Dashboard
The Dashboard is the first page you see after loggin in.
Current tasks and previous ones are saved here. The dashboard can be costumized by changing the position of the tables. Plugins (see below) can alter or add elements to the dashboard as well. Right now we are sticking to the “less is more” principle, but you might as well fill the page with everything you have or you develop later.

The scan menu is actually a section of the UI where you can select more than one scanning method. you can find some insights of those methods here.
As you can see each process is guided in a wizard-like procedure, wich has been chosen because it can break up the informations needed in multiple tabs, without flooding the screen with informations.

for example the scan quality (wich is determined by the camera resolution, numbero of points collected and postprocesses used) as well as the scanned area, can be selected with draggable controls.

A rubber duck is used to show the differences between the various settings.

Create / Print
The create menu is directly connected with the object manager (see below) to be able to print or mill directly from the available objects you saved.
You basically select the compatible files and click next.
Before printing you are prompted with some info (depending on the situation) and tips on how to better print or mill.
During the print process the user can override speed and temperature, while keeping an eye on the process.

Once the process is started some functions will be locked (for example you won’t be able to jog or make scans, but you’ll be able to browse the library.)
Thanks to this approach you may as well launch the print from your desktop PC and then log in the UI with a tablet and follow the print up close, like we did during the tests of the beta prototype. This is also true for remote access (connected to the UI over Internet).

The jog feature is a must have in each and every CNC machine, to position the machine and do manual operations. The Jog in the FABtotum supports both additive and subtractive machining, allowing to switch from additive to subtractive (A/E). The Jog interface can be costumized easily.

Object Manager (aka Object library)
This is where things gets interesting.
You can “upload” from the client (your browser) or from a USB stick the supported files.
In the FAB UI one “object” is not “one object”. Let me explain:
You scan an object using the rotating laser scanner. you get a point cloud file. but the thing has holes because of the limits of that particular scanning method.
You go back and do another scan with, say, the Z-probe.
You now have 2 clouds. If the points are enought to reconstruct the object you can go ahead, otherwise you can reiterate this process.
Once you are done you’ll have, let’s say, 3 ASC cloud files.
From the Object manager you can join those parts and obtain the complete point cloud.
Once you have that you may download it from your browser, or try to reconstruct it onboard (experimental/WIP feature). either way you obtain an STL.
Now you have 1 cloud file and one STL.

You can slice it directly on the FABtotum (experimental/WIP feature)  and obtain a G-CODE.
Let’s suppose that your object is made of more parts, and some of them are not made with 3d printing, but with the built-in milling motor of the standard-issue hybrid head.
You can add another GCODE to the “object”.
Or you may add another STL to slice and obtain all the parts needed.
Or you might want to run the mesh recontruction on a good PC to increase the quality of the scanned data. Guess what? you still have the raw point cloud to download and process!
The result, as you can see, is that the user doesn’t need to mentally switch from additive to subtractive or “plan” too much, and will be prompted by the interface to perform manual operations before starting different procedures if needed.

Since the FABtotum can be used for many purposes other than the ones natively supported, one of the objectives of the development of this interface was to allow costumization where it made sense.
Plugins can be developed as an easy way to add functionalities to the interface and the device without introducing changes on the interface structure.
This way each plugin can be shared across all FABtotum users easily.
One plugin, for example, would allow STL or Gcode previews during the “create” process, something that required some external software.
We demoed this concept with the excellent Gcodeviewer by Joshua Parker.

We expect to see many great plugins from the community and we are planning to host those and allow direct download and installation directly from the interface (CMS-style).

In the settings page you can decide how the the FABtotum and the interface behaves.
Some of the settings are about the the device, others are about the appeareance of the UI.
one example is chainging the skin/theme of the UI, the other is setting the lights inside the working volume, directly changing the RGB values.
In the settings we plan to add diagnostic tools (like a “self test”), or a cleaning wizard, a leveling wizard, or a spool change procedure, etc (not showed here).

We also have python running in the shadows, provinding that middle level of interaction between the UI and the Firmware (see development update 4 on IGG).
This is used for example, to give the user access to a python script running at boot, wich runs with root privileges and can be used for a lot of things. Really lots. of . things.

On the FABtotum UI you can always check the latest updates available from the FAbtotum server. The update process is guided and automated both for the UI and the Firmware itself.
Those updates (I won’t stop to underline this) are not mandatory, they are just suggested by the UI since we plan to improve the interface further and eventually fix whats breaks in the process.
The updater notifies the user in the top left corner (the blue zero means no update has been found due to lack of internet connectivity).

Open source development:
Speaking of updates, the software sources will be online on GitHub under the Creative Commons Attribution-Noncommercial-Sharealike 3.0 Unported Licence, when ready. contributions will be integrated in the stable version and released for everyone.
Same goes for the firmware!