Electronic Shelf Labels, reverse engineering en hergebruik

Pagina: 1 2 ... 8 Laatste
Acties:

Acties:
  • +30 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Afbeeldingslocatie: https://tweakers.net/i/vKdgf5uVbZex73KN89_4JuwMBQE=/800x/filters:strip_icc():strip_exif()/f/image/iKXyBW56w176WTuURXElBqi6.jpg?f=fotoalbum_large

Bijzondere displays hebben altijd al een grote aantrekkingskracht gehad, of het nu Nixie-tubes, 14-segment alphanumerieke LED-displays, flip-dots, LED-RGB matrixen, LCD's of e-ink displays zijn. Voor hobbyisten en tweakers zijn e-ink displays meestal nog net iets te prijzig om mee te experimenteren, maar nu in winkels en supermarkten die dingen al een paar jaar massaal als prijskaartjes gebruikt worden, komen er af en toe goedkope partijen gebruikte Electronic Shelf Labels op e-bay beschikbaar.

Electronic Shelf Labels zijn best interessant voor de diehard Tweaker: ze bevatten een E-paper display, batterijen, een ZBS243 microcontroller met zigbee (gebaseerd op 8051-architectuur, inderdaad, die uit 1980!), en dat alles in een mooi minimalistisch kastje. En vooral: er is geen documentatie van te vinden, dus een leuke puzzel om ze toch aan de gang te krijgen voor 1334 h4x0r5.

Op dit moment is er blijkbaar een grote partij 2.9 inch en 1.54 inch labels van Solum in omloop, waar zich wat mensen op gestort hebben om te reverse ingeneeren. Deze Solum (Samsung) labels zijn door Dmitry.gr voor het grootste deel ge-reverse engineered. ATC1441 heeft er een nieuwe low-power firmware voor geschreven, en een flasher waarmee je de tags van custom firmware kunt voorzien. Je PC met een usb-zigbee-dongle kan werken als een accesspoint, waarmee je nieuwe plaatjes en firmware naar de tags kunt sturen. Je kunt zelf direct software schrijven om op de tag te draaien, maar ook de e-paper displays zelf zijn leuk om mee te experimenteren. Een aanrader!

In dit topic kunnen we onze bevindingen en kennis delen over de Electronic Shelf Labels. Plaats vooral ook je eigen knutsels, ideeen en voortgang!

.
Getting started:
Het begon met de bevindingen van Dmitry.gr, met veel documentatie op zijn website:
Hacking eInk Price Tags

Atc1444 heeft een nieuwe firmware geschreven voor de pricetags waarmee je via bluetooth een nieuwe afbeelding kunt uploaden. Hij heeft een stap-voor-stap uitleg hoe je de price tags kunt flashen met de nieuwe firmware van atc1444. Verkijk je er niet op, het is wel wat werk:
  • Gebruik een ESP32 module om eenmalig een CC2531 USB Stick te flashen met TiMac Firmware (volgens mij gebruikt Home Assistant dat ook?)
  • Gebruik een ESP32 module om de firmware via SPI naar de price tag te uploaden (waarbij je de SPI interface moet zien te verbinden met kleine contactpunten binnenin de tag)
  • De ESP32's heb je nu niet meer nodig, en met een Python scriptje kun je nu via de CC2531 USB Stick een plaatje naar de tag zenden.
Video met stap-voor-stap uitleg
Gitbuh repository met de benodigde software

Als je meer dan één of twee tags wilt voorzien van firmware dan is het een gedoe om de contactpunten voor de SPI-bus te verbinden. Zowel atc1444 als Tweaker @Corn hebben een 3d-printable jig gemaakt om met pogo-pins een makkelijke verbinding te maken. Je vind ze beide hier.

Alternatief kun je ook de originele printplaat niet gebruiken, het e-paper display loshalen (pas op, enorm breekbaar!), en via SPI zelf aansturen met bv een ESP32. Je moet dan wel nog een adapter maken, om van een 24 pins flatcable (met 0,5mm pinafstand...) naar een bruikbare SPI interface te komen. Atc1444 heeft daar een printje voor: Universal E-Paper adapter PCB. Pas op, het printje bevat dus een 24 pins connector met 0,5mm pinafstand, dat is niet fijn om zelf te solderen. Ik (@Nic) ben van plan om wat van de printjes bestukt en al te laten maken. Zodra het zo ver is, zal ik in dit topic even peilen of er interesse is, dan kan ik de oplage iets vergroten.

@Corn is zijn eigen versie van de firmware aan het schrijven, met een altenatief protocol, en je kunt een tag ook gebruiken als basisstation om andere tags aan te sturen. Beide projecten zijn zwaar Work In Progress.

.
Toepassingen:
De ZBS core zelf is goed te gebruiken als een wireless sensor; in deep-sleep gebruikt ie ongeveer 1.5µA, wat betekent dat ie het met gemak jaren volhoudt op een paar knoopcellen. Ze zijn voorzien van I2C, SPI, en een hele berg GPIO poorten. Je moet wel een beetje handig zijn met programmeren.

Wat kun je er nou mee? Nou een wall display met 15x20 displays ervan maken bijvoorbeeld.
Maar iets serieuzer: Naambadges, of gekoppeld aan HomeAssistant voor de in/uit-status van je gezinsleden, of natuurlijk als prijskaartjes voor in een winkel :p Wat je er beter niet van kunt maken is een klok: Officieel kun je het display ongeveer 1.000.000 keer verversen. Je klok is dan na twee jaar versleten.

.
FAQ
Hoe kom ik aan zo'n display?
Op e-bay.de komen regelmatig partijen langs. Soms moet je ze per 200 kopen, dat is misschien wat overdreven. Gebruiker @Corn heeft blijkbaar een grote partij op de kop getikt, en bij hem kun je ook kleinere hoeveelheden via Tweakers VA zo'n beetje tegen kostprijs bestellen: 1.54" en 2.9".
Wat is de pinout van het display? Hoe koppel ik 'm rechtstreeks via SPI aan m'n microcontroller?
Adafruit heeft een breakout gemaakt incl scherm met dezelfde pinout als de shelf labels. Het schema en meer info vind je op Adafruit 2.9" eInk Display Breakouts and FeatherWings.
Pin mapping:
ESP32 pinDisplay pin
23MOSI
18CLK
5CS
17DC
16RST
4BUSY

Qua library had ik succes met de Adafruit_EPD library. Kies voor ThinkInk_290_Tricolor_Z94, GxEPD2, selecteer als display daar de GxEPD2_290_C90c.


Ideeen, aanvullingen, ervaringen, coole projecten? Brand los!

Acties:
  • +6 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Mooie opening!

Nog een paar aanvullingen, volgens mij post ik nu nog een keer dezelfde links bij de flasher-uitleg, maar dat hindert niet :)

Hier wat foto’s van de een paar van de verschillende tags die Solum (Samsung) maakt, specs zijn niet officieel dus onder voorbehoud :)
Afbeeldingslocatie: https://tweakers.net/i/7mTSmDNt4EU8H15KMZXabUO1rnY=/800x/filters:strip_icc():strip_exif()/f/image/bDxlw8YiG4lnFb1ZsKFfvXPd.jpg?f=fotoalbum_large


2.9”
Afbeeldingslocatie: https://tweakers.net/i/Uz-LKzU8nWs4mFSGyAgFExQrJfE=/232x232/filters:strip_icc():strip_exif()/f/image/ToIP1Omdv68auvYTLGuyh7Y8.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/l5EeMlWZUwIxr3rJhKuZj8W9N7U=/232x232/filters:strip_icc():strip_exif()/f/image/RtA5OTPzlvyJmacGyK7jUvRR.jpg?f=fotoalbum_tile
  • ZBS 243 / SEM9110 8051 based core, 64kbyte flash, 8kbyte XRAM, 256 bytes iRAM 16 MHz, 802.15.4 2.4Ghz radio
  • 2.9” e-paper display (BWR) 296x128
  • 1Mbyte SPI flash
  • 2x CR2540 knoopcel
  • Optioneel: NXP NFC controller over I2C
Hier zijn veruit de meeste van; de 2.9”. Gebruikt twee CR2540 batterijen voor een indrukwekkende accu-tijd van een jaar of 10. Stroomverbruik tijdens slaapstand is zo rond de 1.5uA.

Heeft ook een iets grotere zus, gemaakt voor gebruik bij lage temperaturen, specs zijn hetzelfde.
Afbeeldingslocatie: https://tweakers.net/i/ir0tmwXar_QRmc5gjuZT3jHPgf0=/232x232/filters:strip_icc():strip_exif()/f/image/StmCaz2nNJEvykYF02UeC7cO.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/Fcj3C3ARFAN1XeBUK-XU023W9Rg=/232x232/filters:strip_icc():strip_exif()/f/image/fgNY4XTYop3NghTBSwewjrUf.jpg?f=fotoalbum_tile



1.54”
Afbeeldingslocatie: https://tweakers.net/i/J4AvfHGauNcGclpqINb1wrlGAN0=/232x232/filters:strip_icc():strip_exif()/f/image/h4TxoQdE7ivnw9lYupmRobez.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/EOC_xO_c5BwJGKgswyD_Nc8Tl8E=/232x232/filters:strip_icc():strip_exif()/f/image/cTg6Tef7aSKLIvANzNBmMwx5.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/bbP5KcgZQmR0hZCboIjLuwaFcQs=/232x232/filters:strip_icc():strip_exif()/f/image/UKEHgijkpPqd2udMjyf1ogP4.jpg?f=fotoalbum_tile
  • ZBS 243 / SEM9110 8051 based core, 64kbyte flash, 8kbyte XRAM, 256 bytes iRAM 16 MHz, 802.15.4 2.4Ghz radio
  • 1.54” e-paper display (BWR) 152x152
  • 1Mbyte SPI flash
  • 1x CR2540 knoopcel
  • Optioneel: NXP NFC controller over I2C
Dit is echt een leuk speeltje, super compact en een mooi, relatief hoge resolutie scherm. De zwarte variant is voor zover wij weten altijd uitgerust met NFC controller


4.2” (ZBS based)
Afbeeldingslocatie: https://tweakers.net/i/ci-cmWkznBYeDSgaQkHa5P7HKC8=/232x232/filters:strip_icc():strip_exif()/f/image/dHrMOSz3s1tV5FL9YelkVZI8.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/zuc3jGWQAyVF1PGpg6gWYdh6zDI=/232x232/filters:strip_icc():strip_exif()/f/image/9pnclM1Cutve49xKDWmQM2D0.jpg?f=fotoalbum_tile

beetje kerst-erig
  • ZBS 243 / SEM9110 8051 based core, 64kbyte flash, 8kbyte XRAM, 256 bytes iRAM 16 MHz, 802.15.4 2.4Ghz radio
  • 4.2” e-paper display (BWR) 400x300
  • 1Mbyte SPI flash
  • 2x CR2540 knoopcel
  • Optioneel: NXP NFC controller over I2C
Van deze versie is er ook een versie in omloop met Marvell-chip.


7.4”
Afbeeldingslocatie: https://tweakers.net/i/59a7ZROEnUjeqahAc9763pZSnrs=/232x232/filters:strip_icc():strip_exif()/f/image/0IO1UoeSDnxZTseBJL2jjfsd.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/NV7-eE4XW6qWyxFiDKmQDvBWzhg=/232x232/filters:strip_icc():strip_exif()/f/image/HSrU0J44byMVf4ea4U5r98su.jpg?f=fotoalbum_tile
  • Marvell 88MZ100 CPU, ARM Cortex-M3 core tot 64 MHz, 512kbyte Flash, 160kbyte code/data RAM, 802.15.4 Zigbee compliant 2.4Ghz radio
  • 7.4” e-paper display (BWR) 640x384
  • 4x CR2540 knoopcel
  • NXP NFC controller over I2C
Dit ding is echt helemaal de nootjes, maar helaas is Marvell ook niet erg toeschietelijk met z’n datasheets. Razendsnelle ARM CPU (vergeleken met de ZBS), en goeie open source compilers. De CPU is grotendeels reverse engineered, maar sommige dingen zijn nog niet helemaal duidelijk. Vrij makkelijk om te flashen, heeft alleen een TTL-seriële interface nodig.

Segment
Afbeeldingslocatie: https://tweakers.net/i/wphvRgkVR7Z7l2KBEtdFet4WAi8=/232x232/filters:strip_icc():strip_exif()/f/image/KMyHEL2DizN1vlsSvm4NS9y1.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/015VmBk_l0q8sGDM5Qd0ZAwskUc=/232x232/filters:strip_icc():strip_exif()/f/image/LZ6t3lyK2ctfTQprKSZUN2LM.jpg?f=fotoalbum_tile
  • ZBS 243 / SEM9110 8051 based core, 64kbyte flash, 8kbyte XRAM, 256 bytes iRAM 16 MHz, 802.15.4 2.4Ghz radio
  • Segment-based e-paper display
  • 1x CR2540 knoopcel
Dit display heeft een instelbare achtergrond, naar keuze zwart of wit. Het ePaper display zit rechtstreeks op de PCB zelf vast, geen losse glas-module. Van alle ePaper displays heeft deze de beste range (handig om als AP te gebruiken)

Acties:
  • +3 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Flashen van tags met 'custom firmware'`

Video-guide van ATC1441:
Afbeeldingslocatie: https://tweakers.net/i/yb6NSXAHOQMBDa5zg2MbZEC3y0U=/232x232/filters:strip_exif()/f/image/0XhZMbxt4hDAEWlrqenMDJq3.png?f=fotoalbum_tile


Standaard draait er een stock firmware op de tags, die alleen maar wil praten met een 'Solum' Accesspoint. Daar hebben we niet zoveel aan. Gelukkig is er een alternatief beschikbaar waarmee de tags kunnen praten met een vrij standaard CC2531 zigbee-usb-stick.

Om de tag te kunnen flashen moet je een 'flasher' bouwen. Dat kan met een ESP32 of een Arduino Nano. Software, broncode en uitleg hierover is te vinden op de ZBS_Flasher pagina. De tags hebben een programmeer-interface aan de achterkant zitten, bij de 2.9"/1.54" variant zitten die onder de batterij.
Afbeeldingslocatie: https://tweakers.net/i/0TE3I8D5-Q6vO7-hSDmIX68ute4=/232x232/filters:strip_icc():strip_exif()/f/image/DuhTeVhH4tOCOOqdoC2YwDVj.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/j4Z03gVTCQGJDMm4eLCAcgSZHEA=/232x232/filters:strip_icc():strip_exif()/f/image/9z9W44xyLoavgcizAGGDHddX.jpg?f=fotoalbum_tile


Om de flasher te kunnen gebruiken moet je 'm verbinden met een tag. Dat kan door 'm voorzichtig uit de behuizing te halen en draadjes aan de 'programmeer-interface' te solderen, maar je kunt ook een 'jig' gebruiken. Dat is een ge-3D-print kastje met wat pennetjes die precies op de programmeerinterface terecht komen. Wel zo makkelijk, zeker als je er een aantal wilt programmeren.
Afbeeldingslocatie: https://tweakers.net/i/VZRI7XRWrISjHiEUnDj2we90yYA=/232x232/filters:strip_icc():strip_exif()/f/image/hSpss5mc4m9tcVjv2uJ5R4Y8.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/DPfmMLaarmvh5F2nXwJy8vYhbLI=/232x232/filters:strip_icc():strip_exif()/f/image/XO4oFsiodAEp7K2P2K4Fs8NR.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/O8QLK2pynRwQP0Js3PeRx3UMULQ=/232x232/filters:strip_icc():strip_exif()/f/image/EbZiedlqd5hEiy65Ag0Tz15l.jpg?f=fotoalbum_tile

Deze jigs gebruiken 1mm pogo-pins om verbinding te maken met de tag. Online te vinden op eBay. Aan de onderkant zit je microcontroller, met een royale hoeveelheid hotglue. Zorg dat de pins in de settings van de flasher-code matchen met de pins die verbinding maken met je tag.

Als je het stroomverbruik van de tags wilt meten met bijvoorbeeld een PPK2, kan het handig zijn om er meteen even een header tussen te zetten, waarop je je VCC-lijntje hebt aangesloten. Als je geen PPK aansluit, kun je 'm simpel overbruggen met een jumpertje.
Afbeeldingslocatie: https://tweakers.net/i/_B3YCV5yN1udrP1hyCNZmCePBX4=/232x232/filters:strip_icc():strip_exif()/f/image/8o5OYQ3tHuDry9lwi42HQSsq.jpg?f=fotoalbum_tile



Hieronder volgt wat uitleg over de microcontroller in deze tags. Als je ze gewoon wilt gebruiken met standaard precompiled custom firmware, dan hoef je dit niet te lezen, maar alleen je tag te flashen. De tekst hieronder is misschien handig om te weten als je gaat programmeren voor deze dingen.

Over de ZBS243 / SEM9110 MCU

Een aantal van deze tags gebruiken de ZBS243 / SEM9110 Microcontroller. Deze controller is geproduceerd door Samsung, en er is vrijwel niets over te vinden vanuit Samsung zelf. Wat we er over weten, is reverse-engineered door Dmitry Grinberg. Dankzij zijn efforts weten zo'n beetje 95% van hoe deze microcontroller werkt; genoeg om 'm te gebruiken om eigen code op te draaien. Dmitry heeft er ook een SDK voor geschreven, en code om deze prijskaartjes als fotolijstje te gebruiken. Met deze SDK is óók mogelijk om er zelf software voor te schrijven! Er is genoeg bekend om bijna alle hardware features te gebruiken, en je kunt een tag dan ook gebruiken als een general-purpose microcontroller voor hobbyprojectjes. Groot voordeel is dat het stroomverbruik tijdens 'sleep' echt best heel erg laag is. Bijzonder geschikt voor batterij-gevoedde toepassingen dus.

Afbeeldingslocatie: https://tweakers.net/i/J4cQDpQJhqRXxjF7_yRAZD3MMIY=/232x232/filters:strip_exif()/f/image/wJYvtPs0qL7U5IUPpCR9KMXH.png?f=fotoalbum_tile


De 8051-core
De ZBS243 heeft een 8051 core. Dit is een CPU gemaakt in 1980 door Intel voor gebruik in embedded systemen. Best een historisch ding! Deze core wordt nog steeds veel gebruikt in (met name) goedkope controllers. Er zitten wat limitaties aan de architectuur, met (wat mij betreft) op nummer 1:

Het 'interne' geheugen is gelimiteerd tot 256 bytes. Echt best wel weinig. Dit helpt ook niet mee:
  • De stack leeft ook in deze geheugenruimte... Je wilt dus niet teveel argumenten meegeven aan je functies of teveel recursie gebruiken, want je komt vrij vlot in de problemen
  • Er is 8K 'extern' geheugen beschikbaar, maar dat is traaaaag. Heeft er mee te maken dat de CPU daar niet rechtstreeks bij kan, maar deze data eerst met aparte instructies moet inladen alvorens er bewerkingen op los gelaten kunnen worden.
  • Er is een open-source compiler beschikbaar, SDCC. SDCC is volop in ontwikkeling, en is verre van perfect. Hierdoor gaat je applicatie soms meer IRAM gebruiken dan je in eerste instantie dacht.
Compilers
Er zijn commerciele compilers voor de 8051 beschikbaar, waaronder Keil. Schijnt helemaal top te zijn, en allemaal magische optimalisaties op je code los te laten waardoor het als de gesmeerde bliksem draait. Keil is echter tamelijk níet-open-source of zomaar gratis te gebruiken, waardoor we dit niet echt kunnen inzetten voor community-projectjes. We zijn dus aangewezen op SDCC.

SDCC verandert nogal vaak per release, dus als je bestaande software wilt compilen, is het handig om te checken met welke versie de auteur heeft gewerkt. Ikzelf gebruik SDCC 4.2.0, deze lijkt redelijk stabiel en alles compiled er goed op. Dat geeft echter niet per se garantie voor de toekomst; mocht bestaande code niet compilen, check dan even je versie.

Om SDCC te helpen, kun je 'm vertellen waar ie z'n variabelen moet plaatsen. Dat kan door __xdata of __idata in je variabelen op te nemen. In de regel wil je alles __xdata doen zodat het in external RAM terecht komt, tenzij je een variabele onwijs veel in een loopje gebruikt oid.

In de ZBS_Flasher repo op Github kun je behoorlijk wat voorbeelden vinden, die door ATC1441 geschreven zijn voor z'n vele bouwsels. Bij deze voorbeelden zit ook de laatste versie van de SDK die Dmitry heeft geschreven. Dat is meteen een goed beginpunt, je hebt dan (als het goed is) al werkende code.

[ Voor 4% gewijzigd door Corn op 12-01-2023 01:19 ]


Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Hanshow
Het is niet helemaal duidelijk welke versie van de Hanshow tags Nederlands grootste grutter gebruikt, maar er is een redelijke kans dat ze compatible zijn met deze alternatieve firmware. Hiermee kun je een tag veranderen in een BLE-capable tag die rechtstreeks vanaf je pc te updaten is, zonder andere hardware. Het moet dan wel een versie zijn met een Telink SoC. Er zijn echter ook plenty Hanshow tags die andere hardware aan de binnenkant hebben zitten, moeilijk te voorspellen dus.
Afbeeldingslocatie: https://tweakers.net/i/TCFH25WGqMeNU4u74Ji-DnBvosE=/232x232/filters:strip_icc():strip_exif()/f/image/6ZHMSAK4aT1e3HAUuwmoNy4h.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/21t9k-DPl8hIjLXzpmeuXHqrmgg=/232x232/filters:strip_icc():strip_exif()/f/image/LC8w2A3P6NYh9bkGgMC2AhjL.jpg?f=fotoalbum_tile

Acties:
  • 0 Henk 'm!

  • DurkVell
  • Registratie: Augustus 2011
  • Laatst online: 22-04 18:04
Ook ik heb dus een aantal van deze ESL's van @Corn om mee te experimenteren: de kleine variant (1,54).

@Corn Ik heb jouw Jig geprobeerd aan te passen: ik wil nl. de pogo pin holes verlengen, zodat ze door het hele model lopen (dat doen ze nu deels). Alleen lukt me dat niet omdat het blijkbaar een open mesh is en repareren met Meshmixer lukt me niet (printen lukt overigens prima!). Heb je de .obj file (of ander format) toevallig :) beschikbaar?

Het uitboren van die gaatjes lukte nl. ook niet echt goed! ;(

EDIT:
Toch gelukt om de open mesh te repareren (in Meshmixer: Edit - Make Solid). Nu nog die pogo pins erin krijgen ....

[ Voor 20% gewijzigd door DurkVell op 13-01-2023 16:18 ]


Acties:
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 22-04 11:02

Rmg

Ik heb 1 van de labels aan de praat, morgen komen de pogo pins binnen en de printer staat te draaien.

Wat gebruiken jullie eigenlijk om plaatjes te genereren? ik zou vanuit mn home-assistant wat statistieken laten zien :Y)

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

DurkVell schreef op vrijdag 13 januari 2023 @ 12:59:
Het uitboren van die gaatjes lukte nl. ook niet echt goed! ;(

EDIT:
Toch gelukt om de open mesh te repareren (in Meshmixer: Edit - Make Solid). Nu nog die pogo pins erin krijgen ....
Mooi dat het toch gelukt is! Ik liep er ook tegenaan dat het niet zo makkelijk was om de pogo pins uit te boren; de PLA begon te smelten rond het boortje, werd een puinhoop. Ik heb de boor in een tang gedaan en met de hand eruit geboord, dat ging prima. Het wordt gewoon al snel te warm voor PLA.
Rmg schreef op vrijdag 13 januari 2023 @ 15:14:
Wat gebruiken jullie eigenlijk om plaatjes te genereren? ik zou vanuit mn home-assistant wat statistieken laten zien :Y)
Ik gebruik zelf PHP met wat imageGD, niet echt spannend genoeg om te sharen. Zijn andere mensen die Processing gebruiken. Whatever works for you :)

Acties:
  • +1 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Ik ben meerdere dingen parallel aan het uitzoeken:

Als eerste heb ik een display los kunnen aansturen (via SPI). Daarvoor moet je wat mini-draadjes solderen: Ik heb de juiste sporen op de pcb opgezocht en met een mesje de lak verwijderd. Die spoortjes moeten los van de cpu, aan de achterkant van de pcb kun je de printspoortjes onderbreken, zie foto's onderaan deze post. Je kunt ook de hele cpu weghalen maar ik heb geen hot air station daarvoor.

Daarna heb ik een ander display geflashed volgende de beschrijving van atc1441. Ik heb geen 3d-printer, een jig en pogo-pins zijn in bestelling maar met wat gesoldeer werkt het ook. Wijzigingen ten opzichte van de stap-voor-stap video van atc1441:
- bij het flashen van de CC2531: eerst 'erase flash' en daarna 'write'
- je hoeft niet meer met een hex editor het mac-adres te wijzigen. Je kunt met
code:
1
xbs_flasher COM8 MAC
het oorspronkelijke mac-adres op de juiste locatie zetten.

Ik ben met aan het inlezen op verschillende vlakken: 8051-code, zodat ik zelf de firmware kan aanpassen, en de LUT's voor het display (zie hier een nuttige video met uitleg over hoe zo'n display low-level wordt aangestuurd.

Wat me vandaag nog niet is gelukt is het builden van de firmware (op windows 10). Ik heb geprobeerd om de firmware van atc1441 te builden. In de firmware-dir staat 'makeit.exe' en dat gaat een heel eind goed (nadat ik zelf ergens libintl-8.dll en libiconv-2.dll vandaan heb gehaald). Geen foutmeldingen bij het compilen zelf, maar het eindigt met een foutmelding: [code]rm -f main.ihx
process_begin: CreateProcess(NULL, rm -f main.ihx, ...) failed.[/code]
Die foutmelding blijkt logisch: SDCC maakt keurig alle .asm, .lst, .rel en .sym-bestanden aan zonder foutmeldingen, maar geen .ihx-bestanden, terwijl die als het goed is wel aangemaakt zouden moeten worden. Het is uberhaubt voor het eerst dat ik iets handmatig build, dus ik heb nog geen idee in welke richting ik het moet zoeken.

Update: compilen is gelukt!! Hou het er maar op dat ik de makefile verkeerd had geinterpreteerd. En ik moest nog ergens objcopy.exe vandaan halen.

Kortom, ik ben de hele week al niet buiten geweest.... (volgens mij heb ik niks gemist, toch?)

Afbeeldingslocatie: https://tweakers.net/i/WXaBuxhy10zZJYfDfsK4Shxv948=/232x232/filters:strip_icc():strip_exif()/f/image/QQScq8w2WpD0YxhNx8cBhcJi.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/k1g3AjSg4pup8G1QDB9_KUFTOHo=/232x232/filters:strip_icc():strip_exif()/f/image/n2wUDoly1vqoFtiK30noaNqi.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/qtglNZ-lw6W6VmboXquxlx0n_Wo=/232x232/filters:strip_icc():strip_exif()/f/image/8k1Xi9Mebyw9LBckIcPJFsph.jpg?f=fotoalbum_tile

[ Voor 3% gewijzigd door Nic op 13-01-2023 23:56 . Reden: compilen van de firmware is gelukt ]


Acties:
  • 0 Henk 'm!

  • DurkVell
  • Registratie: Augustus 2011
  • Laatst online: 22-04 18:04
Corn schreef op vrijdag 13 januari 2023 @ 16:35:
[...]

Mooi dat het toch gelukt is! Ik liep er ook tegenaan dat het niet zo makkelijk was om de pogo pins uit te boren; de PLA begon te smelten rond het boortje, werd een puinhoop. Ik heb de boor in een tang gedaan en met de hand eruit geboord, dat ging prima. Het wordt gewoon al snel te warm voor PLA.
Aha! Met soldeerbout verhitten werd inderdaad een ramp. En met de Dremel boren ook dus! Met de hand boren gaat inderdaad beter. Ik had ooit zo'n soort (maar net anders) handboortje gekocht: https://nl.aliexpress.com/item/1005002458126406.html. Daarmee lukt het aardig. Geduldklusje, dat wel.

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Nic schreef op vrijdag 13 januari 2023 @ 17:08:
...
Wat me vandaag nog niet is gelukt is het builden van de firmware (op windows 10). Ik heb geprobeerd om de firmware van atc1441 te builden. In de firmware-dir staat 'makeit.exe' en dat gaat een heel eind goed (nadat ik zelf ergens libintl-8.dll en libiconv-2.dll vandaan heb gehaald). Geen foutmeldingen bij het compilen zelf, maar het eindigt met een foutmelding:
code:
1
2
rm -f main.ihx
process_begin: CreateProcess(NULL, rm -f main.ihx, ...) failed.

Die foutmelding blijkt logisch: SDCC maakt keurig alle .asm, .lst, .rel en .sym-bestanden aan zonder foutmeldingen, maar geen .ihx-bestanden, terwijl die als het goed is wel aangemaakt zouden moeten worden. Het is uberhaubt voor het eerst dat ik iets handmatig build, dus ik heb nog geen idee in welke richting ik het moet zoeken.
...
Volgens mij is dit geschreven voor een soort cygwin-achtige omgeving. Het probleem is volgens mij niet echt dat die .ihx niet bestaat, maar 'rm -rf'. Ik weet het verder ook niet echt, ik compile zelf onder linux...

Aan de foto's te zien lijk je er best ver mee te komen in ieder geval :)

Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Nic schreef op vrijdag 13 januari 2023 @ 17:08:
Ik ben meerdere dingen parallel aan het uitzoeken:

Als eerste heb ik een display los kunnen aansturen (via SPI).
[…]
Heb je hier meer informatie over? Ik zie op je foto’s een bordje met een ESP, welke is dat? ESP8266 of ESP32?

Extern aansturen heeft ook mijn interesse (originele CPU en radio gebruiken ziet er voor mij erg ingewikkeld uit). Ik zie dat bijv. de Tasmota firmware ondersteuning heeft voor een 2.9” e-ink van WaveShare: https://tasmota.github.io/docs/Displays/#supported-displays (DisplayModel 5) en ook ESPHome ondersteunt e-ink. Zou die code werken met de schermpjes uit deze prijskaartjes?


Edit: Niet goed gekeken, ik zie dat dit letterlijk onderaan de (trouwens keurige!) topicstart staat _/-\o_ Lijkt mij net als @Rmg ook leuk voor home automation achtige zaken. Op het HASS forum al een mooi voorbeeld gezien met drie 2.9" schermpjes in een 3D-geprinte behuizing _/-\o_

[ Voor 31% gewijzigd door ThinkPad op 13-01-2023 21:52 ]


Acties:
  • +1 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
ThinkPad schreef op vrijdag 13 januari 2023 @ 21:23:
[...]
Ik zie dat bijv. de Tasmota firmware ondersteuning heeft voor een 2.9” e-ink van WaveShare
Zou die code werken met de schermpjes uit deze prijskaartjes?
Niet plug and play, want het Waveshare-display dat daar genoemd wordt is een zwart/wit-versie. De shelf labels zijn zwart/wit/rood en gebruiken een andere driverchip. Maar het moet waarschijnlijk wel aan de gang te krijgen zijn als je die driver aanpast.

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Het BWR e-paper uit de 2.9" pricetag is dan mogelijk één van deze displays?
GDEH029Z92 (SSD1680 controller)
GDEY029Z94 (SSD1680A controller)
GDEW029Z13 (UC8151D controller)
GDEH029Z13 (UC8151D controller)

Op die productpagina's staat wel het e.e.a. aan sample codes (+ de Adafruit library (voor SSD1680 controller zo te zien?) waarmee je zelf al had getest) dus moet niet heel moeilijk werkend zijn te krijgen zou je zeggen.


ESPHome is beter geschikt vermoed ik trouwens, die heeft meer uitgebreide support voor dingen als fonts e.d.: https://esphome.io/components/display/waveshare_epaper.html

[ Voor 54% gewijzigd door ThinkPad op 14-01-2023 00:02 ]


Acties:
  • 0 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Het is een ander merk, maar inderdaad wel de SSD1680 (of compatible) controller.
Ik ben qua Arduino-library inmiddels overgestapt op GxEPD2, die is wat actueler. Daar kies ik in de config voor 'GxEPD2_290_C90c'.

Acties:
  • +2 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Nic schreef op vrijdag 13 januari 2023 @ 23:28:
Het is een ander merk, maar inderdaad wel de SSD1680 (of compatible) controller.
Ik ben qua Arduino-library inmiddels overgestapt op GxEPD2, die is wat actueler. Daar kies ik in de config voor 'GxEPD2_290_C90c'.
Tis deze controllert

Acties:
  • +1 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Volgende stap: een pcb om een schermpje rechtstreeks via SPI aan te sluiten, als je'm bijvoorbeeld via een esp32 wilt gebruiken in plaats van de originele print (en zelf een behuizing wilt maken). Het printje is 30x35mm groot. Ik laat er eerst een beperkt aantal maken (bij jlcpcb) omdat ik eerst wil testen of alles wel werkt.

Op- en aanmerkingen en ideeen over het schema (dat is gewoon het design wat je overal tegenkomt) of het pcb-ontwerp zijn welkom, voordat ik de bestelling plaats ergens de komende dagen.

Wat nog opmerkelijk is, waar ik tijdens het klooien met de connector achter kwam: de epaper-schermpjes in de pricetags hebben de contacten aan de achterkant van de flexkabel zitten. Alle andere epaper displays die ik via google images kan vinden, hebben de contactpunten aan de voorkant...

Afbeeldingslocatie: https://tweakers.net/i/h3ce5GVcSHBIvzIPOERpVX0x7a4=/232x232/filters:strip_exif()/f/image/6jl58S9kv9ZOr178xOz01EM3.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/9g1AP6zzmhUT_6IaM5j4E3biONk=/232x232/filters:strip_icc():strip_exif()/f/image/XMFlJHUN4MqLVtD43ln6RoUo.jpg?f=fotoalbum_tile

Acties:
  • +1 Henk 'm!

  • DurkVell
  • Registratie: Augustus 2011
  • Laatst online: 22-04 18:04
Oké, de Pogo pins zitten er mooi in!

Nu verder. T.n.t. best veel ervaring met Arduino, maar .... ik gebruik altijd de Arduino IDE. Vandaag de combinatie "Visual Studio Code" en "PlatformIO" (omdat nodig volgens: https://github.com/atc1441/ZBS_Flasher) geïnstalleerd: nooit eerder gebruikt dus!
Ik heb voor de test een Arduino Nano met mega328 gepakt (ik zou het liefst een Arduino Pro mini willen gebruiken als dat zou kunnen) en de platformio.ini de COMpoort opgegeven.

Maar een UPLOAD vanuit VSC lukt niet. Ik krijg de volgende foutmeldingen.

code:
1
[s]Bla bla bla[/s]


Het zal te maken hebben met de oude bootloader die in de Nano zit. Is hier een instelling voor in de ini-file? Of moet ik de bootloader updaten (Nano wordt UNO)?

Oeps!! Ik had de verkeerde AVR te pakken! 8)7

Hiermee lukt het wel!

code:
1
2
3
4
5
6
7
8
[env:nanoatmega328]
platform = atmelavr
board = nanoatmega328
framework = arduino
lib_deps = 

; COM4 or COM5
upload_port = COM[5]

[ Voor 60% gewijzigd door DurkVell op 15-01-2023 12:16 ]


Acties:
  • +2 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
DurkVell schreef op zaterdag 14 januari 2023 @ 11:52:
ik gebruik altijd de Arduino IDE. Vandaag de combinatie "Visual Studio Code" en "PlatformIO" (omdat nodig volgens: https://github.com/atc1441/ZBS_Flasher) geïnstalleerd
Ik gebruik ook de Arduino IDE, en had geen zin om platform.io te installeren. Als je main.cpp hernoemt naar .ino (en de folder dezelfde naam geeft als de .ino-file) dan opent de ZBR flasher gewoon zonder problemen in Arduino IDE :D

Acties:
  • 0 Henk 'm!

  • DurkVell
  • Registratie: Augustus 2011
  • Laatst online: 22-04 18:04
Nou ja!! Goede hulp! Alleen is het me nu via PlatformIO en VSC uiteindelijk ook gelukt.
Geen idee of ik er blij van moet worden, maar ja.
Thanks!

EDIT:

Met deze platformio.ini lukt het ook om de Arduino Pro Mini te programmeren.
code:
1
2
3
4
5
6
7
8
[env:pro8MHzatmega328]
platform = atmelavr
board = pro8MHzatmega328
framework = arduino
lib_deps = 

; COM4 or COM5
upload_port = COM[9]


De Pro Mini wordt d.m.v. een USB-serieel-adapter benaderd. Standaard schikte Windows die op COM-poort 10. Dat werd in PlatformIO als poort 1 behandeld (waarom?): upload werkte dus niet. In Windows de seriële omzetter verplaatst (via apparaatbeheer) naar poort 9 en toen lukte het wel.

[ Voor 64% gewijzigd door DurkVell op 14-01-2023 12:47 ]


Acties:
  • 0 Henk 'm!

  • Mavamaarten
  • Registratie: September 2009
  • Laatst online: 09:02

Mavamaarten

Omdat het kan!

Ik ben ook net aan de slag met deze schermpjes. Ik dacht dat ik de kennis en kunde wel in huis had om ze werkend te krijgen, helaas is dat niet helemaal waar gebleken.

Momenteel zit ik hier:
- CC2531 stick is succesvol geflashed. Althans, dat denk ik. Flashen was succesvol en als ik epaper-station draai dan krijg ik "2023-01-14 15:04:14,911 Station started" te zien, dus daar gaan we van uit.
- Ik heb tot hiertoe 2 schermpjes van @Corn geflashed door de juiste pinnetjes te solderen en met een Arduino de nieuwe firmware erop te zetten. Ik heb een backup gemaakt met read en readI van ZBS-flasher, dat lijkt gelukt te zijn. Ik heb daarna "demo_firmware_2.9_33_V1.9.0.0.bin" van het mapje custom-firmwares geflashed en ook het MAC aangepast naar 0000000000000001.

Het resultaat was
code:
1
2
3
Writing done, it took 8 seconds
Verfiy done and OK
ZBS Reset

Dus dat lijkt me allemaal prima te zijn.

Maar als ik nu de batterijen installeer dan gebeurt er helemaal niets. Ik kan nog wel readen en writen maar het schermpje doet helemaal niets. Ik had het lelijkste schermpje gekozen ("als ik die kapot doe heb ik er nog goeie"), maar ook een schermpje dat er beter uit ziet heb ik geprobeerd en dat doet ook niets. De batterijen zijn ook nog goed want een ander schermpje doet er wel nog een update mee naar een barcode-scherm na het flashen.

Misschien moet ik de UART pins ook een keer solderen en proberen te kijken of er uberhaupt iets boot of niet :-(

[ Voor 7% gewijzigd door Mavamaarten op 14-01-2023 15:15 ]

Android developer & dürüm-liefhebber


Acties:
  • +3 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 08:36
@Mavamaarten Heb je de batterijcontacten al eens kortgesloten? Dat helpt bij mijn in ieder geval om ze opnieuw te laten booten.

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Albert_x schreef op zaterdag 14 januari 2023 @ 15:49:
@Mavamaarten Heb je de batterijcontacten al eens kortgesloten? Dat helpt bij mijn in ieder geval om ze opnieuw te laten booten.
This is the way. Vanwege het extreem lage stroomverbruik duurt het nogal lang om de caps te drainen als je de batterijen eruit hebt gehaald. Ik doe er altijd een batterij verkeerd-om in, dat is de makkelijkste methode om 'm te ontladen. Als je de flasher gebruikt op een Nano, kun je ook 'P' gebruiken om power te togglen, en | om een passthrough-seriele poort te gebruiken. Dan krijg je debug informatie van de tag te zien!

Acties:
  • 0 Henk 'm!

  • Mavamaarten
  • Registratie: September 2009
  • Laatst online: 09:02

Mavamaarten

Omdat het kan!

Albert_x schreef op zaterdag 14 januari 2023 @ 15:49:
@Mavamaarten Heb je de batterijcontacten al eens kortgesloten? Dat helpt bij mijn in ieder geval om ze opnieuw te laten booten.
Corn schreef op zaterdag 14 januari 2023 @ 16:56:
[...]

This is the way. Vanwege het extreem lage stroomverbruik duurt het nogal lang om de caps te drainen als je de batterijen eruit hebt gehaald. Ik doe er altijd een batterij verkeerd-om in, dat is de makkelijkste methode om 'm te ontladen. Als je de flasher gebruikt op een Nano, kun je ook 'P' gebruiken om power te togglen, en | om een passthrough-seriele poort te gebruiken. Dan krijg je debug informatie van de tag te zien!
Bedankt voor de tip, dat wist ik niet maar klinkt idd heel logisch. Maar helaas, er gebeurt nog steeds helemaal niets. Ik kan wel bevestigen dat mijn andere schermpjes die niets deden hier wel door tot leven komen, dus dat is sowieso wel een sleutel die ik miste.

Ik had voor het flashen gewoon de VCC verbonden met de 3.3V van mijn Arduino (Mini, geen nano), en die haalde ik dan los. Dat zou gewoon werken volgens de instructies, maar ik zal het misschien "the right way" ook eens proberen.

(en sowieso de pass-through).

Android developer & dürüm-liefhebber


Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Stock-update: Na zo'n 30 pakketjes ben ik helaas door de voorraad B-grade 2.9" displays heen... 1.54" zijn er nog wel. Mocht je contactgegevens willen van de supplier van A-kwaliteit tags, stuur dan even een PM!

Acties:
  • +1 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Dat zijn dan nog best veel mensen die aan het experimenteren zijn/gaan. Ik ben benieuwd naar alle creatieve toepassingen!

Een wild idee: een printje met epaper driver, een esp32, een zuinige voltage regulator (voor evt LiPo batterij), en een DS3231 real time clock (+evt CR1220 batterij voor backup). Het printje is even groot als het huidige printje, alleen inclusief componenten wordt het ietsje dikker, dus daar moet nog een oplossing voor gevonden worden. De esp32 in hibernation mode trekt 2,5μA, de quiescent current van de voltage regulator is 2μA. Dat kan dan draaien op de originele CR2450's (de contactpunten zitten op dezeflde positie als op de oorspronkelijke pcb, bypassed de voltage regulator), of alles waar 3-5,5V uit komt. Geen seriele interface of laadcircuits.
Voor mij was het even een vingeroefening voor het ontwerpen van een pcb, maar misschien laat ik er wel een paar maken. Maar ik ga eerst het kleine printje bestellen dat ik gisteren hier postte.

Afbeeldingslocatie: https://tweakers.net/i/6GfOXKvg6y6O-qKMqxEMzHYlA9c=/800x/filters:strip_icc():strip_exif()/f/image/fIBMuGWZ9kqJaPMBfKdCbNG9.jpg?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Ziet er uit als een keurig ontworpen PCB! Echt heel erg netjes gedaan. 'Vingeroefening', noemt ie het, stiekem een humblebrag :)

Je zou een dun randje kunnen printen , een soort van 'krans' waarmee je de achterkant een klein stukje van de voorkant af laat komen zodat de dikke ESP32 er tussendoor komt, en de batterij-contacten een beetje omhoog buigen zodat ze er beter bij kunnen. Of een hele nieuwe achterkant printen, met ruimte voor twee 18650's.

Ik vrees wel een beetje dat het batterijverbruik van deze setup nogal afschuwelijk is, afhankelijk van hoe vaak je de ESP32 wilt laten inchecken om te kijken of er updates zijn. Quiescent current is denk ik niet waar het probleem zit; je zou dat zelfs nog beter kunnen maken door de DS3231 als wekker te laten fungeren en de ESP32 helemaal powerdown te laten gaan tussen de check-in's. Dan zou je met jouw PCB ook rond de 1.5-2µA zitten. Dat is buitengewoon keurig, dan is zelfontlading van je cellen je eerstvolgende limitatie.

Het zijn de check-in's die nogal 'duur' zijn. In een conservatieve berekening, waarbij de ESP32 iedere 10 minuten wakker wordt, kom ik (met 2x CR2540) aan een battery-life van een maand of 4. Als je ieder half uur doet, wordt dat misschien een jaar. Dit is zonder eventuele scherm-updates, dus alleen even checken of er nieuwe data is. Als je ESP-NOW gebruikt kun je dat nog wel een beetje verlengen, maar feit blijft dat WiFi nogal power-hungry is, niet super ideaal geschikt is voor low-power toepassingen die op batterijen moeten werken. Twee 18650's aan de achterkant lossen het probleem grotendeels op, maar dan is het niet meer echt een compacte setup.

Dat is de reden dat ik vooralsnog aan het prutsen ben met de standaard microcontroller en 802.15.4 (de basis van zigbee), battery-life is echt fantastisch.

Acties:
  • 0 Henk 'm!

  • Mavamaarten
  • Registratie: September 2009
  • Laatst online: 09:02

Mavamaarten

Omdat het kan!

Hm, we zijn een stapje verder maar ik begrijp nog steeds niet wat er mis loopt. In plaats van mijn Arduino Mini heb ik een keer een NodeMCU bordje gebruikt om te flashen. Met exact dezelfde procedure als gisteren kreeg ik nu plotseling wel iets te zien! Progress!

Afbeeldingslocatie: https://tweakers.net/i/OWF_hjvWrTifE2UH1n1GR7FBL9k=/800x/filters:strip_icc():strip_exif()/f/image/ZGy1Nvi0MpWvpgJ6Fbf21Arn.jpg?f=fotoalbum_large

Maar helaas is hij nooit verder gekomen dan "Booting". Ik soldeerde de TXD en RXD draadjes even aan een 3v USB to serial adapter en daar kreeg ik ook "Booting" te zien maar niet meer dan dat (stom dat ik geen screenshot genomen heb, ik ging ervan uit dat ik het wel opnieuw kon proberen). Maar daarna hetzelfde issue: nu is het schermpje gewoon helemaal dood en doet het niets meer, zelfs niet over UART. Tussen elke poging ook weer de batterijterminals even (10s) kortgesloten.

Wat balen zeg.

Ik zou bijna zeggen dat er bij het solderen iets misloopt, maar ik heb ze netjes kunnen solderen zonder te veel hitte. En dat zou ik geloven, maar niet moest het bij 3 bordjes mislopen. Ik heb ondertussen pogo pins besteld om het soldeer-loos te kunnen doen, maar dat is nog wel even onderweg.

[ Voor 10% gewijzigd door Mavamaarten op 15-01-2023 11:17 ]

Android developer & dürüm-liefhebber


Acties:
  • 0 Henk 'm!

  • DurkVell
  • Registratie: Augustus 2011
  • Laatst online: 22-04 18:04
Mavamaarten schreef op zaterdag 14 januari 2023 @ 21:19:
.... Ik had voor het flashen gewoon de VCC verbonden met de 3.3V van mijn Arduino (Mini, geen nano) ....
@Mavamaarten Een Arduino Pro Mini neem ik aan. Kan je aangeven welke pinnetjes je gebruikt hebt? En hoe je de code hebt aangepast?

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Mavamaarten schreef op zondag 15 januari 2023 @ 11:13:
--
Maar helaas is hij nooit verder gekomen dan "Booting".
---
Met deze versie moet ie doorlopen in 'ASSOCIATE READY', waarbij ie gaat zoeken naar een accesspoint. Dat ie blijft hangen in 'BOOTING' ken ik eigenlijk niet. Het is ook niet zo waarschijnlijk dat er sprake is van hardware failure (sowieso niet als er op meerdere displays hetzelfde gebeurt. Als je 'BOOTING' ziet heeft ie namelijk al een aantal dingen gedaan; hij heeft de SPI EEPROM geformatteerd, de radio geinitialiseerd, eigenlijk alles wat ie nodig heeft om verder te komen. Hij restart daarna de tag met een WDT Timeout, en gaat dan een pakketje samenstellen om naar het AP te sturen.

Wat ik zo kan verzinnen:
  • Power supply probleem. Ik zie 2.6v staan, dat is niet zo fantastisch.
  • Zelf gecompile'de firmware met een versie van SDCC die niet compiled zoals we verwachten.

[ Voor 0% gewijzigd door Corn op 15-01-2023 11:41 . Reden: al die knopjes op het toetsenbord, lastig hoor ]


Acties:
  • 0 Henk 'm!

  • Mavamaarten
  • Registratie: September 2009
  • Laatst online: 09:02

Mavamaarten

Omdat het kan!

DurkVell schreef op zondag 15 januari 2023 @ 11:34:
[...]
@Mavamaarten Een Arduino Pro Mini neem ik aan. Kan je aangeven welke pinnetjes je gebruikt hebt? En hoe je de code hebt aangepast?
Een Pro Mini inderdaad, een of andere naamloze goedkope clone met een ATmega328. Stom van me, maar die code heb ik ondertussen git reset en de pinnetjes weer losgehaald, dus ik zou het je niet meer kunnen vertellen.

Bij mijn (meer succesvolle) laatste poging gebruikte ik een Lolin Nodemcu v3, daar heb ik de code niet aangepast dus gewoon de pins/comments gevolgd in de code. Met als enige uitzondering dat ik de VCC pin niet heb aangesloten op een GPIO maar gewoon op de 3v3 output, welke ik na het flashen loshaalde.
Corn schreef op zondag 15 januari 2023 @ 11:38:
[...]
Met deze versie moet ie doorlopen in 'ASSOCIATE READY', waarbij ie gaat zoeken naar een accesspoint. Dat ie blijft hangen in 'BOOTING' ken ik eigenlijk niet. Het is ook niet zo waarschijnlijk dat er sprake is van hardware failure (sowieso niet als er op meerdere displays hetzelfde gebeurt. Als je 'BOOTING' ziet heeft ie namelijk al een aantal dingen gedaan; hij heeft de SPI EEPROM geformatteerd, de radio geinitialiseerd, eigenlijk alles wat ie nodig heeft om verder te komen. Hij restart daarna de tag met een WDT Timeout, en gaat dan een pakketje samenstellen om naar het AP te sturen.

Wat ik zo kan verzinnen:
  • Power supply probleem. Ik zie 2.6v staan, dat is niet zo fantastisch.
  • Zelf gecompile'de firmware met een versie van SDCC die niet compiled zoals we verwachten.
2.6V is inderdaad laag, dat was me nog niet opgevallen, dacht dat dat een of andere versienummer was :+ . Ik heb hier nog wat andere batterijen liggen met een (gemeten) voltage van 2.9 en 3.0V, daarmee doet hij ook niets. En andere niet-geflashte schermpjes doen er wel wat mee (refreshen naar het 033 + serienummer scherm).

De eerste keer dat het scherm wat deed met de nieuwe fw, was toen hij nog aangesloten zat op de 3v output van mijn ESP8266 bordje. Daarna deed hij het ook een keer toen hij aangesloten zat op de 3v van de USB serial adapter. Maar dat doet hij dus ook niet meer. Vandaar dat ik eigenlijk iets hardwarematig vermoedde. Ofwel heb ik deze te vroeg losgekoppeld toen hij nog aan het booten was, maar ik heb speciaal wat langer gewacht omdat hij "bezig" leek te zijn.

Android developer & dürüm-liefhebber


Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Mavamaarten schreef op zondag 15 januari 2023 @ 12:15:
[...]


Een Pro Mini inderdaad, een of andere naamloze goedkope clone met een ATmega328. Stom van me, maar die code heb ik ondertussen git reset en de pinnetjes weer losgehaald, dus ik zou het je niet meer kunnen vertellen.

Bij mijn (meer succesvolle) laatste poging gebruikte ik een Lolin Nodemcu v3, daar heb ik de code niet aangepast dus gewoon de pins/comments gevolgd in de code. Met als enige uitzondering dat ik de VCC pin niet heb aangesloten op een GPIO maar gewoon op de 3v3 output, welke ik na het flashen loshaalde.

2.6V is inderdaad laag, dat was me nog niet opgevallen, dacht dat dat een of andere versienummer was :+ . Ik heb hier nog wat andere batterijen liggen met een (gemeten) voltage van 2.9 en 3.0V, daarmee doet hij ook niets. En andere niet-geflashte schermpjes doen er wel wat mee (refreshen naar het 033 + serienummer scherm).
Let op dat de meeste naamloze ardu-clones vaak 5v zijn; hier kan de tag niet echt tegen. Is niet moeilijk om te modificeren naar 3v3, met een spanningsregelaartje en wat spoortjes die je moet onderbreken, maar je moet het uberhaupt wel eerst weten.

Ik zou de tag poweren met soft power vanaf je flasher; als je een seriele terminal opent naar de flasher kun je met 'P' power togglen. Hiermee neem je in ieder geval één onzekere factor weg. Niet alle batterijtjes zijn te vertrouwen, ook als ze 3v meten met een multimeter.

Een ander probleem zou kunnen optreden als je de batterijtjes er niet in één keer goed in doet; de POR/brownout detectie op de ZBS mcu is niet zo reliable (als ie er uberhaupt al op zit), en het kan gebeuren dat je tag blijft hangen in een vage state als je met het batterijtje jongleert. Ik leg de batterijtjes op het deksel, en klik dan in één beweging het deksel op z'n plek. Ongeveer zo.

Mocht ie nadat ie een reliable 3v power supply krijgt nog steeds niet werken, is het hoog tijd om naar je debug output te kijken op de txd lijn. Hardware failure ziet er zo uit:
  • failed to init eeprom
  • screen timeout X ticks
Veel andere failure modes kennen ze niet :) Al met al zijn ze in de regel best betrouwbaar, maar de randvoorwaarden moeten goed zijn.

Acties:
  • +2 Henk 'm!

  • Mavamaarten
  • Registratie: September 2009
  • Laatst online: 09:02

Mavamaarten

Omdat het kan!

@Corn bedankt voor de input! Toen ik de schermpjes van je kocht dan ging ik er niet van uit dat je support zou leveren en dat verwacht ik ook zeker niet van je. Much appreciated dat je toch inspringt met tips en knowledge, voel je zeker niet verplicht om helpdesk te spelen.

De clone is een 3v modelletje, daar ben ik zeker van. Maar ik vertrouwde hem toch niet helemaal, vandaar dat ik het met een esp8266 probeerde. De TX lijn uitlezen had ik dus al geprobeerd, maar er komt gewoon helemaal geen leven meer uit.

Android developer & dürüm-liefhebber


Acties:
  • +1 Henk 'm!

  • Roamor
  • Registratie: Mei 2004
  • Niet online
Heel gaaf om te volgen. Ben zelf ook bezig met een dashboard voor Home Assistant, ben nog aan het kijken of ik dat via Zigbee of Wifi wil doen.

Acties:
  • +10 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Nog eens 11 pakketjes onderweg naar diverse tweakers :)
Afbeeldingslocatie: https://tweakers.net/i/G3lQOBNUf5XRUc0rXScBG9yUMxc=/232x232/filters:strip_icc():strip_exif()/f/image/CGO4cXph2sx767ZtyCGqx6Wb.jpg?f=fotoalbum_tile

Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Vandaag ontvangen, dank @Corn !

Nu lekker aan de knutsel. Heb mij alleen wel beetje overschat in het solderen, wat zijn die printsporen/contactpunten klein! :X

Acties:
  • +2 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

ThinkPad schreef op dinsdag 17 januari 2023 @ 15:00:
Vandaag ontvangen, dank @Corn !

Nu lekker aan de knutsel. Heb mij alleen wel beetje overschat in het solderen, wat zijn die printsporen/contactpunten klein! :X
Wat @Nic doet met dun koperdraad is veruit de makkelijkste methode met het wat kleinere werk. Je kunt dit koperdraad het makkelijkste uit een oud elektromagneetje (solenoid) of motortje scoren. Door de uiteindes in een bolletje tin te houden, kun je de isolerende laklaag er gemakkelijk af branden.

Afbeeldingslocatie: https://tweakers.net/i/315RKan7ImP665lyNJdsqsnLkUI=/232x232/filters:strip_exif()/f/image/3AkPVFxVlYCo3rFcTTIYFkkf.png?f=fotoalbum_tile

Leuk, al die pushberichten 8)7

[ Voor 3% gewijzigd door Corn op 17-01-2023 16:08 ]


Acties:
  • +4 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Ik heb intussen het eerste prototype voor het kleine printje naar jlcpcb gestuurd, om een schermpje via SPI aan te kunnen sluiten aan een ESP32-achtig ding met een gewone header. Daarmee hoef je dus niks te flashen omdat je het originele printje niet gebruikt. Ook geschikt voor als je niet teveel wilt hacken, maar gewoon een leuk display wilt voor een projectje. Ik verwacht het over 2-3 weken binnen. Als 'ie goed blijkt te werken dan kan ik een tweede batch laten maken voor geinteresseerden.

Acties:
  • +1 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Corn schreef op zondag 15 januari 2023 @ 06:08:
Ziet er uit als een keurig ontworpen PCB! Echt heel erg netjes gedaan. 'Vingeroefening', noemt ie het, stiekem een humblebrag :)
Dank je! Ik heb teveel youtube-video's gekeken gekeken over pcb-design, en ben te weinig zelf aan de slag geweest tot nu toe. Een wereld gaat voor me open :)

Het klopt dat die esp32 (te) veel verbruikt, maar wat ik tot nu toe daarmee in gedachten had zijn toepassingen waar 'ie maar 1x per dag wakker hoeft te worden. Bijvoorbeeld heel eenvoudig een datumdisplay ('dinsdag 17 januari' in een mooi font) of een verjaardagskalender. Of een 'nog 234 dagen tot mijn verjaardag' teller.

Maar ik ga zeker ook nog in de code voor de microcontroller en zigbee duiken. Zelf compilen van de firmware van atc1441 werkt intussen al.

Acties:
  • +2 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 08:36
Mocht iemand problemen hebben met pass through mode via een ESP32, er zit volgens mij een bugje in de ESP flashcode. Zonder aanpassingen krijg ik dit te zien:
$ python3 zbs_flasher.py /dev/ttyUSB0 read image pass
Using port: /dev/ttyUSB0
ZBS Flasher version: 32
Reading flash now
65536 / 65536 100% 11 seconds
Reading flash done, now saving the file
Saving file done, it took 11 seconds
ZBS Reset
Pass Through mode:
booted at 0x1aec Reset reason: 00
SFDP: header not found
failed to init eeprom
Het lijkt erop dat de SPI aansluiting van de ESP voorkomt dat het label kan booten, zolang de hardware SPI in de ESP actief is.

Dit heb ik opgelost met een hele kleine aanpassing in de ESP code (ESP32_Flasher/src/zbs_interface.cpp):
void ZBS_interface::reset()
{
spi->end(); // <-- deze regel toegevoegd
pinMode(_SS_PIN, INPUT);
Nu boot het label correct:
$ python3 zbs_flasher.py /dev/ttyUSB0 read image pass
Using port: /dev/ttyUSB0
ZBS Flasher version: 32
Reading flash now
65536 / 65536 100% 11 seconds
Reading flash done, now saving the file
Saving file done, it took 11 seconds
ZBS Reset
Pass Through mode:
booted at 0x1aec Reset reason: 00
Booting FW ver 0x0000011300000000
-> FW v1.19.0.0
MAC 00:00:02:1B:0F:81:3B:17
temp: 18
eeprom has 59 image slots
Erz IMAGES
Erz UPD
Erz SETTINGS
MESSAGE 'BOOTING'

Associated to master 00:12:4b:00:14:12:34:56
HTH

NB: issue #18 aangemaakt op github .... en alweer gefixed

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Grappig, zelf nooit gebruikt op de ESP32. Heb alles met 3v3-omgebouwde Arduino Nano's aangesloten. Goed gevonden! ATC1441 doet aan PR's, feel free om bij te dragen!

En zo te zien werkt ie!

Acties:
  • 0 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Heeft er toevallig al iemand een desktop-standaardje of andere montage-hulpstukjes ontworpen voor de 2.9" labels om te 3D-printen? Online kom ik nog niks tegen.

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Nic schreef op donderdag 19 januari 2023 @ 12:52:
Heeft er toevallig al iemand een desktop-standaardje of andere montage-hulpstukjes ontworpen voor de 2.9" labels om te 3D-printen? Online kom ik nog niks tegen.
Alleen deze, werd gepost hier!

Afbeeldingslocatie: https://tweakers.net/i/18C_n9LreSea12wPsXgtg7lBRPw=/x800/filters:strip_exif()/f/image/2yXmSmAb9mie03k2DFN1kiaQ.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • Moti
  • Registratie: Juni 2021
  • Laatst online: 06-03 12:06
Hallo allemaal,

Ik heb van Corn een aantal 2,9 inch displays gekocht en wil ze met een CC2531 besturen. Ik heb de displays geflashed met de demo firmware V1.9 https://github.com/atc144...tree/main/custom-firmware en heb hem een nieuw MAC adress gegeven die komt ook op het display te staan.

Ik heb de CC2531 succesvol geflashed met een ESP32 en deze: https://github.com/atc144.../tree/main/CC2531_station firmware.

Nu probeer ik met epaper-station een PNG te uploaden. De CC2531 en het display verbinden met elkaar en het display vraagt voor een update en dan probeerd hij een PNG te verwerken maar dit lukt niet.
2023-01-20 12:34:02,907 Got checkin request
2023-01-20 12:34:02,907 CheckinInfo(swVer=1181116006400, hwType=8, batteryMv=2450, lastPacketLQI=75, lastPacketRSSI=208, temperature=142, rfu=b'\x00\x00\x00\x00\x00\x00')
2023-01-20 12:34:02,907 Reading image file:./ffffffffff563412.bmp/.png
2023-01-20 12:34:02,907 Using .png file
2023-01-20 12:34:02,909 Unable to prepare image data for client [255, 255, 255, 255, 255, 86, 52, 18]
2023-01-20 12:34:02,909 [Errno 2] No such file or directory: '/tmp/tempConvert.bmp'
2023-01-20 12:34:02,909 Reading firmware file: UPDT0008.BIN
2023-01-20 12:34:02,909 No Firmware file available
2023-01-20 12:34:02,909 PendingInfo(imgUpdateVer=0, imgUpdateSize=0, osUpdateVer=0, osUpdateSize=0, nextCheckinDelay=0, rfu=bytearray(b'\x00\x00\x00\x00'))
ik kan verder niemand vinden met dit probleem.

De PNG heb ik gemaakt met Paint en heeft een resolutie van 128x296

Ook heb ik een aantal displays met wat "vlekjes" ik dacht dat deze wel weg zouden gaan bij een display refresh maar ze blijven zijn deze pixels dan gewoon defect?
Afbeeldingslocatie: https://tweakers.net/i/gg2TlJ6owfcZgkrQWNRBLdz0bVc=/x800/filters:strip_icc():strip_exif()/f/image/RsYaNvdZ2DAvYzpLOiXJ0ZTZ.jpg?f=fotoalbum_large

(Ik had nu toevallig tijdens het booten een foto gemaakt maar hij verbind daarna gewoon)

[ Voor 2% gewijzigd door Moti op 20-01-2023 12:54 . Reden: Even verduidelijkt ]


Acties:
  • +1 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
@Moti De .PNG wordt eerst geconverteerd naar .BMP, en de folder /tmp/ bestaat blijkbaar niet. Gebruik je Windows? Dan is de eerste slash teveel. In station.py, regel 19, kun jehet juiste pad voor IMAGE_WORKDIR instellen. Bij mij staat daar (net als voor IMAGE_DIR) nu 'img/' (dus, de plaatjes staan in een subfolder van de map waar station.py in staat).

Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Als de vlekken op dezelfde plek blijven zitten dan zijn het gewoon drukplekken o.i.d. en zullen ze niet meer weggaan omdat het schermpje fysiek beschadigd is geraakt. Ik heb er ook een aantal met krassen/barsten, daarom werden ze ook aangeboden als 'B-grade' :)

Is er al iemand die iets werkend heeft met bijv. Home Assistant / Node-RED ?
Ben zelf nog een beetje zoekende met hoe ik de displays wil aansturen. Ik dacht eerst aan de schermpjes gewoon aan een ESP8266 hangen via SPI en dan met Tasmota of ESPHome aansturen. Maar dat solderen om aan de SPI pins te komen is wel een uitdaging, de traces zijn zó klein. Daarnaast zal ik dan zelf nog een behuizing moeten maken.

Een centrale oplossing met een soort 'hub' waaruit ik via Home Assistant / Node-RED o.i.d. data heen kan sturen en die dan regelt dat het op de juiste ESL wordt weergegeven is ook wel makkelijk. Is ook minder soldeerwerk en de tags hoef ik dan alleen even te flashen en kunnen in originele behuizing gebruikt worden.

@Moti Welke CC22531 stick gebruik je? Op AliExpress zie ik voor €5 CC2531 stickjes staan, is dat geschikt? (even CC2531 kiezen als productvariant). Edit: ik heb inmiddels een CC2531 stick met antenne, een programmeerkabeltje en een behuizing voor de stick besteld.
@Corn Ik had een aantal ESL die een demo afbeelding van atc1441 toonden. Zijn de tags die jij verkoopt afkomstig van hem en zit hier dan al die custom firmware van hem op?

[ Voor 79% gewijzigd door ThinkPad op 20-01-2023 21:47 ]


Acties:
  • +1 Henk 'm!

  • KleineAap
  • Registratie: September 2008
  • Laatst online: 22-04 20:03
@Moti ik zou sowieso eerst een BMP maken, dat is het native format en dan kan rood ook. Verder ziet de log er goed uit :-)
@ThinkPad Ik kan niet voor @Corn reageren maar had zelfde als jij, heb alle displays die ik van hem gehad heb eerst even gereset om te weten of de displays werken (knoopcellen er even omgekeerd in, dan weer goed). Dan lijkt de factory FW op allemaal te starten, dus lijkt me niet dat er permanent op geflashed is, tenzij na een reset je opnieuw die custom FW moet flashen?

Edit: @Corn is te snel met reageren.

[ Voor 64% gewijzigd door KleineAap op 20-01-2023 13:26 ]

The intersection of technology and creativity


Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

ThinkPad schreef op vrijdag 20 januari 2023 @ 13:07:
@Corn Ik had een aantal ESL die een demo afbeelding van atc1441 toonden. Zijn de tags die jij verkoopt afkomstig van hem en zit hier dan al die custom firmware van hem op?
Juh, ik kwam in de laatste paar pakjes die ik maakte 2.9" tags tekort; als je een tag ziet met 'ATC1441' erop dan heb je een 'beter dan B' kwaliteit tag te pakken :)

Ook deze tags draaien de stock firmware; als je ze restart of opstart (batterij terminals kortgesloten en batterij opnieuw in) zie je dat ie opstart naar de 'stock' firmware. Aaron heeft ze van een plaatje voorzien met behulp van een origineel accesspoints

Acties:
  • +2 Henk 'm!

  • Moti
  • Registratie: Juni 2021
  • Laatst online: 06-03 12:06
@Moti De .PNG wordt eerst geconverteerd naar .BMP, en de folder /tmp/ bestaat blijkbaar niet. Gebruik je Windows? Dan is de eerste slash teveel. In station.py, regel 19, kun jehet juiste pad voor IMAGE_WORKDIR instellen. Bij mij staat daar (net als voor IMAGE_DIR) nu 'img/' (dus, de plaatjes staan in een subfolder van de map waar station.py in staat).
Ik heb de folder tmp wel aangemaakt in epaper-station-master maar ik denk dat het in de stap daarvoor fout gaat. Ik gebruik windows ja, ik begrijp alleen niet helemaal wat je bedoelt met de dingen hierna, ik heb de eerste / weg gehaald in regel 19 van station.py en plaats de fotos in dezelfde folder als de station.py in staat.
Als de vlekken op dezelfde plek blijven zitten dan zijn het gewoon drukplekken o.i.d. en zullen ze niet meer weggaan omdat het schermpje fysiek beschadigd is geraakt. Ik heb er ook een aantal met krassen/barsten, daarom werden ze ook aangeboden als 'B-grade' :)
Ah ja okay jammer gelukkig zitten er nog genoeg schermpjes bij die wel heel zijn. :D
@Moti Welke CC22531 stick gebruik je? Op AliExpress zie ik voor €5 CC2531 stickjes staan, is dat geschikt? (even CC2531 kiezen als productvariant).
ik gebruik persoonlijk deze:
https://www.tinytronics.n...-usb-module-2.4ghz-zigbee maar ga er vanuit dat die van aliexpress exact hetzelfde zijn en dat die met antenna een groter bereik heeft.
enige waar je even naar moet kijken is dat de pinheaders op deze stick een pitch van 1,27mm (denk ik in iedergeval kleiner dan 2,54mm) hebben dus passen de dupont kabeltjes er niet op
@Moti ik zou sowieso eerst een BMP maken, dat is het native format en dan kan rood ook. Verder ziet de log er goed uit :-)
dat heb ik nu ook nog even geprobeerd maar dan krijg ik dit:
2023-01-20 13:38:38,986 Got checkin request
2023-01-20 13:38:38,987 CheckinInfo(swVer=1181116006400, hwType=8, batteryMv=2450, lastPacketLQI=0, lastPacketRSSI=0, temperature=143, rfu=b'\x00\x00\x00\x00\x00\x00')
2023-01-20 13:38:38,987 Reading image file:./ffffffffff563412.bmp/.png
2023-01-20 13:38:38,988 Using .bmp file
Error input BMP invalid
2023-01-20 13:38:38,988 Unable to prepare image data for client [255, 255, 255, 255, 255, 86, 52, 18]
2023-01-20 13:38:38,989 [WinError 2] The system cannot find the file specified: 'tmp/FFFFFFFFFF563412_7190693510596164002.bmp'
2023-01-20 13:38:38,989 Reading firmware file: UPDT0008.BIN
2023-01-20 13:38:38,989 No Firmware file available
2023-01-20 13:38:38,989 PendingInfo(imgUpdateVer=0, imgUpdateSize=0, osUpdateVer=0, osUpdateSize=0, nextCheckinDelay=0, rfu=bytearray(b'\x00\x00\x00\x00'))
Ik heb nu dezelfde tekening in paint als bmp monochrome, 16 color en 24 bit geprobeerd ze doen allemaal hetzelfde.

bedankt voor de snelle reacties allemaal <3

Acties:
  • +1 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 22-04 11:02

Rmg

Moti schreef op vrijdag 20 januari 2023 @ 12:51:
Hallo allemaal,

Ik heb van Corn een aantal 2,9 inch displays gekocht en wil ze met een CC2531 besturen. Ik heb de displays geflashed met de demo firmware V1.9 https://github.com/atc144...tree/main/custom-firmware en heb hem een nieuw MAC adress gegeven die komt ook op het display te staan.

Ik heb de CC2531 succesvol geflashed met een ESP32 en deze: https://github.com/atc144.../tree/main/CC2531_station firmware.

Nu probeer ik met epaper-station een PNG te uploaden. De CC2531 en het display verbinden met elkaar en het display vraagt voor een update en dan probeerd hij een PNG te verwerken maar dit lukt niet.


[...]


ik kan verder niemand vinden met dit probleem.

De PNG heb ik gemaakt met Paint en heeft een resolutie van 128x296

Ook heb ik een aantal displays met wat "vlekjes" ik dacht dat deze wel weg zouden gaan bij een display refresh maar ze blijven zijn deze pixels dan gewoon defect?
[Afbeelding]

(Ik had nu toevallig tijdens het booten een foto gemaakt maar hij verbind daarna gewoon)
Hij kan je /tmp/ dir niet vinden, draai je op windows? je kan het epaper station script aanpassen.

ergens staat een verwijzing naar /tmp/ daar moet je tmp/ van maken en dan in je epaper-station folder een tmp folder aanmaken.

Daarna werkt het, Met een .bmp ga je hetzelfde probleem krijgen :Y)

Acties:
  • +1 Henk 'm!

  • Moti
  • Registratie: Juni 2021
  • Laatst online: 06-03 12:06
oooh ik heb nu weer de png terug gezet en het werkt *O* bedankt allemaal!! <3

Acties:
  • +2 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Mocht je leuke plaatjes willen renderen voor de displays in BWR, werkt Dither It! best goed. Bij palette zwart/wit/rood selecteren, en dan krijg je een goeie preview hoe het eruit komt te zien.

Acties:
  • +1 Henk 'm!

  • Moti
  • Registratie: Juni 2021
  • Laatst online: 06-03 12:06
Hmmm, het werkt nog niet helemaal ik kan alleen .png's van paint op het display krijgen. ik had van Dither It een png die ik later nog naar de juiste resolutie gecropt heb en nu nog een png met gimp gemaakt maar dan blijft hij chunk 37 hangen en het display wordt dan wit.

excuses was vergeten het plaatje te draaien :|

[ Voor 8% gewijzigd door Moti op 20-01-2023 15:20 ]


Acties:
  • +6 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Net even de how-to video bekeken: YouTube: PC controlled E-Paper price tag custom firmware flashing How-to. Aangezien het een video is van 40 min. hier even de 'TL;DW'. Ik kan zelf vaak sneller lezen dan een hele video moeten kijken :P

CC2531 stick flashen + shelf labels flashen met custom firmware

  1. Een ESP of Arduino flashen via de Arduino IDE met deze code
  2. De ESP/Arduino aansluiten op de CC2531 stick headers (pinout hier) en de stick flashen via CC.Flash met deze firmware. Doe eerst een 'erase' en daarna een 'write'. Met alleen een write werkt het mogelijk niet
  3. CC2531 via USB aansluiten op je PC, hij zou nu herkend moeten worden als een COM-poort wat voor het flashen nog niet zo was waarschijnlijk
  4. Visual Studio Code en platform.io installeren, daarna de map ESP32_Flasher (of Arduino-Nano_Flasher) in VS Code slepen
  5. Pinout van je ESP / Arduino vs prijskaartje goedzetten in main.cpp. En in platform.ini de juiste COM-poort invoeren. Vergeet de files niet te saven(?)
  6. Linksonder in VS Code de code compileren + uploaden naar de ESP / Arduino
  7. Via cmd.exe de zbs_flasher.exe runnen. Het is verstandig om een dump maken van de originele ESL firmware:
    zbs_flasher.exe COM5 read dump.bin

    • De dump.bin openen met de hex-editor 'HxD' en MAC-adres aanpassen naar een uniek adres (eerste 8 bytes op regel 0x10) (volgorde hoe het ESL hem gebruikt is van rechts naar links, omgekeerd aan hoe je hem in de hex-editor ziet dus)
    • De dump.bin terugflashen:
    [cmd]zbs_flasher.exe COM5 writeI dump.bin[/cmd]
    ---> Niet nodig, zie post hieronder.
  8. zbs_flasher.exe COM5 MAC
    deze zet het MAC-adres op een plek in het geheugen waar deze door de custom firmware gebruikt kan worden
  9. Daarna de custom firmware erop zetten:
    zbs_flasher.exe COM5 write demo_firmware_2.9_33_V1.9.0.0.bin


Shelf label pairen met CC2531, epaper-station runnen en afbeelding naar de shelf labels sturen

  1. Download de code van epaper-station
  2. In station.py de juiste COM-poort van je CC2531-stick invoeren en evt. ook de volgende parameters aanpassen:
    • checkinDelay
    • failedCheckinsTillBlank
    • failedCheckinsTillDissoc
    Als ik het goed zie kun je deze als ook startparameters meegeven aan station.py i.p.v. te moeten aanpassen in het script zelf
  3. In dezelfde map als station.py een map 'tmp' aanmaken en het pad naar deze map invoeren in station.py (Voor Windows is het "tmp\" zonder slash aan het begin wanneer hij in dezelfde map staat als het script zelf)
  4. Gewenste afbeelding (.png) met juiste resolutie(128x296)) in dezelfde map als station.py plaatsen. De filename van de PNG moet het MAC-adres van het label zijn
  5. Het script station.py aanroepen via Python
  6. Batterijen uit label halen, batterijterminals kortsluiten, batterijen er weer in om zodoende een cold boot te forceren
  7. Label gaat booten, in de console output van het Python-script zou je moeten zien dat het label de afbeelding opvraagt
  8. Afbeelding wordt nu getoond op het label, deze zal op vast interval (ingesteld via checkinDelay) checken of er een gewijzigde afbeelding voor hem klaar staat
Vanaf 37:22 legt hij nog uit hoe je de firmware naderhand nog kunt bijwerken op het shelf label (fysieke verbinding niet nodig, kan OTA).

Als er een zwarte lijn links (ESL horizontaal) of boven (ESL verticaal)) zichtbaar is, dan is er geen verbinding met de CC2531-stick.

Bovenstaande write-up is puur een transcriptie van de video. Ik heb het zelf (nog) niet getest, wacht nog op de CC2531 stick :P Commentaar is welkom, leek mij handig om dit voor de starters hier in het topic (waaronder mijzelf :+ ) even uit te schrijven.

[ Voor 8% gewijzigd door ThinkPad op 20-01-2023 22:28 ]


Acties:
  • +2 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
ThinkPad schreef op vrijdag 20 januari 2023 @ 21:21:
Bovenstaande write-up is puur een transcriptie van de video. Ik heb het zelf (nog) niet getest, wacht nog op de CC2531 stick :P Commentaar is welkom
Wijzigingen ten opzichte van de stap-voor-stap video van atc1441:
- bij het flashen van de CC2531: eerst 'erase flash' en daarna 'write' (bij mij werkte het niet als ik alleen 'write' deed)
- je hoeft niet meer met een hex editor het mac-adres te wijzigen. Je kunt het oorspronkelijke mac-adres op de juiste locatie zetten via:
code:
1
xbs_flasher COM8 MAC

Het beste kun je dat eerst doen vóórdat je de firmware flasht.

Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Nic schreef op vrijdag 20 januari 2023 @ 22:05:
...
- je hoeft niet meer met een hex editor het mac-adres te wijzigen. Je kunt het oorspronkelijke mac-adres op de juiste locatie zetten via:
code:
1
xbs_flasher COM8 MAC

Het beste kun je dat eerst doen vóórdat je de firmware flasht.
This is the way! Ik heb dit geschreven omdat ik het wel handig vond om de oorspronkelijke macs te kunnen blijven gebruiken.

De enige manier is zelfs om dat te doen vóór je de firmware flashed, want het oorspronkelijke mac-adres is in de program flash opgeslagen. De flasher kijkt naar de eerste X bytes om te kijken wat voor type tag het is. Nadat je een custom firmware hebt geflashed, is het oorspronkelijke mac adres dus niet meer uit flash geheugen terug te halen

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Bedankt voor jullie correctie/aanvulling, ik heb het stappenplan aangepast d:)b Het leek mij ook al handiger om gewoon het originele MAC-adres te hergebruiken, die staat immers ook op de casing geprint, wel zo handig :P

Een backup veiligstellen is sowieso wel handig, dus die stap heb ik erin gelaten. Maar wat ik begreep uit de video is dat het dan gaat om het veiligstellen van de kalibratiedata, die lees je uit met de parameter readI. De volledige firmware met read, maar zit daar dan ook de kalibratiedata bij in? Al zou je in principe kunnen stellen dat het veiligstellen met readI genoeg is (want: stuk sneller uit te lezen) als je verwacht toch nooit terug te gaan naar de originele firmware...

[ Voor 30% gewijzigd door ThinkPad op 20-01-2023 22:33 ]


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Nog een hele andere vraag trouwens, hoe 'chatty' is deze firmware? Ik heb verlichting (Philips Hue) wat ook op Zigbee draait, in hoeverre levert het communiceren van/met de prijslabels mogelijk storing op?

Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

ThinkPad schreef op vrijdag 20 januari 2023 @ 22:30:
De volledige firmware met read, maar zit daar dan ook de kalibratiedata bij in? Al zou je in principe kunnen stellen dat het veiligstellen met readI genoeg is (want: stuk sneller uit te lezen) als je verwacht toch nooit terug te gaan naar de originele firmware...
De infopage/infoblock is een apart stukje flash (zie het als eeprom vs flash) waar de calibratiedata in zit; dit is een 1k groot blok wat los staat van het normale progmem flash (64k).

Je moet ze dus apart saven, want inderdaad: de calibratiedata voor de temperatuursensor zit in de infopage. Das ook alles, trouwens; je mist niet heel erg veel als je die kwijt bent, want die temperatuursensor is sowieso nogal onnauwkeurig in mijn ervaring...
Nog een hele andere vraag trouwens, hoe 'chatty' is deze firmware? Ik heb verlichting (Philips Hue) wat ook op Zigbee draait, in hoeverre levert het communiceren van/met de prijslabels mogelijk storing op?
Normaal gesproken checkt ie iedere 15 minuten in met (als de ontvangst goed is) 1 packet, en krijgt ie ook precies 1 packet terug. Als je het zeker wilt weten, moet je zorgen dat ze op verschillende kanalen kletsen, dan heb je sowieso geen probleem.

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Kan de CC2531_station firmware ook op een CC2530 geflashed worden i.p.v. een CC2531?

Heb een CC2531 stick onderweg uit China, maar bedacht mij later dat ik epaper-station in een Docker container op m'n thuisserver wil draaien (en dan afbeeldingen uploaden via FTP o.i.d.). Een USB-device is dan helemaal niet zo handig, die moet ik dan door gaan geven naar de container... Mijn idee was om een CC2530 te halen en dan met een ESP8266 deze als virtuele seriële poort via het netwerk aan te bieden zodat m'n Docker container gewoon via het netwerk erbij kan.

Verschil tussen de CC2530 en CC2531 is dat de 2531 een ingebouwde USB-to-Serial heeft. Deze zit helaas ingebouwd in de chip zelf, anders kon ik mooi aanhaken bij de serial Rx/Tx pins met m'n ESP.

[ Voor 22% gewijzigd door ThinkPad op 21-01-2023 10:19 ]


Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Niet onmogelijk maar ik denk dat je tegen een issue aan gaat lopen:

De huidige firmware voor de tags verwacht (vanwege batterijgebruik) vrij snel antwoord; als je een latency introduceert door de CC via een esp8266 te laten werken, kan het zijn dat ie stopt met luisteren voordat het antwoord verstuurd is.

Je kunt ook kijken of je een beschadigde tag als AP kunt inzetten met een esp32. De code hiervoor is nog niet af-af, maar ben er druk mee in de weer :)

Acties:
  • +1 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Ik ben gisteren net met ESP32-epaper-station aan de slag gegaan. Top stukje software! Ik heb 'm in Arduino bijna(!) aan de slag in standalone mode, na wat strubbelingen omdat ik eerst de verkeerde wifi-manager library had gebruikt (de juiste staat gelukkig vermeld in je code), en een conflict met dubbele SPIFFSEditor.cpp dat ik voor nu alleen een beetje slordig kan oplossen door dat bestand uit ESPAsyncWebServer te verwijderen.

Waar ik vandaag mee verder ging debuggen is dat het plaatje, na een checkin, nu nog niet daadwerkelijk wordt opgevraagd door de tag:
code:
1
2
Check-in from: 00:00:02:1E:CC:97:3B:1A -> Temp: 16 - Battery>=2450mV
Sending pending to: 00:00:02:1E:CC:97:3B:1A -> imgVer 7190907700615265396 osVer 0

en daarna zou de tag het plaatje dus op moeten vragen maar dat gebeurt niet. De imgVer is juist, het packet wordt correct aangemaakt, als ik het vergelijk met de station.py-versie.
Ik dacht eerst dat het script wat aan de late kant reageert (200ms de tijd, en daar gaat jouw script soms overheen). Het stuk dat de state-file wegschrijft even verwijderd, maar dat helpt nog niet. Volgende stap waar ik straks mee verder wil is om even een seriele verbinding met de ontvangende tag te solderen om te kijken waarom die het plaatje niet wil opvragen.

Wat ik uiteindelijk met ESP32-epaper-station wil, is 'm uitbreiden, zodat 'ie ook plaatjes zelf kan genereren. Ik heb al een functie geschreven die een sprite uit TFT_eSPI kan wegschrijven als 24 bits .bmp-bestand, die wil ik integreren. Eerste doel is een mooi datumdisplay.

En kijk eens naar mijn coole antenne-aansluiting. Geen idee of de impedantie klopt enzo... ;)

Afbeeldingslocatie: https://tweakers.net/i/kB6MlLoV7YHhf9BRHCJpkt40egU=/800x/filters:strip_icc():strip_exif()/f/image/NWgFHjZU3ubRqRdZLRtw3Bur.jpg?f=fotoalbum_large

Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Cool :)

Ik heb esp32-station min of meer abandoned en ben bezig met een compleet nieuw protocol voor de tags. Heb het sync'ed deel daarvan afgeschaft om het wat overzichtelijker te maken, als je het leuk vinden kun je die ook eens proberen

- Lagere latency (bij goed bereik iedere 40 seconden updates)
- Snellere updates (block transfers)
- Fixed, laag stroomverbruik (bij slechte range gaat wordt het update-interval langer om de batterij te sparen)
- Geen encryptie! (vond ik nogal zielig om die arme 8051 core AES te laten doen)

Laatste versie is hier geduwd:

https://github.com/jjwbruijn/solum-esl-alternative-proto

Nog een klein plaatje van het stroomverbruik voor deze firmware: je ziet vrij duidelijk dat ie z'n check-ins stretched als het meer moeite kost om het AP te bereiken. Mocht je AP helemaal niet bereikbaar zijn of uit staan, zakt het stroomverbruik naar +- 5µA (dan checkt ie ieder half uur om te kijken of er weer een AP is)
Afbeeldingslocatie: https://tweakers.net/i/WiAUni-PZGNiYSof109WuPIOVSg=/232x232/filters:strip_exif()/f/image/CRJnALEkqpTGxf9Dy44M5mZT.png?f=fotoalbum_tile

[ Voor 36% gewijzigd door Corn op 21-01-2023 11:41 . Reden: plaatje ]


Acties:
  • +1 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
hm. Geen associate meer nodig, en image versie gebaseerd op md5 hash in plaats van epoch. Dat ziet er eigenlijk inderdaad nog beter uit dan esp32-station. Eventueel zou het fijn zijn om in de communicatie mee te kunnen geven wat de 'TTL' van een plaatje is. Bij een plaatje dat bv maar 1x per dag of 1x per uur wijzigt, kan de tag langer wachten om te checken of er een update is. De complexe sleep-timing van de tag-fw heb ik zo snel nog even niet doorgrond.

Acties:
  • +3 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Nic schreef op zaterdag 21 januari 2023 @ 12:22:
hm. Geen associate meer nodig, en image versie gebaseerd op md5 hash in plaats van epoch. Dat ziet er eigenlijk inderdaad nog beter uit dan esp32-station. Eventueel zou het fijn zijn om in de communicatie mee te kunnen geven wat de 'TTL' van een plaatje is. Bij een plaatje dat bv maar 1x per dag of 1x per uur wijzigt, kan de tag langer wachten om te checken of er een update is. De complexe sleep-timing van de tag-fw heb ik zo snel nog even niet doorgrond.
TTL is een goed idee! Kan stroomverbruik drastisch naar beneden brengen, en vermindert RF pollution...

Qua timing:
Tag bewaart voor de laatst 8 check-ins hoeveel pogingen er nodig waren om het AP te bereiken, en berekent daar een gemiddelde delay uit die ie nodig heeft om een average verbruik van +- 9µA te handhaven.

9µA geeft een battery-life van een jaar of 7 bij een volle batterij, zonder het tekenen van plaatjes, bij de 1.54". Voor de 2.9" een jaar of 14 :)

Acties:
  • +2 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Corn schreef op zaterdag 21 januari 2023 @ 12:29:
[...]
TTL is een goed idee! Kan stroomverbruik drastisch naar beneden brengen, en vermindert RF pollution...
Mini update: TTL werkt :)

Acties:
  • 0 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Ik zag het al, top! In de tag-fw ben ik nog bezig met foutzoeken: bij het opvragen van een plaatje blijft de tag packets opvragen, met opeenvolgende id’s ondanks dat er maar drie packets nodig zijn, alsof ‘ie een veel grotere filesize verwacht dan doorgegeven. Ben er nog niet aan toegekomen om extra debug-info te printen in de firmware, ik ga er eind van de week induiken. Leuke puzzel, en leerzaam!

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Ik vind het hier nog wel aardig rustig, gezien de vele pakketjes die @Corn de deur uit heeft gedaan :P

Acties:
  • +2 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Nic schreef op maandag 23 januari 2023 @ 12:46:
Ik zag het al, top! In de tag-fw ben ik nog bezig met foutzoeken: bij het opvragen van een plaatje blijft de tag packets opvragen, met opeenvolgende id’s ondanks dat er maar drie packets nodig zijn, alsof ‘ie een veel grotere filesize verwacht dan doorgegeven. Ben er nog niet aan toegekomen om extra debug-info te printen in de firmware, ik ga er eind van de week induiken. Leuke puzzel, en leerzaam!
Kort verhaal:
Die is hopelijk gefixed in de laatste versie :) Binaries voor de verschillende schermpjes zitten erbij.

Lang, technisch verhaal:
Om 'track' te houden op de download gebruikt ie ruwweg twee statussen: 'dataRemaining' en 'lastBlock'
De 'lastBlock' variable werd 'true' gezet, maar na een kort tukje van de CPU werd die status alsnog 'false'. dataRemaining telde vrolijk terug door 0 heen(overflow), en kwam tot de conclusie dat er nog steeds data te downloaden was. Heeft ermee te maken dat lastBlock een lokale variabele was, en die wordt blijkbaar op een andere plaats bewaard. Nu is lastBlock een global, en die wordt op een plaats in het geheugen bewaard die wél een CPU sleep overleeft, is het idee. Een verandering eerder in de code zorgde ervoor dat lastBlock toevallig net het andere segment in geduwd werd. Het werd nog spannender: Voor 1.54" werkte het zonder problemen, voor 2.9" telde ie door de 0 heen.

'Jamaar Corn, lokale variabelen gaan toch áltijd op de stack?` Klopt. Hier niet... (altijd) :P Het enigzins byzantijnse model van de 8051 zorgt dat het hier anders werkt. Kan niet zeggen dat ik alles snap, maar dit is waar het op neerkomt:
code:
1
2
uint8_t __xdata foo[8];  // content overleeft een CPU sleep NIET
uint8_t __xdata bar[8] = {0}; // content overleeft een CPU sleep!

Geinitialiseerde variables komen in een ander segment terecht, en daar gaat de CPU anders mee om na een slaapje

Dit soort dingen maken debuggen niet echt makkelijker... Soms is het een beetje een voodoo-ritueel, waarbij het verschuiven van code de boel ineens piepend en krakend vast laat lopen, of waar je code ineens van je kostbare idata af gaat snoepen. Best uitdagend!

Acties:
  • +1 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 22-04 19:24
Ah, de heerlijke wereld van 8051 en SDCC >:)

@Corn Ik wil je proberen te helpen, maar ik kom, helaas, behoorlijk tijd te kort. Wat ik wel aanraad is om in de mailing list van SDCC te gaan. De mannen daar zijn heel behulpzaam en het zijn absoluut geen spam lists. Er zijn maanden dat er vanuit die lists geen enkele mail komt.
De developers van SDCC zijn zelfs zo dat als jij echt tegen een specifiek probleem aan loopt ze dit zelfs in een build van SDCC voor je willen oplossen.

Acties:
  • +3 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
Het kan zijn dat de MCU niet z'n gehele RAM 'battery-backed', waardoor plaatsing van variabelen op specifieke locaties dus voor problemen zorgt. Je zou het kunnen testen door het gehele geheugen op te vullen met een bekend patroon (bijvoorbeeld optellend 0 t/m 255), daarna goede tijd lang sleepen (zodat de ongevoede SRAM cellen leeg kunnne lopen), en na sleep geheugen contents printen. Het punt waarbij er bit errors komen zou een indicatie kunnen geven.. Blijft wel beetje nattevinger werk, want het maakt erg uit hoe lang je sleept en in mindere mate ook welk patroon je gebruikt om te testen

Sommige MCUs hebben registers voor om te kiezen hoeveel battery backed is.. vooral als er erg veel RAM aanwezig is (bijvoorbeeld nieuwe MCUs die >2uA slaapstroom hebben door 64kiB RAM).
Maar voor een 8051 met paar kB RAM zou ik dat niet zou verwachten, hoewel het is niet uit te sluiten want volgens mij is er geen datasheet van bekend :)

Ik heb deze 2 weekenden het nog erg druk, maar wil daarna eens kijken wat ik met de labeltjes kan doen. Ik moet wel zeggen dat ik het programmeren op een 8051 zonder debugger wel met enige tegenzin tegemoet ga, maar ik kan het ook als uitdaging bekijken :) Ik zou ook eens zo'n programming jig moeten maken zodat ik niet op elk label draadjes hoef te plaatsen.

Waarschijnlijk gaan er ook wel een paar labeltjes die omgebouwd worden voor gebruik met een ESP32. Er zijn nog wel e.e.a outputs die ik van home assistant wil kunnen weergeven in huis.

Acties:
  • 0 Henk 'm!

  • TmcM
  • Registratie: April 2017
  • Laatst online: 21:51
Ik probeer een dump te maken van de originele ESL firmware, maar ik krijg de volgende foutmelding:Afbeeldingslocatie: https://tweakers.net/i/uApSYpSpPhWepfYIG8vNqBp3VlQ=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/MLa4n0wZibIB6yLqLap9P76m.png?f=user_large
Ik heb de ESP geflasht en aangesloten, dus ik begrijp niet waar dit probleem vandaan komt. Is er iemand die weet hoe ik dit probleem kan oplossen?

Acties:
  • +1 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Dat heb ik ook wel eens, dat ik na het slapen wat vergeten ben. ;)

Leve de beschrijving van dmitry, zo te zien is het naar keuze of xram wel of niet bewaard moet worden tijdens het slapen.

https://dmitry.gr/?r=05.P...d23bf3da5ddeb07952dcc213a
Some experiments showed that PCON's lower two bits (idle and sleep) work as expected by the 8051 sleep (though lower power sleep is attainable). I also noted that bit 4 being set disables XRAM. This saves some power in sleep mode!

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Vuikie schreef op maandag 23 januari 2023 @ 13:41:
Ah, de heerlijke wereld van 8051 en SDCC >:)

@Corn Ik wil je proberen te helpen, maar ik kom, helaas, behoorlijk tijd te kort. Wat ik wel aanraad is om in de mailing list van SDCC te gaan. De mannen daar zijn heel behulpzaam en het zijn absoluut geen spam lists. Er zijn maanden dat er vanuit die lists geen enkele mail komt.
De developers van SDCC zijn zelfs zo dat als jij echt tegen een specifiek probleem aan loopt ze dit zelfs in een build van SDCC voor je willen oplossen.
Will do! Maar dan moet ik wel écht 100% zeker weten dat het niet eigen stommiteit is (dat is het meestal wel)... Het oplossen van specifieke problemen is super aardig van die gasten, maar is waarschijnlijk ook meteen de reden dat er geen versie van SDCC hetzelfde werkt... Beetje een moving target om tegenaan te compilen :)
Hans1990 schreef op maandag 23 januari 2023 @ 14:58:
Het kan zijn dat de MCU niet z'n gehele RAM 'battery-backed', waardoor plaatsing van variabelen op specifieke locaties dus voor problemen zorgt. Je zou het kunnen testen door het gehele geheugen op te vullen met een bekend patroon (bijvoorbeeld optellend 0 t/m 255), daarna goede tijd lang sleepen (zodat de ongevoede SRAM cellen leeg kunnne lopen), en na sleep geheugen contents printen. Het punt waarbij er bit errors komen zou een indicatie kunnen geven.. Blijft wel beetje nattevinger werk, want het maakt erg uit hoe lang je sleept en in mindere mate ook welk patroon je gebruikt om te testen

Sommige MCUs hebben registers voor om te kiezen hoeveel battery backed is.. vooral als er erg veel RAM aanwezig is (bijvoorbeeld nieuwe MCUs die >2uA slaapstroom hebben door 64kiB RAM).
Maar voor een 8051 met paar kB RAM zou ik dat niet zou verwachten, hoewel het is niet uit te sluiten want volgens mij is er geen datasheet van bekend :)
Goeie suggestie! Zat hier zelf ook aan te denken, ook in combinatie met de suggestie van @Nic leek me dat een goeie kanshebber Ben even met een schone lei begonnen en een héél basic programmetje die een regenboog naar xdata schrijft. Alle data blijft behouden, tenzij het een lokale variabele is... Érg mysterieus.

Gelukkig best redelijk omheen te werken...
TmcM schreef op maandag 23 januari 2023 @ 19:38:
Ik probeer een dump te maken van de originele ESL firmware, maar ik krijg de volgende foutmelding:[Afbeelding]
Ik heb de ESP geflasht en aangesloten, dus ik begrijp niet waar dit probleem vandaan komt. Is er iemand die weet hoe ik dit probleem kan oplossen?
Lastige van dit issue is dat de flasher je écht niet meer kan vertellen dan dit; hij krijgt geen verbinding met de tag. Niets meer niet minder. Check alle verbindingen dubbel, driedubbel, te beginnen met de power rails. Op de discord is deze ook al een aantal keer voorbij gekomen; in álle gevallen bleek het een verkeerd pinnetje te zijn :)

Acties:
  • 0 Henk 'm!

  • KleineAap
  • Registratie: September 2008
  • Laatst online: 22-04 20:03
@TmcM Ook bij mij kwam er zo'n error langs, ik dacht "ach dat reset pinnetje, alleen SPI moet genoeg zijn". Dat was dus niet zo, nu werkt het als een zonnetje als je inderdaad SPI MoSi, SPI MiSo, SPI SS, SPI CLK en Reset aansluit.

Ik zit nu vast op het punt dat m'n ESL lekker aan het updaten is en Associate Ready laat zien (en dan heel de tijd de display blijft verversen) maar waarbij de display en epaper station niet willen praten. Heb twee CC2531, beide voorzien van TiMac firmware, maar of de stick doet het niet zoals verwacht, of ik doe iets fout met epaper station. Iemand hier wat tips waar ze zelf tegen aan liepen? Ik draai de boel in WSL (onder Mac OS werkte het ook niet trouwens).

The intersection of technology and creativity


Acties:
  • +1 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 08:36
@KleineAap Het eerste waar ik naar zou kijken is of je wel met de juiste seriële poort praat.

Ik ken WSL niet, maar onder linux kan je dat gemakkelijk zien in /dev/serial. Bij mij is dat:
usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00nnnnnnnnn-if00 -> ../../ttyACM0

Zegt station.py nog iets na de melding "Station started"?

Enige probleem dat ik had was dat ik de temp directory voor images niet had aangemaakt, maar dat merk je pas als je een image wil versturen. Associeren gaat dan wel.

Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Ik wacht nog op de CC2531 dongle. In de tussentijd maar een beetje aan het klooien met Node-RED om te kijken hoe ik de data die ik wil tonen uit m'n home automation kan halen en bedenken wat ik wil tonen op de ESL's.

Afbeeldingslocatie: https://tweakers.net/i/R29XBG6AeHomXbVwjZkAurdvFmM=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/JXOXAMyPxHUPfeIIrjJpGdSR.png?f=user_large
En de flow code:
code:
1
[{"id":"e0357ec7.4280f","type":"inject","z":"eeb82e98482e124f","name":"blank image","props":[{"p":"baseimage","v":"{\"w\":296,\"h\":128,\"background\":\"#fff\"}","vt":"json"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":170,"y":380,"wires":[["6db601a51cc7db02"]]},{"id":"f660db34.b733a8","type":"jimp-image","z":"eeb82e98482e124f","name":"Batch print texts","data":"baseimage","dataType":"msg","ret":"img","parameter1":"text","parameter1Type":"msg","parameter2":"0","parameter2Type":"num","parameter3":"0","parameter3Type":"num","parameter4":"Text line 1","parameter4Type":"str","parameter5":"HORIZONTAL_ALIGN_LEFT","parameter5Type":"AlignX","parameter6":"VERTICAL_ALIGN_TOP","parameter6Type":"AlignY","parameter7":"","parameter7Type":"auto","parameter8":"","parameter8Type":"auto","sendProperty":"payload","parameterCount":1,"jimpFunction":"batch","selectedJimpFunction":{"name":"batch","fn":"batch","description":"apply one or more functions","parameters":[{"name":"options","type":"json","required":true,"hint":"an object or an array of objects containing {\"name\" : \"function_name\", \"parameters\" : [x,y,z]}.  Refer to info on side panel}"}]},"x":580,"y":380,"wires":[["288cd879.0b9ed8","f3cc5dcb.4019f"]],"icon":"font-awesome/fa-image"},{"id":"f3cc5dcb.4019f","type":"image viewer","z":"eeb82e98482e124f","name":"","width":"300","data":"payload","dataType":"msg","active":true,"x":750,"y":420,"wires":[[]]},{"id":"6db601a51cc7db02","type":"function","z":"eeb82e98482e124f","name":"Set display text","func":"var moment = global.get(\"momentModule\");\nvar date = moment().format(\"ddd DD MMM. YYYY HH:mm:ss\");\nvar binnen = String(global.get(\"inside\"));\n\nmsg.text = [{\n    \"name\": \"print\",\n    \"parameters\": [\"FONT_SANS_16_BLACK\", 10, 0, {\n        \"text\": \"Stroom:                        \" + global.get(\"bruto_verbruik\") + \" W / 5.3 kWh\",\n        \"alignmentX\": \"Jimp.HORIZONTAL_ALIGN_LEFT\",\n        \"alignmentY\": \"Jimp.VERTICAL_ALIGN_TOP\"\n    }, -1, -1]\n}, {\n    \"name\": \"print\",\n    \"parameters\": [\"FONT_SANS_16_BLACK\", 10, 20, {\n        \"text\": \"Gas:                              \" + (global.get(\"gas_today\").toFixed(1)) + \" m3\",\n        \"alignmentX\": \"Jimp.HORIZONTAL_ALIGN_LEFT\",\n        \"alignmentY\": \"Jimp.VERTICAL_ALIGN_TOP\"\n    }, -1, -1]\n}, {\n    \"name\": \"print\",\n    \"parameters\": [\"FONT_SANS_16_BLACK\", 10, 40, {\n        \"text\": \"Ventilatie:                    \" + global.get(\"ventilation_level\") + \"/3\",\n        \"alignmentX\": \"Jimp.HORIZONTAL_ALIGN_LEFT\",\n        \"alignmentY\": \"Jimp.VERTICAL_ALIGN_TOP\"\n    }, -1, -1]\n}, {\n    \"name\": \"print\",\n    \"parameters\": [\"FONT_SANS_16_BLACK\", 10, 60, {\n        \"text\": \"Buitentemperatuur:    \" + global.get(\"outside\") + \"°C\",\n        \"alignmentX\": \"Jimp.HORIZONTAL_ALIGN_LEFT\",\n        \"alignmentY\": \"Jimp.VERTICAL_ALIGN_TOP\"\n    }, -1, -1]\n}, {\n    \"name\": \"print\",\n    \"parameters\": [\"FONT_SANS_16_BLACK\", 10, 80, {\n        \"text\": \"Binnentemperatuur:  \" + binnen + \"°C\",\n        \"alignmentX\": \"Jimp.HORIZONTAL_ALIGN_LEFT\",\n        \"alignmentY\": \"Jimp.VERTICAL_ALIGN_TOP\"\n    }, -1, -1]\n}, {\n    \"name\": \"print\",\n    \"parameters\": [\"FONT_SANS_10_BLACK\", 0, 110, {\n        \"text\": \"Updated: \" +date,\n        \"alignmentX\": \"Jimp.HORIZONTAL_ALIGN_RIGHT\",\n        \"alignmentY\": \"Jimp.VERTICAL_ALIGN_TOP\"\n    }, -1, -1]\n}]\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":380,"wires":[["f660db34.b733a8"]]},{"id":"288cd879.0b9ed8","type":"jimp-image","z":"eeb82e98482e124f","name":"written.bmp","data":"payload","dataType":"msg","ret":"img","parameter1":"ESL_test.bmp","parameter1Type":"str","parameter2":"true","parameter2Type":"bool","parameter3":"0","parameter3Type":"str","parameter4":"RESIZE_NEAREST_NEIGHBOR","parameter4Type":"Jimp","parameter5":"","parameter5Type":"","parameter6":"","parameter6Type":"","parameter7":"","parameter7Type":"","parameter8":"","parameter8Type":"","sendProperty":"payload","parameterCount":1,"jimpFunction":"write","selectedJimpFunction":{"name":"write","fn":"write","description":"Write to file. NOTE: You can specify an alternative file extension type to change the type. Currently support types are jpg, png, bmp.","parameters":[{"name":"filename","type":"str","required":true,"hint":"Name of the file","defaultType":"str"}]},"x":770,"y":380,"wires":[[]],"icon":"font-awesome/fa-image"}]


De flow maakt dan deze 128x296 BMP-afbeelding:

Afbeeldingslocatie: https://tweakers.net/i/aKFNQp6JFzchEHwjvfoKPYG4sm0=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/ZrkpAyDY720PPwMv52DBVDr2.png?f=user_large

In Node-RED heb je node-red-contrib-image-tools nodig. Je kunt met die library ook plaatjes in andere plaatjes zetten, misschien dat ik daar t.z.t nog wat mee ga doen met https://materialdesignicons.com (zonnetje bij de kWh voor zonnestroomopwek etc). Je kunt ook custom fonts inladen las ik al, kan ook nog interessant zijn voor optimale leesbaarheid.

Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Goed werk! Let wel op dat je nu een plaatje maakt met grijstinten, dat gaat er niet zo mooi uit zien als je misschien zou denken. Als je 'm vooraf maakt met een font zonder grijstinten/blur/cleartype etc, ziet dat er mooier uit. De originele versie van dmitry gebruikt custom LUT's om grijstinten op het display te toveren, maar dat is volgens mij niet echt compatible meer met de epaper-station die we nu gebruiken.

Acties:
  • +2 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Hardware-mod: voeg een IoT-button toe aan je tag. Plaats een pushbutton tussen de TEST pin en GND, met daaraan parallel een condensator van ongeveer 100nF. Je kunt de button inbouwen in de tag als je een batterij-positie opoffert; ze staan parallel dus dat moet geen probleem zijn. Maar misschien weet iemand nog een beter idee voor bijvoorbeeld een button aan de bovenkant in plaats van de achterkant.

Een kleine toevoeging aan solum-esl-alternative-proto van @Corn triggert met de button een interrupt waardoor de tag direct wakker wordt en een request doet bij het access point (en aan het accesspoint doorgeeft dat die request via de button getriggerd is). Wat je er daar mee doet moet je vervolgens zelf nog toevoegen. ;)

De wijzigingen aan de firmware staan in de fork op https://github.com/nlimper/solum-esl-alternative-proto . Maar zie het als een proof of concept, want omdat het me vooralsnog niet lukt om de AP-fw te compilen kan ik de struct niet uitbreiden met buttonState. Daarvoor heb ik protoVer voorlopig maar even misbruikt.
Ik ga er eerst maar even aan werken om die AP-fw te kunnen compilen, want dit is zo best onhandig :)

Afbeeldingslocatie: https://tweakers.net/i/mbayLWFBS2A5zmUnb-Ha0m-Oor8=/232x232/filters:strip_icc():strip_exif()/f/image/v2s5e6XrAskumBUiU45zq2Lq.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/CqkhSNSb67qtnLjDWe6Y9LpT42s=/232x232/filters:strip_icc():strip_exif()/f/image/XLrPoVdTO1CeDGeYotzDccBD.jpg?f=fotoalbum_tile

Acties:
  • 0 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Corn schreef op vrijdag 27 januari 2023 @ 16:10:
De originele versie van dmitry gebruikt custom LUT's om grijstinten op het display te toveren, maar dat is volgens mij niet echt compatible meer met de epaper-station die we nu gebruiken.
Een van de ideeen die ik nog heb is om daarnaar te kijken. In de firmware 026 van atc1441 zijn de LUT's voor de grijstinten nog aanwezig, in fw 033 niet meer, dus ik vermoed dat dat wel te porten is naar jouw versie. Het zou leuk zijn als je bij het sturen van het plaatje ook kunt meegeven of je de standaard zwart/wit/rood LUT wilt zoals nu, of zwart/grijstinten/wit/rood zoals de firmware van dmitry, of alleen zwart en wit zodat de tag nog sneller zal updaten.

Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Nic schreef op vrijdag 27 januari 2023 @ 16:13:
Hardware-mod: voeg een IoT-button toe aan je tag. Plaats een pushbutton tussen de TEST pin en GND, met daaraan parallel een condensator van ongeveer 100nF. Je kunt de button inbouwen in de tag als je een batterij-positie opoffert; ze staan parallel dus dat moet geen probleem zijn. Maar misschien weet iemand nog een beter idee voor bijvoorbeeld een button aan de bovenkant in plaats van de achterkant.
...
De wijzigingen aan de firmware staan in de fork op https://github.com/nlimper/solum-esl-alternative-proto . Maar zie het als een proof of concept, want omdat het me vooralsnog niet lukt om de AP-fw te compilen kan ik de struct niet uitbreiden met buttonState. Daarvoor heb ik protoVer voorlopig maar even misbruikt.
Ik ga er eerst maar even aan werken om die AP-fw te kunnen compilen, want dit is zo best onhandig :)
Very cool! Houd wel het stroomverbruik in de gaten als je dit soort dingen gaat doen; de mcu reageert niet altijd even logisch/voorspelbaar op pull-ups bijvoorbeeld.

1 batterij opgeven is niet echt een issue voor het meeste gebruik; daarnaast kun je in dit scenario het interval een heel stuk ophogen :)

Stuur maar een PR als het klaar is!
Nic schreef op vrijdag 27 januari 2023 @ 16:20:
Een van de ideeen die ik nog heb is om daarnaar te kijken. In de firmware 026 van atc1441 zijn de LUT's voor de grijstinten nog aanwezig, in fw 033 niet meer, dus ik vermoed dat dat wel te porten is naar jouw versie. Het zou leuk zijn als je bij het sturen van het plaatje ook kunt meegeven of je de standaard zwart/wit/rood LUT wilt zoals nu, of zwart/grijstinten/wit/rood zoals de firmware van dmitry, of alleen zwart en wit zodat de tag nog sneller zal updaten.
Probleem van grijstinten is dat de filesize explosief omhoog gaat... Daarnaast blijven LUT's die goed werken voor grijstinten (Zeker in combinatie met BWR epd-panels) een beetje black magic fuckery... Erg lastig om daar een sensible trade-off te doen. Ook kost het enkele minuten om je display te updaten met grijstinten :) Daarnaast heeft het scherm standaard een stuk of wat waveforms/LUT's ingebouwd om over een brede temperature-range te werken. Custom LUT's zijn dat meestal niet...

Ben zelf bezig geweest met een simpele library om tekst op het scherm te krijgen, zodat ik een UI kan bouwen voor als je de tag voor het eerst opstart.
Afbeeldingslocatie: https://tweakers.net/i/WbNP5UDCuhe75PPUftaY1Zm7l7c=/232x232/filters:strip_icc():strip_exif()/f/image/n2KgmHgUHSR6jNTXD5cNmkB3.jpg?f=fotoalbum_tile

Is nog niet zo simpel om niet-fixed width fonts in meerdere richtingen op het scherm te krijgen :) Heb 'm nu zover dat ie ze rechtstreeks naar de EPD-framebuffer stuurt, zodat het niet teveel geheugen opsnoept.

Heb 'm ook zover dat ie ze met een verkortte refresh-cycle naar het scherm stuurt (met wat lichte ghosting). Moet het afmaken en pushen :)

Acties:
  • 0 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Corn schreef op vrijdag 27 januari 2023 @ 16:38:
Very cool! Houd wel het stroomverbruik in de gaten als je dit soort dingen gaat doen; de mcu reageert niet altijd even logisch/voorspelbaar op pull-ups bijvoorbeeld.

Stuur maar een PR als het klaar is!
Done! :)
Hm, dat stroomverbruik, daar zit wat in. Ik heb helaas niks in huis dat micro-amperes kan meten. In ieder geval kun je het met #define HAS_BUTTON aan en uit zetten.
Ben zelf bezig geweest met een simpele library om tekst op het scherm te krijgen, zodat ik een UI kan bouwen voor als je de tag voor het eerst opstart.
Cool! Ben benieuwd!

Acties:
  • +2 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Nic schreef op zaterdag 28 januari 2023 @ 01:02:
[...]
Done! :)
Hm, dat stroomverbruik, daar zit wat in. Ik heb helaas niks in huis dat micro-amperes kan meten. In ieder geval kun je het met #define HAS_BUTTON aan en uit zetten.
Pulled! Mocht je vaker met low-power speelgoed willen spelen, kan ik van harte de Nordic PPK2 aanbevelen. Z'n geld dubbel en dwars waard.

Hier en hier wat demonstraties.

Acties:
  • +8 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Intussen zijn mijn printplaatjes binnen. Daarmee kan ik een display aansturen via SPI (bv met een esp32). Het was het eerst echte project dat ik in China heb laten maken, en ik ben niet ontevreden: slechts twee foutjes: eentje door een slordigheid van mezelf, en eentje door een fout in het schema dat ik had gevonden. Gelukkig wel eenvoudig op te lossen: een weerstandje verwijderen, en een condensator wisselen, en dan werkt 'ie. :D
Ik kon twee of vijf panels laten bestuken, en omdat er nauwelijks prijsverschil is (het hoogste zijn de opstartkosten) en ik met onbestuktje pcb's niks kan (vooral de connector is echt te klein om zelf te solderen) heb ik de gok genomen en er vijf gedaan.

En nu wat toepassingen maken :-)

Afbeeldingslocatie: https://tweakers.net/i/bHlwAGBSQ00ab1BjxIhMW_Xurow=/800x/filters:strip_icc():strip_exif()/f/image/9QNTd4yYJMZjxOLuKrSyLPuJ.jpg?f=fotoalbum_large

Acties:
  • +1 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 08:36
Na wat experimenten met de demo firmware en een eigen variant (data versturen via de radio en daarna staafdiagram tekenen in de tag) nu maar eens het alternatieve protocol gebuild. Dat ziet er wel heel fraai uit zo!

Eerst probeerde ik het via Arduino IDE, maar dat viel nogal tegen. Uiteindelijk met PlatformIO was het zo gedaan.

Afbeeldingslocatie: https://tweakers.net/i/_ItOiZGqtwJJTzwlQsC22parlrg=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/qHlegJKElMvzGNtZTYoT8qww.png?f=user_large

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Gaaf om te zien dat het werkt! Nic heeft al behoorlijk wat tijd in de ESP32 kant gestoken, en dat zie je best terug. De Tag-kant is redelijk stabiel, alleen zit er nog wat bugs in de manier waarop de 1.54" firmware met LUT's om gaat, wordt nog gefixed! (probleem is dat er meerdere types schermpjes zijn voor dezelfde 1.54" tag)

Acties:
  • +3 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
@Albert_x hee, verschijnen er bij jou geen preview-plaatjes? Zo nee, welke browser gebruik je?

Afbeeldingslocatie: https://tweakers.net/i/QokTV4vPBalFS35_C-nmh56tn78=/800x/filters:strip_exif()/f/image/nJJula8J4OJcuAVeSrFeYrow.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 08:36
@Nic Nee, op mijn desktop (Ubuntu 20.04 met firefox) zie ik inderdaad geen plaatjes. Op mijn telefoon wel, zie ik nu. Nog mooier!
Het lijkt in de geconverteerde images te zitten, want ik krijg ook geen plaatje in het ESP Editor scherm in de current/ directory. En als ik een plaatje ophaal uit epaper-station/tmp kan ik dat ook niet openen met "eog", die zegt "BMP image has bogus header data".

Update: zwart wit plaatje werkt wel (test29.bmp). De meegeleverde plaatjes met rood werken niet. Ook het "current date" plaatje verschijnt niet.

[ Voor 15% gewijzigd door Albert_x op 09-02-2023 11:27 ]


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Die interface ziet er echt supertof en bruikbaar uit zeg! Dat is dit project? https://github.com/jjwbruijn/solum-esl-alternative-proto

Ik ben nog steeds wachtende op mijn CC2531 van AliExpress :P Hopelijk komt die gauw binnen, de tags liggen hier nu werkeloos te zijn :(

Was onlangs trouwens bij een Lidl in Duitsland, ik zag daar ESL van bijna A4-formaat, die waren ook wel erg gaaf! Je kijkt nu toch met een andere blik naar die dingen haha >:)

@Nic Heb je nog van die breakout bordjes over? Ik zou er wel 1-2 willen overnemen om een bare EPD aan te kunnen sturen met Tasmota/ESPHome ofzo :)

Acties:
  • +1 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 08:36
@ThinkPad Ja, dat is inderdaad dat project van github. Je hebt er ook geen CC2531 voor nodig, want het gebruikt een tag als zigbee access point. Je kan vandaag al aan de slag! :)

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Maar wel een ESP32 en die is ook nog onderweg :')

[ Voor 14% gewijzigd door ThinkPad op 09-02-2023 10:08 ]


Acties:
  • +2 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Albert_x schreef op donderdag 9 februari 2023 @ 09:49:
@Nic Nee, op mijn desktop (Ubuntu 20.04 met firefox) zie ik inderdaad geen plaatjes. Op mijn telefoon wel, zie ik nu. Nog mooier!
Het lijkt in de geconverteerde images te zitten, want ik krijg ook geen plaatje in het ESP Editor scherm in de current/ directory. En als ik een plaatje ophaal uit epaper-station/tmp kan ik dat ook niet openen met "eog", die zegt "BMP image has bogus header data".
De BMP-files die naar het display worden gestuurd zijn 2 bits per pixel, om ze zo klein/eenvoudig mogelijk te houden. Wikipedia zegt daarover: "In the original OS/2 DIB, the only four legal values of color depth were 1, 4, 8, and 24 bits per pixel (bpp). Contemporary DIB Headers allow pixel formats with 1, 2, 4, 8, 16, 24 and 32 bits per pixel (bpp). GDI+ also permits 64 bits per pixel.". Helaas kan heel veel software niet omgaan met 2 bits per pixel. In Photoshop worden ze ook niet geladen, en zelfs ImageMagick zegt "unrecognized bits per pixel". Alleen Chrome gaat er wel goed mee om. Helaas is er in het filesystem van de esp32 niet voldoende ruimte om voor alle tags ook nog eens een 24 bits plaatje te bewaren, dus ik vrees dat de plaatjes 'chrome only' blijven.

Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

De laatste pakketjes zijn zojuist klaargemaakt, helaas ben ik nu helemaal door de B-serie tags heen!

Acties:
  • +4 Henk 'm!

  • Nic
  • Registratie: April 2005
  • Laatst online: 22-04 16:05
Nog twee knutsels om het werken met de tags makkelijker te maken:

De batterijtester was even snel in vijf minuten gemaakt met onderdelen die ik nog had liggen (het voltmetertje van Aliexpress kost minder dan twee euro).

In afwachting van de levering van 1,3mm pogo pins voor de 3d-jig, heb ik een alternatief adaptertje gemaakt voor het programmeren met 1,0mm pins. Die passen door de gaatjes van een standaard gaatjes-pcb, en als je ze een beetje buigt dan werkt het prima.

Hebben jullie je tags al aan de gang? Ik ben erg benieuwd met wat voor creatieve toepassingen en experimenten jullie bezig zijn!

Afbeeldingslocatie: https://tweakers.net/i/xoJYz2fDHL2QGCxvSIZCQQywzqQ=/232x232/filters:strip_icc():strip_exif()/f/image/raYqtO1bb1hHecMK7GqD76N8.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/zRzvfvNsf1C5cCaCjyC6GSNa_9A=/232x232/filters:strip_icc():strip_exif()/f/image/itYUaUcggeKlySeFErx914C0.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/rC0b88ihFAX8BygvJ4rxZvSAUp0=/232x232/filters:strip_icc():strip_exif()/f/image/zbRDj0s9urFaRgGg9a7SajDN.jpg?f=fotoalbum_tile
Afbeeldingslocatie: https://tweakers.net/i/0NVra5SqycSv1ujjlofy2xS6fGw=/232x232/filters:strip_icc():strip_exif()/f/image/aLVgTo06c9i25LyW2QgfE72v.jpg?f=fotoalbum_tile

Acties:
  • +3 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Afbeeldingslocatie: https://tweakers.net/i/Kos1VaeScXb8_66dFk_jOaWV_Bc=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/vLTUNTlRWReSkoSNhnHyy4pE.jpg?f=user_large

Hier ook de eerste eigen tekst erop kunnen krijgen. Breakout bordje van @Nic overgenomen en een Wemos D1 Mini (ESP8266) eraan gehangen.

Stukje demo code (thnx Nic):
C++:
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
#include <GxEPD2_BW.h>
#include <GxEPD2_3C.h>
//#include <Fonts/FreeMonoBold9pt7b.h>
#include <Fonts/FreeMonoBold24pt7b.h>

// MOSI: D7
// CLK: D5
// CS: D8
// DC: D0
// RST: D4
// BUSY: D1

GxEPD2_3C<GxEPD2_290_C90c, GxEPD2_290_C90c::HEIGHT> display(GxEPD2_290_C90c(/*CS=5*/ D8, /*DC=*/ D0, /*RST=*/ D4, /*BUSY=*/ D1)); 

void setup() {
    display.init();
    display.setFullWindow();
    display.setRotation(3);

    display.fillScreen(GxEPD_WHITE);
    //display.setFont(&FreeMonoBold9pt7b);
    display.setFont(&FreeMonoBold24pt7b); 
    display.setTextSize(1);
    display.setTextColor(GxEPD_BLACK);
    display.setCursor(10, 120);
    display.print("Hallo");
    display.display(false);

}

void loop() {
}
Ik heb ook nog wat zitten testen met ESPHome, ik krijg daar wel tekst op het schermpje, maar dit gaat nog niet helemaal jofel. Ik heb allemaal rode static ruis op het schermpje. Heeft iets te maken met dat BWR-displays nog niet ondersteund zijn o.i.d. https://github.com/esphome/feature-requests/issues/239
Dit is wat ik tot nu toe had en enigzins output opleverde:
YAML:
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
esphome:
  name: esp-epaper
  platform: esp8266
  board: d1_mini

logger:
 
font:
  - file: 'fonts/Comic Sans MS.ttf'
    id: font1
    size: 48

spi:
  clk_pin: D5
  mosi_pin: D7

display:
  - platform: waveshare_epaper
    cs_pin: D8
    dc_pin: D0
    busy_pin: D1
    reset_pin: D4
    model: 2.90inv2
    rotation: 270°
    full_update_every: 1
    update_interval: 24h
    lambda: |-
      it.print(0, 0, id(font1), "Tweakers.net");
Hopelijk komt volgende week ESP32 binnen zodat ik met de alternatieve Solum firmware aan de gang kan.

[ Voor 34% gewijzigd door ThinkPad op 11-02-2023 23:54 ]


Acties:
  • +2 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Support voor segmented tags komt er aan! Veel minder leuk dan de dot-matrix schermpjes, maar ook wel grappig…
Afbeeldingslocatie: https://tweakers.net/i/KL_KrRgFVJ0_p7bLZ5wPFpgp7QY=/800x/filters:strip_icc():strip_exif()/f/image/aY7PYiZfMqFC12hv9qinyvBF.jpg?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 22-04 19:24
Hmmm ik loop een beetje tegen een dingetje op. Ik heb een tag open gemaakt waar het scherm van kapot was. Nu wil ik daar de AP-firmware op zetten. Maar ik loop tegen iets aan. Als ik z'n huidig MAC-adres veilig probeer te stellen krijg ik telkens de volgende error:
code:
1
2
3
Using port: com8
ZBS Flasher version: 32
Error saving mac from stock FW to infoblock


Wat geeft deze error? Of te wel, wat doe ik verkeerd?

*edit*
Ik kan netjes een dump maken van de stock-firmware en de info-block, dus dat lijkt netjes te werken.

[ Voor 17% gewijzigd door Vuikie op 12-02-2023 22:28 ]


Acties:
  • 0 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 08:36
@Vuikie Dat betekent dat er geen originele firmware op die tag staat. Kijk even of het mac adres al in het infoblok staat, anders moet je het infoblok zelf editen. Mac adres begint op positie 0x10 (16 dus) en staat in de verkeerde volgorde (laatste octet staat op 0x10, eerste octet op 0x17).
Als je de barcode op het label scant, heb je het originele adres.

Acties:
  • +1 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Albert_x schreef op zondag 12 februari 2023 @ 20:47:
@Vuikie Dat betekent dat er geen originele firmware op die tag staat. Kijk even of het mac adres al in het infoblok staat, anders moet je het infoblok zelf editen. Mac adres begint op positie 0x10 (16 dus) en staat in de verkeerde volgorde (laatste octet staat op 0x10, eerste octet op 0x17).
Als je de barcode op het label scant, heb je het originele adres.
Dit klopt, maar met een kleine nuance: het kan ook gebeuren dat de flasher niet herkent welke versie van de originele firmware het is, omdat je toevallig net een tag hebt die afwijkt om een of andere reden…

Er zijn van dezelfde tags soms meerdere versies in omloop, die niet helemaal 100% compatible zijn. Zo is er een 1.54” versie met 7 en 10 brede LUT’s voor het schermpje. Alle commando’s zijn hetzelfde, maar het register waar je de LUT’s mee kan bepalen is van een ander formaat. De stock firmware is wellicht ook een beetje anders voor deze tags.

De flasher kijkt naar de MAC data op een bepaalde offset in program flash, maar dat is helaas niet genoeg… De laatste twee bytes van het Mac adres zijn namelijk hardcoded in de firmware zelf; de eerste 3 hex karakters van de laatste 4 zijn het type:
341 voor 1.54
343 voor 1.54 + NFC
3B1 voor 2.9
483 voor 4.2

De stock firmware plakt deze values achter het mac op 0xFC06, en bedenkt een ‘checksum’, die de laatste nibble vormt.

Zo kan bij normaal (stock) gebruik het systeem vrij makkelijk herkennen welk type tag bij een bepaald mac-adres hoort

Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 22-04 19:24
Hmm, ik denk dat het originele MAC-adres achterhalen voor mij wat lastiger is... het originele omhulsel is, door omstandigheden, weg gegooid. Waar zou in de infoblok de MAC moeten staan?
En in het ergste geval zou ik een MAC-adres kunnen verzinnen?

[ Voor 7% gewijzigd door Vuikie op 13-02-2023 16:10 ]


Acties:
  • 0 Henk 'm!

  • Corn
  • Registratie: November 2001
  • Laatst online: 16-04 14:42

Corn

Raar jongetje

Vuikie schreef op maandag 13 februari 2023 @ 15:20:
Hmm, ik denk dat het originele MAC-adres achterhalen voor mij wat lastiger is... het originele omhulsel is, door omstandigheden, weg gegooid. Waar zou in de infoblok de MAC moeten staan?
En in het ergste geval zou ik een MAC-adres kunnen verzinnen?
Jep, wordt wat verzinnen. Is totaal geen probleem verder hoor! Vind het alleen zelf handig als het overeenkomt met de barcode :)

Mac adres staat niet in de infopage voor de stock firmware, maar in program flash, offset 0xFC06. De custom firmware verwacht 'm vanaf 0x0010 in de infopage.
Pagina: 1 2 ... 8 Laatste