multiple firmware configs at the same time
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,7 +1,11 @@
|
||||
desktop.ini
|
||||
/build
|
||||
/build_*
|
||||
/CMakeLists.txt.user*
|
||||
/cmake-build-debug
|
||||
/platformio.pro*
|
||||
/config.cmake
|
||||
/sdkconfig
|
||||
/sdkconfig.old*
|
||||
/.idea
|
||||
/.ccache
|
||||
|
@ -1,85 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.16.3)
|
||||
|
||||
add_definitions(
|
||||
-DUSER_SETUP_LOADED=1
|
||||
-DLOAD_GLCD=1
|
||||
-DLOAD_FONT2=1
|
||||
-DLOAD_FONT4=1
|
||||
-DLOAD_FONT7=1
|
||||
-DFEATURE_ADC_IN
|
||||
-DPINS_GAS=34
|
||||
-DPINS_BREMS=35
|
||||
# -DPINS_LED=23
|
||||
-DILI9341_DRIVER=1
|
||||
-DTFT_MOSI=13
|
||||
-DTFT_SCLK=15
|
||||
-DTFT_CS=14
|
||||
-DTFT_DC=12
|
||||
-DTFT_RST=2
|
||||
-DSPI_FREQUENCY=27000000
|
||||
-DDEFAULT_SWAPSCREENBYTES=false
|
||||
-DFEATURE_CAN
|
||||
# -DFEATURE_SERIAL
|
||||
# -DPINS_RX1=4
|
||||
# -DPINS_TX1=5
|
||||
# -DPINS_RX2=22
|
||||
# -DPINS_TX2=23
|
||||
-DDEFAULT_INVERTFRONTLEFT=false
|
||||
-DDEFAULT_INVERTFRONTRIGHT=true
|
||||
-DDEFAULT_INVERTBACKLEFT=false
|
||||
-DDEFAULT_INVERTBACKRIGHT=true
|
||||
-DDEFAULT_WHEELDIAMETER=255
|
||||
# -DFEATURE_MOSFETS
|
||||
# -DPINS_MOSFET0=18
|
||||
# -DPINS_MOSFET1=19
|
||||
# -DPINS_MOSFET2=21
|
||||
-DDEFAULT_IMOTMAX=35
|
||||
-DDEFAULT_IDCMAX=37
|
||||
-DDEFAULT_NMOTMAX=2000
|
||||
-DDEFAULT_FIELDWEAKMAX=7
|
||||
-DDEFAULT_FIELDADVMAX=40
|
||||
-DDEVICE_PREFIX=bobbyquad
|
||||
-DAP_PASSWORD=Passwort_123
|
||||
-DFEATURE_WEBSERVER
|
||||
-DFEATURE_OTA
|
||||
-DFEATURE_DPAD_5WIRESW
|
||||
-DPINS_DPAD_5WIRESW_OUT=18
|
||||
-DPINS_DPAD_5WIRESW_IN1=19
|
||||
-DPINS_DPAD_5WIRESW_IN2=27
|
||||
-DPINS_DPAD_5WIRESW_IN3=32
|
||||
-DPINS_DPAD_5WIRESW_IN4=33
|
||||
-DDPAD_5WIRESW_UP=6
|
||||
-DDPAD_5WIRESW_DOWN=3
|
||||
-DDPAD_5WIRESW_CONFIRM=7
|
||||
-DDPAD_5WIRESW_BACK=2
|
||||
-DDPAD_5WIRESW_PROFILE0=1
|
||||
-DDPAD_5WIRESW_PROFILE1=5
|
||||
-DDPAD_5WIRESW_PROFILE2=0
|
||||
-DDPAD_5WIRESW_PROFILE3=4
|
||||
# -DDPAD_5WIRESW_DEBUG
|
||||
-DDEFAULT_GASMIN=150
|
||||
-DDEFAULT_GASMAX=1300
|
||||
-DDEFAULT_BREMSMIN=200
|
||||
-DDEFAULT_BREMSMAX=1500
|
||||
-DFEATURE_BLE
|
||||
# -DFEATURE_BLUETOOTH
|
||||
# -DFEATURE_BMS
|
||||
# -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
|
||||
# -DFEATURE_CLOUD
|
||||
)
|
||||
include(config.cmake)
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
project(boardcomputer)
|
||||
project(${BOBBY_APP_NAME})
|
||||
|
26
README.md
26
README.md
@ -3,16 +3,36 @@
|
||||
[](https://travis-ci.org/bobbycar-graz/bobbycar-boardcomputer-firmware)
|
||||
[](https://app.codacy.com/gh/bobbycar-graz/bobbycar-boardcomputer-firmware?utm_source=github.com&utm_medium=referral&utm_content=bobbycar-graz/bobbycar-boardcomputer-firmware&utm_campaign=Badge_Grade_Dashboard)
|
||||
|
||||
## How to clone and compile?
|
||||
## How to clone ? (READ THIS OR YOU WILL FAIL)
|
||||
|
||||
```
|
||||
git clone --recursive git@github.com:bobbycar-graz/bobbycar-boardcomputer-firmware.git
|
||||
cd bobbycar-boardcomputer-firmware/
|
||||
./esp-idf/install.sh
|
||||
. esp-idf/export.sh
|
||||
idf.py -p /dev/ttyUSB0 -b 921600 flash monitor
|
||||
./switchconf.sh feedc0de
|
||||
```
|
||||
|
||||
## How to compile
|
||||
Also do the initialization if you use an IDE, otherwise build will fail.
|
||||
|
||||
```
|
||||
# before you try to build anything, always do this first:
|
||||
. export.sh
|
||||
|
||||
# if needed, switch to the right configuration for your hardware (run with --list to list available configurations)
|
||||
./switchconf.sh feedc0de
|
||||
|
||||
# flash bootloader, partition table and app (only do once)
|
||||
idf.py -p /dev/ttyUSB0 -b 921600 flash monitor
|
||||
|
||||
# flash only app (do this for development as it is much faster)
|
||||
idf.py -p /dev/ttyUSB0 -b 921600 app-flash monitor
|
||||
```
|
||||
|
||||
if you are inside monitor, hit Ctrl+T then Ctrl+X to exit.
|
||||
|
||||
Hit Ctrl+T then Ctrl+A to reflash the app and return to monitor (very handy during development)
|
||||
|
||||
## How to wire all connections?
|
||||
|
||||

|
||||
|
78
config_comred.cmake
Normal file
78
config_comred.cmake
Normal file
@ -0,0 +1,78 @@
|
||||
set(BOBBY_APP_NAME bobbyquad_feedc0de)
|
||||
|
||||
add_definitions(
|
||||
-DUSER_SETUP_LOADED=1
|
||||
-DLOAD_GLCD=1
|
||||
-DLOAD_FONT2=1
|
||||
-DLOAD_FONT4=1
|
||||
-DLOAD_FONT7=1
|
||||
-DFEATURE_ADC_IN
|
||||
-DPINS_GAS=34
|
||||
-DPINS_BREMS=35
|
||||
# -DPINS_LED=23
|
||||
-DILI9341_DRIVER=1
|
||||
-DTFT_MOSI=13
|
||||
-DTFT_SCLK=15
|
||||
-DTFT_CS=14
|
||||
-DTFT_DC=12
|
||||
-DTFT_RST=2
|
||||
-DSPI_FREQUENCY=27000000
|
||||
-DDEFAULT_SWAPSCREENBYTES=false
|
||||
-DFEATURE_CAN
|
||||
# -DFEATURE_SERIAL
|
||||
# -DPINS_RX1=4
|
||||
# -DPINS_TX1=5
|
||||
# -DPINS_RX2=22
|
||||
# -DPINS_TX2=23
|
||||
-DDEFAULT_INVERTFRONTLEFT=false
|
||||
-DDEFAULT_INVERTFRONTRIGHT=true
|
||||
-DDEFAULT_INVERTBACKLEFT=false
|
||||
-DDEFAULT_INVERTBACKRIGHT=true
|
||||
-DDEFAULT_WHEELDIAMETER=255
|
||||
# -DFEATURE_MOSFETS
|
||||
# -DPINS_MOSFET0=18
|
||||
# -DPINS_MOSFET1=19
|
||||
# -DPINS_MOSFET2=21
|
||||
-DDEFAULT_IMOTMAX=35
|
||||
-DDEFAULT_IDCMAX=37
|
||||
-DDEFAULT_NMOTMAX=2000
|
||||
-DDEFAULT_FIELDWEAKMAX=7
|
||||
-DDEFAULT_FIELDADVMAX=40
|
||||
-DDEVICE_PREFIX=bobbyquad
|
||||
-DAP_PASSWORD=Passwort_123
|
||||
-DFEATURE_WEBSERVER
|
||||
-DFEATURE_OTA
|
||||
-DFEATURE_DPAD_5WIRESW
|
||||
-DPINS_DPAD_5WIRESW_OUT=18
|
||||
-DPINS_DPAD_5WIRESW_IN1=19
|
||||
-DPINS_DPAD_5WIRESW_IN2=27
|
||||
-DPINS_DPAD_5WIRESW_IN3=32
|
||||
-DPINS_DPAD_5WIRESW_IN4=33
|
||||
-DDPAD_5WIRESW_UP=6
|
||||
-DDPAD_5WIRESW_DOWN=3
|
||||
-DDPAD_5WIRESW_CONFIRM=7
|
||||
-DDPAD_5WIRESW_BACK=2
|
||||
-DDPAD_5WIRESW_PROFILE0=1
|
||||
-DDPAD_5WIRESW_PROFILE1=5
|
||||
-DDPAD_5WIRESW_PROFILE2=0
|
||||
-DDPAD_5WIRESW_PROFILE3=4
|
||||
# -DDPAD_5WIRESW_DEBUG
|
||||
-DDEFAULT_GASMIN=150
|
||||
-DDEFAULT_GASMAX=1300
|
||||
-DDEFAULT_BREMSMIN=200
|
||||
-DDEFAULT_BREMSMAX=1500
|
||||
-DFEATURE_BLE
|
||||
# -DFEATURE_BLUETOOTH
|
||||
# -DFEATURE_BMS
|
||||
# -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
|
||||
# -DFEATURE_CLOUD
|
||||
)
|
78
config_feedc0de.cmake
Normal file
78
config_feedc0de.cmake
Normal file
@ -0,0 +1,78 @@
|
||||
set(BOBBY_APP_NAME bobbyquad_feedc0de)
|
||||
|
||||
add_definitions(
|
||||
-DUSER_SETUP_LOADED=1
|
||||
-DLOAD_GLCD=1
|
||||
-DLOAD_FONT2=1
|
||||
-DLOAD_FONT4=1
|
||||
-DLOAD_FONT7=1
|
||||
-DFEATURE_ADC_IN
|
||||
-DPINS_GAS=34
|
||||
-DPINS_BREMS=35
|
||||
# -DPINS_LED=23
|
||||
-DILI9341_DRIVER=1
|
||||
-DTFT_MOSI=13
|
||||
-DTFT_SCLK=15
|
||||
-DTFT_CS=14
|
||||
-DTFT_DC=12
|
||||
-DTFT_RST=2
|
||||
-DSPI_FREQUENCY=27000000
|
||||
-DDEFAULT_SWAPSCREENBYTES=false
|
||||
-DFEATURE_CAN
|
||||
# -DFEATURE_SERIAL
|
||||
# -DPINS_RX1=4
|
||||
# -DPINS_TX1=5
|
||||
# -DPINS_RX2=22
|
||||
# -DPINS_TX2=23
|
||||
-DDEFAULT_INVERTFRONTLEFT=false
|
||||
-DDEFAULT_INVERTFRONTRIGHT=true
|
||||
-DDEFAULT_INVERTBACKLEFT=false
|
||||
-DDEFAULT_INVERTBACKRIGHT=true
|
||||
-DDEFAULT_WHEELDIAMETER=255
|
||||
# -DFEATURE_MOSFETS
|
||||
# -DPINS_MOSFET0=18
|
||||
# -DPINS_MOSFET1=19
|
||||
# -DPINS_MOSFET2=21
|
||||
-DDEFAULT_IMOTMAX=35
|
||||
-DDEFAULT_IDCMAX=37
|
||||
-DDEFAULT_NMOTMAX=2000
|
||||
-DDEFAULT_FIELDWEAKMAX=7
|
||||
-DDEFAULT_FIELDADVMAX=40
|
||||
-DDEVICE_PREFIX=bobbyquad
|
||||
-DAP_PASSWORD=Passwort_123
|
||||
-DFEATURE_WEBSERVER
|
||||
-DFEATURE_OTA
|
||||
-DFEATURE_DPAD_5WIRESW
|
||||
-DPINS_DPAD_5WIRESW_OUT=18
|
||||
-DPINS_DPAD_5WIRESW_IN1=19
|
||||
-DPINS_DPAD_5WIRESW_IN2=27
|
||||
-DPINS_DPAD_5WIRESW_IN3=32
|
||||
-DPINS_DPAD_5WIRESW_IN4=33
|
||||
-DDPAD_5WIRESW_UP=6
|
||||
-DDPAD_5WIRESW_DOWN=3
|
||||
-DDPAD_5WIRESW_CONFIRM=7
|
||||
-DDPAD_5WIRESW_BACK=2
|
||||
-DDPAD_5WIRESW_PROFILE0=1
|
||||
-DDPAD_5WIRESW_PROFILE1=5
|
||||
-DDPAD_5WIRESW_PROFILE2=0
|
||||
-DDPAD_5WIRESW_PROFILE3=4
|
||||
# -DDPAD_5WIRESW_DEBUG
|
||||
-DDEFAULT_GASMIN=150
|
||||
-DDEFAULT_GASMAX=1300
|
||||
-DDEFAULT_BREMSMIN=200
|
||||
-DDEFAULT_BREMSMAX=1500
|
||||
-DFEATURE_BLE
|
||||
# -DFEATURE_BLUETOOTH
|
||||
# -DFEATURE_BMS
|
||||
# -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
|
||||
# -DFEATURE_CLOUD
|
||||
)
|
57
export.sh
Normal file
57
export.sh
Normal file
@ -0,0 +1,57 @@
|
||||
if [[ $_ == $0 ]]
|
||||
then
|
||||
echo "export.sh has to be sourced, not run in a subshell"
|
||||
echo ". export.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BOBBY_ROOT="$(dirname "$BASH_SOURCE")"
|
||||
|
||||
if [[ ! -f "${BOBBY_ROOT}/esp-idf/export.sh" ]]
|
||||
then
|
||||
echo "esp-idf is missing, please check out all needed submodules!"
|
||||
echo "git submodule update --init --recursive"
|
||||
return
|
||||
fi
|
||||
|
||||
. ${BOBBY_ROOT}/esp-idf/export.sh
|
||||
|
||||
complete -W "$(./switchconf.sh --list)" ./switchconf.sh
|
||||
|
||||
BOBBY_INIT_FAILED=
|
||||
|
||||
if [[ -e "build" ]] && [[ ! -L "build" ]]
|
||||
then
|
||||
echo "ERROR: build folder exists but isnt a symlink!"
|
||||
BOBBY_INIT_FAILED=1
|
||||
fi
|
||||
|
||||
if [[ -e "sdkconfig" ]]
|
||||
then
|
||||
if [[ ! -L "sdkconfig" ]]
|
||||
then
|
||||
echo "ERROR: sdkconfig exists but isnt a symlink!"
|
||||
BOBBY_INIT_FAILED=1
|
||||
fi
|
||||
else
|
||||
echo "ERROR: sdkconfig does not exist"
|
||||
BOBBY_INIT_FAILED=1
|
||||
fi
|
||||
|
||||
if [[ -e "config.cmake" ]]
|
||||
then
|
||||
if [[ ! -L "config.cmake" ]]
|
||||
then
|
||||
echo "ERROR: config.cmake exists but isnt a symlink!"
|
||||
BOBBY_INIT_FAILED=1
|
||||
fi
|
||||
else
|
||||
echo "ERROR: config.cmake does not exist"
|
||||
BOBBY_INIT_FAILED=1
|
||||
fi
|
||||
|
||||
if [[ ! -z "$BOBBY_INIT_FAILED" ]]
|
||||
then
|
||||
echo "run ./switchconf.sh to fix all listed issues"
|
||||
return
|
||||
fi
|
1467
sdkconfig_feedc0de
Normal file
1467
sdkconfig_feedc0de
Normal file
File diff suppressed because it is too large
Load Diff
89
switchconf.sh
Executable file
89
switchconf.sh
Executable file
@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
|
||||
[[ $_ != $0 ]] && HAS_BEEN_SOURCED=1
|
||||
|
||||
VALID_CONFIGS=(feedc0de comred)
|
||||
|
||||
function print_usage
|
||||
{
|
||||
echo "usage: ./switchconf.sh ${VALID_CONFIGS[@]}"
|
||||
}
|
||||
|
||||
if [[ ! -z "${HAS_BEEN_SOURCED}" ]]
|
||||
then
|
||||
echo "switch.sh cannot be sourced, run in a subshell"
|
||||
print_usage
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ -z "$1" ]]
|
||||
then
|
||||
echo "ERROR: no buildconfig specified"
|
||||
print_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! " ${VALID_CONFIGS[@]} " =~ " $1 " ]]
|
||||
then
|
||||
case "$1" in
|
||||
"--help")
|
||||
print_usage
|
||||
exit
|
||||
;;
|
||||
|
||||
"--list")
|
||||
for i in ${VALID_CONFIGS[@]}
|
||||
do
|
||||
echo "$i"
|
||||
done
|
||||
exit
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "ERROR: invalid buildconfig \"$1\""
|
||||
print_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [[ -L "build" ]]
|
||||
then
|
||||
rm -v "build"
|
||||
else
|
||||
if [[ -e "build" ]]
|
||||
then
|
||||
echo build is not a symlink
|
||||
mv "build" "build.bak" -v
|
||||
fi
|
||||
fi
|
||||
|
||||
mkdir -pv "build_$1"
|
||||
|
||||
if [[ -L "sdkconfig" ]]
|
||||
then
|
||||
rm -v "sdkconfig"
|
||||
else
|
||||
if [[ -e "sdkconfig" ]]
|
||||
then
|
||||
echo sdkconfig is not a symlink
|
||||
mv "sdkconfig" "sdkconfig.bak" -v
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -L "config.cmake" ]]
|
||||
then
|
||||
rm -v "config.cmake"
|
||||
else
|
||||
if [[ -e "config.cmake" ]]
|
||||
then
|
||||
echo config.cmake is not a symlink
|
||||
mv "config.cmake" "config.cmake.bak" -v
|
||||
fi
|
||||
fi
|
||||
|
||||
ln -vs "build_$1" "build"
|
||||
ln -vs "sdkconfig_$1" "sdkconfig"
|
||||
ln -vs "config_$1.cmake" "config.cmake"
|
||||
|
||||
echo all ok
|
Reference in New Issue
Block a user