diff --git a/ShineLAN-X/firmware/include/config.h b/ShineLAN-X/firmware/include/config.h index 4bce396..255c265 100644 --- a/ShineLAN-X/firmware/include/config.h +++ b/ShineLAN-X/firmware/include/config.h @@ -27,7 +27,7 @@ // ============================================================ // MODBUS // ============================================================ -#define MODBUS_BAUD 115200 +#define MODBUS_BAUD 9600 #define MODBUS_ADDR 1 // ============================================================ diff --git a/ShineLAN-X/firmware/platformio.ini b/ShineLAN-X/firmware/platformio.ini index 0ed2786..826935a 100644 --- a/ShineLAN-X/firmware/platformio.ini +++ b/ShineLAN-X/firmware/platformio.ini @@ -17,4 +17,6 @@ build_flags = -DUSBD_USE_CDC -DHAL_PCD_MODULE_ENABLED -DUSB_CDC_TRANSMIT_TIMEOUT=3000 + -DCUSTOM_USBD_PID=0x5740 + '-DUSB_PRODUCT_STRING="STM32 Virtual COM Port"' -I include diff --git a/ShineLAN-X/firmware/src/main.cpp b/ShineLAN-X/firmware/src/main.cpp index fb94978..6741c10 100644 --- a/ShineLAN-X/firmware/src/main.cpp +++ b/ShineLAN-X/firmware/src/main.cpp @@ -551,7 +551,8 @@ void loop() { ledSet(LED_BLUE, true); - bool usbReady = (SerialUSB.availableForWrite() == 127); + uint8_t avStart = SerialUSB.availableForWrite(); + bool usbReady = (avStart >= 8); uint8_t okCount = 0, failCount = 0; uint8_t lastErr = 0; uint16_t lastErrReg = 0; @@ -600,9 +601,9 @@ void loop() { if (lastErr) g_lastErr = lastErr; char dbg[64]; - snprintf(dbg, sizeof(dbg), "ok=%u fail=%u err=0x%02X@%u av=%d rx=%d", + snprintf(dbg, sizeof(dbg), "ok=%u fail=%u err=0x%02X@%u avS=%d avE=%d rx=%d", okCount, failCount, lastErr, lastErrReg, - SerialUSB.availableForWrite(), SerialUSB.available()); + avStart, SerialUSB.availableForWrite(), SerialUSB.available()); mqtt.publish("growatt/shinelan/debug", dbg); ledSet(LED_BLUE, false);