Home › Forums › TinyG › TinyG Support › TinyG initialization
- This topic has 3 replies, 2 voices, and was last updated 2 years, 6 months ago by cmcgrath5035.
-
AuthorPosts
-
April 27, 2022 at 3:14 pm #12137gertaParticipant
I’m working on a project with a TinyG controlled by a Pico, with serial communication directly between the TinyG on its serial pins and the Pico through its UART interface. For the most part, this works quite smoothly, except for getting the serial communication initialized — the TinyG does not communicate unless I first connect it to another computer over USB. At that point, serial communication between the TinyG and the Pico works fine, even if I then remove the USB connection (power is still drawn from the 24v power supply). I would like to be able to get everything initialized without having to plug into the TinyG USB port.
Is there some sort of handshake that happens when plugging in the USB cable that isn’t happening with the Pico’s serial connection? If so, is there some way I can perform this same handshake over serial? Thanks for any suggestions.
April 27, 2022 at 7:08 pm #12138gertaParticipantTo add some additional detail, I find that in order to get serial communication working, I need to establish a connection with the TinyG over USB using CoolTerm. Serial communication with the Pico works fine, even if I unplug the USB cable from the TinyG. However, if I close the CoolTerm connection, serial communication with the Pico instantly halts, even if the USB cable is still connected. This behavior reinforces my interpretation that there’s some sort of communications sign-on and sign-off being through my CoolTerm connection that I’m missing on the Pico serial connection.
April 27, 2022 at 7:31 pm #12139gertaParticipantDigging into my CoolTerm and TinyG settings, I noticed RTS/CTS flow control was enabled. Disabling flow control on the TinyG by setting $ex=0 solved the problem: I can now power cycle the TinyG and freely communicate with the Pico over serial.
I don’t see RTS or CTS contacts on the board, but I assume they must be connected somewhere if I’m able to use flow control over USB. Is there any way to solder on RTS/CTS pins, or am I out of luck apart from the USB port?
April 28, 2022 at 8:08 pm #12140cmcgrath5035ModeratorI love it when someone solves their own problem, especially when I have to think hard about where to go next.
First, here is a link to the 4 pages of tinyG Schematics, which might come in handy
https://github.com/synthetos/TinyG/tree/master/hardware/v8schematics/v8hOn Page 1 you will see the RTS and CTS pins on the FTDI devie(USB<->Serial)
FT230X. Probably not an issue if you stick with the Pico, be aware that the
ATxmega192 device is 3.3V logic and has little tolerance for 5V signals.Also note that the serial receive path from J14 is wire-OR’d to the FTDI device with each path having a 2.7Kohm resistor. You might want to research how RTS and CTS logic operates and implement similar isolation.
It is not obvious where you plan to end up with flow control strategy.
The most successful implementations (Chillipeppr, cncjs) use tinyG input buffer fill for flow control, obviating the need for rts/cts connections.Good luck with your project!
-
AuthorPosts
- You must be logged in to reply to this topic.