We're getting ready for RC1 of the UFID (universal filament identification system) spec,

We’re getting ready for RC1 of the UFID (universal filament identification system) spec, and one of the things we need is a list of print materials. Here’s what we have so far, let me know if anything is missing. Note that we have a flag elsewhere in the spec for composite materials, so materials like ProtoPasta’s carbon-fiber PLA don’t belong on this list, just the base polymer.

  • 0 - Unknown/no number assigned
  • 1 - PLA (Polylactic Acid) 4032D
  • 2 - PLA 4042D
  • 3 - PLA 4043D
  • 4 - PLA/PHA (Polyhydroxyalkanoates)
  • 5 - High Temp PLA
  • 6-7 - [reserved for additional PLA formulas]
  • 8 - ABS (Acrylonitrile Butadiene Styrene, unspecified formula)
  • 9 - MABS (Methyl Methacrylate Acrylonitrile Butadiene Styrene)
  • 10 - P430 ABS (“ABS Plus”)
  • 11-16 - [reserved for additional specific ABS formulas]
  • 17 - PC/ABS Blend
  • 18 - PC (Polycarbonate)
  • 19 - PETT (Polyethylene Terephthalate
  • 20 - Nylon 618
  • 21 - Nylon 645
  • 22-23 - [reserved for additional Nylon formulas]
  • 24 - PCL (Polycapralactone)
  • 25 - PVA (Polyvinyl Alcohol)
  • 26 - HIPS (High Impact Polystyrene)
  • 27-31 [reserved for additional soluble or reworkable materials]
  • 32 - Flexible polyester
  • 33 - TPE (Thermoplastic Elastomer)
  • 34-39 - [reserved for additional flexible materials]
  • 40 - HDPE
  • 41 - PP (PolyPropylene)
  • 42 - PMMA (Acrylic)
  • 43 - POM (Polyoxymethylene, AKA acetal/polyacetal/polyformaldehyde/Delrin)

Not yet assigned due to formula uncertainty:

Shouldn’t there be a general PLA-unspecified entry, alongside ABS-unspecified, and so on?
And then the more specific formulations listed after that?

There shouldn’t be an entry for ABS-unspecified, but there’s so much of it out there and in many cases even the distributers don’t know what formula it is (there are also a lot more ABS formulas), while anyone selling PLA should now which formula it is.


Oh, and most of the ABS formulas work with pretty much the same settings, while there’s as much as a 40-degree difference between the print temperatures of different common PLA formulas.

That presumes everyone is buying Natureworks.

Are tolerances really tight enough to make a machine-readable format necessary? I feel like I’m always adjusting the temperature and flow rate slightly even print-to-print, let alone between different batches of filament.

Where do I get the equation that converts from the UFID info to a perfect print every time?

@Spencer_Bliven In the long run, the information we’re collecting will be used as inputs for an algorithm that will automatically adjust temperature based on material, print speed, thermal properties of the specific extruder being used, etc.

I don’t know who you’re buying from or what machine you’re using, but I print new stuff every day, on several different machines, and when I change models or open a new spool of the same filament from the same supplier, I never have to adjust temperatures.

@Joseph_Chiu Do you have a better reference for what formulas of PLA are available? The only one I see is the reprap wiki, which only lists three, and everything else I’ve found talks about what’s mixed with the PLA, but not about the formula of the PLA itself.

Perhaps ask @Vik_Olliver He makes the stuff after all.

@Joseph_Chiu can you send me whatever formula information you have on the plastics you sell? It will probably give me a better idea of what formula specifications are needed.

It may be a good idea to reserve numbers for specific TPE’s and not just a general TPE category, as there are a lot of TPE’s. Maybe some catergories such as urethane tpe. The majore TPE categories are listed here: http://en.wikipedia.org/wiki/Thermoplastic_elastomer . Which reminds me it may be good to have a Thermoplastic urethane (TPU) category. Although I have not heard of anyone producing such filament yet.

@Ben_Malcheski Good point. I’ve changed TPE to Urethane TPE (which I’m pretty sure is what Ninjaflex and Filaflex are). The additional numbers reserved under the flexible materials heading will be allocated when materials are tested and available. I don’t want to reserve numbers for materials that may not turn out to be printable or that aren’t available in the form of a usable filament.

I wouldn’t use a simple numbering system. Its very limiting, will get disorganized/confusing fast, require a lookup table and already obsolete. Should be something like codes with letters with base / sub base / color (rgb value) / texture system for more human readable format. Something like red transparent pla = PLA-4042D-900T … Or laywood cherry = PLA-lay1-600-wood. If we start this, we shouldn’t think like “640k memory is enough”…lets be more future compatible and open to new stuff we can’t predict.

@Diego_Porqueras_Deez This list is only for the 1 byte blocked off to identify the polymer. Color data, transparency, additives, and human-readable identifiers all have their own separate sections of the code.

@Whosa_whatsis I still don’t think it’s a good idea… it’s going to make a mess of things to maintain. This is not very good for a long term future system, too simple in a very complex and dynamic field. Technology is way beyond that anyways…I think 4-5 chartacter codes to start would be more long lasting. If you don’t like letters, at least start in the 1000’s to allow expansion to each type: 1000-1999 = PLA, 2000-2999 = ABS…etc… lets not paint ourselves into a corner really fast. Also, remember, colors do affect the temperature settings in many cases, so just knowing the first type may still not be enough.

@Diego_Porqueras_Deez Please actually look at what we’re doing before saying that it’s wrong. We’re not relying on the polymer ID for temperatures. We are storing 6 different temperature values in the code. Currently, the polymer ID isn’t really used for anything except giving the user and idea of the properties perhaps making it possible to look up an MSDS. All of the technical data actually used by the printer is stored elsewhere.

Also, we are working with machines and storage media that are very limited. Our microcontrollers don’t have 640KB of RAM, they have 8KB or less. The storage media for this data are QR codes (where the more data you try to store, the bigger and harder to read the code gets) and eeprom chips with as little as 128B (that’s bytes, not kilobyes) of storage. We’ve established a versioning system so that we can expand the system in the future. If we find that there are far too many filament types to fit in our table, a future version may add a second byte after the existing one, giving us 255 additional options for more specific versions of each of the IDs currently allocated without any re-ordering. ABS and PLA each have blocks of about 8 values currently allocated, which translates to over 2048 if we add that second bit later.

I know, I realize this, but we got to look at the best of what’s available now, because by the time this gets implemented, everything will be already be much bigger, better…The next gen controllers around the corner already have much more memory…That’s why we buy the Macs as soon as they come out, so it lasts longer…no looking back : P

Example: https://www.sparkfun.com/products/525 has 256K for less than $2 retail. Wouldn’t this work?

The plan is currently to use 1-wire, not i2c, which means that one would not work. Also, the data still has to be carried by QR, and you don’t get qr codes that store 2,4,8,16,etc. times as much while looking exactly the same every few months

Frankly, its too late to make the kind of changes you’re suggesting for the RC1 version. We can consider them for a later version, but if you didn’t like how we were developing it, you should have said something sooner. Right now we are only looking for feedback on the above list of ID codes designed to fit in one byte allocated for this purpose.