[GH-ISSUE #1] Heap size #1660

Closed
opened 2026-03-20 20:04:40 +01:00 by sascha_hemi · 3 comments
Owner

Originally created by @nlimper on GitHub (Jan 21, 2023).
Original GitHub issue: https://github.com/OpenEPaperLink/OpenEPaperLink/issues/1

In newproto.cpp: Op dit moment laadt je de hele bmp-file in pendinginfo->data op het moment dat het eerste block aangevraagd wordt door de tag. Een image is 1282963 bytes groot, dat is 133kB, en dat past niet in de heap (ESP.getMaxAllocHeap() -> 110580).
De processor crashet, en vervolgens heeft de tag-firmware een oneindige retry, en blijft continu via zigbee vragen om dat block.
Is het niet beter om processBlockRequest() alleen de benodigde chunk van het bestand op te laten halen? Dan hoeven de plaatjes niet in z'n geheel in memory gelezen te worden.

Originally created by @nlimper on GitHub (Jan 21, 2023). Original GitHub issue: https://github.com/OpenEPaperLink/OpenEPaperLink/issues/1 In newproto.cpp: Op dit moment laadt je de hele bmp-file in pendinginfo->data op het moment dat het eerste block aangevraagd wordt door de tag. Een image is 128*296*3 bytes groot, dat is 133kB, en dat past niet in de heap (ESP.getMaxAllocHeap() -> 110580). De processor crashet, en vervolgens heeft de tag-firmware een oneindige retry, en blijft continu via zigbee vragen om dat block. Is het niet beter om processBlockRequest() alleen de benodigde chunk van het bestand op te laten halen? Dan hoeven de plaatjes niet in z'n geheel in memory gelezen te worden.
Author
Owner

@jjwbruijn commented on GitHub (Jan 21, 2023):

Goeie vraag!

Dat is zeker een oplossing, maar introduceert extra latency op het moment dat een block gevraagd wordt. Niet groot, maar LittleFS is ook weer niet briljant snel, en hoe sneller de data naar het AP gestreamed kan worden, hoe eerder het block verstuurd kan worden.

Daarnaast is 133k absurd groot voor een plaatje voor de tags! Voor een 4.2" display (400x300) is de maximale grootte exact 30.000bytes, 400x300/8x2 voor een BWR plaatje. (+ BMP header) Als het monochrome B/W is, is het nog maar 15k. Voor een 2.9/1.54" tag is dat zo'n 9 respectievelijk 6k, geloof ik.

De oneindige retry moet nodig gefixed :)

<!-- gh-comment-id:1399327275 --> @jjwbruijn commented on GitHub (Jan 21, 2023): Goeie vraag! Dat is zeker een oplossing, maar introduceert extra latency op het moment dat een block gevraagd wordt. Niet groot, maar LittleFS is ook weer niet briljant snel, en hoe sneller de data naar het AP gestreamed kan worden, hoe eerder het block verstuurd kan worden. Daarnaast is 133k absurd groot voor een plaatje voor de tags! Voor een 4.2" display (400x300) is de maximale grootte exact 30.000bytes, 400x300/8x2 voor een BWR plaatje. (+ BMP header) Als het monochrome B/W is, is het nog maar 15k. Voor een 2.9/1.54" tag is dat zo'n 9 respectievelijk 6k, geloof ik. De oneindige retry moet nodig gefixed :)
Author
Owner

@nlimper commented on GitHub (Jan 21, 2023):

Makes sense. Ik ga me even verder in het bmp-formaat verdiepen. Het is inderdaad een beetje overkill om 24 bits per pixel te verzenden. ;-)

<!-- gh-comment-id:1399328875 --> @nlimper commented on GitHub (Jan 21, 2023): Makes sense. Ik ga me even verder in het bmp-formaat verdiepen. Het is inderdaad een beetje overkill om 24 bits per pixel te verzenden. ;-)
Author
Owner

@jjwbruijn commented on GitHub (Jan 21, 2023):

https://raw.githubusercontent.com/VstudioLAB/ZBS_Flasher/main/custom-firmware/Wireless/Sources/Dmtry_s_original/einkTags_0001/dmitrygr-eink/imgTools/bmp2grays.c

Deze utility kan een bmp omzetten naar iets waar je de tag rechtstreeks iets mee kan :)

example:
./bmp2greys 1bppR < drake.bmp > drake-out.bmp

<!-- gh-comment-id:1399331232 --> @jjwbruijn commented on GitHub (Jan 21, 2023): https://raw.githubusercontent.com/VstudioLAB/ZBS_Flasher/main/custom-firmware/Wireless/Sources/Dmtry_s_original/einkTags_0001/dmitrygr-eink/imgTools/bmp2grays.c Deze utility kan een bmp omzetten naar iets waar je de tag rechtstreeks iets mee kan :) example: ./bmp2greys 1bppR < drake.bmp > drake-out.bmp
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/OpenEPaperLink#1660