Apple Mac OS
Firefox 124.0.2
Arduino IDE 2.3.3-nightly-20240328
Arduino Nano ESP32
Arduino C++
#include <AsyncUDP.h>
#include <UniversalTimer.h>
#define LED_BUILTIN 2 // The built-in LED is connected to pin 2
UniversalTimer WiFi_transmit_start(5000, false);
UniversalTimer WiFi_transmit_delay(2000, false);
UniversalTimer blink_on(250, false);
IPAddress ip(192, 168, 1, 173);
uint16_t IPport = 57400;
uint8_t sensorValue;
uint32_t remote_IP;
uint8_t data_in;
uint8_t data_out;
uint8_t packet_size;
void read_incoming();
void write_outgoing();
AsyncUDP udp;
AsyncUDPPacket *packet;
void setup() {
Serial.begin(115200);
delay(2000);
// Set ADC resolution (optional)
analogReadResolution(8); // 8-bit resolution
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
data_in = 0;
//listen(const IPAddress addr, uint16_t port)
udp.listen(ip, IPport);
/*
udp.onPacket([](AsyncUDPPacket packet) {
//read_incoming();
Serial.println("end of lambda");
}); //udp.onPacket([](AsyncUDPPacket packet)
*/
Serial.println("end of setup()");
} //void setup()
void loop() {
/*
Serial.println("start loop()");
//this ensures somebody starts transmitting
//if (!WiFi_transmit_start.isRunning()) WiFi_transmit_start.start();
if (data_in) {
Serial.println("if (data_in)");
//.check() indicates timeout has expired
if (WiFi_transmit_delay.check() | WiFi_transmit_start.check()) {
Serial.println("pre-write_outgoing()");
//returns data_out
write_outgoing();
//size_t write(uint8_t): Writes a single byte to the current packet.
//udp.write(data_out); //Writes a single byte to the current packet.
WiFi_transmit_start.resetTimerValue();
data_out = 0;
//udp.flush(); //Stops the UDP connection and cleans up resources.
} //if (WiFi_transmit_delay.check() | WiFi_transmit_start.check())
} //if (data_in)
Serial.println("pre-blink()");
blink();
data_in = 0;
*/
Serial.println("end of loop()");
} //void loop()
Everything seems to work correctly until I add udp.listen(ip, IPport);. When I do, I get
Backtrace: 0x40083535:0x3ffb2020 0x4008a645:0x3ffb2040 0x4008f541:0x3ffb2060 0x400df9a6:0x3ffb2190 0x400d227d:0x3ffb21c0 0x400d242e:0x3ffb2200 0x400d1ded:0x3ffb2240 0x400d37ee:0x3ffb2290
ELF file SHA256: 2af11f397ef3bcb1
Rebooting...
ets Jul 29 2019 12:21:46
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1344
load:0x40078000,len:13964
load:0x40080400,len:3600
entry 0x400805f0
Ln 43, Col 3
ESP32-WROOM-DA Module
on /dev/cu.usbserial-0001
2
I checked the method .listen() against the file AsyncUDP.h, and the way I'm using it looks good.
When I take .listen() out, udp.onPacket() generates no errors. I think the AsyncUDP.h package I'm using came from the ESP32 board (upgrade?)
What's happening?