diff --git a/board/main.c b/board/main.c index 52f12eca..40c29f42 100644 --- a/board/main.c +++ b/board/main.c @@ -170,7 +170,7 @@ void tick_handler(void) { #endif // set green LED to be controls allowed - current_board->set_led(LED_GREEN, controls_allowed); + current_board->set_led(LED_GREEN, controls_allowed | green_led_enabled); // turn off the blue LED, turned on by CAN // unless we are in power saving mode diff --git a/board/main_comms.h b/board/main_comms.h index 37520dc0..055289c3 100644 --- a/board/main_comms.h +++ b/board/main_comms.h @@ -418,6 +418,10 @@ int comms_control_handler(ControlPacket_t *req, uint8_t *resp) { case 0xf6: siren_enabled = (req->param1 != 0U); break; + // **** 0xf7: set green led enabled + case 0xf7: + green_led_enabled = (req->param1 != 0U); + break; // **** 0xf8: disable heartbeat checks case 0xf8: if (!is_car_safety_mode(current_safety_mode)) { diff --git a/board/main_declarations.h b/board/main_declarations.h index f9273886..4570c6e6 100644 --- a/board/main_declarations.h +++ b/board/main_declarations.h @@ -14,6 +14,7 @@ void pwm_set(TIM_TypeDef *TIM, uint8_t channel, uint8_t percentage); uint8_t hw_type = 0; const board *current_board; uint32_t uptime_cnt = 0; +bool green_led_enabled = false; // heartbeat state uint32_t heartbeat_counter = 0; diff --git a/python/__init__.py b/python/__init__.py index 00d1462c..bcd9b836 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -715,8 +715,10 @@ class Panda: def serial_write(self, port_number, ln): ret = 0 + if type(ln) == str: + ln = bytes(ln, 'utf-8') for i in range(0, len(ln), 0x20): - ret += self._handle.bulkWrite(2, struct.pack("B", port_number) + bytes(ln[i:i + 0x20], 'utf-8')) + ret += self._handle.bulkWrite(2, struct.pack("B", port_number) + ln[i:i + 0x20]) return ret def serial_clear(self, port_number): @@ -835,3 +837,7 @@ class Panda: # ****************** Siren ***************** def set_siren(self, enabled): self._handle.controlWrite(Panda.REQUEST_OUT, 0xf6, int(enabled), 0, b'') + + # ****************** Debug ***************** + def set_green_led(self, enabled): + self._handle.controlWrite(Panda.REQUEST_OUT, 0xf7, int(enabled), 0, b'')