A point dendrometer for small trunks and branches of tropical trees
Build a high precision point dendrometer to daily variations in water status and seasonnal growth of trees. There are already designs for point dendrometers on the market. Unfortunately most of them are based on a screw design and their linearity is sub-par or use very expensive LVDTs (100s of €). We choose to overcome these issues by inspiring ourselves on previous designs that use rods (PepiPiaf) and by selecting high quality linear potentiometers instead (less than 50€).
The build is based on a 3D printed holder and carbon-fiber rods. The 3D printed holder gives us the ease of fabrication, ease of prototyping and low-cost that makes it possible to build a large number of said dendrometers for a reasonnable price. They also make the design easily upgradeable with feedback from users. The carbon-fiber rods give us a good temperature response of the dendrometer due to their low expansion coefficient.
The branch/trunk holder and lvdt holder 3D models are generated using OpenScad and the BOSL2 library. The scripts can be found in the openscad-files folder. Openscad is an open-source software can be installed on any operating system. This means that the holders are parametrisable to your own case. This means you can adapt the model to the branch/truk diameter of your use case. This is a big adavantage of 3D printed holders. Once you have generated the 3D models you can export the STL files.
The holders are meant to be printed in glass fiber PETG filament at 0.25mm layer height with a 0.6mm nozzle. The filament is the Nanovia GF-UV PETG. The designs here were printed using a Prusa Mk4 and by drying the filament at 60°C for 12h (important !).
The linear potentiometer that we use has a stated 0.5% linearity (is usually better in practice) and includes the spring (assuring contact) inside its body. It comes in a practical package around which the 3D printed holder is designed. The reference is BT404 and it can be found here.
To read the output of the linear potentiometer we use the ADS1115 ADC. It has 16 bit precision that allows us to have a resolution of around 0.2µm (12.7mm of travel divided by 16 bits). This is of course overkill but a resolution of 1µm is useful when follwoing intra-daily varaitions of stem diameter.
To read the ADC outputs we use a Pi-Pico running micropython. This is meant to be interfaceable with our own brand of ModBus network that we developped for instrumented sites (see here).
To fast-calibrate the linearpotentiometer sensor we use a caliper and a small code that reads the outputs of the ADC connected to the linear potentiometer. The procedures, codes and example datasets to do this operation cab be found in the /Calibration folder. The picture below shows an example of caliper values versus ADC outputs:
For calibration we use an aluminium rod with a known thermal expansion coefficient in a heating oven. By heating the whole setup we are able to calculate the deviation of the sensor due to thermal effects and calculate a linear correction to apply in the field. The code can be found here. The graph below is the results when using our first prototype of the device:


