Hello everyone,
there seems to be an issue with my programm I am unable to solve. When I flash/reset the thingy via VSCode with Segger J-Link mini EDU and USB it boots just fine and the application runs even if I disconnect it after. But if I try to reset it just with the J-link without the USB or simply by a power-on reset it doesn't do anything.
The battery is fine and when f.e. the blinky demo is flashed it works without issues. What am I missing?
Thanks for your help.
The app is supposed to first connect to the network, then measure the airquality and send a message via MQTT. After that go to sleep for 5 mins and repeat.
This is my main():
void main(void) { k_msleep(500); //tested if delaying helps gpio_pin_configure_dt(&red_led, GPIO_OUTPUT_ACTIVE); /*Initialisierung und Aufbau der Internetverbindung*/ int err; printk("Connecting to LTE network. This may take a few minutes...\n"); k_msleep(500); //tested if delaying helps err = lte_lc_init_and_connect_async(lte_handler); if (err) { printk("lte_lc_init_and_connect_async, error: %d\n", err); return; } err = lte_lc_psm_req(true); //enabling PSM if (err) { printk("lte_lc_psm_req, error: %d\n", err); return; } k_sem_take(<e_connected, K_FOREVER); gpio_pin_configure_dt(&red_led, GPIO_OUTPUT_INACTIVE); /*Abarbeitung des weiterführenden Programms*/ printMessageConnection(); connectedLED(); sensINIT(); err = client_init(&client); if (err) { printk("Failed to initialize MQTT client: %d\n", err); return; } do_connect: err = mqtt_connect(&client); if (err) { printk("Error in mqtt_connect: %d\n", err); goto do_connect; } err = fds_init(&client,&fds); if (err) { printk("Error in fds_init: %d\n", err); return; } while(1){ err = poll(&fds, 1, mqtt_keepalive_time_left(&client)); if (err < 0) { printk("Error in poll(): %d\n", errno); break; } err = mqtt_live(&client); if ((err != 0) && (err != -EAGAIN)) { printk("Error in mqtt_live: %d\n", err); break; } if ((fds.revents & POLLIN) == POLLIN) { err = mqtt_input(&client); if (err != 0) { printk("Error in mqtt_input: %d\n", err); break; } } if ((fds.revents & POLLERR) == POLLERR) { printk("POLLERR\n"); break; } if ((fds.revents & POLLNVAL) == POLLNVAL) { printk("POLLNVAL\n"); break; } airQualLED(); sensValues(); sendMsg(); k_sleep(K_MINUTES(MAIN_SLEEP)); } printk("Disconnecting MQTT client\n"); err = mqtt_disconnect(&client); if (err) { printk("Could not disconnect MQTT client: %d\n", err); } goto do_connect; }