Anybody using a particle device with SDI-12 interface?

@pNrie Are you closer to making your firmware that you are using available?

@Buds444 The SDI-12 firmware works and I can send it to you as is, I have not polished it up for Github yet. I did publish a library to allow the Electron to send and receive SMS messages using the AT commands. It is at it does not meet the Particle laws in that I did not name the library as they wanted it, will do that later.

@Buds444 I will not be making the whole monitoring project publically available as there has been a lot of work in developing that as a complete system. Obviously our company has to get a return on that system which will be commercially selling the shield, Electron and firmware as a going, packaged item, generally with sensors to make up a project. However, our company has never charged top $ for our products anyway. I felt that there were some of the libraries that we developed which could be made public as we have benefited from some of the open source that is around. In particular there is an adaption of Modbus which extends the library to Modbus ASCII and adds some extra hooks. Also one of the open source FTP libraries which we have extended and I will make that available when I tidy it up.

1 Like

Thanks for your circuit post.

Please do continue to post what you can to this topic. I’m working on an all volunteer project to develop and deploy flood monitoring sensors in the lower Snoqualmie Valley (Washington State, USA), and we are looking to try out a couple of submersible pressure sensors that speak SDI-12, along with several ultrasonic sensors, similar to the one I built last winter.

@Buds444 Yes, no problems. I will tidy up the SDI-12 library which has an example program in it. You will need to fit an Electron with the basic TX/RX to SDI-12 circuitry I added to this link a few posts back. If you were able to cobble that together on the proto board Particle supply then you should be able to connect to an SDI-12 sensor without any farther issues.
I am a little way off getting any samples of our finished board out which would make it really easy for you but the bit of extra circuitry is not hard to put together, you will need a DIL version of the chip and a couple of resistors.
Long term I would suggest you think about getting the finished product, we could come to some sort of dealership agreement with you and you would find the cost of the finished board with fully functional firmware, ie all the comms to an FTP server, SMS alarming, microSD card storage etc all working together.
I have uploaded the SDI-12 library to GIT HUB at it works with the converter described previously. Other configurations may need some modifications.
The Decagon probe has a voltage output, not an SDI-12 one, it could be read by our finished pcb which will allow up to four voltage sensors to be connected directly.

@TSayles Tom, yes there is obviously interest in the Electron shield so I will keep posting on this thread. Just looked at your ultrasonic gauge, looks interesting.
Any SDI-12 depth sensor should work fine on the board we are building. I will have some photos in the next few days and a more elaborate write up

1 Like

We have an example of Rev B Electron Shield board assembled.Photo inserted

Shield Connections.

  1. Socket for Electron module, includes the extra pin to allow LiPo battery connection through to the module. Assumed that the Electron is soldered in place for reliability but it could be fitted with strip sockets so that it was removable.
  2. Power connector, separate screw connections for solar panel charge and battery. A switching regulator provides conversion of the charge voltage to 13.8 VDC to keep the battery charged.
  3. Four terminal connector providing +12VDC and Ground and TTL level RX and TX signals. Connected to Electron Serial 1 port.
  4. Three terminal connector providing switched 12VDC and Ground and SDI-12 data signal connected to Serial 4 on the Electron.
  5. Six terminal connector providing switched 12VDC, Ground and four inputs which can be set as 0-1VDC, 0-20mA, digital in or counter. By default the shield comes with the inputs wired as 0-20mA, some removal of the dropping resistors is needed on the board to provide the other functions.
  6. Connector for the two wires from the LiPo battery, cut the Particle connector from the end of the battery wires and insert into this connector. A jumper is provided to disconnect the battery from the Electron. NRIE unsolders the battery connector on the Electron module for their installations.
  7. JTAG header for serious programming of the Electron. This is meant to be a 10 way, 2x5 pin header which is standard for some JTAG programmers. The header is not fitted as standard to the shield as it is rarely used.
  8. Reset switch.
  9. Five way connector containing an Electron wake signal, Ground, SDI-12 Data and the TWI signals SDA and SCL.
  10. Three way connector with full RS232 level TX and RX lines and Ground connected to Electron Serial 5.
  11. SMA connector for an external GSM antenna. Unsolder the standard Electron Taoglas antenna and use the lead to connect the Electron to the lugs on the underside of the SMA connector.
  12. Micro SD card holder connected to the standard Electron SPI port.
  13. Battery enable jumper
  14. Watchdog Reset enable jumper

The standard Particle LiPo battery will fit with double sided tape or peelable adhesive on the top, remove the connector supplied with it and push the wires into the connector on the pcb.
The standard Particle antenna can be used as is or the cable used to connect to the onboard SMA socket. Pass the cable through the hole in the pcb and resolder it to the SMA connector on the underside.


And if anyone is interested in the bottom side, here it is


And the various provisions on the shield pcb
Shield Provisions.

  1. Solar charger. Switching power supply which converts charge voltage to 13.8 VDC to charge a sealed lead acid battery. Uses LT6809 2 amp switching regulator.
  2. Switching power supply providing 5VDC to the shield. Uses LT6809 2 amp regulator. The supply can be shut down by the Electron. A ZMR500 LDO linear regulator is wired in parallel with the LT6809 to supply minimal 5VDC when the switching regulator is turned off. Allows the circuit to run at minimal current.
  3. High side switch using a VN751 which switches 12VDC to both the SDI-12 and discrete input sensor terminals.
  4. Analog input amplifier which takes 0 to 1 VDC input and provides 3VDC to the Electron AI or DI inputs.
  5. Circuitry using a MAX487 to convert Serial 4 to the single wire SDI-12 data line. Alternatively the full RS485 signals from the MAX487 can be routed to the 3 terminal connector.
  6. Watchdog timer and supervisory reset function provided by an LTC2918 chip. Monitors the 3.3V OUT of the Electron and forces the Electron into reset if this drops below 2.5V.
  7. Provision of 64K Byte FRAM chip running off the standard Electron TWI port.
  8. Provision of 500 M Byte flash chip running on the standard Electron SPI port.
  9. Provision of microSD connector running on the standard Electron SPI port.


Can I order one of these boards from you?

Also, I am curious what the connectors are you are using? Do you have a BOM I could look at, or a part number?

@hwestbrook Heath, I can’t supply any boards at the moment, we are building a few of the new revision up by hand and doing field testing with them. Not sure when we will do a production run, that depends on whether we find errors. But so far it is looking good. I will keep you in the loop.
The 3.81mm connectors (green) are the Digikey part number series ED1949-ND Also Plug ED2456-ND
The white 3 and 5 way communication connectors are the Digikey part number WM18903-ND series
The LiPo battery connector is Digikey part number 277-2337-1-ND
The SMA antenna connector is Digikey 931-1361-ND
I will keep you in the loop, there are a few people interested in it so I will keep updating progress on this thread

The typical packaging we envisage for the finished product. It is getting there and testing and firmware development is proceeding well.

1 Like

Hi @pNrie,

Wondering if you’ve moved ahead on building any of these. Would like to get one to test out.

@hwestbrook I think we can spare one of the units we built up for testing if you are interested. I will have to check. If you have an Electron on hand it would be best if we sell you the board complete apart from the Electron and you can decide if you want to solder it yours on or fit sockets. Let me know. I can’t see us making any hardware changes when we do the production run, it is all working well. I am happy to share the libraries we developed to drive the various sections. Probably at this stage the main program which ties them all together we will keep to ourselves, partly because we have made a big investment in that and also it may not really be what you want to do anyway.
We can sell you the board, complete with front/back panel for $US100 plus freight. I have no idea what the final product will sell for, probably about that figure but we have to get quotes for manufacture yet.
Let me know. Regards

Hi @pNrie,
I have a few questions about the library and shield.

  1. According to the library normally without shield connecting directly from sensor SDI12 cable to port 4 of electron should be able to work?
  2. Did you have a final production of the shield? I would like to purchase one from you.

What I’m trying to achieve now is to use electron to read data from sensor (SDI-12 communication) and send to my own server to display in web browser online. Do you have any suggestion what should be the step or do you have any guide with this?

Sorry for the stupid question, I’m really very beginner.

@mekunka You can’t connect the SDI-12 sensor directly to the Serial port 4, The SDI-12 sensor has a 5 volt data line which goes in both directions so you need some sort of circuit to combine serial 4 TX and RX into the one line. We use a circuit using a MAX487 chip (normally used for RS485 communication) to combine the signals and send and receive the 5V one.

The library assumes that this interface is used.
We do not have any spare shield boards at the moment, planning a production run later in July at this stage
Thanks for your interest

Thank you for your prompt reply. I’m now thinking about to use arduino uno communicate directly with SDI12 and then write and read from electron to arduino instead, which means I will use arduino uno as a shield but the problem is that, I have to do programming 2 ways but that might be easier for me since I have almost 0 knowledge in hardwares. Please let me know when you have a spare shield left, I would like to purchase one :slight_smile:

1 Like

I will do, there is an arduino library for SDI-12 now, it uses a software serial port and one pin to do the communication, I think you may have to use a 5V Arduino to make sure the signals are at the right level

@pNrie Is it possible to use Max485 module instead of Max487 chip? According to your diagram, is it possible that B connection can port with SDI-12 and leave A connection empty while RO, RE, DE and DI connect similar with your diagram.

It looks as though you could because you have access to the control pins which you could wire up as per the diagram I posted. I assume the A and B RS485 lines are on the green terminal. You need to bias the A line at about 2.5V to ensure that as the B line moves between 0 and 5 volt that the receive signal RO is correct.
It should work