Когда разрабатываешь модульные приборы для самолета, всегда возникает задача коммуникаций между ними.

Тут надо сделать уточнение, что соединение подразумевает слаботочную передачу сигналов, в основном от датчиков к контроллеру или на дисплей.
Передачу напряжений от генератора или от датчика оборотов надо вести обычным проводом без каких либо протоколов обмена, в этом случае только аналоговый сигнал.
Для передачи на физическом уровне выбрана шина CAN 2.0B, как наиболее универсальная под эти задачи.
Сам протокол передачи реализуется на микросхеме контроллера шины MCP2515 и приемопередатчика SN65HVD230, все это есть на модуле

Микросхему п/п U1 заменил на указанную выше, чтобы модуль можно было запускать от 3.3. вольт
Планируемый функционал описанного концентратора:
получение широковещательных ID из шины и передача их в сериал порт или в FIX-gateway для работы с pyEfis
парсинг данных из симулятора FlightGear и передача в шину CAN
запуск демо-режима
По большому счету датчики и индикаторы можно соединять по шине CAN и без концентратора, но для расширения режимов он необходим.
Для запуска функционала шины CAN на esp8266, а точнее esp07

Используется библиотека https://github.com/coryjfowler/MCP_CAN_lib с небольшими доработками под кварц 16 мГц.
В коде микроконтроллера указал ID из can aero space
#define BODY_PITCH_ANGLE_ID 0x137 /* in DEC 311 a/c pitch angle */
#define BODY_ROLL_ANGLE_ID 0x138 /* in DEC 312 a/c roll angle */
#define BODY_SIDESLIP_ID 0x139 /* in DEC 313 a/c sideslip */
#define ALTITUDE_RATE_ID 0x13A /* in DEC 314 vertical speed */
#define IND_AIRSPEED_ID 0x13B /* in DEC 315 indicated airspeed */
#define CHANGE_ID 0x13E /* in DEC 318 QNH change flag */
#define BARO_CORRECTION_ID 0x13F /* in DEC 319 barometric correction (QNH) */
#define BARO_ALTITUDE_ID 0x140 /* in DEC 320 barometric altitude */
#define HEADING_ANGLE_ID 0x141 /* in DEC 321 heading angle */
В качестве проводки выбрал 4-х жильную витую пару и быстросъемные разъемы.


Интересный режим парсинга данных из летного симулятора, о котором напишу чуть позже.
Он позволяет выводить физические величины параметров полета в шину CAN, чтобы на земле выполнять отладку приборов и датчиков.
Ниже показан ДЕМО-режим.
Соединение компьютера воздушных данных и CAN-концентратора

P.S. Всем интересующимся, могу скинуть код проекта в .pio
GDI
esp8266 уже устарел, к тому же, в тегах статьи у Вас указана esp32-s3, вот серию esp32 лучше и использовать. К тому же там есть встроенный контроллер CAN, программный, правда. MCP2515 не нужен. Вот статью просто нагуглил для пруфа CAN на ESP32-C3 https://habr.com/ru/articles/793326/ и есть поддержка в SDK https://docs.espressif.com/projects/esp-idf/en/v5.0/esp32c3/api-reference/peripherals/twai.html
Angrim17
Сонласен. esp8266(на самом деле сейчас Espressif актуальные ссчитает вроде именно 8285) только из-за цены, либо только потому, что он есть. Пол новые проекты esp32-c серия из самых бюджетных, в esp32-c6 даже 2 кана
Использование esp8266 плюс mcp2515 плюс can трансивер против esp32-c3 плюс can трансивер уже не бьется по экономике