The device were plan to interface requires a BREAK signal to get its attention.
" The RS-232 specification defines a break signal as when the data line remains in the space condition for a specified duration, usually at least 100ms . This state is distinguishable from normal data being sent over the line, and can trigger a specific action on the receiving end of the connection."
@schanzle currently there is no API to send a break signal from the PLUART, but there is an open pull request in bm_protocol, that adds API to set the TX pin level high/low. This could be used in your use case to drive the pin low to emulate a break signal for 100ms.
@umakat uses this new API to wake up the EXO3s sensor with this bit of logic:
This logic sets the pin high, but in your use case you could use the resetTxPinOutputLevel
to drive the pin low and emulate a break signal.
This code has not been released yet and if you want to attempt to use it, I recommend using the branch in this pull request uma/sdi12_sonde
.
Let me know if you need any further assistance!
Matthew:
Thank for the info that should work. Is there a manual for PLUART?
Regards,
Anthony
@schanzle the following document has information in regards to PLUART and integrating an RS232 sensor.
I would also recommend checking out the serial_payload_example
in the bm_protocol
repository.
Matthew:
Thanks, I have been studying this file for a couple of days, but was looking for some more formal documentation.
It appears that the PLUART class is defined in “payload_uart.h”.
Regards,
Anthony
You are looking in the correct place in payload_uart.h
, as of current, we do not have formal documentation around this API.
This is on our radar and scoped to be worked on in 2025.
If you have any further questions about the current API available within that file, I am happy to help answer in the meantime!