UART Tx issues for custom extension

Hi there,

I’ve been developing a custom extension for blueOS that integrates some external components. I’ve overridden the Autopilot Parameters so that I can use the UART connections for different devices than the defaults, but I’ve been trying to diagnose an issue where I can’t seem to send data on the Tx pins. I have an external IMU which is working fine, but it’s read-only, so I’m not really using the Tx pin on that one. On the others, there seems to be no voltage change at all on the Tx pin when I send data, and I’m not sure if its being intercepted somewhere that I’m missing. Sorry this is such a specific problem, does anyone have any insight?

Hi @misterlister -

You shouldn’t need to

In pirate mode, on the Autopilot Firmware page, simply remove the serial ports you’re interested in using from the autopilots control (via the small x)

Your extension should just be able to reach and use that port from there, as long as your extension has the correct permissions configured! This extension communicates with serial ports, check out the setup here.

“/dev:/dev” is the key line for the container to communicate externally do those devices mapped to /dev/tty***

Thanks for responding! I had previously x’ed out the serial ports from Autopilot Firmware, and I have been including the “/dev:/dev” line in my permissions, but I’m still having no luck. Strangely, I’ve tried bypassing my extension entirely, simply sending a constant stream of 0x55 bytes (with “stty -F /dev/ttyAMA1 38400”, followed by “while true; do printf ‘\x55’ > /dev/ttyAMA1; done”), and even with this, I’m not seeing any voltage change on the Tx pin. I tried the same with different ports and got no luck either. This is really stumping me, I’m not sure where the issue is.

Hi Hayden -

That’s quite unusual. How are you wiring to AMA1? Are you using a Navigator? AMA1 is not broken out on the Navigator as a serial port, but I2C! I’d recommend making sure you’re using the serial port you think you are connecting to… And double check the Navigator schematic if it is in the mix!

Yes, I’m using a Navigator. I’ve been using the mapping shown by BlueOS internally:
“Serial 1” - “ttyS0”
“Serial 3” - “AMA1”
“Serial 4” - “AMA2”
(I’m not using Serial 5)
I’ve been able to get signals back from the devices on the Rx pins for each port, and I’ve confirmed that they are coming from the devices I expect, but none of the ports have any change to the Tx voltage, whether I’ve sent the data through my scripts, or directly from the command line. Pardon my lack of knowledge, I’m still fairly new to the robotics side of things!

Hi @misterlister -

What version of BlueOS are you running? Can you share a system log, found with the gear icon in the lower left of BlueOS?

I’m running version 1.4.3. Which of the system log files would you want to see? I can’t send over the whole thing.