What am I doing wrong?
Here's the sketch:
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
WiFiUDP udp;
void setup()
{
Serial.begin(9600);
WiFi.mode(WIFI_AP);
if (!WiFi.softAP("crash",0,1,false,4))
Serial.println("WiFi.beginAP failed");
IPAddress ip = WiFi.softAPIP();
udp.begin(2000);
}
void loop()
{
if (WiFi.softAPgetStationNum() == 0){
Serial.print(".");
return;
}
char rgb[500];
udp.beginPacket(IPAddress(192,168,4,2), 2000);
udp.write(rgb, 500);
udp.endPacket();
Serial.print("x");
}
And here's a typical crash:
Exception 0: Illegal instruction
PC: 0x40230188
EXCVADDR: 0x00000000
Decoding stack results
0x40204b48: check_poison_block(umm_block*) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 860
0x40204b96: get_unpoisoned(void*) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 950
0x40218181: ip4_input at core/ipv4/ip4.c line 499
0x40218155: ip4_input at core/ipv4/ip4.c line 466
0x40203cf8: malloc_loc(size_t, char const*, int) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\heap.cpp line 126
0x40203c55: malloc(size_t) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\heap.cpp line 95
0x40204d8c: umm_malloc(size_t) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 1685
0x40203c55: malloc(size_t) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\heap.cpp line 95
0x40218ffc: mem_malloc at core/mem.c line 210
0x40204fa8: free(void*) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 1764
0x40204880: _umm_free(void*) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 1304
0x40210761: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x40210597: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 441
0x4022f32a: ethernet_input at glue-esp/lwip-esp.c line 363
0x4022f33b: ethernet_input at glue-esp/lwip-esp.c line 371
0x40203460: ets_printf_P(char const*, ...) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_postmortem.cpp line 80
0x40203454: ets_printf_P(char const*, ...) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_postmortem.cpp line 80
0x401001bc: vPortFree(void*, char const*, int) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\heap.cpp line 61
0x40210240: dhcp_start at glue-esp/lwip-esp.c line 423
0x402034ae: print_stack(uint32_t, uint32_t) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_postmortem.cpp line 197
0x4020365c: __wrap_system_restart_local() at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_postmortem.cpp line 175
0x40201b31: UdpContext::_s_recv(void*, udp_pcb*, pbuf*, ip4_addr const*, unsigned short) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\ESP8266WiFi\src/include/UdpContext.h line 475
0x40204b48: check_poison_block(umm_block*) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 860
0x40204b96: get_unpoisoned(void*) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 950
0x40218181: ip4_input at core/ipv4/ip4.c line 499
0x40218155: ip4_input at core/ipv4/ip4.c line 466
0x40203cf8: malloc_loc(size_t, char const*, int) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\heap.cpp line 126
0x40203c55: malloc(size_t) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\heap.cpp line 95
0x40204d8c: umm_malloc(size_t) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 1685
0x40203c55: malloc(size_t) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\heap.cpp line 95
0x40218ffc: mem_malloc at core/mem.c line 210
0x40204fa8: free(void*) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 1764
0x40204880: _umm_free(void*) at C:\Users\edf\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 1304
0x40210761: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x40210597: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 441
0x4022f32a: ethernet_input at glue-esp/lwip-esp.c line 363
0x4022f33b: ethernet_input at glue-esp/lwip-esp.c line 371