
Arduino 386EX V5
dbalsom/arduinoX86
An interface between an Arduino Due or Arduino GIGA and 8088, 8086, V20, V30, 186 or 286 CPUs

Code for the creation of a 737 PFD mock sensor.
Schematics design is an open-source printed circuit board by dfitzsimo-svg, from the dfitzsimo-svg/PFD_Project2 repository on GitHub. It is a 2-layer board of 95 × 81 mm with 15 parts on 34 nets, routed with 54 tracks and 8 vias.
It is built around the LDL1117S33R. Its parts include 5 connectors, 2 capacitors, 2 ICs and 1 switch. It belongs with the sensors and measurement boards and the ESP32 boards of this library.
In this proam trying to make a 737 style standby PFD that can show real time speed, altitude, and attitude. I am using an ESP32 along with a GPS module, barometer and IMU to measure the kinematics. A list of all my components is giving in the project files along with some notes on each. I started the project by first writing Python code in Virtual Studio to simulate the look of the real life 737 max standby horizon as much as possible. I started out using Python and a virtual screen at first as I was much more familiar with that language and being able to use a virtual screen meant I could quickly make edits, see how it looked and then move on without having to flash the code to a physical device each time.
After I was happy with how everything looked, I translated my code over to the Arduino IDE in order to flash it to my ESP. This is where I encountered a few problems and had to make large adjustments to my code. The biggest problem was the low amount of memory of the ESP. At only -500 Kb, I had a small budget of memory and had to try many optimisation techniques. The most beneficial of these was to create sprites for certain elements of the graphics and to seperate the screen into chunks depending on their required refresh rates.
Once I had sorted the graphical issues, I then moved on to incorporating all my sensors together onto a breadboard. This turned out to be very straightforward as I had done plenty of testing with my Python code with fake sensor data. The only issue I had here was from poor connection quality from the breadboard. The next addition was to power the device with a battery as it would be in my final version. This is something that turned out harder than I expected but forced me to learn a lot about battery tech, power regulation and general circuit design. I ended up using a simple 1S LiPo with a TP4056 for charge protection and an MT3608 for voltage regulation to maintain 5V supply to the ESP.
After I was happy with the breadboard prototype, I began by designing my PCB using KiCAD which I was new to but found it to be extremely intuitive and easy to learn. At this stage I have fully completed my schematic and am now trying to settle on a board layout for all the modules.
I originally began by using a Raspberry Pi that I had laying around but the pi lacked the RAM to push detailed graphics to the screen via SPI and also lacked a ready to use driver. This is a known limitation of the chip itself, not something specific to the Pi. I had to write my own driver since there was no existing Linux library that handled this properly. Even after that, the performance was poor and the frame rate was slow.
Change from Pi to ESP:
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | MountingHole_3.2mm_M3 | MountingHole:MountingHole_3.2mm_M3 | H1 M3, H3 |
| 1 | 1uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1 |
| 1 | 4.7uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C2 |
| 1 | BMP280 Header | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J7 |
| 1 | Display 8 Pin JST | Connector_JST:JST_PH_B8B-PH-K_1x08_P2.00mm_Vertical | J5 |
| 1 | ESP32_DevKit_30Pin | PFD_Modules:ESP32_30pin | U2 |
| 1 | GPS NEO6M Header | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | LDL1117S33R | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U1 |
| 1 | M3 | MountingHole:MountingHole_3.2mm_M3 | H2 |
| 1 | MPU IMU Header | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J4 |
| 1 | QNH JST | Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_Vertical | J6 |
| 1 | SW_SPST | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | SW1 |
| 1 | TP4056_OUT | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | GND |
The 14 most common of 15 parts.
It measures 95 × 81 mm and has 2 copper layers, 1.6 mm thick.
15 parts, built around the LDL1117S33R. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the dfitzsimo-svg/PFD_Project2 repository on GitHub, at the commit this page was made from: the board is Schematics design/Schematics design.kicad_pcb and its schematic Schematics design/Schematics design.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask dfitzsimo-svg before reusing the design.

dbalsom/arduinoX86
An interface between an Arduino Due or Arduino GIGA and 8088, 8086, V20, V30, 186 or 286 CPUs



OpenIPC/hardware
A collection of hardware developments by the OpenIPC team


hoeken/frothfet
Yarrboard load controller board with current sense, volt sense, fuses, and sender support.


Fefe-Nayz/kbhe-monorepo
TIPE 2026 - 75% Hall effect keyboard ISO layout - Monorepo: Firmware, PCB, 3D Models, PC Software