Radio panel assembly - MobiFlight/mobiflight-pcbs GitHub Wiki
MobiFlight 737-style COM-radio assembly
This tutorial gets you through the assembly of the radio panel available at the MobiFlight shop. The radio design will be released as open hardware here on github, but I want to release the files as a KiCad project, that is the leading open source circuit design program, with the hope of encouraging collaboration for improvements and also more community designs.
Before you start
To assemble the radio, you need basic soldering skills, some patience, and a soldering iron and solder, possibly flux, a 3mm and 1,5mm allen key (hex) tools, and side cutters (or scissors, to cut the ziptie).
Contents of the kit
The kit comes with a front panel for the radio in dark gray finish (RAL7024), which does match the real 737 RAL7011 well in practice. The panel itself is made of acrylic sheet, and It has a matte clearcoat to protect against scratches, but naturally sharp and hard objects can scratch it. The knobs and buttons are 3D printed with resin, which is painted and treated with similar clearcoat.
To inspect your kit, you should have the following items:
- The panel and two dark acrylic rectangles intended for the "display windows" of the panel
- A white circuit board with leds and other components preinstalled
- Four 7-segment display modules of 3 digits each
- One large and two smaller 3D-printed black frames that work as light blockers for the backlighting leds
- One Arduino Pro Micro microcontroller module
- One dual rotary encoder and two matching knobs in gray
- Two button caps: One for the frequency swap button, and another for the "test" button
- Usb cable, 5 M3 hex screws, and a zip tie to use as a strain relief for the usb cable
Soldering the Arduino
The very first thing that we need to do is to solder the Arduino with two rows of pin headers onto the backside of the circuit board. This is clearly marked with a picture of the Arduino, the picture also shows the orientation. We start by inserting one of the pin headers on one of row of holes on the same side where we have the picture of the Arduino.
Flip the board around and try to place it on a table so that the pin header pins are still in the holes. You might also want to try to make the pins sit as straight in the holes as possible, but this can be tricky, as the pins wobble quite a bit easily. This is why we first solder just one pin.
Once you have soldered one pin on the end, turn the board around and see if the row of pins is straight, at around 90 degree angle to the circuit board surface. If it is crooked, it is easy to hold the pin header from the OTHER pins from the back, heat up the soldered pin, and straighten the pin header and wait for it to cool down.
Then do the same for the other pin row. First solder ONE pin, flip it around, and test that the Arduino fits on the pins. If the pins are crooked and you cannot insert the arduino, again heat up the one soldered pin, and insert the Arduino while the pins.
Now, repeat the same for the Arduno itself - it is good to again solder one pin first, and see that the Arduino sits more on the tips of the pins rather than on the bottom, as very long pins make it harder to solder.
Seven segment displays
First peel off possible protective plastic from the segments, and place them in the marked places on the circuit board, paying attention to the orientation of the decimal points. Here again it is very good practice to solder just a few pins first, to check that everything aligns together, as the pin holes are a bit loose, and it is possible to solder the segments offset from each other. So solder diagonally one pin from the left side toop row, and the opposite end pin from the bottom row, for each segment module.
Once you are done, flip the board over, check that the numbers line up with each other, and adjust if needed, by melting the solder joints while gently pushing the modules where they should be. It helps if you hold your non-solder hands fingers over the "gap" between the two.
When you are satisfied with alignment, carefully solder the rest of the pins, and locate the encoder on your desk.
The Encoder
Carefully inspect the legs of the dual encoder so that they are not bent, and by gently squeezing the thicker solder lugs on the sides, align the legs to the circuit board holes, and push the component in place. All legs should go through their assigned holes, and the component should sit flat against the board. Again, flip the board over, and solder first one of the two thicker legs, see that the encoder sits straight up on the board, and solder the other structural leg and the signal pins.
Assembly
We are now done soldering, so you can turn off the iron, and once more inspect that we did not miss any of the joints.
At this point it makes sense to push the ziptie through the two slots on the top edge of the circuit board. IT's going to serve as a strain relief for the often fragile USB port on the arduino. We will just insert it to the slots now, because it is easier before we mount the panel in place, but we will be tightening the tie in the end.
Find the two smaller black frames and insert them over the 7-segment displays, with the wide border facing up. away from the circuit board. Place the circuit board the digits facing up, and the black frames inserted over numbers, and flip the panel upside down in your hand. Insert the two dark acrylic rectangles over the holes on the panel, and place the two button caps over their holes.
Locate the two button caps - the frequency swap button and the round "test" button, and feel the round pad on their bottom side. The bottom should be smooth and flat, but sometimes due to the support structure added by the 3D printing process, there might be little bumps. Those might interfere with the rubber actuator of the switch on the circuit board, so if there are uneven little bumps, you can use fine sandpaper to smooth them out.
Place the buttons on their slots on the panel and take a short break and congratulate yourself. We are almost done!
Now, from the M3 screws, locate one that is shorter than the others and set it aside.
The next step can be a bit tricky, as the black frames might fall out from the segments when you tilt the pcb upright, and on the panel, the buttons and acrylic windows fall out if you tilt the too much. So you want to carefully place the encoder shaft through the hole in the panel, and try to align the panel's nylon standoffs with the pcb holes, without dropping the parts. Or you can try holdin the black display frames from the sides with your fingers to prevent them from falling, and just place the pcb lopsided over the panel.
Once you have the panel and pcb against each other, and all acrylic windows and buttons in their correct places, use the shortest screw to fasten the PCB to the panel via the center hole. This secures everything and you can breathe again. Turn the panel around and test that both buttons work well, and you get good tactile feel. If the buttons don't have a good "click" or if they get stuck, open the panel again and see if you still had some residue from the print supports on the button caps.
The last things in the assembly are attaching the large black frame around the circuit board, and attaching the usb cabl4e. Attach the frame with the remaining screws on the corners.
Insert the USB cable to the arduino, and route it along the black line, making sure you don't cause any stress by pulling the cord. Lock the wire in place with the ziptie,
Your Arduino should be already flashed with the MobiFlight firmware and it should show two seven segment displays, two encoders, three buttons and backlight pin. These can next be assigned to simulator functions, depending on your aircraft of choice.