Table of Contents
Available features are enabled per environment in platformio.ini
Some features don't make sense in most configs, as it depends on custom hardware.
For example feedc0de only has a bluetooth BMS, therefore only feedc0de_usb and feedc0de_ota compile in the bluetooth BMS code.
Some ESP32 are 4MB and don't have enough space for dualboot ota partitions, that's why we don't compile OTA code in then.
Mosfets
Adds the "Mosfets" menu to the main menu, shows checkboxes for 3 mosfets on peters_platine, can be used to turn on lights or sirens. 3 digital output pins are used.
-DFEATURE_MOSFETS
-DPINS_MOSFET0=18
-DPINS_MOSFET1=19
-DPINS_MOSFET2=21
Over the Air update
Allows flashing the firmware over WiFi, doesn't require any authentication, needs special partition table for dual-boot program partitions, also needs some setup of the environment in platformio.ini
-DFEATURE_OTA
Don't forget to set the partition table correctly:
board_build.partitions = bobbycar.csv
Example setup for usb and OTA environments in platformio.ini
[feedc0de]
platform = ${common_env_data.platform}
board = ${common_env_data.board}
framework = ${common_env_data.framework}
platform_packages = ${common_env_data.platform_packages}
board_build.partitions = ${ota_common.board_build.partitions}
lib_deps = ${common_env_data.lib_deps}
lib_compat_mode = ${common_env_data.lib_compat_mode}
build_unflags = ${common_env_data.build_unflags}
build_flags =
${common_env_data.build_flags}
${ota_common.build_flags}
; feedc0de specific build flags removed from example
[env:feedc0de_usb]
platform = ${feedc0de.platform}
board = ${feedc0de.board}
framework = ${feedc0de.framework}
platform_packages = ${feedc0de.platform_packages}
board_build.partitions = ${feedc0de.board_build.partitions}
lib_deps = ${feedc0de.lib_deps}
lib_compat_mode = ${feedc0de.lib_compat_mode}
build_unflags = ${feedc0de.build_unflags}
build_flags = ${feedc0de.build_flags}
upload_speed = 921600
upload_port = /dev/ttyUSB*
[env:feedc0de_ota]
platform = ${feedc0de.platform}
board = ${feedc0de.board}
framework = ${feedc0de.framework}
platform_packages = ${feedc0de.platform_packages}
board_build.partitions = ${feedc0de.board_build.partitions}
lib_deps = ${feedc0de.lib_deps}
lib_compat_mode = ${feedc0de.lib_compat_mode}
build_unflags = ${feedc0de.build_unflags}
build_flags = ${feedc0de.build_flags}
Webserver
Enables a webserver on port 80, allows for full remote control of the onboard display.
-DFEATURE_WEBSERVER
DPAD
Allows input with 4 buttons, up, down, back, confirm
-DFEATURE_DPAD
-DPINS_DPAD_UP=23
-DPINS_DPAD_DOWN=32
-DPINS_DPAD_CONFIRM=22
-DPINS_DPAD_BACK=27
DPAD (3wires)
Allows input with 4 buttons, connected via 3 wires, up, down, back, confirm
-DFEATURE_DPAD_3WIRESW
-DPINS_DPAD_3WIRESW_OUT=32
-DPINS_DPAD_3WIRESW_IN1=25
-DPINS_DPAD_3WIRESW_IN2=26
-DDPAD_3WIRESW_UP=3
-DDPAD_3WIRESW_DOWN=2
-DDPAD_3WIRESW_CONFIRM=1
-DDPAD_3WIRESW_BACK=0
; -DDPAD_3WIRESW_DEBUG
DPAD (5wires)
Allows input with 8 buttons, connected via 5 wires, 4 for dpad (up, down, back, confirm, same as in DPAD 3 wires) and additionally 4 presets.
-DFEATURE_DPAD_5WIRESW
-DPINS_DPAD_5WIRESW_OUT=32
-DPINS_DPAD_5WIRESW_IN1=25
-DPINS_DPAD_5WIRESW_IN2=26
-DPINS_DPAD_5WIRESW_IN3=27
-DPINS_DPAD_5WIRESW_IN4=21
-DDPAD_5WIRESW_UP=4
-DDPAD_5WIRESW_DOWN=3
-DDPAD_5WIRESW_CONFIRM=7
-DDPAD_5WIRESW_BACK=0
-DDPAD_5WIRESW_PROFILE0=1
-DDPAD_5WIRESW_PROFILE1=5
-DDPAD_5WIRESW_PROFILE2=2
-DDPAD_5WIRESW_PROFILE3=6
; -DDPAD_5WIRESW_DEBUG
Gametrak
Adds a new driving mode to follow the owner, needs special gametrak hardware (3 potis), is in development and not finished yet.
-DFEATURE_GAMETRAK
-DPINS_GAMETRAKX=34
-DPINS_GAMETRAKY=39
-DPINS_GAMETRAKDIST=36
-DDEFAULT_GAMETRAKXMIN=0
-DDEFAULT_GAMETRAKXMAX=4095
-DDEFAULT_GAMETRAKYMIN=0
-DDEFAULT_GAMETRAKYMAX=4095
-DDEFAULT_GAMETRAKDISTMIN=0
-DDEFAULT_GAMETRAKDISTMAX=4095