2 Detailed interconnection - Art-ut-Kia/A429_Piksi GitHub Wiki
The interconnection between the Arduino and the Piksi module requires at least the four following wires:
- the power supply (+5V/GND); and
- the UART (RX/TX).
The problem is that the NAV429 shield occupies all the Arduino headers, so that the signals above are no more accessible. This issue is solved by using an Arduino uno clone rather than a genuine one. The former has extra-headers footprints (4-pin each). One of these 4-pin headers gives access to precisely the required 4 signals (UART + power supply). As a bonus, the adjacent header gives access to I2C port (SDA/SCL). Given that these signals also correspond to the ports A4 & A5 (GPIO's) of the ATMEGA328P MCU, both headers (UART + I2C) are used - as a 2x4 pin header - to interface the Piksi. This permits to control the RESET pin of the Piksi (via A5) and to acquire its "position valid" signal (via A4). The schematics of the UNO clone is provided at the end of this page.
The following diagram shows the detailed interconnexion between the 2x4 pin 2.54mm female header (Arduino side) and the 2mm 2x10 pin female header (Piksi side). One shall notice that Piksi signals are 3V3 logic while Arduino's are 5V. Swift Navigation states that their inputs are not 5V-tolerant. Hence resistor dividers (2k2/3k3) are installed on Arduino=>Piksi direction signals. For signals in the other direction, there is no issue and the connections are direct. Another issue raises with the Arduino RX signal that is also driven from USB (via the CH340). A direct connection to the Piksi would inhibit firmware downloading (refer to the "parallel connection" drawing here after). This is solved by a diode (a Schottky one is to be preferred) and a resistor. This transforms the Piksi TX output into the equivalent of an open-drain output.
The various components are installed on a perfboard circuit placed along the ribbon cable. This circuit is isolated with a piece of heat shrink tube.
Solving the issue of parallel connection of two TX signals on the same RX port:
How the open box looks like:
The Arduino Uno clone schematic: