-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What is expected behavior with Custom_PriceTag_AccessPoint? #2
Comments
Here are the directions I got from Aaron: |
Hey. Yes so far as @interzen wrote, you already have if connect to wifi thats good and only the index.htm needs to be uploaded now via /edit, the mount error is on first boot , the spiffs is formated after that. After that a display can be activated as shown here https://youtu.be/p4wd8amFLck One additional thing, have patients, only every 16 seconds a display will be contacted. Also once a display is activated it is configured to the netID, Freq and Slot count. Yes its not very userfriendly right now but the function was more important :D |
Thanks both for the help. This gets me closer, but I'm having trouble waking my display. I checked one of the coin cells with a DMM (no load) and get 3.0 V. Continuing to scratch my head ;-)
|
You can just try it a few times, If the display sees the sync messages on the freq it is already configured it will not look for the activation messages. Hard to explain CC1101 is definitely connected right |
Thanks for the help. Still not working but a bit more progress. I took batteries out and powered from bench supply at 3.0 V. I played with frequency settings and was able to see the current jump to 8-5 mA, then stabilize at 21 mA. This makes me think it was waking up to be activated. Much trail on this but it's hard to replicate. I did get this at one point but haven't been able to get it again:
|
This does indee look good. But not perfect the rssi is very high as it seems. What module do you have ? Could it be that its an 433mhz version? You need a 868mhz version |
I'm having similar issues - I can hear (on my Kenwood receiver) the wakeup carrier happening. When it switches to activation, the RX timeouts happen near instantly and it gives up. Is that expected? My uninformed guess is that RX isn't working properly for me. Tried various channels and two different CP1101's and ESP32 (Wemos D1 ESP32 Ali clone). 11:58:14.471 -> 709744 Main: Count: 248 |
@jruys the blue one is most likely 433mhz but the green one is the one i am using as well.
I made very good experience with the ebyte cc1101 modules. Its a bit more expensive but uses good components https://www.ebay.de/itm/124323749649 As activation info, once a display is activated to one channel/freq and there are sync messages on it it will not be listening on the wakeup channel/freq, to get arround this set a different channel for activation but not channel 4 as it is the activation channel. |
Just to have it linked here in this stream is a lot of the system explained and and activation and image upload done |
I watched the stream, but the screenshare where you guys do the activation (that succeeds on the 2nd try) is too fuzzy for me to see timestamps :-) Q: After ESP switches from wakeup to activation, it only takes 1 second to go from "Mode changed to Activation" to "no connection possible, exit activation" (with 10 "RX Timeout retry"). Is that time expected to be only 1 second? I've got one of those ebytes on order, let's hope it's not stuck in the Suez Canal. |
A: Yes, the Wakeup signal is send out 15,5 Seconds with the serial number of the wanted display and the Activation command. Every "sleeping" display wakes up every 16 seconds and listens for a wakeup cmd. If it receives the Activation cmd it will wait till the end of the 15,5 Seconds ( depending on when it woke up ) and then listens again for the Activation cmds itself and directly answers if it receives some. This means we do not know where it fails. Doesnt have to be wrong RX on AP. Could also be that the display simply doesnt wake up. This is also the reason why this stock protocol is so hard to handle. But today Dymitry did released its custom firmware for the Chroma74 if someone is into that. For now it runs on an nRF52840 Dongle with CC1101 where the nRF acts as an USB flash drive and a converted image can be placed on it to update the correct display |
Hey, E-Paper_Pricetags/Custom_PriceTag_AccesPoint/ESP32_Async_PlatformIO/RFV3/cc1101.cpp Line 62 in 809a00e
The offset is ~1.6kHz per unit... I tried spi_write_register(CC1101_REG_CHANNR, 0x00);
spi_write_register(CC1101_REG_FSCTRL1, 0x06);
spi_write_register(CC1101_REG_FSCTRL0, 0x11); // Offset in ~1.6kHz steps
spi_write_register(CC1101_REG_MDMCFG4, 0xCA);
spi_write_register(CC1101_REG_MDMCFG3, 0x83); I had an SDR handy to check if the 869.85 MHz of the wakeup channel actually were accurate though. |
BINGO! 20:20:53.394 -> Activation: 0x0 0x4A 0x4D 0x10 0x2 0x96 0x35 0x80 0x3 0x1 0x0 0x7B 0x0 0x0 0x0 0x0 Using 0x0F offset... |
wow great to hear another successful fix :) |
Great work @xsrf -- I was able to get this working with 0x0F |
Good to know the bad XTAL can be corrected for that easily. That will probably help my green 1101 modules work reliably like the more expensive red one I have. Thanks @xsrf |
Ok! now it gets interesting, i also did set and offset of 0x0f just for fun for testing the Chroma29 as they where still making problems. and guess what. first try activation and sending an image :-O Many thanks again to @xsrf |
Well, I can activate the chroma29 but I can't get commands to work so far.
and all is working fine. When I activated the chroma29 with ID 124 on NetID 1 the answers.txt recorded:
And so far it doesn't respond to any commands... I tried setting the NetID to 254 instead of 1. |
@xsrf it sounds to me that after activation the Chroma29 is not Synced and thats why it doesn't answer. The netID, channel and Slots is set on activation to the current set netID and to the current Freq/Channel/Slot so changing it afterwords need to reactivate all displays again. for me the Chroma29 did worked the best with 16 slots. i dont know if this is needed or something else is wrong Hard to explain ^^ |
Added a general info about all the CMD's and a bit parsing infos as well here: |
okay, got it... successfully activated two chroma29:
took me about 10min after activation to get the first successful command through |
Seems like there is still something wrong with them as i also have not 100% success with them, all other displays work fine for me, so Chroma42 Chroma74 Epop50 Epop500 and Epop900 I did added a function to set the Freq Offset on the fly to the web interface now to be able to test the correct one, -127 to 127 as value. |
Just a guess here, but can RSSI measurements be used to judge the effectiveness of the offset value? |
@szczys both the rssi and lqi should be able to be used for that yes The rssi would be better to be displayed in an int8_t and not an uint8_t as it is now |
Update: Chroma74 (ID 123) works fine. I have two Chroma29 that activated and two that don't respond at all (fresh batteries), tried different channels - no joy. Progress! NetID: 1 freq: 2 display: 126 4750165 = 85:05:81:0B:E9:00:01:00:00:00 |
Dont know where to post it else to not spam, added persistence settings to the system just now, so its not needed to re set Freq, NetID offset and lot count on every boot. the index.htm needs to be updated as well |
I've tested this and the new settings work well, nice addition! I have noticed that my RF module drifts. I can always activate a display with the offset of 0x0f, 0x10, and 0x11. However, when trying to send bmp to the displays, I need to select from one of those and after a while may need to change which one. The failure mode I see is an RX Timeout! message. I am using the green CC1101 868 Mhz boards which, as mentioned previously, have known oscillator tolerance issues. I have the red boards on order and can test this behavior with those when they arrive in... you know, May or so ;-) |
@szczys that's interesting. If I understand that correctly it means that the ESL successfully receives the commands but the module cannot read the response. If the ESL wouldn't receive the sync+commands (3 in a rows), it would switch back to the wake-up channel and thus wouldn't be able to receive the commands with a slightly changes frequency. |
my guess would be that a different offset is needed for different frequencies, The Activation is happening on channel 4 and the cmd transmission on the set one. @szczys you could try to activate on channel 4 to be on the same channel all the time and see if things get better. |
@szczys when you said you can upload an image if you change the offet, I assume you didn't reactivate the display? or did you? would be interesting to know. |
@xsrf On what slot count did you activate the 29? If 16 slots then it sounds right, i also encountered the most problems with them, all other ones work like they should. A2020100A402C2C2 Change RF group: |
So far I use 16 slots. I tried to reactivate with 2 or 4 slots but that failed so far. I may try again. Can you give more details about these commands? What is an "RF group" supposed to do? Is there a way to query the current settings from the device? Like You've listed these commands here, but without information on the parameters. |
Unfortunately not many parameters are known till now, they are very burried in the stock software so only the already used one are easy to encode. RfStats contain these for example, but unknown of the order till now: The is not known as well but the stock firmware does send it after activation , i guess to set it to a known value. The 0xAC in the power settings should be the highesr power setting of CC1110 as in the table |
Okay, so I can communicate with the Chroma29 on channel 0 (now with 2 slots) with offsets from 2 (868.132MHz) to 47 (868.203MHz). Overall, I'd say communication should work in a wide range of few kHz offset. Also... While I annotated this graph, the Chroma29 lost sync with the frequency still at 868.205MHz. But now, while I'm typing this, it actually is back in sync again. Edit: forgot to annotate that, but you can see that the first 0x19 transmitted fine, while the others required a re-transmit |
Okay, confirmed, it actually re-syncs whenever I'm not looking 😅 it re-synced somewhat between 22-28min after it lost sync. |
Thanks forthe in depth analysis, Also here is an logik analyzer sniff of an Chroma29 activation, SPI Analyzer is applied. the first bid block is the Wakeup to defined channel/slot/netId for Activation then the running slots with activation and the next big block the wakeup/resync |
So... You've set all the registers based on the SPI communication of the APs MCU with the CC1101? I was wondering where u got these from, since some are just set to the defaults and others write to test-registers 😉
It should be safe to remove them. I'll try later ;) |
yes this is my first time working with such low level RF I also compared them with SmartRF studio to see what which one means, dont have that much knowledge to say what is right and what not. Just as info, in the Stock AP config the CC1101 is manually calibrated before every RF action, but i guess you saw that one https://github.com/atc1441/E-Paper_Pricetags/blob/main/Custom_PriceTag_AccesPoint/ESP32_Async_PlatformIO/RFV3/cc1101.cpp#L231 So to spam this thread, i hope thats fine for everyone. if not please notify |
Setting the offset freq to 15 worked for me for the chroma 74, Thanks for this, now activation works fairly consistently without issues. |
Just to also notify here, the Chroma29 activation and usesage works fairly relaiable with the current fix i published. very simple one... |
I've flashed the board with Platformio but cannot figure out how to use this. Loading the IP addess (port 80) results in a blank page, although I do see the request in the monitor. The startup sequence throws this error in the monitor:
E (3616) SPIFFS: mount failed, -10025
Here's what it looks like when trying to load page:
Monitor then streams output like this indefinitely:
The text was updated successfully, but these errors were encountered: