Showing posts with label Do It Yourself. Show all posts
Showing posts with label Do It Yourself. Show all posts

Wednesday, January 24, 2018

Raspberry Pi 2/3 Weather Sensor Shield - Review




I would like to thank Element14 and TE for selecting me for this roadtest. The Raspberry Pi 2/3 Weather Sensor Shield (DPP904R000) piqued my interest for a couple of reasons. First is my ongoing interest in evaluating sensor suits. Because more companies are producing their own sensors its becoming increasingly more complex to select a sensor. Adding these sensors to my comparison chart would allow for a better understanding of the offering from TE. As an ongoing project a platform, for easy comparison of the data, has not yet been established. The second reason for wanting to review the Weather Sensor Shield is a weather balloon project that is due to be completed by the time the weather is more favourable.

First impressions - Unboxing (Lack Thereof)
The board arrived in a padded envelope and an anti-static bag. While I often prefer minimal packaging this was very much bare bones. Being accustomed to receiving even single components in large boxes this was very unusual. Without even a small box for protection, keeping the sensors safe is that much more complicated. Another point to note was the lack of any documentation. While most products do not ship with lengthy guides they do at least ship with a getting started guide or link to an online document. In this case there was nothing included to get a new user started.



The packaging the board arrived in, a shipping box from Element14, which contained the padded envelope in which was the anti-static bag 

On the positive side the board is well marked. Each of the four sensors are clearly labeled. The connector orientation is also well marked to ensure correct mounting. Overall it is a simple board with ample space around each sensor to prevent thermal and mechanical interference between sensors.


Each sensor is clearly labeled as is pin #1 on the connector

Test Outline
I had outlined a series of tests for this kit to determine how user friendly it is as well as how it performs against its outlined specifications. Unfortunately, due to some issues that will explained, most of these tests could not be completed before writing this review.
The test procedure I had outlined for DPP904R000 contained approximately 5 individual tests. These ranged from the usual to those definitely not intended for this kit. The tests outlined in the proposal where as such:
  1. How easy would it be to use this with another platform 
  2. Can we get the calibration data from the PROMs easily and reliably 
  3. Does the data from various sensors match up (they each have a temperature sensor) 
  4. Can these sensors survive the outdoor environment, in a sheltered but not sealed enclosure 
  5. Can the needed calculations be carried out on a microcontroller without overloading the system 
  6. What is the true power consumption of these sensors 
  7. What is the theoretical maximum altitude that can be measured with the pressure sensor (taking temperature as well as air pressure into account) 

Due to mainly documentation complications only the first two test have been conducted so far. As more progress is made further updates will be added.

Platform Compatibility
Physical Compatibility
The first test was to see if the DPP904R000 is compatible with with other platforms that have a Raspberry Pi connector. The board selected to test this kit with was the MangOH Red from Sierra Wireless.


MangOH Red from Sierra Wireless

This board has a 26 pin instead of a 40 pin, Raspberry Pi connector. Even with this, only two of the six pins used are not supported. These two pins are apparently used by the Raspberry Pi to read a shields ROM chip for identification purposes. Since the ROM is not used with the MangOH Red, it would not be a concern.


The DPP904R000 mounted on the MangOH Red, only 26 of 40 pins make contact

Communication Compatibility
Using terminal commands to test the basic compatibility between the boards was the next step before moving to any of the other tests. This would also be the first time the documentation was consulted in detail. Any product that survives needs good documentation or support. This is where the Raspberry Pi Weather Sensor Shield started to have issues.


i2cdetect shows 0x76 is reserved by the system and that only the TSD305 at 0x1E is detected
 
The first sensor tested was the HUT21D humidity sensor. This sensors has an easy to follow communication structure. Shortly after reading the datasheet humidity data was being reported back. This quick victory gave a positive feeling towards the Raspberry Pi Weather Sensor Shield, sadly this victory was short lived.

The HTU21D humidity sensor with thermal isolation 

The second sensor to be used with the MangOH Red was the TSYS01. The address listed for the TSYS01 temperature sensor is 0x76 and 0x77 depending on whether the CSB is pulled high or low. Since the MangOH Red has a sensor (BMP280) at 0x76 the TSYS01 sensor could not be reached at this address. However, because the TSYS01 can change its I2C address, there was hope. Looking at the schematics it was revealed that TE did not design this option into their board. While cost could have been a factor ($0.03 for the 0𝛀) there are ways around this (Freescale now NXP, is great at giving options without increasing cost). Unfortunately because of this, the TSYS01 is unusable with the MangOH Red. It would later be discovered that in fact the address could not be changed without causing another conflict.


The TSYS01 temperature sensor with multiple layers of thermal isolation 

The next sensor to be checked for compatibility was the TSD305. While even bad hardware can be made to work with great documentation, no hardware can work with no documentation. This was in essence the case with the TSD305. 

The TSD305 contactless temperature sensor 
 
The datasheet lists the address as 0x00. Interestingly Raspbian (which this board is specifically made for) and other Linux distributions, reserve this address and so its not accessible to the userspace. This left this sensor unusable until I was lead to TE’s GitHub repository. Initially I was shown python drivers, while I was working in the terminal and C this was still more promising than the documentation. Looking through the files it became clear the correct address for the TSD305 is 0x1E. Due to receiving this information rather late, no further testing was conducted with this sensor.


Datasheet displaying 0x00 as the sensor address 

The last sensor to be tested was the MS5637 pressure sensor. Following the sequence of steps need to complete a measurement it is unclear what addresses need to be written/read to/from. At issue are the large number of address available write too. Whether reading pressure or temperature data there are 6 different registers that can be written too, each with a different OSR value. Compounding the matter, is the lack of explanation regarding OSR or how it affects the measurements. Choosing one of these at random the data still needs to be read from the ADC. With no mention of one or two ADCs, at first glance is unclear what address each data point should be read from. Through more careful reading it can be inferred that there is in fact only one ADC.


The MS5637 pressure sensor

Once the sequence of events were clarified an attempting to connect with the MS567 was made. The address for the MS5637 is listed as 0x76. As previously noted, this address is already used by the TSYS01. Besides this address not being incompatible with the MangOH Red, its not compatable with the TSYS01 on the same board (DPP904R000 ). With the unclear sequence of steps along with the an incorrect device address, this device’s documentation is the worst of the four sensors on the DPP904R000 .


Datasheet displaying 0x76 as the sensors address 

As mentioned with the TSD305, the driver files do contain usable information. Very disappointingly TE carried over their mistake from the documentation to the repository. While the hex value is listed as 0x77, which is correct, no one checked the binary value copied over to notice it is in fact 0x76.


The define statement for MS5637_ADDR lists the address as 0x77 and 0b1110110 which are not the same value
 
This leads to another issue. Why would TE select address for different sensors to be the same. Regarding the ability to change address the TSYS01 documentation states “Therefore, two TSYS01 can be interfaced in the same I2C bus”. How can this be so, if the application requires a pressure sensor the second address would be consumed by the MS5637. With 124 address available TE selected two separate sensors that could easily be used in the same application to have overlapping addresses.

Easy of Use with Higher Level Code
The sequence of steps needed to conduct a measurement for these sensors are not necessarily very efficient. The HUT21D requires the system to wait for the measurement to complete before receiving a response. During this time there are two options available. The first option is to wait while the HUT21D holds the SCL line low. This prevents anyone else from using the I2C bus. It may also hold up the system depending how the code is implemented. The second option is to poll the HUT21D waiting for an ACK. While this allows others to use the I2C bus it does require the system to poll the sensor. The other three sensors only provide polling as an option to retrieve data. A better and more efficient option would be to implement an interrupt pin. While this could still require polling in some systems, the time needed to do so would be reduced from milliseconds clock cycles.

This may not be an problem in some systems and even more so in the systems that appear to be targeted by TE. However in low power or time critical systems the extra cycles can reduce battery life or the ability to process data ontime. This would lead to a contradiction in the claim to low power yet the need to use more power to execute and retrieve a measurement.

Documentation and GitHub Repository
As previously noted the documentation for these sensors is lacking, some more than others. There is both missing information as well as clearly incorrect information. The biggest issue found working through these datasheets was the with the TSD305. In this case the sensor address was incorrectly listed as 0x00 instead of 0x1E. Other less critical omissions are lack of explanations or clarifications on how the sensors behave. The most noticeable of these is the OSR values in the MS5637 datasheet. Also unclear in this datasheet is the number of ADCs, the relevance is whether or not there are multiple addresses to read from or not. This though can be clarified with a more careful reading of the datasheet.

One thing that that is very helpful and allows a user to achieve the stated accuracy quickly are the worked examples. The datasheets for each sensor has a fully worked example from capturing the ADC value to computing the actual measured value. Even the simplest of sensors, the HUT21D, has simulated input data that is then converted. This gives a user real values to run through the code to check the calculations with.

Possibly the biggest omission in the documentation is the mention of a GitHub repository for these sensors. This repository contains generic C and python drivers. Also in the repository are demos and drivers for Arduino. The complication here appears to be two different product pages for the same product. The page linked from Google as well as some of the vendors does not mention GitHub or IBM BlueMIX. However, another page found does, under “Related Materials”, mention both of these resources. Also at issue is, while these are mentioned in the datasheet for the DPP904R000, it is done so at the bottom where most companies put their copyright and revision information. This means its in a place a decent number of users will not look.

This lack of exposure puts TE’s sensors at a disadvantage over other sensors. While other companies are showing off the drivers for their sensors, TE is not effectively letting users know theirs exist.

Next Steps
Moving forward I am looking to complete my testing with this board. Once completed the data should be available in real time to compare with other sensors in my lab environment. Beyond this is the hope to be able to integrate the sensors (excluding the TSYS01) in the weather balloon project. This would help to determine how reliable they are in such an application as well as how altitude affects them. Included in this is a test to see what is the maximum altitude that the MS5637 can reliably report.

Conclusion
From the limited amount of testing possible with the DPP904R000 it can be said this board is mostly compatible with other platforms. At issue is TE’s decision to not take advantage of the ability to change the I2C addresses where possible. This not only limits its compatibility with the MangOH Red but, potentially with other boards that may be used in conjunction with it. Indeed it is true that this would not help on this board, that is because TE has decided to allocate overlapping addresses to different sensors. Why TE would select address that potentially conflict with their own sensors is baffling at least and self harmful at worst.

The documentation also for the most part does allow for a developer to complete his task. The problem here is the extra time needed to do so due to missing or incorrect information. With a few fixes this could easily and quickly be resolved. Along the same lines is to fix the product pages. Not just the page of the DPP904R000 but of each sensor to include a link to the GitHub and IBM BlueMIX pages.

Once these obstacles are resolved the DPP904R000 would be a great product to work with for most applications. Not included in this category would be time critical and potentially power sensitive applications. The stated accuracy, factory calibration make for a reliable sensor for indoor environmental sensing applications.


Original post on Element14 can be found here

Tuesday, September 26, 2017

Amphenol Air Quality Engineering Dev Kit - Review



I would like to thank Amphenol and Element14 for giving me the opportunity to review this set of sensors. Having spent the last year or so working with two environmental sensor systems I wanted to see how Amphenol’s solution compared. My initial proposal was to test Amphenol's solution in an environmental chamber where I would be able to test the system in a controlled and calibrated environment. Unfortunately this was not possible due to unforeseen circumstances.

Having tested the other two systems, a LiVPi - intended for indoor sensing as well as a AirVisual Node - intended for both indoor and outdoor sensing, I decided to use these as pseudo calibrated units. All three units (the LiVPi, AirVisual Node and Amphenol’s solution) have temperature, humidity and CO2 sensors. Beyond this they differ in that the LiVPi also reports pressure, the AirVisual Node Reports P2.5 concentrations (and P10.0 but only via file access) and the Amphenol solution provides dust concentrations of various particle sizes.

With the increase in air quality awareness there has been an explosion in companies providing sensors as well as in the range of sensors available. The issue then becomes how to know the quality and reliability of each of these sensors. Unlike temperature or humidity, CO2 and dust concentrations are not things we grow up paying attention too and become innately aware of. This makes understanding as well as knowing when a sensor is reading correctly is a lot more difficult.

I have therefore taken a multi staged approach to reviewing these sensors. Firstly I would like to see how robust they are. Being environmental sensors I would like to see how they live up to the environment they should be able to sense. Secondly I would like to see how well they agree with other sensors, both calibrated and not calibrated. Lastly and because this kit is specifically designed for testing the sensors to then be used in a standalone product, how easy is it to understand their documentation and subsequently use them.

Robustness

Sensors that are meant to sample and test their environment should be able to withstand that environment with no issues. One way to be sure they can survive is to push the boundaries and see how they react.
Using a rural environment that is open to the sun and wind (sheltered from rain) I decided to leave the unit outdoors for two weeks along with my other two units. The idea behind this was to see how the sensors would behave as well as test the ABC logic of the CO2 sensor. I also wanted to see if there would be any effect on the readings of the sensors while exposed to the elements.

The first and most noticeable environmental element that the sensors needed to deal with was the wind and more specifically the sand. Being only a few tens of meters from the beach the wind can be quite vigorous (sustained 23 km/h, gusting to over 31 km/h). I was quite impressed that even through this the sensors carried on working with no issues. While the temperature and humidity sensor is IP67 rated the others are not. As can be seen in the picture below, after two weeks the board and sensors are well covered in sand.

Amphenol sensor kit covered in sand after 2 weeks of outdoor testing

An interesting point, whether designed as such or not the dust sensor, while adequately sensing dust conditions did not get sand in the sensor. This was verified both by looking inside the sensor after removal of the cover tape and inspection of said tape. It should be noted that while the sensor was not pointed into the wind but, was approximately parallel to it, the area where the sensor was sheltered has vortexes and as such sand could have gotten into the openings. The CO2 sensor had no issue due to the air permeable covering over the sensors opening.

Tape used to cover the mirror cleaning port with no viable sand on the inside section

Along with the wind there was rain and often enough driving rain. Together the wind and rain made quite a formidable duo. Fortunately the sensors remained dry for the most part. There were some rain drops that landed on the CO2 sensor but again there was no adverse effects. While not waterproof or even rated as water resistant, the air permeable cover worked well at keeping the few raindrops that did land on the sensor out.



Throughout the full two weeks the sensor array had no issue at all. The CO2 sensor was quick to acclimatize and start producing agreeable readings. The temperature sensor was the closest to the actual temperature of the three sensors placed. Even with direct sunlight on the sensor the Amphenol sensor maintained the lowest overall reading. I would like to note an issue with the temperature/humidity sensor that was received. The air permeable membrane on the one side appears slightly removed potentially allowing for water and other particles to enter.

T9602-3-D-1 with cover properly covering air opening
T9602-3-D-1 with cover not properly covering air opening

Agreement between sensors

Having two other sensor kits that have been tested in a calibrated environment I though this may be a valid and useful way to test the Amphenol sensors. Unfortunately I did not have a method setup during this period to log the data from the three systems. This is something that is currently being worked on and will hopefully be set up shortly with a publicly accessible web interface where others can see and compare the data between the systems.

Temperature results from testing the LiVPi and AirVisual against a calibrated instrument

Testing was therefore conducted using visual checks at random times. With the exception of external heating (due to direct sunlight) the largest temperature reading spread was approximately 2 ℃. While this does not confirm the reading of the T9602-3-D-1 is calibrated within ∓ 0.5 ℃, it at least shows it's very close.

While the temperature measurements have been very close the same cannot be said for the other sensors. The humidity measurements have been as far as 10% apart  with this being predominantly noticed with the AirVisual Node. The measurements between the LiVPi and the T9602-3-D-1 have been closer with variations usually under 5%. From the calibrated test results it can be seen that the LiVPi does have a curve closer to the real values. This would imply that the T9602-3-D-1 is again pretty close to if not at its stated accuracy.

Humidity results from testing the LiVPi and AirVisual against a calibrated instrument

The last sensor that could be checked in a direct comparison with other sensors was the CO2 sensor (T6713-6H). Of the sensors this is the first that we have no innate understanding of. For this reason this is the first measurement that there is complete reliance on sensors. The spread between the three different sensors was very large. Unfortunately in this case Amphenol solution was the outlier. In outdoor test both the LiVPi and the AirVisual Node were measuring around 400 ppm, which is normal background CO2 levels. In the same environment the T6713-6H was measuring ~350 ppm which depending how you look at it could be pushing the “±30 ppm ±3% of reading” specification. In an office environment the three sensors have been seen measuring: 1485 ppm - T6713-6H, 1241 - LiVPi and 1197 - AirVisual Node. In this case the Amphenol solution is way past its accuracy in comparison with the other two sensors. While this is not definitive and definitely allows for determining basic air quality it leaves the stated accuracy in a bit of question.

Amphenol’s T6713-6H CO2 sensor solution

Senseair K30 CO2 sensor solution

It should be noted that in comparison with the LiVPi sensor (Senseair CO2 Engine K30) the T6713-6H is much more compact and product friendly. Due to its smaller size it would be a lot simpler to incorporate in end user products. The ability to use I2C and UART also allows for easier incorporation. The T6713-6H does have a smaller input voltage range (4.5V ~ 5.5V) in comparison to the Senseair solution (4.5V ~ 14V) which can affect where or how it is incorporated in products.

The last sensor included is the SM-PWM-01C dust sensor. While no direct sensor or calibrated source to test with, the AirVisual Node’s P2.5/P10 sensor was used as a semi comparison. During the three tests that were conducted mixed results were obtained as will be explained. The first test was using smoke. Newspaper was burned in a low oxygen environment causing lots of smoke to be produced.

Initial test setup using smoke

Unfortunately in the above setup the dust sensor would not register any particles. The setup was then changed to have the sensor down wind from the smoke, at this point the sensor started to register a somewhat elevated particle count. This was not at all encouraging as one of the stated uses is smoke detection. In contrast the AirVisual Node which was upwind from the smoke immediately registered elevated levels. This can be seen in the images below

Levels before and after testing using smoke

AirVisual’s display clearly indicating extremely elevated levels of fine particles

It should be noted that it was later discovered that the covering to the mirror cleaning port was not in place. While the bad measurement quality may be attributed to this, I believe the levels measured should have been elevated if even only slightly. This belief is taken from the levels of both P2.5 and P10 measured by the AirVisual Node. At those extremely high levels something should have registered if even only slightly.

The next test, done by accident was a cooking test. Frying oil produces a lot of very fine smoke. While this may have a noticeable odor it is not very visible. In this case the dust sensor did register a “Yellow” condition. These two test left the sensor in a limbo regarding its reliability. A third test was therefore conducted.

The last test performed was with sifting flour in a room with airflow produced using a ceiling fan. In this case the results were again mixed. While sifting the flour through a very fine sieve no elevated dust levels were registered. To be sure enough dust was produced, the dusting went on for more than 30 seconds and relatively close to the sensor. This left a fine white coating of the testing area and sensor kit.

T6713-6H being tested with flour

When this test was thought to be completed and the sensor to have failed, an air compressor was used to blow the flour away. This was when the sensor started to register elevated levels. The sensor quickly registered levels as high at 40 (ug/m3, units unclear).

T6713-6H detecting fine flour being blown with an air compressor

Overall this left me wondering about the specifications of this sensor as well as its intended uses. Perhaps better airflow should be recommended or range of particle size detection better explained. Either way, this sensor did provide some usefulness detecting fine smoke (frying with oil) as well as fine flour but not seemingly larger smoke or flour particles.

Documentation and easy of use

This kit and the sensors in the kit are provided in such away as to allow developers to test them and learn how to incorporate them into new products. In order for this to be successfully achieved accurate, reliable and understandable documentation is required. This unfortunately is also one of the last steps in getting a product ready to be shipped. Becasue of this a decent number of products have great potential but have unsatisfactory documentation at best and confusing documentation at worst. Since this kit comprises three sensors and one daughter board there is a mix of documentation.

Starting with the dust sensor (T6713-6H) the documentation was terrible. The images are not intuitively or labeled in a useful and meaningful way. This has lead to unclear explanations and misunderstandings. Output pins are labeled but not necessarily explained. There are 5 pins of which 4 are explained. The last pin either called RX or N/C is not explained and sometimes not even labeled. It can only be assumed that this pin has no real use but with differing and somewhat contradictory documentation this is unclear. How the sensor detects different particle sizes is also not well explained which has lead to an unclear understanding of how to use the sensor.  

Image explaing how particles are counted/measured but not well explained

There are references to the figures in the documentation but most of the figures are not labeled leading to a need to count through the images to find the figure being referenced. The documentation also uses abbreviations that are either not explained or explained somewhere else in the document. It is clear from the documentation the low power consumption of the sensor (5V @ 90mA), it’s fast start up time (90 seconds) as well as the sample rate (5 Hz).

The other two sensors have much better and clearer documentation. The simpler of the two is the T9602-3D-1 temperature/humidity sensor. With a stated accuracy of ∓ 0.50 ℃ and 2% RH over its range of -40 ~ 125 ℃ and 0 ~ 90 RH (RH >90% accuracy can suffer up to ∓ 3%) this is a very usable and capable sensor especially with its IP67 rating. The documentation is clear on how to hook up the sensor, what external components are needed as well as the power consumption (3.3V @ 750 ~ 1100 uA). It's also clear that while there are 8 pins on the internal sensor IC only the communication and power pins are broken out. It would have been nice to have signals such as high/low alarms broken out as well as the ready signal. Its also nice to see that the 3.3V power line is separated from the signal line by ground. This is a well known but not always used technique to reduce EMI. The communication protocol (MODBUS) using both I2C as well as UART is well explained both in the text and with a very well designed infographic.

Infographic explaining the communication protocol for the T9602-3D-1 sensor

Both the I2C address and communication speed is configurable with a large range of options allowing for lots of sensors to be connected on the same I2C port. Tips on how to use the sensor for most accurate measurements are also mentioned. This includes using pulse measurements to reduce ontime of the sensor thus reducing heating of the sensor. Overall the documentation follows a logical progression making the reading and understanding of this sensor easy. It should be noted that the pages referenced for each figure are off by one.

The last sensor is the CO2 sensor (T6713-6H). This sensor has the most documentation and in some ways is the most complex. While there are not a lot of options or settings there is a start up sequence that allows for some customizations to be made depending on the environment the sensor is being used in. The T6713-6H also uses the MODBUS protocol for communication. While this possibly added a level of complexity it does allow for some level of commonality between various sensors. The remaining documentation other than explaining the various commands as well as how to change the I2C address explaines the internal ABC logic.

The ABC logic works by remembering the lowest measured value over a 24 hour period. After doing this for 7 days a statistical algorithm is used to determine if the sensor needs to be recalibrated and using those values this is done. For this to work correctly the sensor needs to see ~400 ppm of CO2 3 times in a 7 day window. Alternatively the sensor would need to see 400 ppm 4 times in a 21 day window. The ABC logic will not take into account any measurements taken from less than a 24 hour window. This means the sensor needs to run for a minimum of 24 hours before it will allow a reading to be read as a minimum value. If it is assumed the sensor will not see a 400 ppm value, the ABC logic can be turned off. Once calibrated the sensor can produce stable values in 10 minutes but has a start up time of two minutes. This would limit it uses in some products/environments where the on/off cycle time can be very short thus not allowing the sensor enough time to adequately startup or use the internal ABC logic. One thing to mention with this sensor is the list of chemicals that can adversely affect it. On this list besides ammonia, chlorine and NOx is ozone. As ozone is a natural chemical found in most environments this is an odd chemical to list as having an adverse effect.

Lastly is the documentation for the kit as a whole. For the whole kit only 4 pages of documentation are provided. Of these one is the title page, one is how to connect up the sensors another is a link to the git repository and the last one is a list of links to the sensors documentation. While this allows you to get the kit up and running by showing how to plug the sensors into the main board that's about all it provides. It would have been nice if a bit more information, even if just a synopsis of the sensor features as well as how to use the sensors, was provided. While a link to Github repository is provided, the landing page provides no useful information as where to find the actual code. Once it is realized that you need to use the Telaire subdirectory (all the sensors are supposedly from that subsidiary) you still are not presented with any code. This is because the code is in branches and each subsequent code release is a different branch as opposed to being a milestone or version number on a single branch. This leaves you unclear as to what branch to use. As no branch is labeled Uno or Arduino evaluation code or kit what code/branch to select is left ambiguous. The only help that is somewhat provided comes from a document recently added. The document labeled Changing the code in the Arduino has directions on where to download the code from. This note mentions “From https://github.com/AmphenolAdvancedSensors/Telaire/tree/Evaluation_Board_v1.4 download all files into My Documents/Arduino/TelaireSensors directory.” This is the only clue as to what code is to be used with the kit. I would be nice if Amphenol/Telaire updated the way they use git to better reflect code progression instead of separating versions of the code into different branches.

Conclusion

I believe Amphenol has provided a useful and easy way to test their environmental sensor suite. The ability to quickly and easily evaluate each sensor using either the provided OLED display or by changing the code to output the data over serial is very useful. The sensors have shown that they can successfully operate in the environment they are meant to as well as in harsher outdoor environments. The temperature/humidity sensor included was shown to live up to the expectations set by Amphenol. The results for the CO2 sensor are unclear as the readings are often quite different from two other sensors in the exact same environment. Whether this is due to a faster response time or the sensor not living up to its expectation is unclear, further testing would need to be conducted. The results from the dust sensor also left an unclear result. Responding to smoke from frying and fine dust being blown around yet not responding to thicker smoke or blowing flour. Whether this was due to misunderstandings brought out from inadequate/unclear documentation or from the performance of the sensor itself is currently unclear. Lastly the kit is well made. There are some improvements that can be made such as clearer labeling for directional connection of sensors or changing connectors all together. While the connectors selected are low cost and easy to use, an extra $1 or $2 would greatly improve the user experience and possibly allow for more favorable results for Amphenol when their sensors are being tested. (A blown sensor because of incorrect connection is never helpful in promoting a product). Overall I look forward to continuing to evaluate this product both against other sensors in my inventory as well as against calibrated sensors from reputable organizations.


Original post on Element14 can be found here

Friday, January 20, 2017

Create Your Own Affordable, Specialized and Creative Filament With the Filafab

Filafab-pro-350-ex-3DHUB.gr_.jpgPossibly the biggest growing technologie today is the 3D printer, this is partly due to its decreasing cost. This drop in cost of 3D printers is largely due to the standardization of the technology as more printers use the same base technologies. The cost of filament however, whether standard or exotic, still remain relatively high.

D3D Innovations has been working to change this. Their filament fabricators allow anyone to create their own filament using various plastics, combinations and fillers. While the Filafab is meant for plastic “beads” the Filafab has had no issue working with plastic regrind from recycling plants.

IMG_1078.JPG
HDPE regrind and ABS pellets

Unboxing

Unboxing the Filafab, even with its weight, wasn't a difficult task. Upon opening the box you are presented with a small cardboard tray that holds the accessories. These include two nozzle adapters, three nozzles, a nozzle protector and a region specific power cord.
IMAG1769.jpg
Filafab accessories

Once the accessory tray has been removed the Filafab is visible although covered evenly with packing peanuts. After scooping out the the peanuts (which incidentally could be turned into filament) it is a simple matter to lift the Filafab directly up and out of the box. Its nice to know that even a relatively small detail such as unpacking the unit was considered by the D3D Innovations team in order to make this step a simple one.

User Interface / First Impressions

The interface and controls on the Filafab are well organised. The side of the unit that faces the user has most of the controls. These include switches for the heating element and auger motor that moves the plastic forward into the extruder. Below and to the left of the motor on/off switches is the temperature controller. The controller uses a feedback loop to maintain the temperature within a tight tolerance (1 °C ~ 2 °C ). There is also the ability to add a few setpoints so that commonly used temperatures can be easily recalled. There is no setup necessary for the controller other than choosing the temperature. If however you would like to make changes to some of the control setting this is possible through the controllers menu.

An important and very encouraging addition is an emergency e-stop switch. While it may be argued this is not needed, the reality is, the power behind the motor is quite large, and the speed at which something could potentially go wrong for a careless user is fast. The e-stop once pressed instantly shutdown the machine preventing anything from getting further out of control.

The two concerns that were noted with this current version of the Filafab is the placement of the power cable and the placement of the auger speed knob. The power cable is currently on the same side as the control panel and in some regards hides the master power switch.

IMAG1751.jpg
Filafab control panel and power cord

This makes connecting power akward, instead of connecting in a location that would be less intrusive such as the back, the cord comes out towards the user. The placement of the speed knob on the back of the unit next to the motor on the opposite side from the other controls is also awkward. In response to this issue, it was explained, the Filafab 350 EX is an adaptation from its previous version. The current placement allowed for easy modification and extension of capabilities without doing an extensive redesign. I have been informed that both of these issues have been remedied in the next version of the Filafab. I will update with pictures and information when I receive them.

Initial Setup

Once unpacked and powered up the Filafab is ready to be used. The only prerequisite is to know the temperature at which your plastic begins to flow. This may be simple for some plastics (melting point) but for others it gets a bit more difficult (plastics that have a glass transition point).

This glass transition point is where some plastics get soft and lose their brittleness. While this may sound like the point you are looking for, this is where the material starts to become more forgiving when bent or hammered. The actual flow point may be tens of degrees celsius higher than this.

Once that temperature has been selected and the temperature controller has been set there is little to do. On my unit, which has an older version of the power supply, it took ~15 minutes to reach 180 ℃ and ~25 to reach 200 ℃.

Temperature vs time for current Filafab

The current version and soon to be improved power supplies provide more power. The temperature curve with the new power supply show a drastic improvement. The test below was done starting from a temperature of ~11 ℃ with the housing removed reducing its heating efficiency. Yet even in this setup and with the temperature set to 250 ℃ it takes only slightly more than 20 minutes to reach a stable temperature (249.8 ℃).

Temperature vs time for new Filafab

FilaFab Temp Probe.jpg
Temperature test setup for new Filafab

Once reached the ability of the power supply to provide enough power to maintain the desired setpoint is clearly not an issue.

Filament Production

Producing filament takes a bit more practice than the initial setup of the unit. It does, however, not take that much time and any material used during your trials can be reused. There are a few factors that dictate the final outcome of the filament being extruded. First is the temperature to which the extruder is heated. Second is the rate at which the material is passed through the extruder. Thirdly is the diameter of the extruder nozzle. And lastly is the distance to the point where the filament rest in conjunction with the ambient temperature.

The easier of the variables to get right are the temperature of the extruder and speed at which the auger turns. These two, although controlled separately, amount to the same factor, too what temperature the plastic is heated before it exits the extruder. This is definitely not the place to go into the details but it amounts to the longer the plastic remains in the extruder the closer to the set temperature the plastic will reach.

The extruder nozzle works with the distance to the point at which the filament “rests” as well as with the ambient temperature. This is because to achieve the final diameter the extruded plastic needs to be pulled. If there is no winding mechanism then the plastic coils on the floor or table below. The time it takes the plastic to cool versus the duration for which the filament is stretched for will give the final diameter.

Therefore although there are five variables in the extruding process and they may be grouped as the first two and the last three. In reality the variables met earlier in the extruding process affect the later variables and in the end all the variables affect the final product. The Filafab team is also working to produce some guidelines for different materials to help users get the best output from their units.

Filament Production Method and Outcome

In my tests I used both ABS and HDPE. As I do not have a winding mechanism, I tried two other methods for spooling filament. The first method was hand winding. This allowed me to better understand how distance between the extruding nozzle and the winding spool affects the diameter and consistency of the filament. While I did consider briefly constructing my own basic winder (stepper motor and speed controller) this was not needed for the testing I was conducting. The second method was allowing the filament to spool on the floor. While this took a bit more trial and error it is definitely doable. The hardest part here was setting the height above the floor to achieve a nice even diameter.

During the hand winding test an old spool was used to wind the filament. After playing round for maybe an 10 - 20 minutes the consistency and evenness of the filament was impressive. To the bare eye the diameter of the full extruded length appeared consist and even. Using a caliper the diameter ranged between 2.21 mm - 2.49 mm which is well within the tolerance of most if not all 3D printers. That being said, the samples from Filafab I received had much tighter tolerances easily beating the mentioned tolerance by D3D Innovations of +/-0.05mm using a winder. One sample had a diameter between 2.83mm - 2.90mm and the second sample between  2.63 - 2.69mm. Even without a winder the Filafab team has seen better tolerances than I did, but then they probably spent more than 30 minutes perfecting their technique.

I conducted two tests of floor spooling. The first was an even speed and used ABS the second was as fast as I could get the auger to push out filament using HDPE. While the ABS produced a nice usable filament the HDPE seemed to have some issues. I believe the issue was partially related to my choice of temperature. As previously mentioned the speed and temperature are tightly coupled. When I increased the speed to be as fast as possible I should have also increased the temperature. Since this wasn't done, my filament had some unmelted regrind mixed in. Another difference between the HDPE and ABS test was the nozzle used. The HDPE had the smaller nozzle making extruding more difficult and allowed the filament to stretch to a thinner diameter. The ABS had a larger nozzle which just seemed to allow for a more consistent filament to be extruded.

The goal of the speed test with HDPE, while it did have its issues (incorrect temperature and smaller nozzle size) was to try and understand what output could be expected from the Filafab. For this test a set amount of regrind was weighed out and put into the hopper. The plastic was than left to extrude for a considerable amount of time and the remaining regrind was then weighed. Taking the difference of the initial weight and the final weight an approximate value was reached for the amount of regrind extruded. The starting weight selected was 500g. After extruding for ~2.5 hours, ~300g of filament had been extruded.

While this value appears low there are a few factors that must be remembered and taken into account. Firstly had the temperature been set correctly (20℃ - 30℃ hotter) the output would have been increased. Secondly, a small nozzle was used, impeding the rate of production. A larger nozzle along with an increased drop height to achieve the desired diameter (this was not done and the diameter was not important for this test) the rate of production would have been increased. Also, 500g is a decent amount of filament, with the Filafab running pretty much by itself, leaving it in a room for a day while it spits out a reel of filament, is not an issue. Overall my feeling is the Filafab could have doubled, if not tripled my output if the variables had been set correctly.

Power consumption and True Cost

As part of my review and something that has become increasingly important in my reviews is a look at power consumption. While my test was done with the older power supply, it is still representative of the overall power consumption. This assumption is made because the temperatures used in extruding were less than or equal to 200 ℃, well within the power supply’s capable range.

Over the relatively short test of 85 minutes, 30 of which was to get to temperature and 35 for extruding, ~219 watts were consumed. Of these ~219 W only 99.12W were used for extruding.

Temperature and power consumption vs time

The cost of the plastic used was mid priced at ~30¢ per pound (HDPE) or 66.14¢ per kilogram. The expensive plastics (nylon) are ~60¢ per pound or ~$1.32 per kilogram. Adding the cost of the plastic used with that of the energy needed to extrude the plastic gives the true cost of the filament. Using a rate of 18¢ per kiloWatt and 67¢ per kilogram of plastic one reel of filament would cost ~$2.77. This is using an unrealistic number of 8 hours to extrude one kilogram (if setup correctly this should be a third or even less). Even with the extra long extruding time and high electricity costs it is still approximately 12.5 times cheaper than purchasing a commercial reel of filament. This would amount to ~77 (cheap) reels of filament before the (top of the line) Filafab pays for itself (38 reels to cover the cost of the cheapest Filafab). If you were to use anything remotely specialised or for a non standard printer then the number of reels needed drops pretty quickly (makerbot…).

Engineering design

The design and manufacturing of the Filafab is well thought out. At no point during my use and testing of the Filafab did I feel the need to be gentle. The unit is sturdy and solidly built. The few drawbacks mentioned above, while slightly detracting from the overall user experience, are not a major issue. One very slight issue not mentioned above is the design of the hopper. Currently if you plan to changing between materials often, the space under the auger in the hopper catches some material. The material that gets stick can become mixed with a different plastic producing an unwanted blend. A simple remedy is to tilt the machine to its side and brush the remaining plastic out.

Because the design team has been working closely with their customers and listening to both their ideas and concerns these issues have been resolved. In the next iteration of the Filafab (available February) all the concerns raised so far have been designed out and corrected.

IMAG1757.jpg
Original auger guard inside the hopper

The new hopper - auger assembly is apparently made from a single piece of metal. Either that or the guard is bolted to another piece of metal that prevents plastic from getting stuck under the auger shaft. A 3D CAD rendering can be seen in the image below, it may also be seen in the temperature test set image above.

unnamed.jpg
New auger guard with integrated material feeder

Changing nozzles is also a relatively simple matter. While the machine is still warm (NOT hot) use a wrench to unscrew the currently attached nozzle and attach the new size. When the nozzle is warm to the touch you can try pull out the existing material to clean it out.

The user manual suggests regreasing the main bearing every 40 hours of use or so. For this a T25 screwdriver is needed. While slightly inconvenient, the T25 allows for the Filafab to be used in a general setting without worrying someone may open the unit to “fix” something.

The heating block is heated by multiple heating elements distributed around the heating block to ensure even and adequate heating of the auger and nozzle. A thermocouple is inserted in the block and well shielded to ensure an accurate reading and prevent noise in the measurement. All the wires are well insulated and the auger shaft itself is thermally insulated to increase heating efficiency.

IMAG1407.jpg
Heating block with temperature sensor (metal braided cable) and heating elements (red insulated wires)

What I have taken away from the Filafab team is their desire to constantly improve as well as keep the product as open as possible. The ability to use the filafab with any printer or winder, not locking a user to any one specific product is a huge plus and something the team has been working to maintain. The ability should the user decide to modify their unit (at home) in some way to make their use simpler or to provide other uses is also available with full mechanical schematics available.

Safety

The degree with which the the design team has taken safety into account is quite impressive. The implementation of an auger guard preventing fingers or other foreign object from entering the auger is important. During my testing I did remove the guard to allow for larger regrind to be used but this will become more difficult in the future. The increased difficulty can be seen from the next iteration of the auger guard/feeder. Due to bolts coming from the bottom, removal of the auger guard will be a lot more involved. While this may be frustrating, after experiencing the sharpness of the auger and the power behind its motor first hand, this is a positive and beneficial decision.

The inclusion of an estop was done solely for added safety. The possibility of something getting past the auger guard is very small. Yet even with this small chance the decision was made to add an estopt.

Also the provided nozzle guard to prevent users from accidentally coming in contact with the heated nozzle is useful. While again not strictly needed this is included to provide that one extra layer of safety and prevent possible injury.

An often overlooked safety concern is operating sound levels. If a piece of equipment produces excessive noise for long periods this can have a detrimental effect. The measured sound levels of the Filafab are within normal environment levels. While it is a constant hum and I would not necessarily want it on the edge of my desk while I am working, it's not over bearing. Using an uncalibrated app on my phone the average value measured was 56 dB. From what I can determine this is the volume of a normal conversation or slightly louder.

Screenshot_2016-12-18-16-57-04.png
Sound level profile for 30 seconds

Conclusion & Moving forward

Overall the Filafab is one well made easy to use extruder. The well thought out design makes getting the Filafab up and running an easy task. The over designed mechanics and housing gives me confidence in the longevity and resilience of the unit to wear and abuse. The careful design and respect for safety would make me confident using such a machine in any maker or educational setting.

Having spent some time playing with the Filafab 350 EX and understanding the various aspects of the current version I am looking forward to the next iteration. The improved user experience, heating curve and other improvements by the Filafab team are things I am looking forward to test and experience.