My Overhead Panel project has been stagnant for quite a while ... I did not touch it at all throughout 2017. There are the usual excuses (work, other projects, etc) but deep down I believe my lack of enthusiasm was due to the fact that was not happy with the design. Mostly this is a result of overthinking and trying to be "systematic", when for most DIY projects, sometimes it is better to go with a design that is "complex but easy" instead of "simple but tedious", as we are all lazy at heart.
My biggest grouse is that the entire overhead was designed to be built and maintained "in-place":
Due to the design of the frame, the entire overhead panel could not be taken down as one large unit. Instead, I had to work on it in place. I could remove each individual panel to work on it, but inter-panel work such as wiring needed to be performed with the entire thing over my desk. This made me try to reduce the intra-panel wiring, with distributed electronics -- which further complicated the design.
If the entire overhead unit could taken down as one piece, I could simply wire everything in one go from the controller directly to the switch and other components. It is faster to dedicate a few days to doing this in one shot, than to work piecemeal on sub-boards for each panel.
Interestingly, it turns out I am not the first one to make this mistake as I've discovered from some other builders.
Secondly, since I am making some PCBs for this, it is actually better to try and put as much of the "work" into the PCB itself, i.e. to reduce the need to join things with wires. Rather than many small PCBs that are interconnected with serial i/o or I2C bus, I've come to realize it is better to put all these design components into one PCB board. While this may mean a larger PCB board, it also means that all the inter-component electronics are taken care of through tracks on the PCB, which are less likely to go wrong than hand wiring them together.
It is important to get a good grip on the final scope of work. That's tricky for a R&D project, especially one that is a hobby, but envisioning the end result up front means you can sometimes end up designing yourself into a corner. It's one thing to make changes or even totally redo software, but hardware changes are a lot more painful.
So here's what I plan to work on over the next few months to get this project completed:
- rework the frame of the overhead panel. The entire overhead panel must be removable from the mounting frame. For this I will need some pieces of wood to replace the sides of the panel, and also to widen the mounting frame a bit take into consideration the slight wider panel.
While I am at it, I think I will add the aft panel as well. Zibo Mod 737 now simulates the IRS navigation alignment, it would be nice to have this incorporated. I am not sure I want it permanently in place, as I'll bump my head into it every time I get out of the seat, so if it could swing out and fold away when not in use that might be nice.
- Re-do the electronics, specifically design an all-in-one I/O board -- something like a Flightdeck Solutions SYS board. This should contain all the electronics I need for the overhead panel, including switch inputs, annunciator outputs, segment display drivers, and also servo drivers. Everything should be in one board, with lots of connector pins.
- Wire everything in one go, directly from the new I/O board to the switches/LEDs/segment displays/gauges. This may involve a lot of wiring, but it is the kind of work you can do without thinking too much. By being able to bring the entire panel down, this can be a weekend effort done on my dining table, rather than done a little it at a time standing on a chair, which is uncomfortable and therefore something I tend to procastinate on. The point is to tackle it once and finish it.
I'm targeting to get this done by the end 2018.
A New I/O Board
I plan to make a single "mother of all" I/O board with the following specifications:
- 192 digital switch inputs (expandable to 256) ✓
- 128 constant current LED outputs, up to 60 mA per channel (expandable to 224)
- 48 digits of 7-segment numeric displays
- 8 characters of 14-segment alphanumeric displays
- 16 servo outputs, 12-bit resolution ✓
- 8 analog inputs, 12-bit resolution ✓
- 24 GPIO pins avaiable for future use
- Powered by a Raspberry Pi Zero W ✓
There will also be some switches and a buzzer, which will form a basic user interface, so you can know it's started up and shutdown properly. I'll probably put up the designs for this on EasyEDA like I did for my FMC CDU, so if anyone wants to follow along and build one, they're free to do so.
A Raspberry PI Zero W will plug into the I/O board itself. There will be software which will available to run on it that will interface the hardware with the Flight Simulator, using the ExtPlane plugin. Inputs will be able to trigger commands and setting of datarefs, and outputs can be driven by the value of datarefs.
I hope to make everything configurable so that the design can be expanded upon, and more importantly, it will be possible to leave out stuff if you don't really need that functionality.
Currently I have a first prototype of the board fabricated, and am going through the interfaces and making test programs to confirm everything works. I'm hoping to have this finalized by end July. That's plenty of time before the end of 2018 right?