
Breakout 112pin Connector
rusefi/rusefi
rusefi - GPL internal combustion engine control unit

ESP32-S3 + 3 okrągłe TFT 1,53" 360x360 (ST77916, QSPI) + sterownik Zgrywus K-8 (rusEFI, CAN) + klawiatura OBC18 z BMW E36.
E36 base is an open-source printed circuit board by pwmurawski, from the pwmurawski/e36-dash repository on GitHub. It is a 2-layer board of 160 × 53 mm with 42 parts on 63 nets, routed with 774 tracks and 61 vias.
Its parts include 12 resistors, 9 connectors, 7 capacitors, 4 ICs and 2 diodes. It belongs with the ESP32 boards of this library.
ESP32-S3 + 3 okrągłe TFT 1,53" 360x360 (ST77916, QSPI) + sterownik Zgrywus K-8 (rusEFI, CAN) + klawiatura OBC18 z BMW E36.
libraries/lv_conf.h: #if 1, LV_COLOR_DEPTH 16, LV_FONT_MONTSERRAT_20/28/48 1, LV_USE_SCALE 1).
Opcjonalnie: Adafruit MCP23017 (klawiatura), RTClib (DS3231), U8g2 (OLED w oknie OBC).e36_dash/e36_dash.ino, wgraj. Domyślnie: 1 ekran, dane symulowane (SIM_MODE 1), klawisze z Serial Monitor.| Makro | Znaczenie |
|---|---|
NUM_DISPLAYS | ile okrągłych paneli (1..3) |
NUM_AUX_DISPLAYS | 0 / 1 (ekran 4 - pasek w oknie OBC) / 2 (+ ekran 5 - zegar) |
SIM_MODE | 1 = symulator, 0 = prawdziwy CAN (TWAI 500 kbit/s) |
KEYPAD_DRIVER | 0 = Serial, 1 = MCP23017 przez I2C, 2 = matryca na GPIO |
RTC_DRIVER | 0 = zegar z millis, 1 = DS3231 |
AUX_BAR_DRIVER | 1 = OLED SSD1322 (U8g2), 2 = TFT ST7789 (Arduino_GFX) |
CAN_BASE_ID | baza rusEFI CAN verbose (TunerStudio), domyślnie 0x200 |
STOICH_AFR | 14.7 benzyna, 9.8 E85 |
RPM_LIMIT, OILP_CRIT_MIN_RPM | limity alarmów |
Progi ostrzeżeń i zakresy skal: params.cpp (tabela PARAM_DEFS). Widok zbiorczy: MULTI_PARAMS w ui_multi.cpp.
| Funkcja | GPIO |
|---|---|
| QSPI SCK / D0 / D1 / D2 / D3 (wspólne) | 4 / 5 / 6 / 7 / 15 |
| CS ekran 1 / 2 / 3 | 17 / 18 / 8 |
| RST wspólny | 16 |
| SPI3 SCK / MOSI / DC (ekrany 4, 5) | 9 / 10 / 11 |
| CS ekran 4 / ekran 5 | 12 / 13 |
| CAN TX / RX (SN65HVD230 D / R) | 1 / 2 |
| I2C SDA / SCL (MCP23017 0x20, DS3231) | 14 / 3 (base PCB; IO21/IO47 zajmuje klawiatura) |
| Klawiatura bezpośrednio: X0..X4 / Y0..Y3 | 42,41,40,39,38 / 48,47,21,20 |
| BL wszystkich paneli | 3V3 |
Panele ST77916: VCC 3V3 lub 5V, init st77916_150_init_operations.
Projekt płytki bazowej 160x53 mm pod DevKitC-1, LM2596, moduł CAN, 5 gniazd FFC 2.54 mm 11-pin paneli (bez adapterów, to samo złącze wlutowane na modułach) i taśmę klawiatury: hardware/README.md
(KiCad, generator hardware/tools/gen_kicad.js, podgląd hardware/preview/index.html).
| Przycisk | Akcja |
|---|---|
| 1000 / 100 / 10 | wybierz ekran 1 / 2 / 3 |
| 1 | reset peak |
| A-TEMP | temp. cieczy |
| VERBR | AFR; przytrzymanie = czas wtrysku [ms] |
| GESCHW | prędkość |
| DISTANZ | temp. oleju |
| REICHW | temp. paliwa |
| LIMIT | boost |
| CHECK | ciśnienie oleju |
| CODE | ciśnienie paliwa |
| TIMER | EGT; przytrzymanie = kąt zapłonu |
| DATUM | obroty |
| MEMO | napięcie |
| UHR | temp. dolotu; przytrzymanie = ustawianie zegara |
| km/mls | bar / psi |
| SET/RES | następny parametr na wybranym ekranie (po ostatnim widok zbiorczy, potem od początku); przytrzymanie = układ paska (ekran 4) |
Taśma klawiatury OBC18 (15 pin; matryca wg schematu openOBC devboard 2.7, LED sprawdzone miernikiem):
| Pin taśmy | Sygnał | Do ESP32 (KEYPAD_DRIVER 2) |
|---|---|---|
| 1 | plus podświetlenia (4 pomarańczowe LED szeregowo, ok. 8 V), 12 V przez rezystor 330-470 Ω 1/4 W wlutowany na płytce przy pierwszej diodzie | nie podłączać do ESP |
| 2 | wspólny plus (anoda) czerwonych LED w klawiszach | opcjonalnie 3V3 |
| 3 = TIMER, 4 = LIMIT, 5 = CODE | katody czerwonych LED w klawiszach; masa przez rezystor = świeci | opcjonalnie GPIO przez 150-220 Ω, stan niski = świeci |
| 6, 7, 8, 9, 10 | X0, X1, X2, X3, X4 (kolumny) | IO42, IO41, IO40, IO39, IO38 |
| 11, 12, 13, 14 | Y0, Y1, Y2, Y3 (wiersze) | IO48, IO47, IO21, IO20 (IO20 = USB D+, programowanie przez port UART) |
| 15 | masa podświetlenia | nie podłączać do ESP |
Kierunek numeracji sprawdź miernikiem: wciśnięty klawisz 1000 zwiera X1 (pin 7) z Y0 (pin 11).
Przyciski i piny taśmy (wg KEY_MATRIX; pin = 6 + X dla kolumn, 11 + Y dla wierszy):
| Przycisk | X/Y | Piny |
|---|---|---|
| 1000 | X1 Y0 | 7 + 11 |
| 100 | X0 Y0 | 6 + 11 |
| 10 | X3 Y0 | 9 + 11 |
| 1 | X4 Y0 | 10 + 11 |
| VERBR | X1 Y1 | 7 + 12 |
| A-TEMP | X0 Y1 | 6 + 12 (niepewne) |
| GESCHW | X2 Y3 | 8 + 14 |
| DISTANZ | X0 Y2 | 6 + 13 |
| CHECK | X1 Y2 | 7 + 13 |
| REICHW | X3 Y1 | 9 + 12 |
| CODE | X4 Y1 | 10 + 12 |
| LIMIT | X2 Y0 | 8 + 11 |
| TIMER | X4 Y2 | 10 + 13 |
| km/mls | X3 Y2 | 9 + 13 |
| UHR | X0 Y3 | 6 + 14 |
| DATUM | X1 Y3 | 7 + 14 |
| MEMO | X4 Y3 | 10 + 14 |
| SET/RES | X3 Y3 | 9 + 14 |
Tryb nauki matrycy: trzymaj SET/RES przy włączaniu, Serial pokaże X,Y każdego klawisza. Popraw KEY_MATRIX w keypad.cpp.
Klawisze z Serial (115200): 1 2 3 4 v a g d r l c o t m e u U k s S, długie: T V, h = pomoc.
ID 0x200..0x209, 500 kbit/s, little-endian. Dekoder: can_rusefi.cpp. W TunerStudio włącz „CAN verbose” / „Enable rusEFI CAN broadcast”, baza 0x200. Terminator 120 Ω na końcu magistrali po stronie deski.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 0R (opcja 33R) SCK | e36:R_0603 | R7, R8, R9, R10, R11 |
| 5 | 100n | e36:C_0603 | C3, C4, C5, C6, C7 |
| 1 | 100u/25V | e36:C_Elec_D6.3_P2.5 | C1 |
| 1 | 10k (pull-down IO46) | e36:R_0603 | R12 |
| 1 | 12V IN (+ / GND) | e36:Terminal_5.08_2P | J1 |
| 1 | 180R LED CODE | e36:R_0603 | R4 |
| 1 | 180R LED LIMIT | e36:R_0603 | R3 |
| 1 | 180R LED TIMER | e36:R_0603 | R2 |
| 1 | 390R 1/4W (podsw. 12V) | e36:R_Axial_P7.62 | R1 |
| 1 | 470u/10V | e36:C_Elec_D8.0_P3.5 | C2 |
| 1 | 4k7 SCL | e36:R_0603 | R6 |
| 1 | 4k7 SDA | e36:R_0603 | R5 |
| 1 | CAN (H / L / GND) | e36:Terminal_5.08_3P | J2 |
| 1 | DS3231 ZS-042 modul (header katowy) | e36:DS3231_ZS-042_Module | U4 |
| 1 | ESP32-S3-DevKitC-1 N16R8 | e36:ESP32-S3-DevKitC-1_Socket | U1 |
| 1 | I2C (3V3 GND SDA SCL) | e36:PinSocket_1x04_2.54 | J10 |
| 1 | JP_BL: 1-2 = 3V3 (domyslnie), 2-3 = IO46 PWM | e36:SolderJumper_3_Open | JP2 |
| 1 | JP_LCD1_SPI: zwarta = pin1 gniazda -> DC (IO19) | e36:SolderJumper_2_Open | JP3 |
| 1 | JP_LCD2_SPI: zwarta = pin1 gniazda -> DC (IO19) | e36:SolderJumper_2_Open | JP4 |
| 1 | JP_LCD3_SPI: zwarta = pin1 gniazda -> DC (IO19) | e36:SolderJumper_2_Open | JP5 |
| 1 | JP_LCD4_SPI: zwarta = pin1 gniazda -> DC (IO19) | e36:SolderJumper_2_Open | JP6 |
| 1 | JP_LCD5_SPI: zwarta = pin1 gniazda -> DC (IO19) | e36:SolderJumper_2_Open | JP7 |
| 1 | JP_VCC: 1-2 = 5V (domyslnie), 2-3 = 3V3 | e36:SolderJumper_3_Open | JP1 |
| 1 | Klawiatura OBC18 FFC 15p 2.54 | e36:FFC_2.54mm_15P_Vertical | J9 |
| 1 | LCD1 FFC 11p 2.54mm | e36:FFC_2.54mm_11P_Vertical | J3 |
| 1 | LCD2 FFC 11p 2.54mm | e36:FFC_2.54mm_11P_Vertical | J4 |
| 1 | LCD3 FFC 11p 2.54mm | e36:FFC_2.54mm_11P_Vertical | J5 |
| 1 | LCD4 FFC 11p 2.54mm | e36:FFC_2.54mm_11P_Vertical | J6 |
| 1 | LCD5 FFC 11p 2.54mm | e36:FFC_2.54mm_11P_Vertical | J7 |
| 1 | LM2596 modul 12V->5V | e36:LM2596_Module | U2 |
| 1 | PTC 2A 30V | e36:Fuse_1812 | F1 |
| 1 | SMBJ33A (load dump) | e36:D_SMB | D2 |
| 1 | SN65HVD230 modul (120R na module) | e36:SN65HVD230_Module | U3 |
| 1 | SS34 (odwr. polaryzacja) | e36:D_SMA | D1 |
It measures 160 × 53 mm and has 2 copper layers, 1.6 mm thick.
42 parts. 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 pwmurawski/e36-dash repository on GitHub, at the commit this page was made from: the board is hardware/e36_base/e36_base.kicad_pcb and its schematic hardware/e36_base/e36_base.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 pwmurawski before reusing the design.

rusefi/rusefi
rusefi - GPL internal combustion engine control unit


hackclub/sprig
🍃 Learn to code by making games in a JavaScript web-based game editor.

jamro/tiny-engineer
A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.

hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

