{"id":8326,"date":"2018-01-16T15:56:50","date_gmt":"2018-01-16T15:56:50","guid":{"rendered":"http:\/\/localhost:8105\/?p=8326"},"modified":"2021-12-07T16:09:29","modified_gmt":"2021-12-07T16:09:29","slug":"installing-pixplanefmccdu-software","status":"publish","type":"post","link":"https:\/\/blog.shahada.abubakar.net\/?p=8326","title":{"rendered":"Installing PiXPlaneFMCCDU Software"},"content":{"rendered":"<div><\/div>\n<div>\n<div>This is a guide on how to install my Pi X-Plane FMC CDU Software, for use with the <a href=\"http:\/\/blog.shahada.abubakar.net\/post\/737-fmc-cdu-pcb-board\" shape=\"rect\">Pi FMC CDU Printed Circuit Board (PCB)<\/a> I designed. Thanks to all the testers who provided feedback and corrections to this guide.<\/div>\n<div><\/div>\n<div><\/div>\n<div><span style=\"font-size: 18px;\"><span style=\"font-size: 18px; font-weight: bold;\">Compatibility<\/span><\/span><\/div>\n<div><\/div>\n<\/div>\n<ul>\n<li>The Pi X-Plane FMC CDU software is compatible with the following X-Plane aircraft and FMCs:\n<ul>\n<li>EADT&#8217;s <a href=\"https:\/\/www.eadt.eu\/index.php?x737-700-aircraft\" shape=\"rect\">x737-700<\/a> and <a href=\"https:\/\/www.eadt.eu\/index.php?x737-800-aircraft\" shape=\"rect\">x737-800<\/a> (freeware) with Javier Cortes&#8217;s <a href=\"http:\/\/ufmc.eadt.eu\/x737FMC\" shape=\"rect\">x737FMC<\/a> (payware).<\/li>\n<li><a href=\"https:\/\/forums.x-plane.org\/index.php?\/forums\/topic\/111305-b738-800-modified\/\" shape=\"rect\">Zibo 737-800X<\/a> (freeware) with built-in FMC (Update: bugs fixed, see https:\/\/blog.shahada.abubakar.net\/wp-admin\/post.php?post=8379)<\/li>\n<\/ul>\n<\/li>\n<li>In the future, support for the following FMCs will be added:\n<ul>\n<li>Any aircraft running with <a href=\"https:\/\/www.x-fmc.com\/\" shape=\"rect\">X-FMC<\/a> (freeware)<\/li>\n<li>Anything else I get my hands on that supports input and output to external hardware.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div>\n<div><span style=\"font-size: 18px;\"><strong>\u00a0<\/strong><\/span><\/div>\n<\/div>\n<div>\n<div><span style=\"font-size: 18px;\"><strong>Licensing \/ Warranty<\/strong><\/span><\/div>\n<\/div>\n<ul>\n<li>This software is licensed under the <a href=\"https:\/\/www.gnu.org\/licenses\/gpl-3.0.en.html\" shape=\"rect\">GNU General Public License version 3<\/a>.<\/li>\n<li>Source code is available at <a href=\"https:\/\/github.com\/dotsha747\/Pi-XPlane-FMC-CDU\" shape=\"rect\">https:\/\/github.com\/dotsha747\/Pi-XPlane-FMC-CDU<\/a>.<\/li>\n<li>Questions? Post them here: <a href=\"https:\/\/blog.shahada.abubakar.net\/?p=8211\">https:\/\/blog.shahada.abubakar.net\/?p=8211<\/a><\/li>\n<\/ul>\n<div>\n<div><span style=\"font-size: 18px;\"><span style=\"font-size: 18px; font-weight: bold;\">Before You Start<\/span><\/span><\/div>\n<ul>\n<li>Pre-requisites:\n<ul>\n<li>You will need one of the following:\n<ul>\n<li>Raspberry Pi 3 Model B<\/li>\n<li>Raspberry Pi 2 Model B (what I used)<\/li>\n<li>Raspberry Pi 1 Model B (not tested)<\/li>\n<\/ul>\n<\/li>\n<li>If you are using a wired network interface, connect the Raspberry Pi to your network switch.<\/li>\n<li>If you are using WiFi on a Pi 1 or 2 (the Pi 3 has WiFi built-in), plug in a supported USB Wifi Dongle<\/li>\n<li>Your Raspberry Pi is connected to the FMC CDU display<\/li>\n<li>You have a USB keyboard plugged into the Raspberry Pi&#8217;s USB port<\/li>\n<li>You have a microSD card that you can erase and install the raspberry pi&#8217;s Raspbian operating system and FMC software on<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div><\/div>\n<div><span style=\"font-size: 18px;\"><span style=\"font-size: 18px; font-weight: bold;\">Install Raspbian Stretch<\/span><\/span><\/div>\n<div><\/div>\n<ul>\n<li>On your Ubuntu Linux or Windows Desktop PC:\n<ul>\n<li>Download the latest Raspbian Stretch Lite image:\n<ul>\n<li>Download Raspbian Stretch Lite from <a href=\"https:\/\/www.raspberrypi.org\/downloads\/raspbian\/\" shape=\"rect\">https:\/\/www.raspberrypi.org\/downloads\/raspbian\/.<\/a><\/li>\n<li><span style=\"color: #333333;\">Make sure to download the &#8220;Minimal\/Lite&#8221; image, and not the Desktop image. Pi XPlane FMC CDU software needs direct access to the graphical framebuffer, and having a windowing\/desktop layer gets in the way of that.<\/span><\/li>\n<li>The version I used was &#8220;2017-11-29&#8221;, but it should work with a later version.<\/li>\n<\/ul>\n<\/li>\n<li>Download Etcher tool to write image to microSD card\n<ul>\n<li><a href=\"https:\/\/etcher.io\/\" shape=\"rect\">https:\/\/etcher.io\/<\/a><\/li>\n<li>click &#8220;Download for &#8230;&#8221;<\/li>\n<li>unzip etcher zip file<\/li>\n<li>click on the program<\/li>\n<li>&#8220;No&#8221; to installing a desktop file if you only plan to use it just once for this install<\/li>\n<li>Etcher program will start<\/li>\n<li>Insert microSD card into a SD Card reader connected to PC<\/li>\n<li>Click &#8220;Select Image&#8221; and choose the Raspbian Stretch Lite image you downloaded earlier.<\/li>\n<li>Confirm Storage Device is referencing your microSD card<\/li>\n<li>Click &#8220;Flash!&#8221; and wait till &#8220;Flash Complete!&#8221; is displayed<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8916\" rel=\"attachment wp-att-8916\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8916\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/Screenshot-from-2018-01-01-16-46-54.png\" alt=\"\" width=\"800\" height=\"408\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/Screenshot-from-2018-01-01-16-46-54.png 800w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/Screenshot-from-2018-01-01-16-46-54-300x153.png 300w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/Screenshot-from-2018-01-01-16-46-54-768x392.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/div>\n<div style=\"text-align: center;\"><\/div>\n<ul>\n<li style=\"display: inline; list-style: none;\">\n<ul>\n<li>Remove the microSD card from the PC&#8217;s usb reader and insert it into the Raspberry Pi 3<\/li>\n<\/ul>\n<\/li>\n<li>Power on the Raspberry Pi\n<ul>\n<li>If your image is flashed properly, you will see the &#8220;rainbow&#8221; screen, followed by a number of console messages. Finally a login prompt will appear.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8917\" rel=\"attachment wp-att-8917\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8917\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180101_165447-scaled.jpg\" alt=\"\" width=\"1746\" height=\"2560\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180101_165447-scaled.jpg 1746w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180101_165447-205x300.jpg 205w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180101_165447-698x1024.jpg 698w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180101_165447-768x1126.jpg 768w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180101_165447-1047x1536.jpg 1047w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180101_165447-1396x2048.jpg 1396w\" sizes=\"auto, (max-width: 1746px) 100vw, 1746px\" \/><\/a><\/div>\n<div style=\"text-align: center;\"><\/div>\n<div><\/div>\n<div><\/div>\n<div><span style=\"font-size: 18px; font-weight: bold;\">Configure Raspbian Stretch<\/span><\/div>\n<div><\/div>\n<ul>\n<li><span style=\"color: #000000;\">Login as user &#8220;pi&#8221; password &#8220;raspberry&#8221;. You should get the following Pi shell prompt on your display:<\/span>\n<ul>\n<li><span style=\"color: #000000; font-family: 'courier new', courier, monospace;\">pi@raspberrypi:~ $<\/span><\/li>\n<li><span style=\"color: #000000;\">This means your Pi is expecting you to type in a command.<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">Configure networking on your Pi<\/span>\n<ul>\n<li><span style=\"color: #000000;\">Execute the following<\/span>\n<ul>\n<li><span style=\"color: #000000; font-family: 'courier new', courier, monospace; font-style: italic;\">sudo raspi-config<\/span><\/li>\n<li><span style=\"color: #000000;\">This will run raspi-config, a menu-based program to configure the raspberry pi settings, which looks like this (The model number at the top right will depend on your Pi model):<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8918\" rel=\"attachment wp-att-8918\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8918\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/Screenshot-from-2018-01-13-14-26-04.png\" alt=\"\" width=\"721\" height=\"410\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/Screenshot-from-2018-01-13-14-26-04.png 721w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/Screenshot-from-2018-01-13-14-26-04-300x171.png 300w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/a><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><span style=\"color: #000000;\">Use the arrow keys and move the cursor to &#8220;2 Network Options&#8221; and press ENTER<\/span>\n<ul>\n<li><span style=\"color: #000000;\">Select &#8220;1. Hostname&#8221; and key in &#8220;PiXPlaneFMCCDU&#8221; (or any other name you desire)<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">If you are using WiFi, configure your WiFi network<\/span>\n<ul>\n<li><span style=\"color: #000000;\">Use the arrow keys and move the cursor to &#8220;2 Network Options&#8221; and press ENTER<\/span><\/li>\n<li><span style=\"color: #000000;\">Select &#8220;2. Wi-Fi&#8221;<\/span><\/li>\n<li><span style=\"color: #000000;\">Enter your WiFI SSID and press ENTER<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">Press Tab and select Finish<\/span><\/li>\n<li><span style=\"color: #000000;\">Select &#8220;Yes&#8221; and press ENTER to reboot.<\/span><\/li>\n<li><span style=\"color: #000000;\">login as user &#8220;pi&#8221; and password &#8220;raspberry&#8221;<\/span><\/li>\n<li><span style=\"color: #000000;\">Verify the Pi is connected to the internet by executing the following:<\/span>\n<ul>\n<li><span style=\"color: #000000; font-family: 'courier new', courier, monospace; font-style: italic;\">ping google.com<\/span><\/li>\n<li>Press control-C to stop the pinging. You s<span style=\"color: #000000;\">hould get a response like this (names and IPs will differ depending on your location):<\/span>\n<ul>\n<li><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; color: #000000; font-family: 'courier new', courier, monospace;\">PING google.com(kul09s03-in-x0e.1e100.net (2404:6800:4001:801::200e)) 56 data bytes<\/span><\/span><\/li>\n<li><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; color: #000000; font-family: 'courier new', courier, monospace;\">64 bytes from kul09s03-in-x0e.1e100.net (2404:6800:4001:801::200e): icmp_seq=1 ttl=57 time=23.2 ms<\/span><\/span><\/li>\n<li><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; color: #000000; font-family: 'courier new', courier, monospace;\">64 bytes from kul09s03-in-x0e.1e100.net (2404:6800:4001:801::200e): icmp_seq=2 ttl=57 time=22.6 ms<\/span><\/span><\/li>\n<li><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; color: #000000; font-family: 'courier new', courier, monospace;\">^C<\/span><\/span><\/li>\n<li><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; color: #000000; font-family: 'courier new', courier, monospace;\">&#8212; google.com ping statistics &#8212;<\/span><\/span><\/li>\n<li><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; color: #000000; font-family: 'courier new', courier, monospace;\">2 packets transmitted, 2 received, 0% packet loss, time 1001ms<\/span><\/span><\/li>\n<li><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; color: #000000; font-family: 'courier new', courier, monospace;\">rtt min\/avg\/max\/mdev = 22.647\/22.930\/23.214\/0.321 ms<\/span><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">It is advisable at this stage to login to your router and configure a fixed DHCP IP assignment to the raspberry Pi. This is not strictly required but will help with troubleshooting. Restart the Pi after you&#8217;ve done this so it acquires a new IP address.<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">Update the Raspbian by executing the following:<\/span>\n<ul>\n<li><span style=\"color: #000000; font-family: 'courier new', courier, monospace; font-style: italic;\">sudo apt-get update ; sudo apt-get &#8211;yes upgrade<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">Raspbian comes set up for a UK locale and keyboard. If you&#8217;re using something else (quite likely if you don&#8217;t have a &#8220;\u00c2\u00a3&#8221; key on your keyboard) then you will need to change it. Not doing this will give you problems typing certain characters such as the double-quote and pipe symbol.<\/span>\n<ul>\n<li><span style=\"color: #000000;\">Configure locale:<\/span>\n<ul>\n<li><span style=\"color: #000000;\">Execute the following:<\/span>\n<ul>\n<li><span style=\"color: #000000; font-family: 'courier new', courier, monospace; font-style: italic;\">sudo raspi-config<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">Use arrow keys to move cursor to &#8220;4. Localization Options&#8221; and press ENTER<\/span><\/li>\n<li><span style=\"color: #000000;\">Move cursor to &#8220;1. Change Locale&#8221; and press ENTER<\/span>\n<ul>\n<li><span style=\"color: #000000;\">Press space on your locale. If you are unsure, try &#8220;en_US.UTF-8.UTF-8&#8221;.<\/span><\/li>\n<li><span style=\"color: #000000;\">Unselect any other locales.<\/span><\/li>\n<li><span style=\"color: #000000;\">Press Tab and select OK.<\/span><\/li>\n<li><span style=\"color: #000000;\">Select &#8220;en_US.UTF-8&#8221; as the default locale for your system environment.Press OK<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">Use arrow keys to move cursor to &#8220;4. Localization Options&#8221; and press ENTER<\/span><\/li>\n<li><span style=\"color: #000000;\">Move cursor to &#8220;3. Change Keyboard Layout&#8221; and press ENTER<\/span>\n<ul>\n<li><span style=\"color: #000000;\">Select your keyboard model. If you are unsure, try &#8220;Generic 105-key (Intl) PC&#8221; and press OK.<\/span><\/li>\n<li><span style=\"color: #000000;\">Select &#8220;Other&#8221; for Keyboard Layout and press OK<\/span><\/li>\n<li><span style=\"color: #000000;\">Select your keyboard layout. If you are unsure, try &#8220;English (US)&#8221;<\/span><\/li>\n<li><span style=\"color: #000000;\">Select &#8220;English (US)&#8221;. Press Tab followed by OK.<\/span><\/li>\n<li><span style=\"color: #000000;\">Select &#8220;The default for the keyboard layout&#8221;. Press Tab followed by OK.<\/span><\/li>\n<li><span style=\"color: #000000;\">Select &#8220;No compose key&#8221;.\u00c2\u00a0Press Tab followed by OK.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">Press Tab followed by FINISH.<\/span><\/li>\n<li><span style=\"color: #000000;\">Execute the following:<\/span>\n<ul>\n<li><span style=\"font-size: 14px; font-family: 'courier new', courier, monospace; font-style: italic;\">sudo bash -c &#8220;echo &#8216;export LC_ALL=en_US.UTF-8&#8217; &gt;&gt; \/etc\/profile&#8221;<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">The prompt should return without any output. At this point your keyboard should be fully functional, and you should be able to type the double-quote (&#8220;) and pipe (|) characters normally.<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000;\">Depending on your display you may need to manually configure the screen resolution, by using raspi-config, &#8220;7. Advance Options\u00c2\u00a0<span style=\"letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important; color: #000000; font-style: normal; font-weight: 400;\">\u00e2\u0086\u0092 5. Resolution&#8221; or editing \/boot\/config.txt directly.<\/span><\/span><\/li>\n<li><span style=\"color: #000000;\">You should probably also change the password for the user pi. You can do this by using raspi-config, &#8220;1. Change User Password&#8221;.<\/span><\/li>\n<\/ul>\n<div><\/div>\n<div><\/div>\n<div><span style=\"font-size: 18px;\"><span style=\"font-size: 18px; font-weight: bold;\">Installation of Pi-XPlane-FMC-CDU Software<\/span><\/span><\/div>\n<div><\/div>\n<ul>\n<li>From the pi shell prompt, execute the following:\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace; font-style: italic;\">wget -O- http:\/\/repo.shahada.abubakar.net\/pubkey.asc | sudo apt-key add &#8211;<\/span>\n<ul>\n<li>The ouput should be similar to this:<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div style=\"margin-left: 120px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace; font-style: italic;\">&#8211;2018-01-13 06:20:47&#8211; http:\/\/repo.shahada.abubakar.net\/pubkey.asc<\/span><\/span><\/div>\n<div style=\"margin-left: 120px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace; font-style: italic;\">Resolving repo.shahada.abubakar.net (repo.shahada.abubakar.net)&#8230; 115.132.31.45<\/span><\/span><\/div>\n<div style=\"margin-left: 120px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace; font-style: italic;\">Connecting to repo.shahada.abubakar.net (repo.shahada.abubakar.net)|115.132.31.45|:80&#8230; connected.<\/span><\/span><\/div>\n<div style=\"margin-left: 120px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace; font-style: italic;\">HTTP request sent, awaiting response&#8230; 200 OK<\/span><\/span><\/div>\n<div style=\"margin-left: 120px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace; font-style: italic;\">Length: 1744 (1.7K) [text\/plain]<\/span><\/span><\/div>\n<div style=\"margin-left: 120px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace; font-style: italic;\">Saving to: STDOUT\u00e2<\/span><\/span><\/div>\n<div style=\"margin-left: 120px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace; font-style: italic;\">&#8211; 100%[===================&gt;] 1.70K &#8211;.-KB\/s in 0s \u00c2\u00a0 \u00c2\u00a0 \u00c2\u00a0<\/span><\/span><\/div>\n<div style=\"margin-left: 120px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace; font-style: italic;\">2018-01-13 06:20:48 (42.4 MB\/s) &#8211; written to stdout [1744\/1744]<\/span><\/span><\/div>\n<div style=\"margin-left: 120px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace; font-style: italic;\">OK<\/span><\/span><\/div>\n<\/div>\n<ul>\n<li style=\"display: inline; list-style: none;\">\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace; font-style: italic;\">cd \/etc\/apt\/sources.list.d<\/span>\n<ul>\n<li>The prompt should return without any output.<\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace; font-style: italic;\">sudo wget <a style=\"font-family: 'courier new', courier, monospace; font-style: italic;\" href=\"http:\/\/repo.shahada.abubakar.net\/repo.shahada.abubakar.net.sources.list\" shape=\"rect\">http:\/\/repo.shahada.abubakar.net\/repo.shahada.abubakar.net.sources.list<\/a><\/span>\n<ul>\n<li>The output should be similar to this:<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">&#8211;2018-01-13 06:29:56&#8211; http:\/\/repo.shahada.abubakar.net\/repo.shahada.abubakar.net.sources.list<\/span><\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Resolving repo.shahada.abubakar.net (repo.shahada.abubakar.net)&#8230; 115.132.31.45<\/span><\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Connecting to repo.shahada.abubakar.net (repo.shahada.abubakar.net)|115.132.31.45|:80&#8230; connected.<\/span><\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">HTTP request sent, awaiting response&#8230; 200 OK<\/span><\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Length: 53 [text\/plain]<\/span><\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Saving to: repo.shahada.abubakar.net.sources.list<\/span><\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">repo.shahada.abubak 100%[===================&gt;] 53 &#8211;.-KB\/s in 0s\u00a0<\/span><\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">2018-01-13 06:29:57 (1.33 MB\/s) &#8211; repo.shahada.abubakar.net.sources.list saved [53\/53]<\/span><\/span><\/div>\n<ul>\n<li style=\"display: inline; list-style: none;\">\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace; font-style: italic;\">sudo apt-get update<\/span>\n<ul>\n<li>The output should be similar to this:<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Get:1 http:\/\/mirrordirector.raspbian.org\/raspbian stretch InRelease [15.0 kB] \u00c2\u00a0<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Get:2 http:\/\/archive.raspberrypi.org\/debian stretch InRelease [25.3 kB]\u00a0<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Ign:3 http:\/\/repo.shahada.abubakar.net\/apt stable InRelease\u00a0<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Hit:4 http:\/\/repo.shahada.abubakar.net\/apt stable Release<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Get:5 http:\/\/mirrordirector.raspbian.org\/raspbian stretch\/main armhf Packages [11.7 MB]<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Get:6 http:\/\/archive.raspberrypi.org\/debian stretch\/main armhf Packages [127 kB]<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Fetched 11.8 MB in 2min 10s (90.6 kB\/s)\u00a0<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Reading package lists&#8230; Done<\/span><\/div>\n<ul>\n<li style=\"display: inline; list-style: none;\">\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace; font-style: italic;\">sudo apt-get install pi-xplane-fmc-cdu<\/span>\n<ul>\n<li>The output should be similar to this:<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Reading package lists&#8230; Done<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Building dependency tree\u00a0<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Reading state information&#8230; Done<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">The following NEW packages will be installed:<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">\u00c2\u00a0 pi-xplane-fmc-cdu<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Need to get 0 B\/6,000 B of archives.<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">After this operation, 25.6 kB of additional disk space will be used.<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Selecting previously unselected package pi-xplane-fmc-cdu.<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">(Reading database &#8230; 54241 files and directories currently installed.)<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Preparing to unpack &#8230;\/pi-xplane-fmc-cdu_1.0.1.gdb130a5_armhf.deb &#8230;<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Unpacking pi-xplane-fmc-cdu (1.0.1.gdb130a5) &#8230;<\/span><\/div>\n<div style=\"margin-left: 160px;\"><span style=\"font-size: 12px; font-family: 'courier new', courier, monospace;\">Setting up pi-xplane-fmc-cdu (1.0.1.gdb130a5) &#8230;<\/span><\/div>\n<div>\n<ul>\n<li>The installer will also install any other packages required by pi-xplane-fmc-cdu.<\/li>\n<li>You can update the program to the latest published versions at any time by executing:\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace; font-style: italic;\">sudo apt-get update<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace; font-style: italic;\">sudo apt-get upgrade<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div style=\"margin-left: 40px;\">\n<div><\/div>\n<\/div>\n<div style=\"margin-left: 40px;\"><\/div>\n<div><span style=\"font-size: 18px; font-weight: bold;\">Testing the FMC Hardware<\/span><\/div>\n<div><\/div>\n<ul>\n<li>It is probably a good idea to make sure your FMC hardware is working properly before proceeding to use it with the simulator. Two test programs are included to check the functionality of the keypad and the LEDs. Make sure that the main FMC program is stopped and not running when you execute these two test programs, weird random results will occur otherwise.<\/li>\n<\/ul>\n<div><\/div>\n<div><\/div>\n<div><span style=\"font-weight: bold;\">Keypad<\/span><\/div>\n<div><\/div>\n<ul>\n<li>The testFMCKeypad program tests the functionalty of the keypad, and in particular the matrix circuit.<\/li>\n<li>It is useful to read\u00c2\u00a0<a href=\"http:\/\/blog.komar.be\/how-to-make-a-keyboard-the-matrix\/\" shape=\"rect\">http:\/\/blog.komar.be\/how-to-make-a-keyboard-the-matrix\/<\/a>\u00c2\u00a0to get a better understanding of how a matrix keyboard works. In particular, the keypad design I used does not handle simultaneous keypresses (to do so would require a diode on every keyswitch). For the purposes of an FMC CDU simultaneous keypresses are not required.<\/li>\n<li>The first mode, known as &#8220;readall&#8221;, shows the state of the inputs, when each output line is enabled (set to 0).<\/li>\n<li>Running it without any keys pressed should result in the following output:<\/li>\n<\/ul>\n<div><\/div>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace; font-style: italic;\">testFMCKeypad readall<\/span><\/li>\n<\/ul>\n<div style=\"margin-left: 40px;\">\n<div><\/div>\n<\/div>\n<div style=\"margin-left: 80px;\">\n<pre data-pm-slice=\"1 1 []\" data-en-clipboard=\"true\">-----Output (Columns)-----\u00a0 \u00a0------Input (Rows)-----\n\n15 16 01 04 05 06 10 11 27\u00a0 \u00a029 08 09 07 00 02 03 12\u00a0\n\n\u00a00\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\n\u00a01\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\n\u00a01\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\n\u00a01\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1<\/pre>\n<\/div>\n<div><\/div>\n<ul>\n<li>When a single key is pressed it should appear as a single 0 in the Input section, when the appropriate output is enabled (set to 0). Hold down the EXEC key and run the above command again. This is what should appear:<\/li>\n<\/ul>\n<div><\/div>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace; font-style: italic;\">testFMCKeypad readall<\/span><\/li>\n<\/ul>\n<div style=\"margin-left: 40px;\"><\/div>\n<pre style=\"margin-left: 80px;\">-----Output (Columns)-----\u00a0 \u00a0------Input (Rows)-----\n15 16 01 04 05 06 10 11 27\u00a0 \u00a029 08 09 07 00 02 03 12\u00a0\n\u00a00\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\u00a01\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\u00a01\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0\n\u00a01\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 1\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0\n\u00a01\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 0\u00a0 \u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1\u00a0 1<\/pre>\n<div style=\"font-size: 14px;\"><\/div>\n<ul>\n<li>In the above example, pressing the EXEC key causes GPIO input 3 to becomes 0 when GPIO output column 1 is enabled.<\/li>\n<li>The second mode, known as &#8220;scanning&#8221; causes the keypad to be scanned and he results displayed continuously. To exit this mode, press Control-C (using the console keyboard).<\/li>\n<li>Here is a session where the CLR key is pressed once, followed by a demonstration of what happens when multiple keys are pressed simultaneously.<\/li>\n<\/ul>\n<div style=\"font-size: 14px;\"><\/div>\n<ul>\n<li><span style=\"font-size: 14px;\"><span style=\"font-size: 14px; font-family: 'courier new', courier, monospace; font-style: italic;\">testFMCKeypad\u00c2\u00a0scan<\/span><\/span><\/li>\n<\/ul>\n<div style=\"margin-left: 40px;\">\n<div><\/div>\n<\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-family: 'courier new', courier, monospace;\">Scanning keyboard &#8230; press any key on the FMC keypad to test.<\/span><\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-family: 'courier new', courier, monospace;\">Press Control-C (on the regular keyboard) to abort.<\/span><\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-family: 'courier new', courier, monospace;\">KEY PRESS row=01 col=08<\/span><\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-family: 'courier new', courier, monospace;\">KEY RELEASE row=01 col=08<\/span><\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-family: 'courier new', courier, monospace;\">KEY PRESS row=01 col=04<\/span><\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-family: 'courier new', courier, monospace;\">Multiple keys pressed.<\/span><\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-size: 14px; font-family: 'courier new', courier, monospace;\">Multiple keys pressed.<\/span><\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-size: 14px; font-family: 'courier new', courier, monospace;\">Multiple keys pressed.<\/span><\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-size: 14px; font-family: 'courier new', courier, monospace;\">Multiple keys pressed.<\/span><\/div>\n<div style=\"margin-left: 80px;\"><span style=\"font-family: 'courier new', courier, monospace;\">KEY RELEASE row=08 col=04<\/span><\/div>\n<div style=\"margin-left: 80px;\"><\/div>\n<ul>\n<li>Test to make sure that each individual key generates a unique row and col value, and that only one key is detected for every press. Also make sure that for each key press only a single press is registered. The software has some features to prevent the switch &#8220;<a href=\"http:\/\/whatis.techtarget.com\/definition\/debouncing\" shape=\"rect\">bouncing<\/a>&#8220;.<\/li>\n<\/ul>\n<div style=\"font-size: 14px;\"><\/div>\n<ul>\n<li>Troubleshooting:\n<ul>\n<li>In readall mode,\n<ul>\n<li>If there are 0s in the input when no keys are being pressed, you have a short to ground somewhere.<\/li>\n<li>If there are multiple 0s in the Input section when a single key is pressed, you probably have a key stuck in the pressed position. This is possible if the you have fixed the the faceplate to tightly to the PCB. Check that each key has a &#8220;click&#8221; feel when pressed. The screws that mount the faceplate to the PCB should have three nuts, the first to fasten the screw to the faceplate, and two more that can be adjusted to hold the PCB at exactly the right distance.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div style=\"font-size: 14px;\"><\/div>\n<div><\/div>\n<div><span style=\"font-weight: bold;\">LEDs<\/span><\/div>\n<div><\/div>\n<ul>\n<li>The testFMCLED program tests the functionality of the LEDs.<\/li>\n<li>Note that on powering up the Raspberry Pi, it is normal for the LEDs to be in a random state, with some lit and some unlit. This is because the control signals that switch them on or off have not been configured as outputs by the software yet, and so they are in an undertermined state.<\/li>\n<li>The testFMCLED program is used as follows:<\/li>\n<\/ul>\n<div><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED (exec|dspy|fail|msg|ofst) (on|off)<\/span><\/div>\n<div style=\"margin-left: 40px;\"><\/div>\n<ul>\n<li>The first second indicates which LED to control, and the third word determines whether that LED should be set to <span style=\"font-style: italic;\">on<\/span>\u00c2\u00a0or <span style=\"font-style: italic;\">off.<\/span><\/li>\n<li>Test by first turning all the LEDs off:<\/li>\n<\/ul>\n<div><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED exec off<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED dspy off<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED fail off<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED msg off<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED ofst off<\/span><\/div>\n<ul>\n<li>At this point, all the LEDs should be off.<\/li>\n<li>Now turn them on one by one.<\/li>\n<\/ul>\n<div><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED exec on<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED dspy on<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED fail on<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED msg on<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED ofst on<\/span><\/div>\n<div><\/div>\n<ul>\n<li>The LEDs should light up one by one.<\/li>\n<\/ul>\n<div><\/div>\n<ul>\n<li>Finally, turn them off:<\/li>\n<\/ul>\n<div><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED exec off<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED dspy off<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED fail off<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED msg off<\/span><\/div>\n<div style=\"margin-left: 40px;\"><span style=\"font-family: 'courier new', courier, monospace;\">testFMCLED ofst off<\/span><\/div>\n<div><\/div>\n<ul>\n<li><span style=\"font-style: italic;\">Troubleshooting<\/span><\/li>\n<\/ul>\n<div><\/div>\n<div style=\"margin-left: 40px;\">[ This section to be filled in based on user feedback ]<\/div>\n<div><\/div>\n<div><span style=\"font-size: 18px; font-weight: bold;\">Installing the ExtPlane Plugin into your X-Plane Flight Simulator<\/span><\/div>\n<div><\/div>\n<ul>\n<li>The Pi X-Plane FMC CDU relies on the ExtPlane plugin to communicate with the X-Plane flight simulator.<\/li>\n<li>You will need to download and install the &#8220;Ext-Plane Plugin&#8221; software onto your Flight Simulator PC.<\/li>\n<li>The download link and installation instructions can be found here: <a href=\"https:\/\/github.com\/vranki\/ExtPlane\" shape=\"rect\">https:\/\/github.com\/vranki\/ExtPlane<\/a><\/li>\n<li>Note that you do not need to install the &#8220;Ext-Plane Panel&#8221; for the FMC CDU to work.<\/li>\n<li><\/li>\n<\/ul>\n<div><\/div>\n<\/div>\n<div><span style=\"font-size: 18px; font-weight: bold;\">Starting the Pi XPlane FMC CDU Application<\/span><\/div>\n<div><\/div>\n<div>\n<ul>\n<li>Login to your raspberry pi.<\/li>\n<li>Execute the following:\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">piXPlaneFMCCDU<\/span><\/li>\n<\/ul>\n<\/li>\n<li>The welcome screen should appear for a few seconds:<\/li>\n<\/ul>\n<div style=\"margin-left: 40px;\"><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8919\" rel=\"attachment wp-att-8919\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8919\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_223628-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1560\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_223628-scaled.jpg 2560w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_223628-300x183.jpg 300w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_223628-1024x624.jpg 1024w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_223628-768x468.jpg 768w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_223628-1536x936.jpg 1536w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_223628-2048x1248.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/div>\n<ul>\n<li>Be aware that there are terms and conditions associated with the usage and redistribution of this software. It is licensed under the GNU GPL V3 license, which can be found here\u00c2\u00a0<a href=\"https:\/\/www.gnu.org\/licenses\/gpl-3.0.en.html\" shape=\"rect\">https:\/\/www.gnu.org\/licenses\/gpl-3.0.en.html<\/a>.<\/li>\n<\/ul>\n<div><\/div>\n<div><span style=\"font-size: 18px; font-weight: bold;\">Connecting to the X-Plane Flight Simulator<\/span><\/div>\n<div><\/div>\n<ul>\n<li>The Pi X-Plane FMC CDU application searches your network for running instances of X-Plane, so as long as the Pi X-Plane FMC CDU is connected to the same WiFi or LAN as your flight simulator, you do not have to do any configuration.<\/li>\n<li>The following screen appears while waiting.<\/li>\n<\/ul>\n<div style=\"margin-left: 40px;\"><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8920\" rel=\"attachment wp-att-8920\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8920\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_225353-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1583\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_225353-scaled.jpg 2560w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_225353-300x185.jpg 300w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_225353-1024x633.jpg 1024w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_225353-768x475.jpg 768w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_225353-1536x950.jpg 1536w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_225353-2048x1266.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/div>\n<\/div>\n<ul>\n<li><span style=\"color: #333333;\">Pressing the LSK6 (Left Soft Key 6, the button pointed to by the EXIT message) will cause the Pi X-Plane FMC CDU software to exit and return you to the shell.<\/span><\/li>\n<li><span style=\"color: #333333;\">Pressing the RSK6 (Right Soft Key 6, the button pointed to by the SHUTDOWN message) will shutdown the raspbian operating system on the Raspberry Pi. It is recommended that you do this before switching off the power to the device.\u00c2\u00a0<\/span><\/li>\n<li><span style=\"color: #333333;\">When a running instance of X-Plane has been detected, the name of the computer it is running on will be displayed on the left side of the screen.<\/span><\/li>\n<\/ul>\n<div>\n<div><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8921\" rel=\"attachment wp-att-8921\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8921\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230110-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1895\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230110-scaled.jpg 2560w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230110-300x222.jpg 300w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230110-1024x758.jpg 1024w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230110-768x568.jpg 768w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230110-1536x1137.jpg 1536w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230110-2048x1516.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/div>\n<ul>\n<li>If you have more than one running instance of X-Plane on your LAN, then multiple entries may appear:<\/li>\n<\/ul>\n<div><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8922\" rel=\"attachment wp-att-8922\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8922\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230238-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1829\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230238-scaled.jpg 2560w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230238-300x214.jpg 300w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230238-1024x732.jpg 1024w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230238-768x549.jpg 768w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230238-1536x1098.jpg 1536w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_230238-2048x1463.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/div>\n<div style=\"margin-left: 40px;\"><\/div>\n<div style=\"margin-left: 40px;\"><\/div>\n<ul>\n<li>Press the LSK next to the PC name that you wish the Pi X-Plane FMC CDU to connect to. Once the Pi X-Plane FMC CDU establishes a connection to the EXTPlane plugin running in the flight simulator, the &#8220;&lt;&#8221; symbol will change to a &#8220;*<span style=\"font-style: italic;\">&#8220;.<\/span>\n<ul>\n<li>If you press the LSK but do not get a &#8220;*&#8221;, it means that there is a problem connecting to the EXTPlane plugin. Be sure to allow the connection (TCP port 51000) if you have a firewall running on the PC, or disable the firewall completely.<\/li>\n<li>If you have connected to the wrong PC by mistake, simply press the RSK of the correct PC to change the connection.<\/li>\n<\/ul>\n<\/li>\n<li>The Pi X-Plane FMC CDU will now check to see what FMC software is available in the flight simulator. This will depend on what FMC Software you have installed, or what aircraft you currently have running.<\/li>\n<li>The detected FMCs will be displayed on the left side of the screen:<\/li>\n<\/ul>\n<div style=\"margin-left: 40px;\"><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8923\" rel=\"attachment wp-att-8923\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8923\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231125-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1722\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231125-scaled.jpg 2560w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231125-300x202.jpg 300w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231125-1024x689.jpg 1024w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231125-768x517.jpg 768w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231125-1536x1033.jpg 1536w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231125-2048x1377.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/div>\n<ul>\n<li>Select the FMC you wish to use by pressing the appropriate RSK. The &#8220;&gt;&#8221; symbol next to the selected FMC will change to a &#8220;*&#8221;. The EXEC key light will also illuminate.<\/li>\n<\/ul>\n<div style=\"margin-left: 40px;\"><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8924\" rel=\"attachment wp-att-8924\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8924\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-1-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1440\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-1-scaled.jpg 2560w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-1-300x169.jpg 300w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-1-1024x576.jpg 1024w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-1-768x432.jpg 768w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-1-1536x864.jpg 1536w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-1-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/div>\n<ul>\n<li>Finally, press the EXEC key to begin using the FMC CDU.<\/li>\n<li>The next screen displayed will be that of the FMC you have selected, mirroring the one in the flight sim.<\/li>\n<\/ul>\n<div><\/div>\n<div style=\"margin-left: 40px; text-align: center;\"><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8925\" rel=\"attachment wp-att-8925\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8925\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_232246-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1440\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_232246-scaled.jpg 2560w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_232246-300x169.jpg 300w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_232246-1024x576.jpg 1024w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_232246-768x432.jpg 768w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_232246-1536x864.jpg 1536w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_232246-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/div>\n<div style=\"text-align: center;\"><span style=\"font-style: italic;\">X737FMC IDENT Screen<\/span><\/div>\n<div><\/div>\n<ul style=\"font-size: 14px;\">\n<li><span style=\"font-size: 14px; font-family: gotham, helvetica, arial, sans-serif;\">From here on, pressing any of the keys on the FMC CDU will cause the same key to be pressed within the flight sim, and the screen to be updated accordingly.<\/span><\/li>\n<\/ul>\n<div><\/div>\n<div><\/div>\n<div><span style=\"font-size: 18px;\"><span style=\"font-size: 18px; font-weight: bold;\">Returning to the Pi XPlane FMC CDU Screen<\/span><\/span><\/div>\n<div><\/div>\n<ul>\n<li>At any time, you may return to the Pi XPlane FMC CDU screen by holding down the CLR key for more than 2 seconds.<\/li>\n<\/ul>\n<div style=\"text-align: center;\"><a href=\"https:\/\/blog.shahada.abubakar.net\/?attachment_id=8927\" rel=\"attachment wp-att-8927\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8927\" src=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1440\" srcset=\"https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-scaled.jpg 2560w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-300x169.jpg 300w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-1024x576.jpg 1024w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-768x432.jpg 768w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-1536x864.jpg 1536w, https:\/\/blog.shahada.abubakar.net\/wp-content\/uploads\/2018\/01\/20180114_231917-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/div>\n<div style=\"margin-left: 40px;\"><\/div>\n<div style=\"margin-left: 40px;\"><\/div>\n<ul>\n<li>To return to your flight simulator&#8217;s FMC Screen, press the EXEC key.<\/li>\n<li>Alternatively, you may choose to switch to a different FMC, a different PC, Exit or Shutdown.<\/li>\n<\/ul>\n<div><\/div>\n<\/div>\n<div><span style=\"font-size: 18px;\"><strong>Automatically running PiXPlaneFMCCDU on startup<\/strong><\/span><\/div>\n<div><strong><span style=\"font-size: 18px;\">\u00a0<\/span><\/strong><\/div>\n<ul>\n<li>To have Pi XPlane FMC CDU start automatically when the Pi is powered up, execute the following:\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">sudo systemctl daemon-reload<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">sudo systemctl enable piXPlaneFMCCDU<\/span><\/li>\n<\/ul>\n<\/li>\n<li>The next time you switch on the Pi, the Pi XPlane FMC CDU will start automatically. Choose &#8220;&lt;Exit&#8221; or &#8220;Shutdown&gt;&#8221; to leave the Pi XPlane FMC CDU.<\/li>\n<li>To revert to starting the Pi XPlane FMC CDU manually, execute the following:\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">sudo systemctl disable piXPlaneFMCCDU<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><i>Originally created with EverNote at 20180116T155650Z<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is a guide on how to install my Pi X-Plane FMC CDU Software, for use with the Pi FMC CDU Printed Circuit Board (PCB) I designed. Thanks to all the testers who provided&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":8916,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[211],"tags":[],"class_list":["post-8326","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-737-fmc"],"_links":{"self":[{"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=\/wp\/v2\/posts\/8326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8326"}],"version-history":[{"count":3,"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=\/wp\/v2\/posts\/8326\/revisions"}],"predecessor-version":[{"id":8989,"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=\/wp\/v2\/posts\/8326\/revisions\/8989"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=\/wp\/v2\/media\/8916"}],"wp:attachment":[{"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8326"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8326"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.shahada.abubakar.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}