Skip to content

Commit d3cddc8

Browse files
amrikarismaclaude
andcommitted
Add BIGFUEL board variants with 32x32 VE and ignition tables
Adds mazduino-{compact,core,lite,mini6ch}-bigfuel: same hardware, same pinout, same feature set as the board each is named after, but with 32x32 VE and ignition tables instead of 16x16. Every shared file in a BIGFUEL board directory is a relative symlink to the base board, so pinout and hardware changes cannot diverge between the two - only meta-info.env, board.mk and prepend_<board>.txt are real files. Also raises the VVT target tables from 8x8 to 16x16 on the four stock boards. mega100 and mega100-512 keep 8x8. BIGFUEL disables the engine sniffer. The persistent config lives in CCM RAM (PERSISTENT_LOCATION = CCM_OPTIONAL = .ram4) and the leftovers of that 64KB region feed the Lua heap, so the 32x32 tables overflowed CCM by 1424 bytes. The engine sniffer's 5000-byte WAVE_LOGGING_BUFFER is also in CCM and is a debug-only tool, so it pays for the tables with room to spare. The bundled rusefi-core commit sizes the LTFT trim map independently of the VE table, which frees the other 6KB this would otherwise have needed. All ten boards build clean. BIGFUEL config size is 31032 vs 27832 stock; flash stays at 74-76% of the 768KB budget. Tunes do not carry across the table dimension changes: VVT on the four stock boards, VE and ignition on BIGFUEL. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 4de5da7 commit d3cddc8

60 files changed

Lines changed: 196223 additions & 16030 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎CHANGELOG.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@ All notable changes to Mazduino firmware are documented here.
44

55
## [Unreleased]
66

7+
### Breaking Changes
8+
- VVT target tables enlarged from 8x8 to 16x16 on mazduino-compact, mazduino-core, mazduino-lite and mazduino-mini6ch, giving finer RPM and load resolution for cam targeting. This changes the tune layout, so existing tunes are not compatible — re-flash and re-enter the VVT tables after updating. mazduino-mega100 and mazduino-mega100-512 keep the 8x8 tables
9+
- LTFT trim map now has its own axes (`ltftLoadBins` / `ltftRpmBins`) instead of borrowing the VE table axes. Every board gains these two fields, so all boards need a matching firmware and INI; table dimensions are unchanged on existing boards, so tune values still carry over
10+
711
### Added
12+
- BIGFUEL board variants: `mazduino-compact-bigfuel`, `mazduino-core-bigfuel`, `mazduino-lite-bigfuel` and `mazduino-mini6ch-bigfuel`. Identical hardware and pinout to the board they are named after, with a 32x32 VE table and 32x32 ignition table (stock boards stay 16x16) for finer resolution on high-output builds. Tunes are not interchangeable between a board and its BIGFUEL variant
13+
- BIGFUEL variants trade the engine sniffer for the bigger tables: the persistent config lives in the 64KB CCM RAM and its leftovers feed the Lua heap, so 32x32 tables overflowed CCM by ~1.4KB. Disabling the engine sniffer frees its 5000-byte `WAVE_LOGGING_BUFFER` from CCM. All other features are unchanged from the base board — the real-time trigger oscilloscope in TunerStudio is the only thing missing
14+
- Separate `LTFT_LOAD_COUNT` / `LTFT_RPM_COUNT` sizing for the long-term fuel trim map, independent of the VE table. The learned trim map stays 16x16 even on BIGFUEL boards, saving 6KB of RAM versus following a 32x32 VE table, with no loss of tuning resolution. LTFT trims are now interpolated onto the VE table when applied, so the two grids no longer have to match
815
- DFCO enable switch input (`coastingFuelCutSwitchPin`): assign a pin to control DFCO via a physical switch; switch ON allows fuel cut per RPM/TPS/CLT parameters, switch OFF disables fuel cut entirely; leave unassigned for parameter-only control
916
- Rotational Idle manual enable switch input (`rotationalIdleController.switchPin`): when switch is ON, rotational idle is forced active regardless of automatic CLT/TPS conditions
1017
- Rotational Idle RPM window (`minRpm`, `maxRpm`): configurable RPM range for rotational idle engagement; 0 = no limit; displayed in live data as `rotIdleEngineTooSlow` / `rotIdleEngineTooFast`
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Inherit everything from the board this variant is based on.
2+
include $(BOARD_DIR)/../mazduino-compact/board.mk
3+
4+
# 32x32 VE + ignition tables grow persistent_config, which lives in CCM RAM
5+
# (PERSISTENT_LOCATION = CCM_OPTIONAL = .ram4). CCM is only 64KB and its
6+
# leftovers are handed to the Lua heap, so the stock feature set overflows it
7+
# by ~1.4KB. The engine sniffer's 5000-byte WAVE_LOGGING_BUFFER is also in CCM
8+
# and is a debug-only tool, so BIGFUEL trades it for the bigger tables.
9+
DDEFS += -DEFI_ENGINE_SNIFFER=FALSE
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../mazduino-compact/board_config.txt
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../mazduino-compact/board_configuration.cpp
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../mazduino-compact/connectors
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../mazduino-compact/knock_config.h
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# lower-case is required if using TS automatic .ini download
2+
SHORT_BOARD_NAME=mazduino-compact-bigfuel
3+
PROJECT_CPU=ARCH_STM32F4
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../mazduino-compact/prepend.txt
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
! ---------------------------------------------------------------------------
2+
! BIGFUEL variant of mazduino-compact
3+
!
4+
! Same hardware, same pinout, same feature set — every shared file in this
5+
! directory is a symlink to ../mazduino-compact. The only difference is table resolution:
6+
!
7+
! VE table 32x32 (stock: 16x16)
8+
! Ignition table 32x32 (stock: 16x16)
9+
!
10+
! VVT target tables stay at 16x16, as set in the shared prepend.txt.
11+
!
12+
! Tunes are NOT interchangeable with the stock mazduino-compact build:
13+
! the config layout and TS signature both differ.
14+
!
15+
! Note: rusEFI's canned 16x16 default VE table only applies when VE is 16x16,
16+
! so this build starts from the flat fallback VE table until tuned.
17+
! ---------------------------------------------------------------------------
18+
#define VE_LOAD_COUNT 32
19+
#define VE_RPM_COUNT 32
20+
#define IGN_LOAD_COUNT 32
21+
#define IGN_RPM_COUNT 32

‎boards/mazduino-compact/prepend.txt‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,7 @@
5252
#define ts_show_idle_stepper false
5353
#define ts_show_hbridge_function false
5454
#define ts_show_dc_hardware false
55+
56+
! VVT target tables: 16x16 instead of the rusEFI default 8x8
57+
#define VVT_TABLE_SIZE 16
58+
#define VVT_TABLE_RPM_SIZE 16

0 commit comments

Comments
 (0)