# BM Sensor Integration - SDI-12 Multiparameter Sonde EXO3s

**URL:** <https://bristlemouth.discourse.group/t/bm-sensor-integration-sdi-12-multiparameter-sonde-exo3s/399>\
**Category:** Projects\
**Tags:** documentation\
**Created:** [August 13, 2024, 7:25pm UTC](https://bristlemouth.discourse.group/t/bm-sensor-integration-sdi-12-multiparameter-sonde-exo3s/399 "2024-08-13T19:25:58Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![umakat](https://yyz1.discourse-cdn.com/flex029/user_avatar/bristlemouth.discourse.group/umakat/32/215_2.png) [@umakat](https://bristlemouth.discourse.group/u/umakat)\
**Post date:** [August 15, 2024, 10:21pm UTC](https://bristlemouth.discourse.group/t/bm-sensor-integration-sdi-12-multiparameter-sonde-exo3s/399/3 "2024-08-15T22:21:26Z")

</div>

## Basic SDI-12 commands and responses

After wiring as mentioned above, I used `pyserial-miniterm` to find the sensor and connect to it (any serial terminal should work). I also added `echo` to view the commands I type to send. I noticed I receive the response immediately after typing `!` at the end of the command to send.

Here is what I saw on the terminal. The EXO3s Multi-parameter Sonde shows up as a USB port with description:  
`/dev/cu.usbserial-D30FEU73 'FT231X USB UART - FT231X USB UART'`

> uma@Umas-MacBook-Pro-2 ~ % pyserial-miniterm -e  
> — Available ports:  
> — 1: /dev/cu.BLTH ‘n/a’  
> — 2: /dev/cu.Bluetooth-Incoming-Port ‘n/a’  
> — 3: /dev/cu.usbserial-D30FEU73 ‘FT231X USB UART - FT231X USB UART’  
> — Enter port index or full name: 3  
> — Miniterm on /dev/cu.usbserial-D30FEU73 9600,8,N,1 —  
> — Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H —  
> ␀?!0  
> 0!0  
> 0I!013YSIIWQSGEXOSND100  
> 0M!00629  
> 0  
> 0D!0  
> 0D0!0+0.098+22.783+5.50+6.87  
> 0D1!0-7.13+83.10+7.16+5.95  
> 0D2!0+1.22+12.41  
> 0D3!0

### Breaking it down -

I used [this website](https://help.campbellsci.com/cs650-cs655/shared/sdi-12-sensor-support/sdi-12-command-basics.htm?tocpath=SDI-12%20sensor%20support%7CSDI-12%20command%20basics%7C _____ 0) to look up SDI-12 commands since it’s easy to read.

| command | response | interpretation |
| --- | --- | --- |
| ?! | 0 | _Address Query:_ `0` is the address |
| 0! | 0 | _ACK:_ `0` is the address |
| 0I! | 013YSIIWQSGEXOSND100 | _Identification:_ `0` sdi-12 sensor address; `13` sdi-12 version number; `YSIIWQSG` vendor identification; `EXOSND` sensor model; `100` sensor version |
| 0M! | 00629 | _Measure command:_ `0` sdi-12 sensor address; `062` time is seconds until data available; `9` number of value to expect after `62` seconds (`0` will be rxd to indicate measurement is done) |
| 0D0! | 0+0.098+22.783+5.50+6.87 | _Send Data command from channel `0`:_ `0` sdi-12 sensor address; `0.098` value 1; `22.783` value 2; `5.50` value 3; `6.87` value 4 |
| 0D1! | 0-7.13+83.10+7.16+5.95 | _Send Data command from channel 1:_ `0` sdi-12 sensor address; `-7.13` value 5; `83.10` value 6; `7.16` value 7; `5.95` value 8 |
| 0D2! | 0+1.22+12.41 | _Send Data command from channel 2:_ `0` sdi-12 sensor address; `1.22` value 9; `12.41` value 10? |

## Next Steps

The next step is understanding this data. Some questions that came up after getting this data –

- What do the values mean?
- In what order are they being sent?
- Can I configure them and choose which reading is sent first?
- Does the position of the sensors inside the sonde matter?

After having a little back and forth with the YSI support team, I understand I would need to use their [Kor Software](https://www.ysi.com/kor-software?srsltid=AfmBOooZaQwozooXZNvleUYCPGRilUQ6M3KCeeDsx6LhFcQF7BlGq4dA) and along with their [DCP Signal Output Adapter](https://www.ysi.com/product/id-599820/exo-dcp-signal-output-adapter-2-0?srsltid=AfmBOoosiYI6nhYcufGQ16CVrvBbJaS9DAWwe0eIfWWYGEako0ygBLl7) to configure the data frames being sent from the sonde. My next post will be about my discoveries using the Kor software + DCP SOA with the EXO3s.

---

_[View the full topic](https://bristlemouth.discourse.group/t/bm-sensor-integration-sdi-12-multiparameter-sonde-exo3s/399)._
