Return to Nexstar_GPS Project. Go up one level.

Theory of operation for the AUX bus interface

This describes how the simple Arduino Mini-Pro AUX bus interface works.

The AUX bus hardware interface design comes from much earlier in the CloudyNights thread, from user LordBeowulf. So we all have been using that original design, transferred to the easier Arduino Pro-Mini boards.

All signals are 5V logic, so no buffering is required to protect the Arduino. Three Arduino pins are used: TXO (Transmit Output), RXI (Receive Input), and D4 (BUSY). The Celestron mount provides weak pull-ups on all three signals, so they naturally float HIGH when not actively being driven LOW. Things attaching to the bus are supposed to use open-collector drivers, so that they only ever drive LOW, and never actively drive any signal HIGH (they float, aka. tri-state instead).

RXI is configured as an input with no Arduino pull-up, so it is effectively tri-stated all of the time, driving neither LOW nor HIGH.

When idle, D4 is also configured as an input with no Arduino pull-up, so it sits tri-stated when idle.

When active, D4 is only ever asserted LOW, making it also 100% compliant/safe.

D4 is used as the BUSY line, warning other "masters" that the bus is "in-use". This is an imperfect (Celestron) design, as there is still a tiny chance of collisions when multiple "masters" are active on the bus. "Masters" are the hand-controllers, WiFi, PC-Port, ethernet.. anything that can send a command to the mount. Keep that in mind.

This leaves us with the more troublesome TXO.

When idle, TXO is configured as an input with no Arduino pull-up, so nearly all of the time it is tri-stated like the others.

When active, the Arduino's internal UART is used to clock out the bit stream, actively driving the signal LOW and HIGH as needed. Should another "master" also try to transmit at the same time, the HIGH bits from TXO can short-circuit for as long as 1/9600 of a second (per bit) if they happen to overlap with LOW bits from another "master". There is potential for high current to flow ever so briefly here.

But this is very unlikely to damage anything because of the very short bit period (1/9600 of a second). And it is very unlikely to happen in the case of the GPS module, because it only gets accessed at the beginning of an alignment sequence.

To induce an overlap, one would have to access the GPS from, say the HC, while simultaneously doing something from, Eg. SkyPortal. And even then they are unlikely to reply at the same fraction of a second, and even THEN the D4/BUSY line will almost always prevent it. So, possible to short-circuit briefly, but unlikely, and even then unlikely to damage anything.

It is however, for this reason, that I have recommended stuffing a 470-Ohm resistor between TXO and the AUX bus cable, to limit current flow to 10mA in that almost-impossible scenario. But an even better option has since been determined, using a 1N4148 general purpose signal diode in place of that resistor, with the cathode (black stripe) end at TXO and the anode side connected to the AUX bus.