By: Brett Stoddard
This post will provide step by step instructions on how to build your own thermal dissipation sap flow sensor. Seperate blog posts fully explain the what a thermal pulse sap flow sensor does, the idea behind this design, and the code involved (coming later).
- Order parts
- Solder probes
- Apply thermal epoxy
- Wire it up
- Program microcontroller
- Install in a plant.
Step 0: Required Tools
Before jumping into the project, it’s important to mention that this project requires a few specialty devices to make.
- Soldering iron station
- A computer with Arduino IDE installed
Step 1: Order Parts
Below are two different bills of materials (BOM) that contain all that is required to build one of these sensors. The files for the pcb board can be found in a zip file here. To edit, you will need to download Eagle by Autodesk as well as a few part libraries including my personal library of Eagle PCB parts. A The total sensor cost is estimated to be $20.
Additionally, an Adafruit Feather M0 Lora is needed with a 3.7 volt battery (suggested 4AH) for the sake of this build guide ($34.95 + $19.99 resp.). It also requires an SD card breakout to save data in nonvolatile memory ($7.50).
The Feather M0 can be substituted for any micro controller with analog-in pins with some changes to the code to accommodate these new pins (mentioned briefly in Step 4) and if a different voltage batter is used, you should take a look at this blog post and change the heater resistor value.
When ordering the electronic parts I would highly suggest you buy spare parts, especially any 0603 resistors (I baked those into the single sensor BOM). It’s important to note the tolerance of the bias resistor (line 5), a lower tolerance can be used if it is calibrated for (a later blog post should talk about this).
Step 2: Solder Probes
Once you’ve received all the parts, it’s time to break out the soldering iron, tweezers, and reading glasses (optional) to tackle the most difficult step of this build: soldering on US0603 sized resistors. Soldering these on is a major test of patience even for veteran electrical engineers, but not impossible for first-time solders. Here are a few tips and tricks that should help: article from build-electronic-circuits.com, video from Engenuics Technologies.
For the current design, three resistors need to be soldered: two thermistors and one low-ohm heater resistor. I find it helpful to mark which one is which immediately after soldering with some nail polish so I don’t get them confused because they look identical.
After the tiny resistors are in place on the end of the probe, its time to move down and solder on connectors on all the probes, 100K ohm bias resistors on the thermistor probes, and “short” the bias resistor on the heater probes using a large clump of solder on the 0603 pads (circled in red below). Use a multimeter to make sure all solder points are good and that the probe resistor is not shorted. The temperature probe should have a resistance of ~100k (this will vary based on temperature). The heater probe should have a resistance of 50 ohms (or whatever heater ohm is chosen).
As kind of a placeholder, the current connectors on the probes are 90 deg female headers. Eventually it would be a good idea to add a waterproof connector onto the ends; I’ve had my eye on TE’s DEUTSCH DTF13-3P for a while for this purpose.
Step 3: Apply Thermal Epoxy
The next step involves the thermal epoxy. This is used in order to evenly spread out the effect of the heat pulse and to get better contact when inserted into a tree bore-hole. This is best applied using a 3D printed mold. Ideally, this would be printed on a high resolution SLA printer because of the small size of the mold. Formlab’s Form 2 was used to make the molds in the images; it provides up to 0.025 mm layer size. It’s also suggested that mold release spray be used on the inside of the mold to help the epoxy from sticking.
The epoxy in the BOM is a two part epoxy with a curing time of 45 minutes. To use, squeeze out equal parts from the A and B syringes and mix this well with a mixing stick before applying this to the inside of the mold. Put the mold on the tip of the probe so that the resistor is centered and press down. Gently wipe away any excess epoxy. Wait at LEAST 45 minutes before removing the mold, suggested overnight. Make sure that disposable gloves are used during this step.
After the epoxy is set, gently wipe with sandpaper to remove any major impurities. Next, coat the entire probe with silicone conformal coating with two coats, letting dry completely in between. This will seal the epoxy to prevent plant moisture from seeping in and changing the properties of the probe over time. It will also waterproof the rest of the board. Make sure to avoid getting and silicone in the connector.
Step 4: Wire Things Up
The probes should be wired to the board as shown to work with the current code.
If you’re feeling savvy, feel free to play around with what pins are used. It’s important that the probes output goes to an analog in pin on the M0 (A0 to A5 shown below). The trigger can be moved to any pin, provided that the code is updated to match.
The heater probes could be attached to the 3.3V output pin (identified by “3V”) in order to further stabilize the power delivered as battery voltage decreases as it dies but the 3.3V should always be the same. However, this would reduce the energy efficiency of the system as the 3.3V output pin goes through the M0’s internal voltage regulator which burns off the excess voltage as heat. Also, the 3.3V supply has a max supply of 500mA which is near the current draw of a single heater probe.
Step 5: Program the Microcontroller
The code for the basic program described in this build guide is posted at this link. A future blog post will walk through the important functions. Further in the future, a stand alone library and/or incorporation with project Loom is planned.
If you’ve never used an Feather M0 before, check out these two pages on Adafruit’s tutorial:
If you’ve never programmed in Arduino before (or ever), I would highly recommend reading though a few of the fundamental tutorial pages on the Arduino website until you grasp basic the basic concepts and idea of what Arduino is. Linked here.
Step 6: Install in Plant
This part of the process will change slightly based on what plant this is being installed into.
In order to to ensure that the probes are properly spaced, a 3D printed guide should be used. This version has a 7mm spacing between the probes. Future tests should test with different probe spacing. This doesn’t need to be as precise as the thermal epoxy mold; I used a Lulzbot Taz 5.
Insert the probes into their respective holes in the guide with the heater in the middle. Turn all of the PCB boards to face the thin side of the guide such that all the boards are parallel and facing to the same side (not up or down); this will help to deliver the heat pulse to the thermistors symmetrically. Optionally, use epoxy/superglue to fix them in place.
If you’re installing in a tree, holes will need to be drilled into the wood at a proper diameter (~2.75 mm) using an additional “guide”. As of now (6/11/2018) these have not been tested in a tree.
Based on preliminary tests it should take about a day for the temperature to regulate and good data to start coming in. A later blog post will go into further detail on best practices for installing in different plants (especially trees) after some more tests are conducted. Potential things include: installing all probes in the north side of plants to avoid the sun (south if you’re on the wrong side of the world), filling any drill hole cavity with thermal grease via a syringe prior to inserting the probes (improve contact with the tree) and filling the end of the hold with putty/glue to seal it.
If you have any questions or suggestions for this design please please please reach out to me, Brett, at email@example.com. Happy building!