Just made more SDI-12 miniUART modules

I recently sold out all the SDI-12 miniUART modules from the last batch. I designed this module for others to easily incorporate SDI-12 into their system. With new orders coming in, I immediately made one new batch of 100 modules. Here they are:

Each panel contains 20 modules. I assembled a total of 5 panels, so 100 modules! I used a different programmer to flash the firmware onto these modules via the 3*2 header pattern. But I also needed to test these modules against an actual SDI-12 sensor. Last time I made a batch of these, I broke the modules out into single modules to test them one at a time on my regular flash-test jig. It was a bit difficult to secure. So this time I made a new tester with 6 pogo pins to connect to the 3-pin headers on the sides of the module. I don’t have to break the modules into singles and the jig was easier to use:

Because how I designed the modules, the mounting hole is on a 0.1″ pattern so I just drilled through one solder hole on the perf board and added a standoff to make alignment easier. I should have moved the pogo pins further up to possibly have space for the other mounting hole. Oh well!

At this angle, you can see the pogo pins on the right side of the board. So I just line up the standoff against the top-left mounting hole and press down to connect to the pogo pins, then let the MicroPython script running on my raspberry pi pico test SDI-12 communication.

Here is a simplified script:

from time import sleep
from machine import UART,Pin
uart0=UART(0,baudrate=9600,tx=Pin(0),rx=Pin(1))
i=0
while (True):
sleep(0.5)
uart0.read(uart0.any()) # Flush input
uart0.write(b"?!")
sleep(0.5)
reading=uart0.read(uart0.any())
if b'\r\n' in reading:
print(i,reading)
i+=1

What the script does is to send ?! to the sensor so the sensor will identify itself such as 1\r\n or if the module can’t talk to the sensor, it will not print anything. In addition, a number is printed before the response such as 2 1\r\n then 3 1\r\n etc. so you can tell whether the current board is responding. Just remember the last number from the last module you tested. If the new module you’re testing works, a larger number will be printed along with the response.

You can see how easy it is to start a project with my module and MicroPython. It really won’t take more than a few lines of code.

METER ATMOS 41 GEN 2 tested

Back in late 2024, METER Group revamped their ATMOS 41 weather station SDI-12 sensor and unveiled a GEN 2 of the same weather station. I was able to get a hold of one thanks to a client. After some initial struggle with it, I realized that I needed to update my firmware in a couple of places to handle this sensor.

First, it responds to polling faster so I have to remove one of the commands that may momentarily block SDI-12 receiving right after sending out a command. This used to be no problem at all but this new sensor responds so fast that the first few characters got garbled if I block receiving even momentarily.

Second, it has some unusually long responses in some of its non-SDI-12-compliant command responses, as long as 141 characters. This is much longer than the maximal allowed 76 characters by the standard. So I bumped up the buffer size to be able to swoop up all of its responses.

After some initial tests, I was able to confirm that the updated firmware version 1.5.11 (15B) works with this sensor. I did this in the spring but haven’t got around to post an update yet. If you need to use this sensor, you can update your firmware to 15B. The instructions and the new firmware are in the adapter’s main page.

Adapters and other modules available

I have been slowly building more SDI-12 adapters and other modules over the summer and will resume selling them on my online stores:

https://liudr.square.site

https://www.tindie.com/stores/liudr

Summer recount/batch build soon

As the stocks of the SDI-12 USB adapter and other modules are getting low, I will be doing a recount of the stocks and plan for batch build soon. I should still be able to fulfill orders until next Friday (7/18) and then take my online stores (square and tindie) offline by putting zero qty on all items so I can accurately recount my stock, decide what quantity of each item to rebuild, purchase parts and boards, build and test them. With my ongoing summer projects, I anticipate finishing this process around late August. This happens once a year during the summer when I have more time to batch build the boards. I’m teaching some new and exciting Arduino-related course next fall so I’m making sure I’m well prepared for that. I’m also prepping for another “new” physics course for the fall and finishing up an astronomy course this summer. I apologize for the inconvenience. If you plan to purchase a relatively large quantity (say 25+) of any board AFTER the end of August, please leave me a message. I’ll make sure I build enough in August to fulfill your order.

If you live outside of US, check your post office for package held pending customs fees!

I have recently become aware that a particular country in Europe has not been actively informing package recipients that there is customs fee due and silently waits for the recipients to show up to pay for the fees or return the package without informing any party involved! So if you live outside of US, please actively track your packages. You receive the tracking information if you order on my square or tindie online stores. If after a week or so you have not seen any updates, check your local post office with the tracking number! “Not moving” or “stuck in Chicago” means the package may have entered your country but USPS has not received any updates yet. If you don’t check, your package may get returned. I can only ship the package out to you again if you pay for shipping and I receive your actual package to ship back. I can’t ship out replacements on the promise that a “stuck” package will return to me.

In case you wonder why the background was so beige, it’s the case of a computer from the same era as the stamps 😀

If you know who the lady was, let me know. I have a lot of stamps with her on it. A queen? A celebrity? What was the black rubber post stamp mark saying below “POST CODE”?

Shipping updates

The shipping cost within the US and from US to the rest of the world has been rising every year, sometimes twice a year. Now most of my shipping costs were barely covering the postage, let alone the shipping envelops and transaction cost. It sounds like I have to bump up the shipping fees by 50 cents to a dollar in some cases to adjust to the new reality that I’ve ignored for the past two years. But there’s good news. I’ve been monitoring the shipping costs and was able to add Spain, Greece, and Israel to the slightly less costly international shipping destinations, based on the shipping fees I’ve been paying last year. There’s different zones based on USPS but to map out all zones on my primitive SQUARE platform is a lot of work to start and later adjust.

How to break apart a panel of adapters

Since many of my customers buy multiple adapters per order and shipping cost is only going up, I have decided to ship adapters in panels of 6 for order quantities equal or greater than 6 to save on packaging and waste and hopefully save a small amount of shipping cost.

So when you receive a panel (or a partial panel) of adapters, how you go about breaking it into individual adapters? It’s easy. You first break the panel into three columns, then break out individual adapter. Finally you can remove the edge rails. Here is a video:

How to troubleshoot an SDI-12 adapter

If your SDI-12 adapter isn’t “working”, don’t panic! The adapter has been tested with an actual SDI-12 sensor so it’s supposed to work. Go through the following steps to troubleshoot the adapter. As a matter of fact, DO the following step BEFORE you put any adapter to use for the first time!

1. Remove any sensors or external power connections from the adapter. Check for any physical damages on the USB port, the board, and terminals.

2. Plug the adapter into a windows computer, if the computer recognizes the adapter with a “USB plugged in” chime, and your device manager shows a serial port just appeared, proceed. Otherwise, the adapter is either damaged or the USB port may be damaged. If it shows a message saying an unrecognized device, the USB chip is damaged. The following is a screen shot of my device manager. The serial port COM15 wasn’t there before I plugged in my adapter. Opening the property of the port shows the manufacturer as FTDI (the USB chip). This confirms this step is successful.

3. While connected to PC, use putty (available in windows app store) or tera term and connect to the serial port you observe that appeared in step 2, with 9600 baud rate and 8 bit data, 1 bit start, 1 bit stop, no parity (default settings for many terminal programs), type in zI!, which is zee-EYE-! without hitting enter. If the adapter responds, then proceed. The following screen shot is the set up screen of PuTTY. Make sure you select the connection type as Serial and type in the correct serial port name and speed.

You won’t be able to see what you typed in (no local echo unless you turn on that feature) but you will see the response from the adapter as below. Your version of firmware may be different from 1.5.9 (159) though. If there is no response, the SDI-12 interface chip may have been damaged.

4. Close PuTTY connection. Disconnect the adapter from your computer. Connect a sensor that you know works (just tested to work). Reconnect the adapter to your computer and open PuTTY again. In the terminal program, issue ?! command. If the sensor responds with its address such as 1 in the following screen shot, the adapter works. You can follow up with an identification command 1I! that is 1-EYE-! and replace 1 with the address you see on screen after ?!. You may have to connect 12V to the adapter’s power input and select to use this power input with a jumper for certain sensors. Consult with your sensor’s manual for operating voltage. If there is no response from either ?! or the identification command, the SDI-12 chip may have a damaged data pin.

Before asking for some help, please test the adapter with the above procedure and tell me what you see. Try to avoid generic descriptions such as “failed” or “not working” and describe what you did and what you observe.

July update

Nearly everything I have been selling is low in stock or out of stock by the end of May, when I was pretty busy with projects so I decided to take some time off and build back up my stock. So now I have most of the adapters back in stock and will be building more of them this summer. So if you were looking to get some adapters but found out that it was out of stock, they should be in stock now and most are ready to ship.

FloraPulse stem water potential sensor supported

updated20slide20image

After some tests by Dr. Michael Santiago and myself, I can confirm that the FloraPulse stem water potential sensor is supported. One just needs a 1-second delay between SDI-12 commands. Here is a forum post:

https://liudresllc.com/community/supported-sensors/florapulse-stem-water-potential-sensors/#post-5