akkdong / MiniVario

ESP32+BARO+GPS+E-INK
8 stars 4 forks source link

Failed to start after welding #1

Open mspudi opened 8 months ago

mspudi commented 8 months ago

1:MiniVario_Rev2.pcb Failed to start after welding

2:MiniVario_Rev2.pdf / MiniVario_Full.pdf There is no difference between the two

3:src-platformio / Arduino IDE master/src/ Burn test after compilation

Make sure there is no problem with the circuit

Start long press KEY - UP KEY SEL

akkdong commented 7 months ago
  1. Hm...

    • Actually GPS has problem but it's not affect to boot up.
    • Please check one by one: Power, USB(2serial), ...
  2. Power input of GPS module is changed.

    • Anyway GPS works well. but it cann't find satellite
    • External ANTENA is needed. : I will show how to fix it.
  3. recommend src-platformio

    • use proper EPD: refer USE_GOOD_DISPLAY macro in platformio.ini

--> There is no problem to start but some H/W fix is needed.

mspudi commented 5 days ago

[2024-09-30 13:32:45.227]# RECV ASCII> Start MiniVario... [2024-09-30 13:32:45.354]# RECV ASCII> Initializing SD card... E (336) sdmmc_io: sdmmc_io_reset: unexpected return: 0x108 E (337) vfs_fat_sdmmc: sdmmc_card_init failed (0x108). [ 358][E][SD_MMC.cpp:148] begin(): Failed to initialize the card (0x108). Make sure SD card lines have pull-up resistors in place. SD Card Mount Failed Failed to initialize SD Card.

[2024-09-30 13:32:45.650]# RECV ASCII> DeviceDefault.enableBT = 0 DeviceDefault.enableSound = 0 DeviceDefault.enableSimulation = 0 DeviceDefault.enableNmeaLogging = 0 DeviceDefault.btName = MiniVario DeviceDefault.wifiSSID = MiniVario DeviceDefault.wifiPassword = 123456789 VolumeSettings.vario = 0 VolumeSettings.effect = 100 VolumeSettings.autoTurnOn = 1 VarioSettings.sinkThreshold = -3.000000 VarioSettings.climbThreshold = 0.200000 VarioSettings.sensitivity = 0.120000 VarioSettings.sentence = 2 VarioSettings.altitudeRef1 = 0.000000 VarioSetting

[2024-09-30 13:32:45.742]# RECV ASCII> s.altitudeRef2 = 0.000000 VarioSettings.altitudeRef3 = 0.000000 VarioSettings.dampingFactor = 0.050000 KalmanParameter.varZMeas = 400.000000 KalmanParameter.varZAccel = 50000.000000 KalmanParameter.varAccelBias = 1.000000 GliderInfo.type = 1 GliderInfo.manufacture = Ozone GliderInfo.model = Zeno IGCLogger.enable = 1 IGCLogger.takeoffSpeed = 6 IGCLogger.landingSpeed = 2 IGCLogger.landingTimeout = 10000 IGCLogger.loggingInterval = 1000 IGCLogger.pilot = akkdong IGCLogger.timezone = 9.000000

[2024-09-30 13:32:46.784]# RECV ASCII> E (3978) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time: E (3978) task_wdt: - loopTask (CPU 1) E (3978) task_wdt: Tasks currently running: E (3978) task_wdt: CPU 0: IDLE0 E (3978) task_wdt: CPU 1: IDLE1 E (3978) task_wdt: Aborting.

abort() was called at PC 0x400f5160 on core 0 Backtrace: 0x40083fe1:0x3ffbf17c |<-CORRUPTED ELF file SHA256: 9320ff9e2883cf93 [2024-09-30 13:32:47.000]# RECV ASCII> Rebooting...

mspudi commented 5 days ago

I use an external module for GPS, as long as it can decode NMEA, that's enough。The system keeps restarting after power on, please modify it void resetDevice() { // display.showPopup(NULL);

//
btMan.stopLogging();
btMan.end();

// close logging-file
logger.end(nmeaParser.getDateTime());

// turn-off peripherals
setPinState(&powerPins[0], PIN_STATE_INACTIVE);
setPinState(&powerPins[1], PIN_STATE_INACTIVE);
delay(1000); // delay will trigger Task watchdog!

// or manually reset
ESP.restart();

}

akkdong commented 21 hours ago

The current problem is caused by watchdog timeout. The watchdog count should be reset periodically. The watchdog resets itself periodically in the main loop and in the kalman-vario task. For some reason, the loop does not seem to work properly. You may be able to determine why the loop stops working by disabling the watchdog. Try commenting out all lines starting with "TaskWatchodog::" in main.cpp and KalmanVario.cpp, or changing the value of the TASK_TIMEOUT_S macro to a larger value. TASK_TIMEOUT_S is the watchdog timeout period, which is currently set to 1 second.