Aquatos BLE Gateway Quick Handbook

Connect SDI-12 sensors fast, read values over BLE, and reuse the same workflow for additional sensors.

Aquatos BLE with SDI-12 sensor

Overview diagram:

Gateway and sensor flow

What this guide covers

This handbook shows how to connect:

It also gives a reusable setup pattern for other SDI-12 sensors.

Important

Aquatos BLE is the SDI-12 master. You connect the sensor to the gateway, then operate the whole setup over BLE with BLX Dashboard (preferred) (or BlueShell).

Important

The gateway itself has no SDI-12 address. It addresses the connected sensors by their own SDI-12 addresses such as 0, 1, 2, ... or by broadcast ?.

Addressing multiple sensors

Important

Broadcast ? is safe only if there is exactly one sensor on the SDI-12 bus. With multiple sensors, it can cause collisions, garbled replies, or bad CRC.

Simple setup procedure:

  1. Connect each new sensor one by one
  2. Assume a newly connected sensor is usually at address 0
  3. If only this one sensor is on the bus, you may use z?! to discover its current address quickly
  4. Verify or recheck it with z0I! if you expect the default address 0
  5. Change it immediately to its own address with z0?X!, where X is the new address > 0
  6. In this handbook, use address 1 for the radar sensor and address 2 for the 2Wire node
  7. Test the appropriate M commands
  8. Reconnect the next sensor and repeat
  9. Finally edit the c... command on the gateway to poll all sensors with their real addresses, for example c1MC:0-1 2MC for a radar at address 1 and a 2Wire node at address 2.

Note

? is useful if the sensor address is unknown, but only when exactly one sensor is connected to the bus. If you are unsure about SDI-12 addressing, address changes, or broadcast behavior, check https://SDI-12.org.

1. Wiring and power

Shared SDI-12 wiring

For the gateway and both OSX sensors, the SDI-12 cable mapping is effectively:

Function Aquatos BLE Sensor side
GND black black
V+ red/brown brown
SDI-12 data white white or blue

Power limits

Caution

Check polarity before power-up. The documentation explicitly warns that most sensors are not reverse-polarity protected.

Tip

Start with a single shared supply around 6 V. That fits the gateway and both sensor types and keeps field setup simple.

2. BLE quick start

Connect to the gateway with BLX Dashboard or BlueShell, then use this baseline sequence (examples):

?
z0I!
z0?1!
z2I!
c1MC:0-1 2MC
e
Write

What each command does (commands on the gateway):

Caution

Do not use broadcast ? on a multi-sensor bus. With more than one sensor, broadcast can cause collisions, garbled data, or bad CRC because multiple sensors may answer at the same time.

Tip

Top Tip for Debugging the c command on the gateway Enable raw SDI-12 logging in the gateway terminal before testing e so you can see exactly which SDI-12 commands the stored c... sequence triggers.

z dbg 1
e
z dbg 0
  1. Wire GND, V+, and SDI-12 data
  2. Power the gateway and sensor
  3. Open a BLE terminal and send ?
  4. If only one sensor is connected and its address is unknown, detect it with z?!. If multiple sensors are on the bus, use only known addresses such as z0I!, z1I!, and so on.
  5. Store the correct gateway command with c...
  6. Test with e
  7. Save with Write

Note

The gateway command stored with c... must be entered without the final SDI-12 !.

Tip

Simple commissioning workflow for multiple sensors: newly connected sensors are usually at address 0, so connect them one by one, verify them with z0I! or, if the address is unknown, with z?! while only one sensor is on the bus, then change them immediately to their own address with z0?X!. In this guide, the radar uses address 1 and the 2Wire node uses address 2.

Important

You can communicate either with the gateway or also with the SDI-12 nodes directly via BLE. Here only communication via Gateway is covered. For direct communication with the sensors see their appropriate documentation.

4. Sensor profile: Radar sensor Type 470

Use this profile if you want distance and signal strength from the radar node.

Identification

Typical direct check:

z0I!

Or if there is only one sensor connected to the bus and its address is unknown, you can use ? as broadcast address:

z?!

You should receive an ID string containing Radar and 0470. In any case, the sensor will reply with its real address.

It depends how many data to read from the sensor. Here 2 values are read: (main) distance and signal strength. The command is:

Without CRC:

c1M:0-1

With CRC:

c1MC:0-1

These commands give exactly 2 values. To read all values from the radar at address 1, omit the : block in the c command. For the radar, that gives 6 values: 3 distances and 3 signal-strength values.

c1M

Newly connected sensors are usually at address 0. Change the radar to address 1 immediately after identification with the Address Change command:

z0A1!

Why this works:

Important

This example assumes the radar sensor is at address 1. On a bus with multiple sensors, use the real sensor address, for example 1M:0-1 for address 1. Do not rely on broadcast once more than one sensor is connected.

Test

e runs the measurement and prints values over BLE. If the output looks correct, note it:

e

Note

The setup command c... is not stored permanently until you run Write. This allows you to test different commands first and only save the one that works best for your setup.

Tip

For first setup, start with c1M or c1M:0-1. Add CRC later for stricter bus validation (not necessary for quick tests).

5. Sensor profile: 2Wire string node Type 410

Next a 2Wire node is added (physically connected) to the same bus (e.g. a thermistor string).

The 2Wire node can return up to 8 values for M.

Identification

Note

A newly connected node will often (if not already changed) be at address 0. If you plan to use multiple sensors on one bus, give each sensor its own address before combining them on the same cable. In this guide, the radar sensor's address was moved to address 1, so the new 2Wire node can still be found at address 0 and then changed to address 2.

Test:

z0I!

You should see an ID string containing TN_2W_0410 or Type 410.

Change its address if needed, for example to 2:

z0?2!

What the node returns

For 1-8 temperature nodes (short temperature list), start with e.g. for SDI-12 address 2:

c2MC
Additional info: If the chain is longer than one output block, extend it explicitly, for example:

```
c2MC 2MC1 2MC2
```
This lets the gateway poll when the sensor address is `2`:

- first block with `2MC`
- second block with `2MC1`
- third block with `2MC2`

Test

e

Important

A Type 410 installation may contain many sensors. If you expect more than 9 returned values, add further blocks such as 2MC1, 2MC2, and so on.

6. Final combined c command

Assemble the final c... command for the gateway to poll both the radar and the 2Wire node, for this example:

c1MC:0-1 2MC

Run and save

e
Write

Important

Only after running Write is the current c... command stored permanently on the gateway. You can change it later if needed, but make sure to test new commands first before saving them.

7. Troubleshooting

Quick checks:

Note

If you are unsure about SDI-12 addressing rules, address changes, or broadcast behavior, remember that ? is only for a single-sensor bus and check https://SDI-12.org.

8. Minimal field checklist

9. Command cheat sheet (for the gateway)

?              -> show gateway status
z?!            -> broadcast address query if the address is unknown, 
                  only for a single-sensor bus
z0I!           -> read sensor ID at address 0
z1I!           -> read sensor ID at address 1
z0?1!          -> move a newly connected radar sensor from address 0 to address 1
z0?2!          -> move a newly connected 2Wire node from address 0 to address 2
z0?X!          -> change sensor from address 0 to a ddress X > 0
c1MC:0-1       -> radar quick setup if the sensor is at address 1
c2MC           -> 2Wire first block with CRC, address 2
c2MC 2MC1 2MC2 -> 2Wire multi-block example if the sensor is at address 2
e              -> run measurement and print values
Write          -> save permanently
z dbg 1        -> enable SDI-12 debug output
z dbg 0        -> disable SDI-12 debug output