Features:
Uses Heze AIR32F103CCT6 as the chip; brand new price 3.8 (shipping included); comprehensive porting manual;
PCB and panel are available for free. The panel design is still being improved by a beginner. The first version is currently usable; the software only adapts to the FCU panel principle
of the FBW A32NX emulator. The host computer software connects to Simconnect, reads data, and sends button events to the game. It uses VS2022 Community Edition + C++ to write the communication between the peripheral and the host computer. It uses HIDAPI to complete the display of two 0.91 memory OLEDs and the scanning of buttons and the on/off state of LEDs. There is a problem with a certain delay; the host computer refreshes data by simulating frames through the game and then sending data to the peripheral to update the display. There is a noticeable lag. There are currently no ideas for improvement; everyone is welcome to help. During HID communication, the first byte is swallowed (it seems to be the report ID, but there is currently only one output node; I don't know if it can be omitted). I haven't found where to modify it. A clumsy solution: add an invalid byte. The lower-level code describes receiving 13 bytes; I was stuck on hardware I2C for a long time. The issue with DMA refreshing the OLED might be due to an incorrect method for determining the DMA I2C transfer completion flag. I can't seem to get the DMA settings right, so I'd appreciate any guidance from experts. Future plans include using a 128x32 rectangular screen (likely from a Chinese company) in version 2.0 for potentially higher simulation fidelity. I'll also try modifying the panel to see if it allows only yellow light to pass through, adding a buzzer to indicate autopilot disconnection, optimizing the PCB routing to bypass screw fixation, modifying panel printing, and adding a 320-style knob surface pattern (like the patterned triangle). The BOM should be Air32F103CC. Replace the STM32F103 tactile switch with a 6*6*8H switch; the height can be adjusted. The EC11 has threads for using nuts. The LED current-limiting resistor could be larger to limit brightness. My prototype panel buttons are hollowed-out and non-transparent, but they still seem a bit too bright. The crystal oscillator used is a 12MHz 3225 passive crystal oscillator. A pitfall encountered : Make sure the DP cable of the USB device is pulled high; I was stuck on this issue for two days without getting it working, resulting in the loss of the first byte of received data (unresolved, please avoid). Host code : Diaosi1111/FlightHIDComm: Host code for flight simulation peripherals (github.com) air32: Diaosi1111/FlightFCU (github.com)