@robert-hh I'm not sure what happened but I changed my code back to the way it was before playing around with break times, uart timeout etc and it works. A note for anyone wanting to interface with SDI-12 with a LoPy you need to perform a gc.collect() after every read and then wait for 30secs before you can read from any other sensors. @robert-hh thanks for your help with this it was pivotal to getting a working SDI-12 interface. @AntonioValente thanks for your initial concept which lead to this solution.