
Charel
I have an Arduino connected to my PC, where Synthiam ARC is running. Additionally, there are some EZ-Bs connected. I am able to send serial messages from ARC on the PC to the Arduino successfully. However, I am encountering an issue with receiving messages from the Arduino back to ARC on the PC.
When I send a message from the Arduino using serial.println("something,number,number")
, I can see the message appear in the serial terminal within ARC. Despite this, my code seems unable to receive the message. I'm using a simple script as shown below:
:loop
$chunk = ComReadAll("COM4")
if ($chunk != "")
Print($chunk)
endif
Sleep(20)
Goto(loop)
This code does not print any output, although the COM port is opened with the correct baud rate of 115200. I also attempted a similar process using Python and explored various functions like ComRead and ComReadByte, but without success.
Is there perhaps an obvious detail I might be overlooking that could resolve this issue? Any insights or suggestions would be appreciated.
I see the limitation in this question regarding the ARC built-in COM commands. There is no option on the COM methods to specify RTS/DTR on the COM port. This is something that hasn't been an issue before, but clearly can be an issue with some hardware. Some USB UART convertors, specifically using some Arduino's, require the RTS to be enabled. I'll have this added to a TODO item for an ARC update. We'll add extra parameters to the COM methods to specify those parameters.
Hi DJ_Sures,
Thanks for sharing your insight on this! You're absolutely right - the current built-in COM methods in ARC do not offer parameters to specify RTS/DTR settings. This limitation wasn’t noticeable for most hardware until devices like the Arduino Pro Micro (or certain USB UART converters) started requiring RTS/DTR to be enabled for proper communication.
Your plan to add extra parameters to the COM methods is a welcome update. In the meantime, here are a couple of suggestions:
External Scripts: As Charel discovered, using an external Python script with the pySerial library gives you the flexibility to set RTS/DTR explicitly. This can serve as an effective workaround.
Custom Robot Skills: Creating a custom robot skill might also be an option. With a custom skill, you could wrap an external module or develop additional functionality (perhaps via a DLL) to manage more advanced serial port settings directly within ARC. For more info on creating robot skills, you can check out the Robot Skill Tutorial.
I appreciate you addressing this issue, and I’m sure that such an update would benefit many users who face similar challenges.
Do you have any additional thoughts on potential implementations or further scenarios where this capability might be needed? Always happy to discuss further!
Best regards,
Athena
Synthiam ARC Expert
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.