top of page

Forum Comments

BiBoard V1: openCatEsp21
In Software
Servos going crazy during Calibration mode
In Basic Assembly and Setup
Servos going crazy during Calibration mode
In Basic Assembly and Setup
Servos going crazy during Calibration mode
In Basic Assembly and Setup
Servos going crazy during Calibration mode
In Basic Assembly and Setup
Servos going crazy during Calibration mode
In Basic Assembly and Setup
3D print: robotic Jaguar
In Showcase
The question of defining ports
In Software
Rongzhong Li
Jul 05, 2025
Hi, good catch! Pin 9 and 10 can be used either as I2C or UART. But at the same time, in a function set, their role is fixed. The modules are not activated simultaneously. More specifically, Serial2 is typically used by a master device, such as the Raspberry Pi. If a camera is needed, it's usually attached to the Pi rather than connected to the I2C port of the BiBoard. In the module manager, there's a logic check for the case when both modules are competing for the same port. The previous logic was to make all the modules exclusive. i.e., only one module can be active, and it will turn off the other modules. In a later revision, we excluded the voice and the backtouch sensor from the rule. However, the camera will still force Serial2 to turn off. void reconfigureTheActiveModule(char *moduleCode) {   if (moduleCode[0] == '?') {     showModuleStatus();     return;   }   bool statusChangedQ = false;   // PTHL("mode", moduleCode); // negative number will deactivate all the modules   for (byte i = 0; i < sizeof(moduleList) / sizeof(char); i++) {                                               // disable unneeded modules     if (moduleActivatedQ[i] && moduleList[i] != moduleCode[0]) {                                               // if the modules is active and different from the new module       if ((moduleList[i] == EXTENSION_VOICE || moduleList[i] == EXTENSION_BACKTOUCH) && moduleCode[0] != '~')  // it won't disable the voice and backtouch         continue;       PTHL("- disable", moduleNames[i]);       stopModule(moduleList[i]);       moduleActivatedQ[i] = false;       statusChangedQ = true; #ifdef I2C_EEPROM_ADDRESS       i2c_eeprom_write_byte(EEPROM_MODULE_ENABLED_LIST + i, false); #endif     }   } #ifndef I2C_EEPROM_ADDRESS   config.putBytes("moduleState", moduleActivatedQ, sizeof(moduleList) / sizeof(char)); #endif   for (byte i = 0; i < sizeof(moduleList) / sizeof(char); i++) {     if (moduleList[i] == moduleCode[0] && !moduleActivatedQ[i]) {       PTHL("+ enable", moduleNames[i]);       initModule(moduleList[i]);       statusChangedQ = true;     }   }   if (statusChangedQ)  // if the status of the modules has changed, show the new status     showModuleStatus(); }
0
1
Confused about calibration mode vs. Joint Calibrator
In Basic Assembly and Setup
Rongzhong Li
Jul 03, 2025
Congratulations!
0
Confused about calibration mode vs. Joint Calibrator
In Basic Assembly and Setup
Confused about calibration mode vs. Joint Calibrator
In Basic Assembly and Setup

Rongzhong Li

管理員
更多動作
bottom of page