#ESL Hacking ( Electronic Shelf Labels)

132 messages · Page 1 of 1 (latest)

grim bear
#

PRICER tags has been reverse engineered and can be modified using IR, this is possible with the hardware of flipper zero, but we would need to tweak the firmware and make an application.

https://github.com/furrtek/PrecIR

Because the researcher who reverse engineered them isn't using Discord we have a Telegram channel.

https://t.me/+Gas11s_5DdU3MWRk

Any help by developers is appreciated! :)

deep flicker
#

Is there a GitHub repo?

grim bear
light hill
#

Any news on that ESL for Flipper? Impossible to access anything on Telegram or else.

dark shore
#

^im also curious!

unreal comet
#

Just stubled over it as well, I have a few of these ESL's at home!

If anyone needs to obtain one, you can usually just ask the store manager to give you one and they will happily give you one!

No luck? Try another store!

main rune
#

Anyone know anything about the Hanshow Nebular ESL?
Got one from the supermarket, but can't find any info on it except the official product page and the FCC documentation, which doesn't say how they're programmed.

hearty quartz
#

@grim bear hi there! Is the project still alive? Couldn't join the telegram group to follow it as it was an expired link.

pulsar crane
#

can i buy them somewhere? like the price tags

lament turret
dark shore
#

Nabbed another ESL at work today. I know the unofficial server was hard at work on this a while ago, but there’s also been no updates there for a bit. I’m tempted to just try furrtrek’s normal method with his IR blaster module but I’d love to have this method work out eventually 🥲

fleet solar
#

Afaik there isn't irda support with flipper ir

pulsar meadow
#

I'm currently messing around with Pricer tags to see if this is possible with the builtin IR. Prices uses a very high frequency pulse train at 1.25MHz. The Flipper might be able to emit that frequency of IR signal, but the hardware reciever is specified to work only at 38KHz (from what I gathered from the datasheet)

#

Also that telegram invite is expired @grim bear . I'd love to hop into that if there's an updated link

mighty vortex
#

Has there been any advancements on this?

woeful crane
#

Bump

lament tide
#

bump^2

open timber
#

I’m currently working on implementing this. Main obstacle is loading image files onto the flipper that are larger than the flipper’s screen

open timber
stiff rune
stiff rune
open timber
stiff rune
patent urchin
#

Looking forward to it 🙂

stiff rune
stiff rune
#

I found the files but dont know how to convert it to a .fap

indigo shore
#

Wait, did dhz put them out there?

stiff rune
open timber
stiff rune
open timber
#

just as an FYI my code isn't public yet

stiff rune
#

FYI?

indigo shore
#

For Your Information

stiff rune
lament tide
stiff rune
#

Yes

tough swan
#

Just found this thread, it seems interesting. I may try my hand at an implementation

teal ivy
stiff rune
stiff rune
indigo shore
#

please don't spam people, I'm sure dhz will tell us when they advance on the project, and I'm sure they have other things to do too.
If you're in a hurry, learn to code and help out.

iron elk
#

Hi! coming from the unofficial groups here just now, i have some pricer tags + oscilloscope if any debugging is needed

versed barn
#

Just picked up a tag to experiment with also

lament tide
grim bear
grim bear
ivory basin
#

Nonsequitor, your Telegram invite appears to have expired

grim bear
deft mica
deft mica
open timber
#

I don’t think hanshow uses IR

deft mica
#

Nah it's wifi I found out haha

lucid spear
#

Has anyone managed to advance on this project?

sly dove
deft mica
#

Yeah it's wild haha, I found some stuff on the older versions, how to flash the controller, I've got the right pinout but as the chip is different the commands being sent aren't the right commands

stiff rune
trail grotto
#

How can I use the app? Is there any guide or tutorial available?

dusky cloud
#

Hello everyone.
I have one of these ESL, how can I use it? 🤔

worldly urchin
#

Is this chat still archived or just gone quiet?

indigo shore
#

quiet

fervent path
#

Anyone still here? @open timber

indigo shore
tight nebula
#

@ivory basin @grim bear @finite island was doing some thinking… what if i had a board i have already built running a very capable esp32 on it… with both IR transmit and receive…. And an SD card for storage…

Was thinking can host a web app via wifi so you can create screens using the esp, save them to the SD card and then the flipper FAP could list all the available screens and you could just select the one you want / enter the serial # of the screen or maybe even let you enter the data via the web app and save “screen configs” kinda like badusb scripts

#

FYI board is originally designed to run ghostesp and also has an oled screen

finite island
#

im not quite following the whole screens system and also having infrared on a board for the flipper seems a bit redundant since they already have a similar system with the mobile flipper app but something like that could be done using the ghostesp web interface maybe to download files from the irdb too but i would just need to add infrared controls to the webui and fap since it already supports infrared and a webui

indigo shore
#

there was a commit a few months ago upping the IR transmit limit to 1Mhz, maybe that'll allow us to talk to those ESLs now, unless they're not just receiving but also replying

#

talked about last here:#infrared message, been implemented since then

pulsar meadow
#

@indigo shore for pricer labels a 1.25MHz carrier is required (according to experiments by Furrtek). Activity on this thread has made me want to pick this up again and dick around with the labels I have

indigo shore
#

ah, yeah, might need a faster chip than the flipper's cpu for that

pulsar meadow
#

And iirc for pricer it’s send only since the updates are broadcasted from ceiling transmitters. You just have to know the identifier of the tag you’re addressing to speak to it

indigo shore
#

yeah, saw those in some supermarkets

fervent path
dusk vault
#

how do i get the barcode string from this

#

the 17 digits

indigo shore
#

you scan it?

#

wait... what 17 digits....

dusk vault
pulsar meadow
#

Also that code uses the inbuilt IR stack which isn’t enabled to run at the carrier speed that pricer works with. Even if you had the right type of ESL I have doubts that you would get any response using an IR file generated from that script

pulsar meadow
#

You don’t 🙂

#

You would need different software that can talk to that tag (I don’t know anything about the one you pictured).

pulsar meadow
#

I only have pricer tags in my possession and have only looked at Furrtek’s writeups about that specific IR protocol. Sorry, I don’t know more

dusk vault
pulsar meadow
#

Those are products made by different companies that use different physical layers with different protocols. They are all price tags, but that are all implemented in different ways that are proprietary to the entity that designed and manufactured them. It’s a bit like trying to move parts from one brand of car to another and expecting it to work because they are both cars. They might all have eink displays and fit in your pocket, but the similarities are skin deep

dusk vault
#

is there any tag i can order off amazon that will work

indigo shore
#

@dusk vault don't send me random DMs please.
Do some research on your end, instead of asking to be spoon-fed info. just looking at the sticker on the back of the first price tag you sent a picture of would have told you it worked with NFC, not IR

grim bear
#

@pulsar meadow its been a while haha but you can give it a spin if you still have them

pulsar meadow
#

@grim bear amazing. I dragged out the flipper last week, this gives me a good excuse to finally get it updated. Glad someone ran with the implementation after I dropped the ball 😅

grim bear
#

the app is limitted at the moment and vey manual. i am making a big update tho also with android app companion

pulsar meadow
#

I skimmed the code and saw where you went around the IR stack and used a timer directly… that seemed like the hard part to me. Honestly just being able to use the flipper as a modulator with a companion is all I had hoped to hack up. Really cool to see it happen

grim bear
#

added ton of settings :) hope it didnt break anything

#

going to travel tmr so cant work on the project anymore for 2 weeks

#

it also now auto detects the ESL based on barcode it auto sets best settings for it

#

would be cool if someone could help with a simple android app

#

/ios

hushed nimbus
#

so i have one of this and i took out the battory and pluged it back in and it no longer repsonds does anyone know why?

grim bear
hushed nimbus
#

so its effectively bricked then?

#

why would they even do that?

grim bear
#

why did u pull out the battery?

grim bear
#

now it auto sets best settings for the tag you scanned ratio, compression, color modes etc

hushed nimbus
grim bear
#

time to get some new ones i guess

hushed nimbus
#

Welp i guess so 😂 ight thank you and best a luck with the project i will join back when i get new ones

grim bear
#

i bought 3 for 15 euros in local supermarket

#

good deal

hushed nimbus
#

Yea i probly buy it form the same place i bought my original ones form there dirt cheap

grim bear
#

i used to get free ones in a shop i worked as student

grim bear
#

yesss

#

got the app working

stiff rune
# grim bear

Anyway you could compile a api for ios i am able to sideload it

grim bear
#

android app was janky

stiff rune
#

Ahh okay

#

For me it isnt working to run a html file on ios (the git website worked) i wanted it so i can do it oflline

grim bear
#

why do you want to do it offline.

stiff rune
#

Cant u make the website store itself in the cookies so it can be used offline. Sorry i dont really know anything about html…

stiff rune
# grim bear why do you want to do it offline.

Claude says this:

How to make your website work offline
The best way is using a Service Worker — it automatically saves your website files so they work without internet.
How it works:
1. User visits your site → files get saved in the browser
2. User goes offline → Service Worker serves the saved files
3. User comes back online → cache updates automatically
Step 1 — Register the Service Worker in your main JS file:
if (‘serviceWorker’ in navigator) {
navigator.serviceWorker.register(’/sw.js’);
}
Step 2 — Create sw.js in your root folder:
const CACHE_NAME = ‘my-site-v1’;
const FILES_TO_CACHE = [’/’, ‘/index.html’, ‘/style.css’, ‘/app.js’];
self.addEventListener(‘install’, event => {
event.waitUntil(caches.open(CACHE_NAME).then(cache => cache.addAll(FILES_TO_CACHE)));
});
self.addEventListener(‘fetch’, event => {
event.respondWith(fetch(event.request).catch(() => caches.match(event.request)));
});
That’s it. The browser automatically caches everything listed — no cookies needed.​​​​​​​​​​​​​​​​

grim bear
#

do you have your own tags?