Toon posts:

Electronic Shelf Labels, reverse engineering en hergebruik

Pagina: 1 2 3 Laatste
Acties:

  • ouweklimgeit
  • Registratie: Juni 2014
  • Niet online
De python variant verwacht hoofdletters als argument, misschien lost dat het al op. Onderstaand brouwsel gebruik ik voor het uitlezen, instellen van het mac adres en het flashen van de nieuwe firmware.

code:
1
2
3
4
5
6
7
8
9
10
11
import os
os.system('clear')
mac = input("Enter MAC address: ")
mac = "0000"+mac
print(f'Saving to dumps/'+str(mac)+'_dump.bin')
os.system('python3 zbs_flasher.py /dev/tty.usbserial-02UJ54CA read dumps/'+str(mac)+'_dump.bin')
print(f'Saved flash memory, now setting mac')
os.system('python3 zbs_flasher.py /dev/tty.usbserial-02UJ54CA MAC')
print(f'Saved mac, now flashing new firmware')
os.system('python3 zbs_flasher.py /dev/tty.usbserial-02UJ54CA write ../ZBS_Flasher/custom-firmware/demo_firmware_2.9_33_V1.9.0.0.bin')
print(f'All done!')


edit; ah te laat je reactie gezien :+
Maar het flashen van hetzelfde mac adres kan gewoon simpelweg door alleen MAC als argument te geven vóór het flashen van de nieuwe firmware

[Voor 10% gewijzigd door ouweklimgeit op 25-04-2023 19:50]


  • Albert_x
  • Registratie: December 2020
  • Laatst online: 19:45
@bartbh Volgens mij gebruik jij de nieuwe zbs_flasher van atc1441. Die is anders dan die van OpenEpaperlink en ook anders dan de meeste oudere posts hier. In die versie is de optie volgens mij "-m" of "--mac".

Acties:
  • +2Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online

Yes, weer een stapje verder! :) Ik heb een tag kunnen flash met de OpenEPaperLink firmware en een tag met de AP firmware.

De tag heeft het AP gevonden en kan er mee verbinden, dus die verbinding gaat goed.

Volgende stap is het flashen van de ESP32_AP-Flasher via platform.io.

Hierin was het zoeken naar het aanpassen van de pinout en het compilen van de juiste "env". Platform.io is nieuw voor mij. Bovendien is de config sinds 2/3 dagen verplaatst van "settings.h" naar een van de verschillende "env" in plaformio.ini.

Omdat ik niet het verschil weet, behalve dat voor "OpenEPaperLink AP and Flasher" specifiek ESP32-S3 wordt verwacht, heb ik mijn ESP32 (dus geen ESP32-S2) voorzien van "OpenEPaperLink Mini AP". Dit flashen gaat goed en in de serial console lijkt het ook goed te gaan.

Na een paar keer opnieuw opstarten van de esp32 door een brownout, zie ik de volgende output:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Brownout detector was triggered

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x12 (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:2
load:0x3fff0030,len:1184
load:0x40078000,len:13192
load:0x40080400,len:3028
entry 0x400805e4
E (374) psram: PSRAM ID read error: 0xffffffff
>


##################################
Internal Total heap 308128, internal Free Heap 282096
SPIRam Total heap 0, SPIRam Free Heap 0
ChipRevision 1, Cpu Freq 240, SDK Version v4.4.4
Flash Size 4194304, Flash Speed 40000000
##################################


282096
Total heap: 308128Free heap: 282096Total PSRAM: 0Free PSRAM: 0*wm:[1] AutoConnect 
*wm:[2] [ESP32] event handler enabled
*wm:[2] Connecting as wifi client...
*wm:[2] setSTAConfig static ip not set, skipping
*wm:[1] Connecting to SAVED AP: invalid SSID
*wm:[1] connectTimeout not set, ESP waitForConnectResult... 
*wm:[2] Connection result: WL_CONNECTED
*wm:[1] AutoConnect: SUCCESS
*wm:[2] Connected in 1022 ms
*wm:[1] STA IP Address: 10.0.0.241
Connected! IP address: 10.0.0.241
start reading DB from file
18
finished reading file
RDY>
lut size = 7
MAC>1B3BEAB719020000
VER>
ZBS/Zigbee FW version: 0012
No ZBS/Zigbee FW binary found on SPIFFS, please upload a zigbeebase000X.bin - format binary to enable flashing
VER>
DB saved 29ms

ADR><ADR 021B49793B12


Hierin zie ik 2 dingen

1) FW binary found on SPIFFS, please upload a zigbeebase000X.bin > geen idee wat ik hiermee moet?
2) ADR><ADR 021B49793B12, dit het mac address van de tag die verbinding maakt. Dus dat gaat goed.

Waar ik nu tegen aanloop... Hoe ga ik nu verder? Ik verwachtte (wellicht onterecht) om een soort van webinterface aan te treffen op het ipadres van de esp32.

Alleen op http://10.0.0.241/ word ik alleen getrakteerd op een "-" (enkel streepje) en verder niks.

Op http://10.0.0.241/edit/ krijg ik een inlogscherm voor m'n kiezen. Na invullen van admin/admin als credentials geeft de esp32 het op en crasht

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[ 15937][E][vfs_api.cpp:105] open(): /littlefs/www/edit.html does not exist, no permits for creation
[ 15940][E][vfs_api.cpp:105] open(): /littlefs/www/edit.html.gz does not exist, no permits for creation
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x400d37fa  PS      : 0x00060130  A0      : 0x800e9714  A1      : 0x3ffd3770
A2      : 0x00000000  A3      : 0x3ffdfe4c  A4      : 0x3f422851  A5      : 0x3f40131a  
A6      : 0x00000085  A7      : 0x3ffdfe5c  A8      : 0x800d37f7  A9      : 0x3ffd3750
A10     : 0x3ffd37cc  A11     : 0x3f401342  A12     : 0x93dd3b2a  A13     : 0x3ffc603c  
A14     : 0x00000000  A15     : 0x3ffd37ec  SAR     : 0x00000019  EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000000  LBEG    : 0x4008ca0d  LEND    : 0x4008ca1d  LCOUNT  : 0xfffffff9  


Backtrace: 0x400d37f7:0x3ffd3770 0x400e9711:0x3ffd3820 0x400e9821:0x3ffd3870 0x400e9a09:0x3ffd38c0 0x401882c9:0x3ffd38e0 0x40188355:0x3ffd3910 0x40189b56:0x3ffd3930




ELF file SHA256: ab12b72ba388cc20

Rebooting...

Acties:
  • +1Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

bartbh schreef op dinsdag 25 april 2023 @ 22:24:
[Afbeelding]
Yes, weer een stapje verder! :) Ik heb een tag kunnen flash met de OpenEPaperLink firmware en een tag met de AP firmware.

... <knip>
Je gaat goed! Aantal best positieve dingen te melden:
- Je AP is goed geflashed
- De ESP32 krijgt data van het AP

Missing key ingredient:
Je moet even de filesystem naar de AP kopieren: gaat in PlatformIO met de optie 'Upload Filesystem Image' onder project tasks

De missende zigbeebaseXXXX file betekent slechts dat de ESP32 geen AP firmware kon vinden; als je die in de root van het filesystem zet, zal de ESP32 het AP automatisch updaten naar de goeie firmware. Je hebt de AP firmware echter al draaiende, dus dat is (nu) niet nodig!

Acties:
  • +2Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online


Dát was 'm inderdaad! :)

Acties:
  • +6Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Nice! Beware: S2 (Mini AP) is támelijk nieuw en minimaal getest! Single core ipv 2 cores bleek redelijk makkelijk te fixen te zijn, maar je kunt best tegen wat zaken aan lopen.

Ik heb een klein bergje flex-PCB's laten maken om snel en eenvoudig een AP te maken met behulp van een Wemos S2 mini en een segmented-PCB. Ik zal deze op verzoek van meerdere mensen als kleine bundeltjes met pre-flashed tags gaan verkopen op Tindie en V&A. Wellicht een uitkomst voor mensen die er wél mee willen spelen, maar geen zin hebben om te moeten solderen.

Uiteraard is en blijft alles open source en zijn de tekeningen te vinden op de repo!


  • bartbh
  • Registratie: Maart 2004
  • Niet online
Ah, even voor mijn beeld: Wat zijn de verschillende tussen de verschillende versies van het AP?

Of andersom geredeneerd, welke hardware/ESP32-versie is aangeraden om gebruik van te maken?

Ik merkt dat mijn huidige esp vaak tegen een brownout (spanningsval) aanloopt. Ik moet nog even uitzoeken of dat aan deze specifieke esp ligt of dat ik het nog ergens anders moet zoeken.

Voor nu in ieder geval leuk speelgoed om verder mee te pielen :)

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

bartbh schreef op woensdag 26 april 2023 @ 11:33:
Ah, even voor mijn beeld: Wat zijn de verschillende tussen de verschillende versies van het AP?

Of andersom geredeneerd, welke hardware/ESP32-versie is aangeraden om gebruik van te maken?

Ik merkt dat mijn huidige esp vaak tegen een brownout (spanningsval) aanloopt. Ik moet nog even uitzoeken of dat aan deze specifieke esp ligt of dat ik het nog ergens anders moet zoeken.

Voor nu in ieder geval leuk speelgoed om verder mee te pielen :)
In theorie zouden alle versies van de ESP32 moeten voldoen; ik zelf heb het zelf niet uitgebreid geprobeerd op de RISC-V versies, maar dat zou in theorie ook moeten werken.

De eerste referentie-AP (OpenEPaperLink AP-Flasher) draait op een S3 (dual core) met extra PSRAM (en is ook geschikt om gemakkelijk andere tags mee te flashen; de tweede is de Mini-AP, draaiend op een single core S2.

Extra PSRAM is niet per se nodig, tenzij je gebruik maakt van 4.2" Tags. Om daar beelden voor te renderen heb je een beetje extra ruimte nodig. Ik zou, als ik nu een nieuw AP zou bouwen, altijd kiezen voor eentje met extra PSRAM. Een Wemos S2 Mini is best cheap; clones zijn op de chinese Ali-achtige websites voor minder te krijgen.

Acties:
  • +2Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Na even stil te hebben gelegen, heb ik vandaag de draad weer opgepakt. Ik wilde nu de andere tags die ik had ook voorzien van de nieuwe firmware en het AP draaien.

Echter lukte het mij maar niet om het accesspoint draaiende te krijgen, ik bleef tegen onderstaande fout aanlopen
code:
1
I wasn't able to connect to a ZBS tag, please check wiring and definitions in the settings.h file.


Dit terwijl het flashen van de tags via zbs_flasher als een speer ging met onderstaande pin configuratie
code:
1
2
3
4
5
6
7
8
9
#define ZBS_SS 23
#define ZBS_CLK 18
#define ZBS_MoSi 5
#define ZBS_MiSo 17
#define ZBS_Reset 19
#define ZBS_POWER 16

#define ZBS_RXD 4 // Used to read UART data from the firmware running on the ZBS, not needed at all
#define ZBS_TXD 15


Dat probeerde ik ook dus ook toe te passen bij flashen van de ESP als AP. Alleen die kreeg ik pas aan de praat als ik de RX en TX om wisselde. Dus:

code:
1
2
    -D FLASHER_AP_TXD=4
    -D FLASHER_AP_RXD=15


En nu werkt het AP als een zonnetje, met 9 draaiende tags! :) Nu alleen m'n 4.2'' scherm nog flashen, maar daarvoor ik eerst weer een andere adapter maken.

@Corn klopt het dat er geen binaries zijn voor een 2.9 met scherm om als AP te gebruiken? Ik heb voor nu 2.9 geflasht met 1.54 AP firmware en dat werkt op zich prima.

Acties:
  • 0Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

bartbh schreef op zaterdag 6 mei 2023 @ 14:43:
<knip>
@Corn klopt het dat er geen binaries zijn voor een 2.9 met scherm om als AP te gebruiken? Ik heb voor nu 2.9 geflasht met 1.54 AP firmware en dat werkt op zich prima.
Mooi dat het een beetje werkt!

Er zijn héél recent een berg aanpassingen geweest in het 'flash' gedeelte van de OpenEPaperLink base, misschien, ik zou even checken of er iets voor je bij zit. Hier werkt het in ieder geval naar behoren, maar ik gebruik zelf enkel en alleen de Mini AP en 'AP and Flasher' builds. Zal even kijken of ik morgen een 2.9" AP voor je kan bouwen, dan zal ik die toevoegen aan het AP FW pack.

Acties:
  • +1Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Corn schreef op zaterdag 6 mei 2023 @ 18:46:
[...]


Mooi dat het een beetje werkt!

Er zijn héél recent een berg aanpassingen geweest in het 'flash' gedeelte van de OpenEPaperLink base, misschien, ik zou even checken of er iets voor je bij zit. Hier werkt het in ieder geval naar behoren, maar ik gebruik zelf enkel en alleen de Mini AP en 'AP and Flasher' builds. Zal even kijken of ik morgen een 2.9" AP voor je kan bouwen, dan zal ik die toevoegen aan het AP FW pack.
Update inclusief 2.9"-AP staat klaar op de repo.

Let op! De nieuwe firmware voor AP en ESP32 werkt primair met complete AP update packs, waarmee de ESP32 automatisch zal proberen te herkennen welke versie van het AP er draait, en deze altijd naar de laatste versie voor hetzelfde type updaten. Als je een nieuw AP bouwt met een ongeflashte tag, zal de ESP32 het type herkennen, en automatisch voor je flashen. Als je al een bestaande gebruikt, zul je het nog één keer handmatig moeten doen:

1) Kies de firmware uit die je AP moet draaien
2) Rename deze file naar "AP_force_flash.bin"
3) Upload naar de ESP32's filesystem
4) Restart de ESP32

Acties:
  • 0Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Top! Voor wat betreft punt 3, naar het FS van de ESP32 AP in de root? Want ik heb daar nu namelijk een 2.9 AP firmware in gezet met als naam "AP_force_flash.bin" maar deze wordt niet geflasht door de ESP32.

Ik zit namelijk nog steeds op v0013 van een 1.54''.

Ik kan 'm natuurlijk altijd nog even handmatig opnieuw flashen, maar dat was nu volgens mij net niet de bedoeling :)


Daarnaast nog een kleine bug. De windrichting werd verkeerd aangegeven. Een winddirection van 90 betekent oostenwind, dus een pijl die de oorsprong heeft in het oosten en ri. het westen wijst.

Dit heb ik opgelost door de array 4 plekken op te schuiven.

C: contentmanager.cpp
1003
    String directions[] = {"\uf058", "\uf087", "\uf048", "\uf043","\uf044", "\uf088", "\uf04d", "\uf057"};


Heb deze ook als issue op github toegevoegd. Alleen is github voor mij nog wat onbekend, dus het was mij niet duidelijk hoe ik een code suggestion kon doen zonder PR. Daarom dus in een issue gestopt.

Acties:
  • +1Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

bartbh schreef op zondag 7 mei 2023 @ 12:07:
Top! Voor wat betreft punt 3, naar het FS van de ESP32 AP in de root? Want ik heb daar nu namelijk een 2.9 AP firmware in gezet met als naam "AP_force_flash.bin" maar deze wordt niet geflasht door de ESP32.

Ik zit namelijk nog steeds op v0013 van een 1.54''.

Ik kan 'm natuurlijk altijd nog even handmatig opnieuw flashen, maar dat was nu volgens mij net niet de bedoeling :)


Daarnaast nog een kleine bug. De windrichting werd verkeerd aangegeven. Een winddirection van 90 betekent oostenwind, dus een pijl die de oorsprong heeft in het oosten en ri. het westen wijst.

Dit heb ik opgelost door de array 4 plekken op te schuiven.

C: contentmanager.cpp
1003
    String directions[] = {"\uf058", "\uf087", "\uf048", "\uf043","\uf044", "\uf088", "\uf04d", "\uf057"};


Heb deze ook als issue op github toegevoegd. Alleen is github voor mij nog wat onbekend, dus het was mij niet duidelijk hoe ik een code suggestion kon doen zonder PR. Daarom dus in een issue gestopt.
Bedankt voor je oplettendheid! De wind is zojuist gefixed :)

Voor wat betreft het niet flashen van de goeie versie:
wat zegt ie over de seriele log? Draai je je de laatste versie zoals ie op git staat? AP_force_flash.bin moet inderdaad in root, als ie die niet kan vinden, moet je daar op z'n minst een vfs api fout van voorbij zien komen.

Heb je de laatste versie van de 'data' folder (het filesystem) ook geupload naar de ESP32? Er is namelijk een nieuwe file bij gekomen die ie nodig heeft om verschillende versies van de tags te herkennen, tag_md5_db.json

[Voor 10% gewijzigd door Corn op 07-05-2023 13:29]


Acties:
  • 0Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Ben zojuist nog weer eens terug gegaan naar de vorige versie die ik had. Deze werkt goed, als ik gebruik maak van

code:
1
2
    -D FLASHER_AP_TXD=4
    -D FLASHER_AP_RXD=15



Als ik de meest recente versie (van gisteravond) probeer met dezelfde settings, lukt het juist weer niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
start reading DB from file
81
finished reading file
Doing a forced AP Flash!
I tried connecting to port, but I couldn't establish a link to the tag. That's all I know.
Sorry, failed to connect to this tag...
I wasn't able to connect to a ZBS tag. This could be the first time this AP is booted and the AP-tag may be unflashed. We'll try to flash it!

Performing firmware flash in about 10 seconds

I tried connecting to port, but I couldn't establish a link to the tag. That's all I know.
Sorry, failed to connect to this tag...
Failed flash the AP :(


Terwijl er qua hardware niks veranderd is als ik tussen de versies switch. Ik heb al 2x gewisseld met hetzelfde resultaat, geen verbinding met de tag.

Dus hier moet ik nog even verder induiken.

[Voor 24% gewijzigd door bartbh op 07-05-2023 14:36]


Acties:
  • 0Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

bartbh schreef op zondag 7 mei 2023 @ 14:35:
Ben zojuist nog weer eens terug gegaan naar de vorige versie die ik had. Deze werkt goed, als ik gebruik maak van

code:
1
2
    -D FLASHER_AP_TXD=4
    -D FLASHER_AP_RXD=15



Als ik de meest recente versie (van gisteravond) probeer met dezelfde settings, lukt het juist weer niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
start reading DB from file
81
finished reading file
Doing a forced AP Flash!
I tried connecting to port, but I couldn't establish a link to the tag. That's all I know.
Sorry, failed to connect to this tag...
I wasn't able to connect to a ZBS tag. This could be the first time this AP is booted and the AP-tag may be unflashed. We'll try to flash it!

Performing firmware flash in about 10 seconds

I tried connecting to port, but I couldn't establish a link to the tag. That's all I know.
Sorry, failed to connect to this tag...
Failed flash the AP :(


Terwijl er qua hardware niks veranderd is als ik tussen de versies switch. Ik heb al 2x gewisseld met hetzelfde resultaat, geen verbinding met de tag.

Dus hier moet ik nog even verder induiken.
Belangrijkste vraag eerst: krijgt de tag power, schakelt de ESP32 zelf power aan en uit? Wat gebeurt er als je er continue 3v3 aan hangt?

Welke 'build' gebruik je?

Acties:
  • 0Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Stomme vraag wellicht, maar waar haal ik de build van de ESP AP flasher vandaan?

De versie die goed werkt is van 03-05-2023 04:49 (=versie A) en de versie die niet werkt is van is 06-05-2023 15:38 (=versie B ). (tijden in de zip die ik heb gedownload)

De tag wordt rechtstreeks vanaf de 3v gevoed. Na het uploaden van nieuwe firmware naar de ESP32, haal deze altijd even uit de usb-poort zodat alles gereset wordt.

Bij versie A verbinden ook direct de al verbonden tags en zie ik in de serial log ook de info van de AP voorbij komen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<ADR 0219B7EA3B1B
+----------------------------+
| AP Information - type 00   |
+----------------------------+
| Channel |             0x00 |
| Power   |               00 |
| MAC     | 00000219B7EA3B1B |
| Version |           0x0013 |
+----------------------------+
<ADR 021F804E3B17
<ADR 021B49793B12
>SDA 0219B7EA3B1B NOP
<ADR 021A0FBF3B1B
ws[/ws][1] connect
>SDA 021F804E3B17 NOP
SDA send failed in try 0
>SDA 021B49793B12 NOP



Bij versie B zie ik dus alleen maar
code:
1
I wasn't able to connect to a ZBS tag.

Acties:
  • 0Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

bartbh schreef op zondag 7 mei 2023 @ 20:26:
Stomme vraag wellicht, maar waar haal ik de build van de ESP AP flasher vandaan?
Onder bij PlatformIO / VSC heb je de optie om te selecteren welke PCB je gebruikt; er komt dan een menutje waar je uit 4 verschillende PCB's kan kiezen
De versie die goed werkt is van 03-05-2023 04:49 (=versie A) en de versie die niet werkt is van is 06-05-2023 15:38 (=versie B ). (tijden in de zip die ik heb gedownload)

De tag wordt rechtstreeks vanaf de 3v gevoed. Na het uploaden van nieuwe firmware naar de ESP32, haal deze altijd even uit de usb-poort zodat alles gereset wordt.

Bij versie A verbinden ook direct de al verbonden tags en zie ik in de serial log ook de info van de AP voorbij komen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<ADR 0219B7EA3B1B
+----------------------------+
| AP Information - type 00   |
+----------------------------+
| Channel |             0x00 |
| Power   |               00 |
| MAC     | 00000219B7EA3B1B |
| Version |           0x0013 |
+----------------------------+
<ADR 021F804E3B17
<ADR 021B49793B12
>SDA 0219B7EA3B1B NOP
<ADR 021A0FBF3B1B
ws[/ws][1] connect
>SDA 021F804E3B17 NOP
SDA send failed in try 0
>SDA 021B49793B12 NOP



Bij versie B zie ik dus alleen maar
code:
1
I wasn't able to connect to a ZBS tag.
Lijkt dat je issue dus optreedt ergens in deze commit. Vervelende nieuws is dat daar echt -smerig- veel wijzigingen in zitten :)

Deze firmware is getest met de OpenEPaperLink PCB en de Mini-AP (flex PCB), andere AP's en pinouts heb ik hier niet in gebruik.

Ik denk dat er toch iets aan de pin assignments niet klopt; een AP draaiend op 0013 moet gewoon sowieso iets van seriele communicatie doen met de ESP32; als dat niet zo is, dan lijkt een verkeerde pin-assignment me voor de hand liggend.

Check even welke build je draait, en of ie inderdaad de goeie pins pakt als je 'm op versie B flashed

Acties:
  • +1Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Aah, check. Ik dacht een versienummer of iets dergelijks :) Ik maak dus gebruik van de "OpenEPaperLink Mini AP".

Beide versies hebben exacte dezelfde build_flags, dus gelijke pin configuratie. Overigens inclusief alle andere settings onder "[env:OpenEPaperLink Mini AP]" in platformio.ini.

Dus qua configuratie zijn beide versies gelijk. Ik zal morgen nog eens testen.

Acties:
  • 0Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Ik heb wat verder lopen testen. Waar het mis gaat is als het bestand "AP_force_flash.bin" bestaat.

Als deze bij boot gevonden wordt, gaat de ESP32 AP flasher proberen om de AP tag te flashen. Dat werkt niet (waarom mij niet duidelijk) en daarna blijft ie daarin hangen.

Verwijder ik echter de AP_force_flash.bin en reboot de ESP32 (soft reboot via webinterface) dan gaat het wel goed.


Serial log zonder force firmware
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
--- Terminal on COM3 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
>


##################################
Internal Total heap 314264, internal Free Heap 288080
SPIRam Total heap 0, SPIRam Free Heap 0
ChipRevision 1, Cpu Freq 240, SDK Version v4.4.4
Flash Size 4194304, Flash Speed 40000000
##################################


Total heap: 314264
Free heap: 288080
Total PSRAM: 0
Free PSRAM: 0

ESP32 Partition table:
| Type | Sub |  Offset  |   Size   |       Label      |
| ---- | --- | -------- | -------- | ---------------- |
|  01  | 02  | 0x009000 | 0x005000 | nvs              |
|  01  | 00  | 0x00E000 | 0x002000 | otadata          |
|  00  | 10  | 0x010000 | 0x140000 | app0             |
|  00  | 11  | 0x150000 | 0x140000 | app1             |
|  01  | 82  | 0x290000 | 0x160000 | spiffs           |
|  01  | 03  | 0x3F0000 | 0x010000 | coredump         |
*wm:[1] AutoConnect
*wm:[2] [ESP32] event handler enabled
*wm:[2] Connecting as wifi client...
*wm:[2] setSTAConfig static ip not set, skipping
*wm:[1] Connecting to SAVED AP: invalid SSID
*wm:[1] connectTimeout not set, ESP waitForConnectResult...
*wm:[2] Connection result: WL_CONNECTED
*wm:[1] AutoConnect: SUCCESS
*wm:[2] Connected in 824 ms
*wm:[1] STA IP Address: 10.0.0.241
Connected! IP address: 10.0.0.241
start reading DB from file
100
finished reading file
<ADR 0218CEF23B1D
<XFC 0218CEF23B0
[  7282][E][vfs_api.cpp:105] open(): /littlefs/AP_force_flash.bin does not exist, no permits for creation
Waiting for valid time from NTP-server
<ADR 0219B7EA3B1B
+----------------------------+
| AP Information - type 00   |
+----------------------------+
| Channel |             0x00 |
| Power   |               00 |
| MAC     | 00000219B7EA3B1B |
| Version |           0x0013 |
+----------------------------+
[ 11842][E][vfs_api.cpp:105] open(): /littlefs/AP_FW_Pack.bin does not exist, no permits for creation
Failed to read json header from FW pack
Waiting for valid time from NTP-server
Got code 200 for this OpenMeteo
finished writing buffer 299ms
>SDA 021B49793B12 TYPE 0x20
Got code 200 for this OpenMeteo
finished writing buffer 217ms
[ 24178][E][vfs_api.cpp:105] open(): /littlefs/current/02187AFC3B1C.pending does not exist, no permits for creation
>SDA 02187AFC3B1C TYPE 0x20
finished writing buffer 280ms
>SDA 021BA68F3B1A TYPE 0x21
<ADR 021F804E3B17
ws[/ws][1] connect
<ADR 021C5D4E3B14
<ADR 021BA68F3B1A
<RQB file /current/021BA68F3B1A.pending block 0, len 4096 checksum 0
ws[/ws][1] disconnect: 1073605888
<RQB file /current/021BA68F3B1A.pending block 1, len 4096 checksum 32223
<ADR 0218CEF23B1D
<XFC 0218CEF23B0
[ 67302][E][vfs_api.cpp:105] open(): /littlefs/current/0218CEF23B1D.pending does not exist, no permits for creation
[ 67325][E][vfs_api.cpp:105] open(): /littlefs/current/0218CEF23B1D.pending does not exist, no permits for creation
<RQB file /current/021BA68F3B1A.pending block 1, len 4096 checksum 32223
<RQB file /current/021BA68F3B1A.pending block 1, len 4096 checksum 32223
<RQB file /current/021BA68F3B1A.pending block 2, len 1280 checksum 29493
<XFC 021BA68F3B0
free taginfo->data
<ADR 0219B7EA3B1B
>SDA 021F804E3B17 NOP
<ADR 021B49793B12
<RQB file /current/021B49793B12.pending block 0, len 4096 checksum 59703
<RQB file /current/021B49793B12.pending block 1, len 640 checksum 29216
<XFC 021B49793B0
free taginfo->data



Serial log mét force firmware.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
##################################
Internal Total heap 314264, internal Free Heap 288080
SPIRam Total heap 0, SPIRam Free Heap 0
ChipRevision 1, Cpu Freq 240, SDK Version v4.4.4
Flash Size 4194304, Flash Speed 40000000
##################################


Total heap: 314264
Free heap: 288080
Total PSRAM: 0
Free PSRAM: 0

ESP32 Partition table:
| Type | Sub |  Offset  |   Size   |       Label      |
| ---- | --- | -------- | -------- | ---------------- |
|  01  | 02  | 0x009000 | 0x005000 | nvs              |
|  01  | 00  | 0x00E000 | 0x002000 | otadata          |
|  00  | 10  | 0x010000 | 0x140000 | app0             |
|  00  | 11  | 0x150000 | 0x140000 | app1             |
|  01  | 82  | 0x290000 | 0x160000 | spiffs           |
|  01  | 03  | 0x3F0000 | 0x010000 | coredump         |
*wm:[1] AutoConnect 
*wm:[2] [ESP32] event handler enabled
*wm:[2] Connecting as wifi client...
*wm:[2] setSTAConfig static ip not set, skipping
*wm:[1] Connecting to SAVED AP: invalid SSID
*wm:[1] connectTimeout not set, ESP waitForConnectResult... 
*wm:[2] Connection result: WL_CONNECTED
*wm:[1] AutoConnect: SUCCESS
*wm:[2] Connected in 4725 ms
*wm:[1] STA IP Address: 10.0.0.241
Connected! IP address: 10.0.0.241
start reading DB from file
87
finished reading file
ws[/ws][1] connect
Doing a forced AP Flash!
I tried connecting to port, but I couldn't establish a link to the tag. That's all I know.
Sorry, failed to connect to this tag...
I wasn't able to connect to a ZBS tag. This could be the first time this AP is booted and the AP-tag may be unflashed. We'll try to flash it!

Performing firmware flash in about 10 seconds

ws[/ws][1] disconnect: 1073608912
ws[/ws][2] connect
I tried connecting to port, but I couldn't establish a link to the tag. That's all I know.
Sorry, failed to connect to this tag...
Failed flash the AP :(

[Voor 19% gewijzigd door bartbh op 08-05-2023 11:53]


Acties:
  • +1Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

bartbh schreef op maandag 8 mei 2023 @ 11:50:
Ik heb wat verder lopen testen. Waar het mis gaat is als het bestand "AP_force_flash.bin" bestaat.

Als deze bij boot gevonden wordt, gaat de ESP32 AP flasher proberen om de AP tag te flashen. Dat werkt niet (waarom mij niet duidelijk) en daarna blijft ie daarin hangen.

Verwijder ik echter de AP_force_flash.bin en reboot de ESP32 (soft reboot via webinterface) dan gaat het wel goed.
<knip>
Interessant, dus het lukt de ESP32 met name niet om de tag te flashen... Hiervoor gebruikt ie andere lijnen dan de serial lines, namelijk miso/mosi/clk/reset/cs, zijn die allemaal ook goed aangesloten?

Acties:
  • +2Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Ah, daar zat de clue! Ik had inderdaad 1 pin (TEST) verkeerd aangesloten. Deze wordt dus blijkbaar bij de ZBS flasher en bij regulier gebruik van de ESP32 AP niet gebruikt. Mijn excuses!

Daarmee kwam ik alweer een stap verder. Waar ik nu achter tegen aan liep is dat de force flash regelmatig eindigde met "XXXX bytes remaining, probably a hardware error".

Na een keer of 5 een softreboot van de ESP32 kwam ie er toch doorheen, met het volgende resultaat.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Doing a forced AP Flash!
Infopage mac=00000219B7EA3B1B
Starting flash, size=32663
Flashing, 0 bytes left         
Flashing done
I wasn't able to connect to a ZBS tag. This could be the first time this AP is booted and the AP-tag may be unflashed. We'll try to flash it!

Performing firmware flash in about 10 seconds

MD5=C88EDC028D8E8F2BAEDFD16A53999483
[ 35378][E][vfs_api.cpp:105] open(): /littlefs/tag_md5_db.json does not exist, no permits for creation
Failed to read json file
Infoblock MD5=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Found a tag, but don't know what to do with it. Consider flashing using a file called "AP_force_flash.bin"
Failed flash the AP :(
Dus het flashen was gelukt! :)

Na een hardwarematige power toggle (usb eruit en erin) start ie gelukkig weer op. En nu is het 2.59 AP inderdaad voorzien van de juiste firmware.

Dus ondanks het stroeve firmware update proces (na poging 5) dus toch via deze route gelukt om de firmware bij te werken. Dus mijn AP draait nu de 2.59 versie 0013. _/-\o_

Acties:
  • +1Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Bijzonder :) TEST (P1.0) wordt inderdaad in z'n totaliteit niet gebruikt, kan gebruikt worden met een knopje om een tag mee wakker te maken, zodat ie weer eerder incheckt.

Het falen van flashen is niet echt een goed teken; hij doet een aantal pogingen om iedere byte te flashen, blijkbaar gaat dat toch ergens niet goed. Ontkoppeling op de power-rail kan helpen! Ook kan dit grappig genoeg wijzen op power die helemaal niet aangesloten is... De CPU is dermate low-power dat ie ook nog voor een flink deel werkt op GPIO poorten die 'hoog zijn'. Een UART TX die high is op idle, is genoeg om de tag te laten opstarten. Werkt alleen niet zo betrouwbaar...

Voor ESP32-boards die geen power schakelen op de AP, is het inderdaad nodig om alles te restarten. Na het flashen is het niet mogelijk om softwarematig de AP uit debug/programming mode te krijgen, dus een powercycle is benodigd.

Je kunt dat doen door rechtstreeks het AP te 'poweren' via wat pins van de ESP32, maar het is netter om het met een high-side driver te doen. De OpenEPaperLink PCB heeft op de internal-ap en external poorten een push-pull driver die condensatoren op de tags ook kan ontladen.

Acties:
  • +1Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Ik zag deze voorbijkomen, leuk! :)

Ook handig voor andere mensen die nog moeten/willen starten.


Acties:
  • 0Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Corn schreef op dinsdag 9 mei 2023 @ 01:34:
Bijzonder :) TEST (P1.0) wordt inderdaad in z'n totaliteit niet gebruikt, kan gebruikt worden met een knopje om een tag mee wakker te maken, zodat ie weer eerder incheckt.

Het falen van flashen is niet echt een goed teken; hij doet een aantal pogingen om iedere byte te flashen, blijkbaar gaat dat toch ergens niet goed. Ontkoppeling op de power-rail kan helpen! Ook kan dit grappig genoeg wijzen op power die helemaal niet aangesloten is... De CPU is dermate low-power dat ie ook nog voor een flink deel werkt op GPIO poorten die 'hoog zijn'. Een UART TX die high is op idle, is genoeg om de tag te laten opstarten. Werkt alleen niet zo betrouwbaar...

Voor ESP32-boards die geen power schakelen op de AP, is het inderdaad nodig om alles te restarten. Na het flashen is het niet mogelijk om softwarematig de AP uit debug/programming mode te krijgen, dus een powercycle is benodigd.

Je kunt dat doen door rechtstreeks het AP te 'poweren' via wat pins van de ESP32, maar het is netter om het met een high-side driver te doen. De OpenEPaperLink PCB heeft op de internal-ap en external poorten een push-pull driver die condensatoren op de tags ook kan ontladen.
Vandaag de firmware van het AP geupdate naar de 0015 versie. Nu ging het flashen wel in 1x goed, maar werd de tag niet herkend. Op de "AP config" tab bleef "fw ver" ook op 0000 staan, ook naar meerdere power cycles.

Na nog een keer weer terug naar 0014 (die wel werkte) en toen weer naar 0015, werkte het uiteindelijk wel. Dus in dit geval gingen de 3 flashes wel goed.

Acties:
  • +1Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Wel apart dat ie dat nodig had, normaal gesproken moet ie dat nu goed herkennen... Maar ben blij dat het werkt!

Er komt vanavond een update uit waarmee sommige memory-issues op de PSRAM-enabled S2 boards hopelijk tot een verleden behoren.

Die ESP32-S2's zijn best leuk, maar as-is is debuggen van core-dumps interessant... De ingebouwde USB disconnect, en je hebt geen idee wat er is gebeurd. Een externe seriele poort is tijdens debuggen best handig!


Acties:
  • +4Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Corn schreef op dinsdag 25 april 2023 @ 23:45:
<knip>
Ik heb een klein bergje flex-PCB's laten maken om snel en eenvoudig een AP te maken met behulp van een Wemos S2 mini en een segmented-PCB. Ik zal deze op verzoek van meerdere mensen als kleine bundeltjes met pre-flashed tags gaan verkopen op Tindie en V&A. Wellicht een uitkomst voor mensen die er wél mee willen spelen, maar geen zin hebben om te moeten solderen.

Uiteraard is en blijft alles open source en zijn de tekeningen te vinden op de repo!

[Afbeelding][Afbeelding][Afbeelding]


Met dank aan onder andere @Nic zijn de MiniAP's nu dermate stabiel dat ik er wel een paar AP-kitjes durf te bouwen...


Op veler verzoek en bij wijze van proef verkoop ik 5 nog één setje, ook om te kijken of het gebruiksvriendelijk genoeg is om te gebruiken.


De setjes zijn verkocht! Als ze bevallen, zal ik er nog een batch bouwen. Stay tuned!

[Voor 22% gewijzigd door Corn op 17-05-2023 15:44]


Acties:
  • +1Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 17:07
Ik heb nu ook alles geupdate naar de laatste versies en tot nu toe lijkt alles netjes te werken!

Ik heb alleen wel een kleine opmerking. Ik had netjes een nieuw file system naar m'n ESP32 toegestuurd, om er voor te zorgen dat de website ook op de laatste versie zit, maar dan wordt ook het file 'AP_FW_Pack.bin' op de littleFS gezet. Dit zorgde bij mij ervoor dat de ESP32 geen connectie meer kreeg met de AP-tag. Ik kon nog wel een 'force update bin' naar de ESP32 uploaden en deze werd ook netjes geflashed, maar daarna telkens een melding dat de ESP32 een TAG had gevonden maar er niks mee kon.
Na veel knoeien en kloten de 'AP_FW_Pack.bin' weggegooid van de littleFS en sindsdien werken zonder problemen.
Misschien om frustraties bij anderen te voorkomen deze weghalen uit de littleFS image?

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Vuikie schreef op donderdag 18 mei 2023 @ 21:55:
Ik heb nu ook alles geupdate naar de laatste versies en tot nu toe lijkt alles netjes te werken!

Ik heb alleen wel een kleine opmerking. Ik had netjes een nieuw file system naar m'n ESP32 toegestuurd, om er voor te zorgen dat de website ook op de laatste versie zit, maar dan wordt ook het file 'AP_FW_Pack.bin' op de littleFS gezet. Dit zorgde bij mij ervoor dat de ESP32 geen connectie meer kreeg met de AP-tag. Ik kon nog wel een 'force update bin' naar de ESP32 uploaden en deze werd ook netjes geflashed, maar daarna telkens een melding dat de ESP32 een TAG had gevonden maar er niks mee kon.
Na veel knoeien en kloten de 'AP_FW_Pack.bin' weggegooid van de littleFS en sindsdien werken zonder problemen.
Misschien om frustraties bij anderen te voorkomen deze weghalen uit de littleFS image?
Interessant! Zou het kunnen dat er niet echt een binary naar het filesystem ging, maar een 'kapotte' symlink, een txtfiletje met het pad naar de file? Als je handmatig de AP_FW_Pack.bin erop zet, doet ie het dan wel?

Acties:
  • +1Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 17:07
Corn schreef op donderdag 18 mei 2023 @ 21:58:
[...]

Interessant! Zou het kunnen dat er niet echt een binary naar het filesystem ging, maar een 'kapotte' symlink, een txtfiletje met het pad naar de file? Als je handmatig de AP_FW_Pack.bin erop zet, doet ie het dan wel?
Daar lijkt het idd op. De 'originele' AP_FW_pack.bin was 19K en die in de repo 106K. Ik zie nu ook in de serialmonitor dat de AP_FW_pack.bin netjes wordt herkent en deze wordt vergeleken met die in de tag zit.
Ik zit op Windows en niet op Linux. Ik heb hetzelfde probleem met het compilen van de firmwares, dat lukt niet meer sinds je die 'shared' code hebt geïntroduceert.

wat ik nog wel raar vind is dat ik deze melding heel vaak krijg voor verschillende files:
[ 4386][E][vfs_api.cpp:105] open(): /littlefs/XXXXXXX does not exist, no permits for creation

Acties:
  • 0Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Vuikie schreef op donderdag 18 mei 2023 @ 22:15:
[...]


Daar lijkt het idd op. De 'originele' AP_FW_pack.bin was 19K en die in de repo 106K. Ik zie nu ook in de serialmonitor dat de AP_FW_pack.bin netjes wordt herkent en deze wordt vergeleken met die in de tag zit.
Ik zit op Windows en niet op Linux. Ik heb hetzelfde probleem met het compilen van de firmwares, dat lukt niet meer sinds je die 'shared' code hebt geïntroduceert.
Dit gaat waarschijnlijk wel helpen:
https://superuser.com/que...-work-in-git-over-windows
wat ik nog wel raar vind is dat ik deze melding heel vaak krijg voor verschillende files:
[ 4386][E][vfs_api.cpp:105] open(): /littlefs/XXXXXXX does not exist, no permits for creation
Ja, die zijn irritant, maar kun je rustig negeren :)

Acties:
  • 0Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Corn schreef op maandag 15 mei 2023 @ 23:05:
[...]


[Afbeelding]

Met dank aan onder andere @Nic zijn de MiniAP's nu dermate stabiel dat ik er wel een paar AP-kitjes durf te bouwen...


Op veler verzoek en bij wijze van proef verkoop ik 5 nog één setje, ook om te kijken of het gebruiksvriendelijk genoeg is om te gebruiken.


De setjes zijn verkocht! Als ze bevallen, zal ik er nog een batch bouwen. Stay tuned!
Top! Mooie ontwikkelingen dit zeg! _/-\o_

Wel moet ik nog op zoek naar een praktische inpassing :P en wil ik de koppeling met home assistant goed maken, dan wordt het echt een verlengstuk van m'n huisautomatisering.

Klopt het dat alleen het segmented display de pending packages weergeeft? Bij gebruik van een normale tag wordt deze ook gebruikt/herkent als normale tag?

Acties:
  • +4Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

bartbh schreef op vrijdag 19 mei 2023 @ 09:51:
[...]
Klopt het dat alleen het segmented display de pending packages weergeeft? Bij gebruik van een normale tag wordt deze ook gebruikt/herkent als normale tag?
Jep, dat klopt. De tijdens het versturen van data naar het scherm kan het AP niet zoveel doen, doen; dat is prima voor de +-30 bytes die het segmented display nodig heeft voor een update, maar voor een dot-matrix scherm zou dat te vaak, teveel tijd zijn die het AP kwijt is met het scherm updaten. Dat zou tot gevolg hebben dat ie te vaak check-in’s van tags mist, en dat is weer slecht voor de responsiveness van je hele systeem.

De dot-matrix AP’s doen dus mee als virtuele, ‘normale’ tags voor het systeem. Mocht je een AP-content type maken met bijvoorbeeld IP en kanaal, dan kun je die op die manier dit display voorzien van accesspoint-info.

Nog even voor de tweakers die vandaag hun Accesspoint ontvangen, hier is een guide te vinden hoe je van start kunt gaan.

Achteraf bedacht ik mij nog dat er waarschijnlijk een flinke berg tags vanwege het testen in je webinterface staan; die kun je rustig deleten :)

  • Pietb
  • Registratie: Maart 2001
  • Niet online
Ik zal er wel overheen lezen, maar staat ergens ook beschreven welke commando's je exact naar de tags kunt sturen (en met welke argumenten)? Ik kom natuurlijk een eind met gewoon de netwerk calls van het AP bekijken, maar wat documentatie zou handiger zijn :)

Zo begrijp ik bijvoorbeeld nog niet wat het "memo text" commando zou moeten doen, het toont in ieder geval niet de tekst die ik daar intyp, maar enkel de alias van de tag en het mac adres...

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Pietb schreef op zaterdag 20 mei 2023 @ 14:22:
Ik zal er wel overheen lezen, maar staat ergens ook beschreven welke commando's je exact naar de tags kunt sturen (en met welke argumenten)? Ik kom natuurlijk een eind met gewoon de netwerk calls van het AP bekijken, maar wat documentatie zou handiger zijn :)

Zo begrijp ik bijvoorbeeld nog niet wat het "memo text" commando zou moeten doen, het toont in ieder geval niet de tekst die ik daar intyp, maar enkel de alias van de tag en het mac adres...
Vrees dat je daar niet overheen hebt gelezen, maar die documentatie is er nog niet :) Memo is alleen maar om de tag te identificeren geloof ik, misschien dat @Nic het beter kan uitleggen!

Acties:
  • +3Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Ik ben met een rework bezig voor het instellen van de content zodat de parameters duidelijker zijn, en dan volgt er ook documentatie. Mocht je intussen specifieke vragen hebben dan roep gerust!
De ‘memo’ content is trouwens niet interessant, die heb ik nooit afgemaakt en verdwijnt weer.

Acties:
  • 0Henk 'm!

  • Pietb
  • Registratie: Maart 2001
  • Niet online
Iemand nog goede tips om een fatsoenlijk leesbare image te maken? Ik kom nog niet veel verder dan wat matig leesbare tekst. Welke fonts zijn bijvoorbeeld aan te raden?

Acties:
  • +1Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Pietb schreef op maandag 22 mei 2023 @ 20:51:
Iemand nog goede tips om een fatsoenlijk leesbare image te maken? Ik kom nog niet veel verder dan wat matig leesbare tekst. Welke fonts zijn bijvoorbeeld aan te raden?
Grote probleem is dat bv Windows met ClearType allemaal zooi rond de letters toevoegt, waar je met een z/w (okay en rood) display niet zoveel mee kunt... Ik maak plaatjes met ImageGD en wat PHP scriptjes.


Als je plaatjes wilt renderen, kan ik https://ditherit.com/ aanraden. Je krijgt het idee dat je meer kleuren ziet dan het display kan weergeven, leuk psychologisch effect...


Acties:
  • 0Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Pietb schreef op maandag 22 mei 2023 @ 20:51:
Iemand nog goede tips om een fatsoenlijk leesbare image te maken? Ik kom nog niet veel verder dan wat matig leesbare tekst. Welke fonts zijn bijvoorbeeld aan te raden?
Zet in ieder geval de anti-alias uit, als je teksten rendert. Het font maakt op zich niet zo veel uit. Als je een wat kleinere lettergrootte nodig hebt, neem dan bitmap-fonts. Hoe plaats je de plaatjes? Als je de HTTP POST gebruikt, dan kun je met een parameter de dithering uitzetten. Zie /upload-test.html

Post eens een voorbeeld van een plaatje zoals je 'm hebt gemaakt? Dan kunnen we zien wat het probleem is.

BTW: in de laatste versie op github zijn de namen van de parameters van de content-soorten nu duidelijker, en voorzien van een korte tooltip met uitleg.

[Voor 20% gewijzigd door Nic op 23-05-2023 02:21]


Acties:
  • 0Henk 'm!

  • Pietb
  • Registratie: Maart 2001
  • Niet online
Ik probeer via een HTML Canvas een plaatje te maken, te exporteren naar jpg en die te uploaden. Direct via AP, via de upload-test en via Home Assistant, allemaal hetzelfde matige resultaat. Maar als ik een image aanmaak via Paint.net, is het wel scherp. Het lijkt erop als de Canvas naar jpg niet helemaal lekker werkt voor dit doeleinde (ook al staat anti-alias uit schijnbaar).
Als ik morgen tijd heb, zal ik eens proberen via .Net een image te laten genereren, kijken of dat beter gaat...

Acties:
  • 0Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Het is lastig om het 'matige resultaat' te verklaren zonder voorbeeld-plaatje.

  • Pietb
  • Registratie: Maart 2001
  • Niet online
Nic schreef op dinsdag 23 mei 2023 @ 23:09:
Het is lastig om het 'matige resultaat' te verklaren zonder voorbeeld-plaatje.
Een plaatje met wat simpele tekst:


Geeft me dit resultaat (via de "upload-test"):

  • duvekot
  • Registratie: December 2003
  • Laatst online: 17:43
Pietb schreef op woensdag 24 mei 2023 @ 06:44:
[...]
Een plaatje met wat simpele tekst:
[Afbeelding]

Geeft me dit resultaat (via de "upload-test"):
[Afbeelding]
Ziet er uit als "dithering" ... Dus ik vermoed dat de resolutie waarmee het plaatje gemaakt is .. niet gelijk is aan de resolutie van het label .. en daardoor wordt er een "aanname" gedaan hoe de pixels die "te veel" zijn omgezet moeten worden naar wel of geen actieve pixel op het label zelf.

Dus kijk ff goed of alle afmetingen etc wel kloppen.

Daarnaast is jpg natuurlijk ook nog "lossy" gecomprimeerd .. dus daar kan je ook nog eens informatie verliezen. En omdat de pixels op het label ook nog eens vrij "binair" zijn (het staat aan of uit) gaat het ook niet lekker als er bijvoorbeeld in het plaatje gebruik gemaakt wordt van "grijs" bijvoorbeeld om vormen meer rond te krijgen vanuit een visueel oogpunt.

Dus hier moet je echt op een lager niveau naar de data gaan kijken voor de aansturing van de pixels op het label .. om een goede kwaliteit op het scherm te krijgen.

Acties:
  • +3Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
@Pietb Twee dingen:
- De upload-test demo heeft een parameter 'dither', die kun je op '0' zetten.
- Maar veel belangrijker: zorg dat de software die je gebruikt een goede jpg schrijft. Zelfs met de lossy compressie van jpg hoeft een plaatje er niet onscherp uit te zien. Bijvoorbeeld het plaatje hieronder, met ImageMagick, zonder verdere truuks:

code:
1
2
3
4
5
magick -size 296x128 xc:white -font Arial +antialias \
  -pointsize 12 -annotate +5+15 "Test: 0123456789" \
  -pointsize 18 -annotate +5+40 "Test: 0123456789" \
  -fill red -pointsize 18 -annotate +5+60 "Test: 0123456789" \
  imtest.jpg


Helaas comprimeert de Tweakers website het plaatje nog extra, maar hier is het origineel: https://images.klari.net/imtest.jpg)


  • bartbh
  • Registratie: Maart 2004
  • Niet online
@Pietb op welke manier heb je dit plaatje gemaakt? Als ik zelf een plaatje maak in paint, krijg ik inderdaad ook dit soort effecten. Dus wellicht zit het daarin.


Vraag van mijn kant: Misschien heb ik het gemist, maar is het ook mogelijk om de firmware versie op de tags te achterhalen? Of wordt deze alleen in het bootmessage getoond?

  • Pietb
  • Registratie: Maart 2001
  • Niet online
bartbh schreef op woensdag 24 mei 2023 @ 12:43:
@Pietb op welke manier heb je dit plaatje gemaakt? Als ik zelf een plaatje maak in paint, krijg ik inderdaad ook dit soort effecten. Dus wellicht zit het daarin.
Met een HTML Canvas die ik naar jpg exporteer.

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Via een html canvas moet op zich goed gaan. Als je content 'static image' kiest en dan het [A🖌] icoontje om te kunnen tekenen, dan werkt dat ook via een html canvas. In /www/painter.js vanaf regel 98 wordt het canvas naar jpg omgezet, en naar /imgupload gePOST.

code:
1
2
3
4
5
6
7
8
9
        const dataURL = canvas.toDataURL('image/jpeg');
        const binaryImage = dataURLToBlob(dataURL);
        const formData = new FormData();
        formData.append('mac', mac);
        formData.append('dither', '0');
        formData.append('file', binaryImage, 'image.jpg');
        const xhr = new XMLHttpRequest();
        xhr.open('POST', '/imgupload');
        xhr.send(formData);

  • Pietb
  • Registratie: Maart 2001
  • Niet online
Ik heb heel die "dither" parameter nog niet, ik moet dus het access point nog even updaten... Moeten de tags dan ook een nieuwe firmware hebben?

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Vandaag probeerde ik de meest recente versie van het AP te compilen (de AP mini versie), maar dat liep bij het door mij gebruikte board (esp32doit-devkit-v1) niet goed.
code:
1
101.9% (used 1335033 bytes from 1310720 bytes)

Bij het compilen voor een lolin_s2_mini ging het wel goed.
code:
1
98.1% (used 1285766 bytes from 1310720 bytes)




Nu heb ik een andere board_build.partitions gebruikt (no_ota.csv ipv default.csv). Dan gaat het flashen goed, maar na boot verschijnt onderstaande foutmelding in de serial console:
[code]
This build of the AP expects PSRAM, but we couldn't find/init any. Something is terribly wrong here! System halted.
[/code]

Is er een andere indeling die ik wel kan gebruiken?


Ik moest de build_flag "-D BOARD_HAS_PSRAM" er nog uithalen.

[Voor 4% gewijzigd door bartbh op 24-05-2023 17:23]


  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Voor de esp32 kun je de 'Simple_AP' build environment gebruiken. Die heeft geen psram nodig.

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Pietb schreef op woensdag 24 mei 2023 @ 16:58:
Ik heb heel die "dither" parameter nog niet, ik moet dus het access point nog even updaten... Moeten de tags dan ook een nieuwe firmware hebben?
De tags kun je (voor dithering althans) overslaan.
Als je de firmware flashet, dan gaat de littlefs-partitie (waar de website op staat, en de tag database) niet vanzelf mee. Je kunt ofwel de data partitie opnieuw uploaden (maar dan verlies je je tag database), ofwel de bestanden in /www zelf updaten via de 'edit littlefs'-knop.

Een OTA-update voor de firmware die ook de bestanden op littlefs update is in de maak, dat gaat een hoop update-werk schelen.

  • Pietb
  • Registratie: Maart 2001
  • Niet online
Nic schreef op woensdag 24 mei 2023 @ 17:29:
Als je de firmware flashet, dan gaat de littlefs-partitie (waar de website op staat, en de tag database) niet vanzelf mee. Je kunt ofwel de data partitie opnieuw uploaden (maar dan verlies je je tag database), ofwel de bestanden in /www zelf updaten via de 'edit littlefs'-knop.

Een OTA-update voor de firmware die ook de bestanden op littlefs update is in de maak, dat gaat een hoop update-werk schelen.
Het is me nog wel onduidelijk hoe ik de firmware kan updaten (en ik wil het AP niet slopen :+): welke binary moet ik uploaden (en renamen naar "AP_force_flash.bin")? "AP_FW_Pack.bin" of "AP_FW_1.54.bin"?

Acties:
  • +1Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Als je de AP firmware wilt updaten, gaat dat in principe door een on-gerename'de AP_FW_Pack.bin te uploaden naar de filesystem en te rebooten. Als je een force flash doet, moet je de FW nemen van het type tag wat je in je AP hebt zitten, maar dat is alleen zinnig als de firmware niet herkent welke tag-AP je hebt

  • Pietb
  • Registratie: Maart 2001
  • Niet online
Nic schreef op woensdag 24 mei 2023 @ 13:31:
Via een html canvas moet op zich goed gaan. Als je content 'static image' kiest en dan het [A🖌] icoontje om te kunnen tekenen, dan werkt dat ook via een html canvas. In /www/painter.js vanaf regel 98 wordt het canvas naar jpg omgezet, en naar /imgupload gePOST.
Als ik op deze manier een image maak (font: Roboto 24px), zie ik exact mijn probleem terugkomen:

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Apart. Wanneer heb je je esp32 voor het laatst geupdate? De optie om dithering uit te zetten voor geuploade afbeeldingen werkt bij jou blijkbaar nog niet. Die optie is ook redelijk recent.

Oh, en heb je antialias uit staan in je canvas?
code:
1
2
3
4
5
6
7
8
    const ctx = canvas.getContext('2d');
    
    ctx.fillStyle = 'white';
    ctx.fillRect(0, 0, canvas.width, canvas.height);
    ctx.imageSmoothingEnabled = false;

    $("#canvasdiv").appendChild(canvas);
    canvas.style.imageRendering = 'pixelated';

[Voor 45% gewijzigd door Nic op 24-05-2023 20:52]


  • Pietb
  • Registratie: Maart 2001
  • Niet online
Nic schreef op woensdag 24 mei 2023 @ 20:51:
Apart. Wanneer heb je je esp32 voor het laatst geupdate? De optie om dithering uit te zetten voor geuploade afbeeldingen werkt bij jou blijkbaar nog niet. Die optie is ook redelijk recent.
Een kwartier geleden, draai nu versie 16.

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
'versie 16' is de versie van de AP tag firmware. Het renderwerk wordt gedaan door de esp32, die zijn eigen firmware heeft.

  • Pietb
  • Registratie: Maart 2001
  • Niet online
Geprobeerd de firmware van de ESP te updaten (via VS Code en PlatformIO), maar als ik het project laad en dan simpel weg een build doe (F5), krijg ik dit als error:

"Error: The program size (1470330 bytes) is greater than maximum allowed (1310720 bytes)"

@Corn: Zou de firmware op mijn AP al de genoemde "dithering" functie moeten hebben?

Acties:
  • +1Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 17:07
Ik heb de laatste versie van de firmware op mijn ESP staan en dan ziet het er zo uit :


En ik gebruik een Wemos D1 R32, die heeft een ESP-WROOM-32 als ESP32 module:


@Pietb dat is wel heel raar dat ie bij jou zo groot is... Ik heb het vermoeden dat er iets niet goed in jouw'n config zit. Dat er meer gecompileerd word dan dat nodig is.

[Voor 12% gewijzigd door Vuikie op 24-05-2023 21:47]


  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
De AP-tag regelt de communicatie richting de tags, en stuurt verder alleen kant-en-klaar voorbereide bitmaps door, die de tag kan ontvangen en rechtstreeks naar het epaper kan sturen. De bitmaps worden voorbereid door de esp32, die is (iets) krachtiger, en kan bv jpg's lezen en ditheren, en een webinterface aan je tonen. Voor het aan/uit-zetten van dithering moet je dus aan de esp32-kant zijn.

Binnen het OpenEPaperLink-project in platform.io kun je kiezen voor drie build environments. Kies degene die bij jouw esp32 past. Globaal: esp32 -> Simple_AP, esp32s2 -> Mini_AP. De build past net (98,6% op dit moment) dus het houdt niet over. Maar het past wel als alles goed staat ingesteld.

Er komen binnen niet al te lange tijd ook pre-compilede versies, dat gaat een hoop schelen denk ik. Als je die wilt gebruiken en je AP zelf bouwt, zorg dan alvast dat je de standaard pinout aanhoudt zoals in platformio.ini vermeld staat.

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Ik heb vorige week een setje van @Corn gekocht en ben ermee aan het spelen. Mijn kinderen wilden gelijk twee tags inpikken, omdat ze de weersvoorspelling wel handig vinden om te zien voordat ze naar school gaan. En of ik even een neerslagverwachting van buienradar erbij kon bouwen, grappenmakers.

Eerste feedback: wat een cool speelgoed.
Zou een tag niet te integreren zijn in lego, zodat kinderen (en volwassenen) een bioscoop/tv-scherm/etc kunnen bouwen? Met een 3d-printer zou het toch te doen moeten zijn om een hoesje te bouwen met lego-puntjes.
Iets serieuzerer zie ik bijvoorbeeld een bed&breakfast-toepassing voor me, waarbij je de gasten wat handige informatie kunt toespelen (persoonlijk welkom, weersvoorspelling, etc).

Wat betreft de functionaliteit, het is al erg leuk dat er al een aantal plaatjes standaard worden aangeboden. Ik snap dat de image-upload functionaliteit nog in ontwikkeling is. Ik heb voor mezelf even een lijstje erbij geprogrammeerd, zodat ik wat meer inzicht heb in welke 6-byte macs er in mijn systeempje zit:

Ik heb dit met de file editor gedaan een stukje javascript (indien interessant wil ik het wel posten).

Het zou voor mij handig zijn om ook een url te kunnen gebruiken, omdat ik dan dynamisch plaatjes kan gaan maken (bijv met php). Of is het dan handiger om het plaatje te pushen vanuit php naar het AP?

Vanuit symmetrie zou ik graag twee tags horizontaal tegen elkaar willen kunnen leggen met de barcode naar buiten. Dan moet ik dus plaatjes op z'n kop kunnen maken (en voor de vierkante tags 90 graden roteren). Zijn er meer mensen die dit handig lijkt?

Ik begreep trouwens van mijn zoon dat de prijstags in de supermarkt na sluitingstijd veranderen in voorraad-tags....nooit geweten.

  • Pietb
  • Registratie: Maart 2001
  • Niet online
KabouterSuper schreef op donderdag 25 mei 2023 @ 17:31:

Het zou voor mij handig zijn om ook een url te kunnen gebruiken, omdat ik dan dynamisch plaatjes kan gaan maken (bijv met php). Of is het dan handiger om het plaatje te pushen vanuit php naar het AP?
Je kan al een dynamisch image gebruiken, via de imageurl optie (daar je ook al die tag met weervoorspelling etc gemaakt hebt).

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Pietb schreef op donderdag 25 mei 2023 @ 17:38:
[...]

Je kan al een dynamisch image gebruiken, via de imageurl optie (daar je ook al die tag met weervoorspelling etc gemaakt hebt).
Top, weer wat geleerd.

Acties:
  • +3Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
KabouterSuper schreef op donderdag 25 mei 2023 @ 17:31:
En of ik even een neerslagverwachting van buienradar erbij kon bouwen
Hm, heel goed idee. Toevallig heeft buienradar een api...
Ik ga'm toevoegen aan de firmware als content!
Zou een tag niet te integreren zijn in lego, zodat kinderen (en volwassenen) een bioscoop/tv-scherm/etc kunnen bouwen? Met een 3d-printer zou het toch te doen moeten zijn om een hoesje te bouwen met lego-puntjes.
Leuk! Creatieve toepassing. Ben benieuwd naar leuke 3Dprints.
De bioscoop gaat alleen geen bewegend beeld geven ;-)
Ik snap dat de image-upload functionaliteit nog in ontwikkeling is.
Nou, eigenlijk is die niet in ontwikkeling, maar al af. Die pagina is bewust zo lelijk omdat het bedoeld is als demo. Je eigen scripjes kunnen via http POST naar /imgupload plaatjes naar tags sturen. :-)
Het zou voor mij handig zijn om ook een url te kunnen gebruiken, omdat ik dan dynamisch plaatjes kan gaan maken (bijv met php). Of is het dan handiger om het plaatje te pushen vanuit php naar het AP?
Helemaal vrij te kiezen, wat voor jou het beste werkt: Je kunt een plaatje pushen via http POST naar /imgupload, of het access point kan op een regelmatig (instelbaar) interval een plaatje bij je ophalen via een URL. Bij de content 'image url' kun je de url en het interval instellen.
Vanuit symmetrie zou ik graag twee tags horizontaal tegen elkaar willen kunnen leggen met de barcode naar buiten. Dan moet ik dus plaatjes op z'n kop kunnen maken (en voor de vierkante tags 90 graden roteren). Zijn er meer mensen die dit handig lijkt?
Je bent helemaal vrij om de ene helft van het plaatje op z'n kop te genereren. :-D
De esp32 is niet krachtig genoeg om heel veel beeldbewerking te doen, vandaar ook dat het plaatje exact de juiste resolutie moet hebben. Dus een image wall berekenen over meerdere schermpjes zit er niet in, maar met je eigen server is het een eitje.

Acties:
  • +1Henk 'm!

  • franssie
  • Registratie: Februari 2000
  • Laatst online: 18:00

franssie

Save the albatross

Een dat Lego printen zou ook wel te doen moeten zijn. Als i terug ben wel ik wel eens kijken of ik een stl kan maken. Meestal pak ik voor dat soort dingen gewoon echte Lego en vol het op met wat ik heb liggen. Meestal sneller, makkelijker en duurzamer omdat als je plan verandert de Lego herbruikbaar is en de 3d print niet.

🎸 Niets is zo permanent als een tijdelijke oplossing | Een goed probleem komt nooit alleen | Gibson guitar Fender Guitar God Damn Guitar


Acties:
  • 0Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Nic schreef op donderdag 25 mei 2023 @ 19:36:
Hm, heel goed idee. Toevallig heeft buienradar een api...
Ik ga'm toevoegen aan de firmware als content!
Geweldig, dat zullen mijn kinderen heel leuk (en nuttig) vinden.
Nic schreef op donderdag 25 mei 2023 @ 19:36:
Nou, eigenlijk is die niet in ontwikkeling, maar al af. Die pagina is bewust zo lelijk omdat het bedoeld is als demo. Je eigen scripjes kunnen via http POST naar /imgupload plaatjes naar tags sturen. :-)
Haha, sorry. De naam (upload_test) suggereerde dat het een test-pagina was. Misschien hernoemen naar demo_upload of zo? Ik ga zeker een scriptje schrijven die gebruik van maakt van de POST upload (met php).
Nic schreef op donderdag 25 mei 2023 @ 19:36:
Je bent helemaal vrij om de ene helft van het plaatje op z'n kop te genereren. :-D
Voor zelfgemaakte plaatjes wel. Voor de datum en weersvoorspelling is het iets lastiger, omdat je dan het plaatje niet zelf genereert. Hoeveel werk zou het zijn om een rotatie mee te geven (0, 90CW, 90CCW, 180) zodat de datum, weersvoorspelling, counters, etc geroteerd worden? Ik kan natuurlijk alle plaatjes gaan repliceren met eigen code en die roteren, maar "that defeats the purpose".

Ik zag (net zoals anderen) dat de memo tekst alleen een mac adres teruggeeft en dat het bedoeld was als testje. Zou het niet mogelijk zijn om de memo-tekst terug te geven, voor zover deze past in het scherm?

Anyway, keep up the good work! Ik ga weer lekker verder spelen met de tags.

Acties:
  • 0Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

KabouterSuper schreef op vrijdag 26 mei 2023 @ 10:06:

[...]

Voor zelfgemaakte plaatjes wel. Voor de datum en weersvoorspelling is het iets lastiger, omdat je dan het plaatje niet zelf genereert. Hoeveel werk zou het zijn om een rotatie mee te geven (0, 90CW, 90CCW, 180) zodat de datum, weersvoorspelling, counters, etc geroteerd worden? Ik kan natuurlijk alle plaatjes gaan repliceren met eigen code en die roteren, maar "that defeats the purpose".
De externe uploadmogelijkheid is exact dat, een externe uploadmogelijkheid :) De suggestie is dat het extern gegenereerde plaatjes zijn, niet dat de ESP daar daarna nog bewerkingen op los moet gaan laten. Als het extern gebouwde plaatjes zijn, kun je het net zo goed daar doen :)

Het AP kan al een berg aan plaatjes genereren; ik zou suggereren dat de filosofie is: óf je genereert 't op de ESP32, óf je genereert het extern, in de goeie orientatie... Maar pull requests zijn welkom :)


Lees je bericht nu nog een keer, snap 'm nu beter. Misschien iets voor de backlog!

[Voor 4% gewijzigd door Corn op 26-05-2023 11:25]


Acties:
  • 0Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
KabouterSuper schreef op vrijdag 26 mei 2023 @ 10:06:
Voor zelfgemaakte plaatjes wel. Voor de datum en weersvoorspelling is het iets lastiger, omdat je dan het plaatje niet zelf genereert. Hoeveel werk zou het zijn om een rotatie mee te geven (0, 90CW, 90CCW, 180) zodat de datum, weersvoorspelling, counters, etc geroteerd worden?
90 graden gaat 'm niet worden (dat wordt een hele nieuwe layout, en er is bijna geen ruimte meer over in de flash). Maar 180 graden is eenvoudig. Alleen wil je dat zeker ook per tag kunnen instellen?

Acties:
  • 0Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Nic schreef op vrijdag 26 mei 2023 @ 16:59:
[...]


90 graden gaat 'm niet worden (dat wordt een hele nieuwe layout, en er is bijna geen ruimte meer over in de flash). Maar 180 graden is eenvoudig. Alleen wil je dat zeker ook per tag kunnen instellen?
De 90 graden is voor de (bijna) vierkante tags. Die zijn in de supermarkt ook met de barcode aan de bovenkant. En inderdaad per tag, zodat je er twee tegen elkaar kunt leggen met de barcodes naar buiten.

Maar de buienradar-regenvoorspelling is veel leuker natuurlijk.

Acties:
  • +2Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Ik ben geen python programmeur maar ik heb het even lief aan ChatGPT gevraagd. Het had wat aanmoediging nodig en ik heb 'm even streng moeten toespreken, en na een hoop excuses kwam er uit wat ik wilde: Een demo-progje dat je als basis kunt gebruiken om in python de juiste plaatjes te genereren, haarscherp en in jpg. Ik heb 'm toegevoegd aan de repository.

https://github.com/jjwbruijn/OpenEPaperLink/blob/master/ESP32_AP-Flasher/data/demo_image_generator.py

Toegepaste truuks (wel door mij verzonnen, niet door ChatGPT):
- plaatje met indexed colors aanmaken, zodat de fonts niet antialiassed gerenderd kunnen worden.
- jpg met maximum kwaliteit bewaren (vooral om de chroma subsampling naar 4:4:4 te dwingen).

[Voor 21% gewijzigd door Nic op 27-05-2023 21:56]


Acties:
  • 0Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 17:07
Kan je meerdere AP's op verschillende kanalen hebben? Hoe gaan tag's er mee om als ze meerdere AP's zien?
En als je een AP op een ander kanaal zet, gaan de tags dan automatisch mee?

Acties:
  • +6Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Vuikie schreef op zondag 28 mei 2023 @ 16:07:
Kan je meerdere AP's op verschillende kanalen hebben? Hoe gaan tag's er mee om als ze meerdere AP's zien?
En als je een AP op een ander kanaal zet, gaan de tags dan automatisch mee?
Zeker! Corn heeft goed nagedacht over het protocol. Een tag zoekt bij het opstarten alle kanalen af en kiest het AP met het sterkste signaal. Daar blijft ‘ie contact mee houden, maar als ‘ie een hele tijd geen antwoord heeft gekregen na meerdere pogingen, gaat ‘ie opnieuw de zes verschillende kanalen afzoeken naar een ander AP.

Dus een tag gaat uiteindelijk automatisch mee, maar het is niet bedoeld als roaming.

Daarnaast heb ik een zeroconfig multi-AP oplossing ingebouwd: AP’s binnen hetzelfde WiFi-netwerk vinden elkaar automatisch via UDP multicast, en syncen alle tag-info. Per tag is er één AP (naar keuze) die de content genereert, maar de tag die de content ontvangt kan prima verbonden zijn met een AP elders. Zo kun je een paar AP’s in je huis plaatsen om het bereik te vergroten, maar alle tags en inhoud wel vanaf één AP beheren.

Probeer het maar eens uit!

Acties:
  • +5Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
En speciaal voor @KabouterSuper, nu toegevoegd:



Bij gebrek aan regenvoorspelling kan ik de schaal niet echt testen. Die is logaritmisch. In de buienradar-app wordt die niet verder getoond (alleen laag, midden, hoog), maar de api geeft wel een echte waarde natuurlijk. De lijntjes op de epaper staan, van onder naar boven gezien, voor 0, 0.25, 0.5, 1, 2 en 3 mm per uur, en bovenaan het scherm is 25mm per uur. Als het er bij de volgende miezer-regen er uitziet als een hoosbui, dan pas ik de schaal verder aan.

Acties:
  • +4Henk 'm!

  • Icey
  • Registratie: November 2001
  • Laatst online: 14:50


Met dank aan @Corn! Ik ben aan het kijken of we alle locaties op kantoor kunnen voorzien van een tag om aan te geven of deze bezet is. Het onderwerp ophalen blijkt nog even lastig te zijn met Outlook maar dat komt vast wel goed.

Nu nog even stoeien met de scherpte van de teksten & hoe ik het bereik kan vergroten. B)

[Voor 24% gewijzigd door Icey op 30-05-2023 10:59]


Acties:
  • 0Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 18:43

ThinkPad

Moderator Wonen & Mobiliteit
Leuke toepassing :Y

[Voor 83% gewijzigd door ThinkPad op 30-05-2023 11:12]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


Acties:
  • 0Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Ik heb het esp32 AP (simple AP) voorzien van nieuwe firmware, maar ik blijf tegen wat problemen aanlopen.

De tags maken wel verbinding, maar het lukt niet om afbeeldingen over te zetten.

In de serial monitor zie ik 2 fouten. gpio_set_level() heeft volgens mij te maken met het feit dat ik geen power pinnen gebruik en deze dus op -1 staat.

Daarnaast zie ik dat het updaten van 0000021A0FBF3B1B niet wil lukken "blockrequest: couldn't find taginfo" en op de webpage "Tag not found, this shouldn't happen". Vreemde is dat de webpagina ook geen informatie over de tag (fw ver, ch etc.) weergeeft, de serial monitor wel.

De pinout heb ik uiteraard nog eens gecontroleerd, maar deze heb ik hetzelfde staan als eerder. En gezien het feit dat de serial monitor wel aangeeft dat er verbinding is, zou ik het daar niet zoeken.

Iemand een idee?

Serial log:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
>
*wm:[1] AutoConnect 
*wm:[2] [ESP32] event handler enabled
*wm:[2] Connecting as wifi client...
*wm:[2] setSTAConfig static ip not set, skipping
*wm:[1] Connecting to SAVED AP: invalid SSID
*wm:[1] connectTimeout not set, ESP waitForConnectResult... 
*wm:[2] Connection result: WL_CONNECTED
*wm:[1] AutoConnect: SUCCESS
*wm:[2] Connected in 1628 ms
*wm:[1] STA IP Address: 10.0.0.241
Connected! IP address: 10.0.0.241
start reading DB from file
84
finished reading file
E (2027) gpio: gpio_set_level(226): GPIO output gpio_num error
E (2028) gpio: gpio_set_level(226): GPIO output gpio_num error
E (5438) gpio: gpio_set_level(226): GPIO output gpio_num error
E (5438) gpio: gpio_set_level(226): GPIO output gpio_num error
E (5538) gpio: gpio_set_level(226): GPIO output gpio_num error
E (5538) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6038) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6038) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6048) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6048) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6549) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6549) gpio: gpio_set_level(226): GPIO output gpio_num error
<ADR 00000219B7EA3B1B
+----------------------------+
| AP Information - type 01   |
+----------------------------+
| Channel |             0x0B |
| Power   |               0A |
| MAC     | 00000219B7EA3B1B |
| Version |           0x0016 |
+----------------------------+
AP FW version 0016 - AP_FW_2.9.bin found in FW pack
Jpeg file not found
ws[/ws][1] connect
<ADR 0000021B49793B12
<ADR 00000219B7EA3B1B
<ADR 0000021A0FBF3B1B
finished writing buffer 339ms
>SDA 0000021A0FBF3B1B TYPE 0x21
jpeg conversion 296x128
finished writing buffer 572ms
>SDA 0000021A0FBF3B1B TYPE 0x21
<ADR 0000021A0FBF3B1B
blockrequest: couldn't find taginfo 0000000000000000
<ADR 0000021C5D4E3B14
<ADR 000002187AFC3B1C
<ADR 00000219B7EA3B1B


Log op de webpagina van het AP:
code:
1
2
3
4
5
6
7
16:45:17 Tag not found, this shouldn't happen.
16:44:31 Tag not found, this shouldn't happen.
16:44:30 Tag not found, this shouldn't happen.
16:44:29 Tag not found, this shouldn't happen.
16:43:42 Tag not found, this shouldn't happen.
16:43:20 new image: /current/0000021A0FBF3B1B.pending
16:43:19 Updating 0000021A0FBF3B1B

[Voor 5% gewijzigd door bartbh op 30-05-2023 16:56]


Acties:
  • 0Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
bartbh schreef op dinsdag 30 mei 2023 @ 16:52:
Ik heb het esp32 AP (simple AP) voorzien van nieuwe firmware, maar ik blijf tegen wat problemen aanlopen.
Die gpio-meldingen heb ik gefixed nu. De fixes verschijnen in de volgende commit.

Die tagmeldingen zijn interessant... Kun je eens kijken of er in je tagDB niks geks staat. Je kunt 'm downloaden op http://10.0.0.241/backup_db . Daarna mag je'm verwijderen (via 'edit littlefs' -> ga naar /current, en dan rechtsklikken en delete) en daarna de esp32 rebooten. Met een beetje geluk werkt het dan. Zo ja, dan ben ik benieuwd wat er in de tagDB fout stond. Zo nee, dan zoeken we verder. :-)

Acties:
  • 0Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Nic schreef op dinsdag 30 mei 2023 @ 08:54:
En speciaal voor @KabouterSuper, nu toegevoegd:

[Afbeelding]

Bij gebrek aan regenvoorspelling kan ik de schaal niet echt testen. Die is logaritmisch. In de buienradar-app wordt die niet verder getoond (alleen laag, midden, hoog), maar de api geeft wel een echte waarde natuurlijk. De lijntjes op de epaper staan, van onder naar boven gezien, voor 0, 0.25, 0.5, 1, 2 en 3 mm per uur, en bovenaan het scherm is 25mm per uur. Als het er bij de volgende miezer-regen er uitziet als een hoosbui, dan pas ik de schaal verder aan.
Morgen gaat het regenen in Madrid. Geen idee of dit een paar druppels worden of weer een overstroming.

Acties:
  • 0Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
KabouterSuper schreef op dinsdag 30 mei 2023 @ 19:51:
[...]
Morgen gaat het regenen in Madrid. Geen idee of dit een paar druppels worden of weer een overstroming.
Die buienradar API werkt alleen in Nederland en Belgie...

Acties:
  • 0Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Nic schreef op dinsdag 30 mei 2023 @ 20:09:
[...]


Die buienradar API werkt alleen in Nederland en Belgie...
Da's jammer. Op de website krijg je een plaatje voor heel Europa, dus ik dacht dat de api het dan ook wel zou doen. Ik zal morgen even de getallen noteren, dan weten we in elk geval wat de range is.

[Voor 12% gewijzigd door KabouterSuper op 30-05-2023 20:33]


Acties:
  • +1Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
KabouterSuper schreef op dinsdag 30 mei 2023 @ 20:31:
[...]
Da's jammer. Op de website krijg je een plaatje voor heel Europa, dus ik dacht dat de api het dan ook wel zou doen. Ik zal morgen even de getallen noteren, dan weten we in elk geval wat de range is.
De range is van de data in de api is duidelijk (https://www.buienradar.nl/overbuienradar/gratis-weerdata)
"De waarde 0 geeft geen neerslag aan (droog), de waarde 255 geeft zware neerslag aan. Gebruik de volgende formule voor het omrekenen naar de neerslagintensiteit in de eenheid millimeter per uur (mm/u):
Neerslagintensiteit = 10^((waarde-109)/32)
Ter controle: een waarde van 77 is gelijk aan een neerslagintensiteit van 0,1 mm/u. "

en volgens het knmi: https://www.knmi.nl/kenni...m/uitleg/extreme-neerslag
"In Nederland noemen we neerslag boven de 25 millimeter in één uur een hoosbui (...) Waardes boven de 50 millimeter in een uur (...) zijn voor het Nederlandse klimaat redelijk extreem; ze komen ongeveer één keer per eeuw of iets vaker voor wanneer men zich op een 'vaste locatie' in Nederland bevindt."

Dus dat heb ik als uitgangspunt genomen, een schaal tussen 0-25 mm per uur. De getallen weten we dus. Maar de mapping met 'hoe voelt neerslagintensiteit' is blijkbaar logaritmisch, en dat moet even proefondervindelijk worden bekeken, of de grafiek een meer lineaire verdeling moet krijgen of niet.

Acties:
  • 0Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Nic schreef op dinsdag 30 mei 2023 @ 18:59:
[...]


Die gpio-meldingen heb ik gefixed nu. De fixes verschijnen in de volgende commit.

Die tagmeldingen zijn interessant... Kun je eens kijken of er in je tagDB niks geks staat. Je kunt 'm downloaden op http://10.0.0.241/backup_db . Daarna mag je'm verwijderen (via 'edit littlefs' -> ga naar /current, en dan rechtsklikken en delete) en daarna de esp32 rebooten. Met een beetje geluk werkt het dan. Zo ja, dan ben ik benieuwd wat er in de tagDB fout stond. Zo nee, dan zoeken we verder. :-)
Die heb ik verwijderd maar helaas geen verschil. Overigens had ik verwacht dat dan alle tags weg zouden zijn, maar na verwijderen en herstart staan ze nog wel in het ap. Dat klopt?

Ook geeft de webpage van het ap nog geen kenmerken van het ap.

Acties:
  • 0Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
bartbh schreef op dinsdag 30 mei 2023 @ 21:48:
[...]
Die heb ik verwijderd maar helaas geen verschil. Overigens had ik verwacht dat dan alle tags weg zouden zijn, maar na verwijderen en herstart staan ze nog wel in het ap. Dat klopt?

Ook geeft de webpage van het ap nog geen kenmerken van het ap.
Na herstart moeten de tags weg zijn. Ze komen wel weer vanzelf langzaam terug zodra ze zich melden bij het AP.
Als de website niet goed werkt, heb je misschien de webpagina 's niet geupdate. Als je de esp32-firmware update dan gaat de bestands-partitie niet vanzelf mee (om te voorkomen dat je je tagDB kwijt raakt). Als je de versie die een uurtje geleden online is gekomen installeert, en ook de data-partitie mee wegschijft, dan kun je voortaan OTA updates doen, dat gaat een hoop moeite schelen.

Acties:
  • 0Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Ah, ik heb die versie gedownload en opnieuw erop gezet. Nu heb ik wel de AP info op de webpage, dus daar zat in ieder geval deels het probleem. Nu was de webpage van het ap wel leeg en waren dus alle tags weg. Dus de db lijkt me dan weer leeg.

Punt is wel dat het updaten van de tags nog steeds dezelfde fouten geeft.

code:
1
2
blockrequest: couldn't find taginfo 0000000000000000
blockrequest: couldn't find taginfo 0000000000000000


Als ik in de tagDB.json kijk, zie ik wel dat de hash van alle tags gelijk is
code:
1
hash":"00000000000000000000000000000000"


Klopt dat?


Overigens was weer het AP_FW_Pack.bin bestand slechts een paar kb groot, dus die heb ik handmatig daarna nog weer vervangen.

edit: het updaten van het schermpje op de 2.9 AP gaat wel goed. Dus het gaat om de draadloos verbonden tags waarbij het niet goed gaat.

[Voor 8% gewijzigd door bartbh op 30-05-2023 23:42]


Acties:
  • +3Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 02-06 13:49
Hash klopt, omdat er nog geen plaatje geladen is.
Maar:
blockrequest: couldn't find taginfo 0000000000000000
Die nullen horen daar niet, en ik kan ze niet verklaren. Je tags hebben wel allemaal een uniek mac-adres toch? (zo te zien aan je eerdere log wel).
Maak anders even een issue aan in Github, en voeg je tagDB toe. We moeten denk ik voorkomen dat dit Tweakers-topic een supportkanaal wordt ;-)

  • Icey
  • Registratie: November 2001
  • Laatst online: 14:50
code:
1
2
3
4
5
6
7
8
9
10
11
Connected!
>
*wm:[1] AutoConnect 
*wm:[2] [ESP32] event handler enabled 
*wm:[1] No Credentials are Saved, skipping connect 
*wm:[2] Starting Config Portal 
*wm:[2] Disabling STA 
*wm:[2] Enabling AP 
*wm:[1] StartAP with SSID:  OpenEPaperLink Setup
*wm:[2] AP has anonymous access! 
Disconnected (read failed: [Errno 6] Device not configured)


Ik heb volgens mij mijn mini-AP gesloopt. Hij zit in een soort loopje en herstart zichzelf dus iedere keer. Iemand een link naar een stuk documentatie hoe ik d.m.v. Visual Studio & PlatformIO de nieuwste firmware kan installeren?

  • Corn
  • Registratie: November 2001
  • Laatst online: 18:43

Corn

Raar jongetje

Icey schreef op woensdag 31 mei 2023 @ 11:59:
[...]
Ik heb volgens mij mijn mini-AP gesloopt. Hij zit in een soort loopje en herstart zichzelf dus iedere keer. Iemand een link naar een stuk documentatie hoe ik d.m.v. Visual Studio & PlatformIO de nieuwste firmware kan installeren?
Met een beetje geluk zal ik morgen het post-mortem onderzoek doen ;)
Pagina: 1 2 3 Laatste


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee