Interfacing Electronic Circuits to Arduinos

Not rated 7,118

Circuit Image

This document outlines the process of interfacing an Arduino with an ARINC 429 transceiver, illustrating the general methodology for connecting an Arduino to electronic circuits that can be applied to individual designs. The ARINC 429 bus is the predominant data bus utilized in aircraft for communication between computers. It operates at two speeds: low speed at 12.5 kbps and high speed at 100 kbps, using two wires plus a ground connection. Each data transmission consists of a 32-bit word, where the first 8 bits, referred to as the label, identify the data contained within the ARINC word. Bits 9 and 10 typically indicate the Source/Destination Indicator, though they may also carry data or extend the label. The actual data is conveyed in bits 11-29, which can represent binary two's complement, binary-coded decimal, or a set of discrete bits. Bits 30 and 31 comprise the Sign Status Matrix, indicating conditions such as Normal operation, Failure Warning, No Computed Data, and Functional Test. The final bit, bit 32, serves as the Parity bit, ensuring that the 32-bit word has odd parity. Avionics manufacturers, aircraft manufacturers, and avionics service centers utilize specialized equipment to read ARINC 429 data buses. The author developed the Arinc429eReader to create personal test equipment, although this topic could warrant its own detailed guide. Instead, a more broadly applicable tutorial on interfacing Arduino with electronic circuits is presented. The author discovered various ARINC 429 to USB converters available at high prices, around $1500 or more, prompting the search for a more cost-effective solution. A suitable ARINC 429 transceiver in a 40-pin DIP was found at a reasonable cost, and free samples were obtained from the manufacturer. Although the transceiver includes both a transmitter and two receivers, only the receivers are currently required. The next step involves assessing the necessary skills and determination to complete the project, which includes reviewing the transceiver's specifications. The author has prior coding experience with other processors and can reference existing library code for guidance. The open-source nature of Arduino aligns well with these needs. Finally, considerations regarding the project's feasibility in terms of cost and time are addressed, with an inclination towards exploring new experiences despite potential skepticism from others.

The ARINC 429 bus plays a crucial role in avionics systems, facilitating reliable communication between various electronic components in aircraft. The bus architecture is designed to ensure data integrity and is characterized by its unidirectional nature, where data flows from a single transmitter to multiple receivers. Each device on the bus is assigned a unique label that allows for the identification of the data being transmitted. This structured approach to data communication is essential in aviation, where safety and reliability are paramount.

The interfacing process begins with selecting an appropriate ARINC 429 transceiver, which serves as the bridge between the Arduino microcontroller and the ARINC bus. The transceiver converts the digital signals from the Arduino into the ARINC 429 format and vice versa, allowing for seamless communication. The choice of a 40-pin DIP transceiver offers flexibility in circuit design and integration into existing systems.

To implement the interface, a schematic diagram would typically include the Arduino, the ARINC 429 transceiver, and the necessary passive components such as resistors and capacitors to filter signals and stabilize the power supply. The connections must be made carefully, ensuring that the data pins from the transceiver are correctly mapped to the appropriate digital pins on the Arduino. Additionally, pull-up or pull-down resistors may be required on certain lines to maintain signal integrity.

Software development is a critical aspect of this project. The Arduino IDE can be utilized to write the firmware that will control the transceiver, manage data transmission and reception, and handle any necessary data processing. Libraries specific to ARINC 429 communication may be available or can be developed to facilitate easier interaction with the transceiver. These libraries would typically include functions for initializing the transceiver, sending and receiving data, and interpreting the ARINC 429 data format.

Testing and validation of the system can be conducted using simulation tools or by connecting the setup to an existing ARINC 429 bus to monitor real-time data. This step is vital to ensure that the interface operates correctly and meets the expected performance criteria.

In conclusion, interfacing an Arduino with an ARINC 429 transceiver is a multifaceted project that combines hardware design and software development. The knowledge gained through this process can be applied to various electronic circuit designs, enhancing the understanding of data communication protocols in embedded systems.In this instructable I use an example of interfacing an Arduino to an ARINC 429 transceiver in order to demonstrate the general process of interfacing an Arduino to electronic circuits so you can use these techniques on your own designs. An ARINC 429 bus is the most common data bus used on aircraft for computer to computer communications.

The ARIN C 429 bus operates at one of two speeds, called low speed and high speed, which are 12. 5 kbps and 100 kbps respectively. The bus operates over two wires (and a ground). Each piece of data is sent in a 32 bit word. Generally the first 8 bits, called the label, are used to identify the data contained within the ARINC word. Bits 9 and 10 often define the Source/Destination Indicator, but sometimes they contain data or are an extension of the label.

Data is contained in bits 11-29 and can contain binary twos compliment, binary coded decimal, and/or a set of discrete bits. Bits 30 and 31 contain the Sign Status Matrix, and its values can indicate Normal operation, Failure Warn, No Computed Data, and Functional Test.

Finally bit 32 is the Parity bit and is set so that the 32 bit word has ODD parity. Avionics equipment manufacturers, aircraft manufacturers, and avionics equipment service centers have specialized test equipment to read these ARINC 429 data buses. I`ve wanted to own and use my own test equipment so I developed the Arinc429eReader. While this could be an instructable on its own merit, I suppose the audience interested in such a device would be small.

I will therefore present a more generally applicable instructable on the process of interfacing an Arduino to other electronic circuits. In my example I found several companies that make ARINC 429 to USB converters but they are rather expensive, $1500 US dollars or more.

There had to be a better solution. I found an ARINC 429 transceiver in a 40 pin DIP at a reasonable price. I wrote to the company and they sent me some free samples. Although the transceivers contain both a transmitter and two receivers, I only needed the receivers (at least for now!) so this chip looked good. The next step is to determine if you have the skills (and the determination) to see the project through.

To determine this I obtained the ARINC 429 transceiver chips` specification and reviewed it. What about software skills Well, I`ve done quite a bit of coding for other processors before and I can look through how other library code is written as examples of how others solved similar problems. The open source nature of Arduino is perfect for my needs here. The next step is to determine if the project should be done. It will cost money and time. I usually error on the side of trying new things for the experience if nothing else. Asking others for their opinion is often NOT recommended. Remember that most of the people we remember a great people all had contemporaries telling them they were wrong.

🔗 External reference




Warning: include(partials/cookie-banner.php): Failed to open stream: Permission denied in /var/www/html/nextgr/view-circuit.php on line 713

Warning: include(): Failed opening 'partials/cookie-banner.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/nextgr/view-circuit.php on line 713