mirror of
https://github.com/SpacehuhnTech/esp8266_deauther.git
synced 2026-04-26 16:25:54 +03:00
[GH-ISSUE #655] OLED version crash - On scanning for APs via wifi interface #224
Labels
No labels
best of
bug
development
discussion
documentation
duplicate
feature request
help wanted
help wanted
improvement
pinned
pull-request
question
stale
translation
v3
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/esp8266_deauther#224
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jgreenpsu on GitHub (Nov 16, 2017).
Original GitHub issue: https://github.com/SpacehuhnTech/esp8266_deauther/issues/655
Hardware/Flashing:
Board:DSTIKE v2.5 & NODEMCU v1.0 (tested on both, NODEMCU has no display connected)
Using OLED: Using USE_DISPLAY: yes
Using WebServer: YES
Using Serial: YES
Installation mode: both.
Code/binary version: 1.6
Flash size: 1M & 4M
Flash method: esptool & arduino IDE
Flash Frequency: in arduino 80mhz
Upload Speed: in arduino 115200
Powered by: Tested on both USB and battery.
Description:
When using either a release binary or compiled source that uses USE_DISPLAY the board will fault and reset (with stack dump over serial) when scanning for wifi stations from the web interface. Scanning from the display works fine. I have included serial output with scan results and sort logs redacted as the information shouldn't be needed (number of results is still included).
What you're expecting: Scan results (.json) returned successfully.
What you get instead: Serial output shows several scan cycles (without json being sent back) then finally it will stack dump and crash.
How to reproduce: You don't need a display to test this. Just compile with USE_DISPLAY defined and flash. Connect to the deauther wifi and try and scan for accesspoints via the web interface. I have also tested this issue with release binaries which should eliminate any questions regarding my dev environment.
Debug Messages:
@jgreenpsu commented on GitHub (Nov 16, 2017):
After reading other issues, it seems like the webui can cause a crash when out of ram, perhaps the display system eats up some of this ram shorting the time to failure?
This theory still doesn't explain why the scan attempts to run a few times. Perhaps its just the artifact of being completely out of ram.
@tobozo commented on GitHub (Nov 16, 2017):
yup, sounds very like heap fragmentation
It can be confirmed by setting HTTP_UPLOAD_BUFLEN value to 1024 in ESP8266WebServer.h and observing that the problem takes longer to show itself.
The more features you disable, the later it happens, but it always ends up happening.
@jgreenpsu commented on GitHub (Nov 16, 2017):
Could this be mitigated/eliminated if display/webserver utilities allocated their needed data structures globally instead of at runtime? I'm just brainstorming over here, I'm relatively new to embedded systems.
@jgreenpsu commented on GitHub (Nov 16, 2017):
Also, just for clarification this issue makes the webserver on the display enabled board mostly unusable since scanning is broken immediately, though it is still useful for changing settings.
@tobozo commented on GitHub (Nov 16, 2017):
Disabling the web server gives the best results.
If you're okay with having only the OLED and buttons as controls, maybe it's worth trying the serverless branch.
@jgreenpsu commented on GitHub (Nov 17, 2017):
I may try that. How open is the development team to potentially merging in my fork if I do a display/menu revamp?
@tobozo commented on GitHub (Nov 17, 2017):
The development team is @spacehuhn and a v2 is already in progress.
I don't know if it'll be an upgrade or a new project though.
@spacehuhn commented on GitHub (Nov 17, 2017):
I will probably keep the current stuff in a different branch and put the new version in the master.
The new version will get a completly new written code base with a better serial, display and web interface support.
@tobozo commented on GitHub (Mar 24, 2018):
see if it fixed in the next version and reopen if necessary, closing this