From 794edd51697fa7589ab917f1e20e932689075d36 Mon Sep 17 00:00:00 2001 From: Fisch Date: Tue, 10 Dec 2019 23:44:35 +0100 Subject: [PATCH] calibrate rear (blue) pcb, temp and voltage --- Inc/config.h | 57 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 14 deletions(-) diff --git a/Inc/config.h b/Inc/config.h index be3a49c..348a6fa 100644 --- a/Inc/config.h +++ b/Inc/config.h @@ -1,6 +1,10 @@ #pragma once #include "stm32f1xx_hal.h" +//Select the calibration values for the different pcbs +//#define BOBBYCAR_PCB_FRONT +#define BOBBYCAR_PCB_REAR + // ############################### DO-NOT-TOUCH SETTINGS ############################### #define PWM_FREQ 16000 // PWM frequency in Hz @@ -42,8 +46,15 @@ * Then you can verify voltage on value 6 (to get calibrated voltage multiplied by 100). */ #define BAT_FILT_COEF 655 // battery voltage filter coefficient in fixed-point. coef_fixedPoint = coef_floatingPoint * 2^16. In this case 655 = 0.01 * 2^16 -#define BAT_CALIB_REAL_VOLTAGE 4300 // input voltage measured by multimeter (multiplied by 100). In this case 43.00 V * 100 = 4300 -#define BAT_CALIB_ADC 1704 // adc-value measured by mainboard (value nr 5 on UART debug output) +#ifdef BOBBYCAR_PCB_REAR + //REAR WHEELS PCB + #define BAT_CALIB_REAL_VOLTAGE 4000 // input voltage measured by multimeter (multiplied by 100). In this case 40.00 V * 100 = 4000 + #define BAT_CALIB_ADC 1593 // adc-value measured by mainboard (value nr 5 on UART debug output) +#endif +#ifdef BOBBYCAR_PCB_FRONT + #define BAT_CALIB_REAL_VOLTAGE 4000 // input voltage measured by multimeter (multiplied by 100). In this case 40.00 V * 100 = 4300 + #define BAT_CALIB_ADC 1593 // adc-value measured by mainboard (value nr 5 on UART debug output) +#endif #define BAT_CELLS 10 // battery number of cells. Normal Hoverboard battery: 10s #define BAT_LOW_LVL1_ENABLE 0 // to beep or not to beep, 1 or 0 @@ -61,10 +72,21 @@ * Enable warning and/or poweroff and make and flash firmware. */ #define TEMP_FILT_COEF 655 // temperature filter coefficient in fixed-point. coef_fixedPoint = coef_floatingPoint * 2^16. In this case 655 = 0.01 * 2^16 -#define TEMP_CAL_LOW_ADC 1716 // temperature 1: ADC value -#define TEMP_CAL_LOW_DEG_C 210 // temperature 1: measured temperature [°C * 10]. Here 35.8 °C -#define TEMP_CAL_HIGH_ADC 1600 // temperature 2: ADC value -#define TEMP_CAL_HIGH_DEG_C 420 // temperature 2: measured temperature [°C * 10]. Here 48.9 °C +#ifdef BOBBYCAR_PCB_REAR + //REAR WHEELS PCB + #define TEMP_CAL_LOW_ADC 1722 // temperature 1: ADC value + #define TEMP_CAL_LOW_DEG_C 220 // temperature 1: measured temperature [°C * 10]. Here 22.0 °C + #define TEMP_CAL_HIGH_ADC 1580 // temperature 2: ADC value + #define TEMP_CAL_HIGH_DEG_C 500 // temperature 2: measured temperature [°C * 10]. Here 50.0 °C +#endif +#ifdef BOBBYCAR_PCB_FRONT + //FRONT WHEELS PCB + #define TEMP_CAL_LOW_ADC 1722 // temperature 1: ADC value + #define TEMP_CAL_LOW_DEG_C 220 // temperature 1: measured temperature [°C * 10]. Here 22.0 °C + #define TEMP_CAL_HIGH_ADC 1580 // temperature 2: ADC value + #define TEMP_CAL_HIGH_DEG_C 500 // temperature 2: measured temperature [°C * 10]. Here °C +#endif + #define TEMP_WARNING_ENABLE 1 // to beep or not to beep, 1 or 0, DO NOT ACTIVITE WITHOUT CALIBRATION! #define TEMP_WARNING 600 // annoying fast beeps [°C * 10]. Here 60.0 °C #define TEMP_POWEROFF_ENABLE 0 // to poweroff or not to poweroff, 1 or 0, DO NOT ACTIVITE WITHOUT CALIBRATION! @@ -89,16 +111,16 @@ #define START_FRAME 0xAAAA // [-] Start frame definition for serial commands #define SERIAL_TIMEOUT 160 // [-] Serial timeout duration for the received data. 160 ~= 0.8 sec. Calculation: 0.8 sec / 0.005 sec -#define USART2_BAUD 38400 // UART2 baud rate (long wired cable, soldered next to buzzer) +#define USART2_BAUD 38400 // UART2 baud rate (long wired cable, soldered next to buzzer) #define USART2_WORDLENGTH UART_WORDLENGTH_8B // UART_WORDLENGTH_8B or UART_WORDLENGTH_9B -#define CONTROL_SERIAL_USART2 // left sensor board cable, disable if ADC or PPM is used! For Arduino control check the hoverSerial.ino -#define FEEDBACK_SERIAL_USART2 // left sensor board cable, disable if ADC or PPM is used! -// #define DEBUG_SERIAL_USART2 // left sensor board cable, disable if ADC or PPM is used! +//#define CONTROL_SERIAL_USART2 // left sensor board cable, disable if ADC or PPM is used! For Arduino control check the hoverSerial.ino +//#define FEEDBACK_SERIAL_USART2 // left sensor board cable, disable if ADC or PPM is used! +//#define DEBUG_SERIAL_USART2 // left sensor board cable, disable if ADC or PPM is used! #define USART3_BAUD 38400 // UART3 baud rate (short wired cable) #define USART3_WORDLENGTH UART_WORDLENGTH_8B // UART_WORDLENGTH_8B or UART_WORDLENGTH_9B -// #define CONTROL_SERIAL_USART3 // right sensor board cable, disable if I2C (nunchuck or lcd) is used! For Arduino control check the hoverSerial.ino -// #define FEEDBACK_SERIAL_USART3 // right sensor board cable, disable if I2C (nunchuck or lcd) is used! +#define CONTROL_SERIAL_USART3 // right sensor board cable, disable if I2C (nunchuck or lcd) is used! For Arduino control check the hoverSerial.ino +#define FEEDBACK_SERIAL_USART3 // right sensor board cable, disable if I2C (nunchuck or lcd) is used! //#define DEBUG_SERIAL_USART3 // right sensor board cable, disable if I2C (nunchuck or lcd) is used! #if defined(FEEDBACK_SERIAL_USART2) || defined(DEBUG_SERIAL_USART2) @@ -188,8 +210,15 @@ #define SPEED_COEFFICIENT 16384 // 1.0f [-] higher value == stronger. [0, 65535] = [-2.0, 2.0]. In this case 16384 = 1.0 * 2^14 #define STEER_COEFFICIENT 8192 // 0.5f [-] higher value == stronger. [0, 65535] = [-2.0, 2.0]. In this case 8192 = 0.5 * 2^14. If you do not want any steering, set it to 0. -#define INVERT_R_DIRECTION -#define INVERT_L_DIRECTION +#ifdef BOBBYCAR_PCB_REAR + //#define INVERT_R_DIRECTION + //#define INVERT_L_DIRECTION +#endif +#ifdef BOBBYCAR_PCB_FRONT + //#define INVERT_R_DIRECTION + //#define INVERT_L_DIRECTION +#endif + #define BEEPS_BACKWARD 0 // 0 or 1 // ###### SIMPLE BOBBYCAR ######