Git Product home page Git Product logo

e-paper_pricetags's Introduction

E-Paper_Pricetags

You can support my work via PayPal: https://paypal.me/hoverboard1 this keeps projects like this coming.

1.54" 2.9" 4.2" HINKE0154A35, HINKE029A14 and HINKE042A11

11.6" Version

  • To use it with Arduino and GxEPD2 copy the modded library into your Arduino library folder and open the GxEPD2_Example and uncomment the GxEPD2_1160c display, its under ESP32 section, if you want to use it with a different Arduino you need to copy it or edit it for that one / pinout

4.2" Version

  • This one is directly compatible with the GxEPD2 library.
  • To modify the stock pcb take a look at my video manual: https://youtu.be/c62D3Z-c5IM

4.4" Version Imagotag G1 4.4 BWR

Stock PCB external control

  • Use the ESP32 Demo code in the folder "Imagotag_G1_4.4_BWR/BWR_4.4_Arduino_ESP32", The Adafruit GFX Library is needed for it to compile
  • To modify the stock pcb take a look at my video manual and the image in the folder "Imagotag_G1_4.4_BWR" : https://youtu.be/sWKEWG-0ZLE

2.13" Version Hanshow BW TLSR Custom BLE Firmware

6" Version

  • This one should be compatible with the GxEPD2 library but is not tested, it is recomendet to Hack the stock PCB by adding a USB connector and a 5V bodge wire and reflash the MZ100 SOC to enable USB

7.5" Version

Arduino

  • To use it with Arduino and GxEPD2 copy the modded library into your Arduino library folder and open the GxEPD2_Example and uncomment the GxEPD2_750c_F19 display, its under ESP32 section, if you want to use it with a different Arduino you need to copy it or edit it for that one / pinout

  • Here is a good manual on soldering the needed wires https://hackaday.io/project/175947-74-e-ink-shelf-label-used-as-a-weather-station

Stock PCB / CC1110

  • To use the Stock PCB you can use the SDCC Example and compile your own code via the Combile.bat file in windows, currently it simply refreshes the display but its working. can be flashed via the CC-Debugger or another compatible programmer.

  • Update full custom firmware, http://dmitry.gr/?r=05.Projects&proj=29.%20eInk%20Price%20Tags

Stock firmware using custom AP

e-paper_pricetags's People

Contributors

atc1441 avatar hades32 avatar hypfer avatar joelhaasnoot avatar kyberpunk avatar probonopd avatar szczys avatar xsrf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

e-paper_pricetags's Issues

What is expected behavior with Custom_PriceTag_AccessPoint?

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:

_HEADER[Host]: 192.168.1.195
_HEADER[User-Agent]: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0
_HEADER[Accept]: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
_HEADER[Accept-Language]: en-US,en;q=0.5
_HEADER[Accept-Encoding]: gzip, deflate
_HEADER[Connection]: keep-alive
_HEADER[Upgrade-Insecure-Requests]: 1
_HEADER[Cache-Control]: max-age=0

Monitor then streams output like this indefinitely:

Sync: 0x1 0xFE 0xE 0x0 0x0 0x0 0x0
250854 Normal: short SYNC done
250855 Main: Mode changed to Idle
250855 Main: Idle
251937 Main: Count: 4
251937 Main: Mode changed to Sync
251937 Main: Sync
Sync: 0x1 0xFE 0xF 0x0 0x0 0x0 0x0
251954 Normal: short SYNC done
251955 Main: Mode changed to Idle
251955 Main: Idle
253037 Main: Count: 4
253037 Main: Mode changed to Sync
253037 Main: Sync
Sync: 0x1 0xFE 0x0 0x0 0x0 0x0 0x0
253054 Normal: short SYNC done
253055 Main: Mode changed to Idle
253055 Main: Idle
254137 Main: Count: 4
254137 Main: Mode changed to Sync
254137 Main: Sync```

Feature Request: Automatically load pictures from URL

It would be great if it was possible to configure per activation ID (and per color) a URL pointing to a BMP and a refresh interval.

The ESP could then grab these images in the defined interval, check if they changed (either via ETag, If-Modified-Since or checksum) and send them to the device if they changed.

This way it would be easy to host image creation on more powerful devices or in the cloud. We could even build parametrizable services that everybody can use - something like https://epaper.dev/date-news-weather?device=c74&color=b&city=munic,de which could compose images from some fragments and return them in a device-specific format

Aktivierung auf 868, pulsen auf 915 Mhz

Hi! Erstmal vielen Dank für das tolle Projekt. Als ich bei Hackaday davon gelesen hab war ich sofort begeistert und bei Ebay ein paar Displays besorgt. Das war 2021.

Ich hänge jetzt schon einige Zeit daran... immer mal angefangen und dann wieder aufgegeben weil die Erfolgsaussicht doch recht gering war damals.

Heute mit mehr Wissen habe ich mich am Vormittag nochmal gepackt und (leider) sitze jetzt schon einige Zeit daran das ganze mit den Chroma74 zum laufen zu bringen jedoch ohne Erfolg.

Ich bin inzwischen soweit, dass ich wohl ein oder zwei Displays aktiviert habe, jedoch aktualisieren sie sich nicht. Mit einem SDR bin ich drauf gekommen, dass er im idle auf 915 Mhz pulst. Zum aktivieren hört das jedoch auf und er geht auf 868 Mhz.

Ich aktiviere den Display also auf EU / 868 Mhz und er wird mit Erfolg Aktiviert. Sende ich jedoch einen Text an den Chroma, dann sieht man bei 868 Mhz keine Ausschläge, sonder auf 915 Mhz.

Gibt es da noch weitere Einstellungen die man tätigen kann oder ist das normal?

Gruß Christoph

Driving an imagotag gu111 9.7 bwr

Hello,
I have an imagotag pricetag gu111 9.7". The pcb is not the same, i cannot identify correct pins.
Here is a picture of the cc2510
PXL_20240503_062148226

Can you help with this ?

docs issue: What do Freq, NetID and Slots actually mean?

Although I could make everything work, I basically just used the default values because I didn't know what they mean (with the exception of the Offset, which is mentioned in the readme).

It would be nice if the readme would mention:

  • What is Freq (as it's 0-71 it doesn't seem to be an actual frequency)
  • What is NetID (it sounds like subnets within the same frequency, but who knows. And can I use multiple NetIDs at the same location? Potentially with a separate esp32)
  • What is Slots (Does it limit the number of activated displays or the number of concurrent messages being sent?)

Bonus points for then adding a link to the Settings section of index.html that points to the readme, so people who normally don't read readmes (e.g. me) will find the information, too.

Garbled responses for some commands

Responses for some commands are garbled, for example:

OK cmd to display 243 0000 Len: 2
Send: successful , waiting: 0
Activation: not started
NetID 1 freq 0 slot 2 bytes left: 0 Open: 0
last answer: Msg from display NetID: 1 freq: 0 display: 243 139954 = �������?���??
mode Idle

Compiling error with ESP32 / Wifi-Manager (Arduino)

I tried compiling the newest release of the Custom Access Point with Platformio and Arduino without much success.
With Platformio the code compiled and uploaded, but did not do anything (no WIFI Access Point appeared).

On Arduino compiling stopped after logging some warnings, notes and the following error message:

C:\Users\DL5SMB\Documents\Arduino\libraries\WiFiManager-feature_asyncwebserver\WiFiManager.cpp: In member function 'void WiFiManager::WiFi_autoReconnect()': C:\Users\DL5SMB\Documents\Arduino\libraries\WiFiManager-feature_asyncwebserver\WiFiManager.cpp:3486:79: error: no matching function for call to 'WiFiClass::onEvent(std::_Bind_helper<false, void (WiFiManager::*)(arduino_event_id_t, system_event_info_t), WiFiManager*, const std::_Placeholder<1>&, const std::_Placeholder<2>&>::type)' wm_event_id = WiFi.onEvent(std::bind(&WiFiManager::WiFiEvent,this,_1,_2)); // @todo move, needed for async esp32 scannetworks

I think this is a bug of the Wifi-Manager library and the ESP32. Maybe someone can verify this?

I checked out the code before the change to this library, and the old code compiled without errors and the ESP32/Webserver
starts and is accesible.

Sascha

900MHz version of the Chroma 74

You may wish to note that there is a US version of the Chroma 74 which runs in the 900MHz band. These units will have "FCC ID: VC7120-0157" on the back label.

Specifically they run at 902.5 to 927.5 MHz per FCC documents

It seems the C1101 transmitter recommended will work with this as well. I ordered a few, but haven't tested them yet.

How to read voltage and temperature from Chroma29

According to

CMD 0x85
Length 5 bytes
0x0A83 = 2.691V
0x0113 = 27,5°C

the answer to command 85 contains the voltage and temperature.

Sending command 05 or 85 (= 05+80) makes the whole display black. And we see something like this:

last answer: Msg from display NetID: 1 freq: 0 display: 0 8044533 = 85:05:71:0B:EC:00:01:00:00:00

How to interpret the answer?

  • 85: The command that this is the answer to (= 05+80, 80 is added when the command results in data being sent back)
  • 05: Length of this answer is 5 bytes
  • 71:0B: Hex 0x0B71 = Decimal 2929 = 2.929 Volts
  • EC:00: Hex 0x00EC = Decimal 236 = 23.6 degrees Celsius
  • 01: Unknown?

So, how can we get the values without making the display black?

According to the same page, command 02 should give us the voltage and command 19 should give us the temperature.

Just sending the command 02 results in

last answer: Msg from display NetID: 1 freq: 0 display: 0 8365754 = ���?

Why is there garbled output instead of the hex answer?

Can we/do we need to combine multiple commands, like sending command 0219 for getting both the voltage and the temperature? This gives

last answer: Msg from display NetID: 1 freq: 0 display: 0 9135793 = 82:02:F5:00:99:03:7A:0B:00:00

How to interpret the answer?

Clarify save_settings

If one uses "Set base freq offset" and clicks on "save_settings", is this setting then automatically applied after a reboot of the ESP32 or does one need to click "get settings" in order to load it? I am asking because after a reboot the web page does not seem to have "remembered" the settings.

Also, does one have to cleick "Do sync" after a reboot or does it do the sync (using the settings) automatically?

Solum 2.9'' w CC2630

I put my hands on a Solum GY2900C, which very very similar with Solum 11.6" you have in one folder in this repository.
I wuold start to study but I'm stuck.
In your image you connect some wires of the pcb, but which goes where in the ESP32??
There is also a way to command ESL tag via radio?
Here is a photo of the pcb I have

Thanks for every second you could dedicate to this answer

IMG_0902

Crash when sending default text

Trying to send the default text to a Chroma29:

Enter text here. Each display type uses a font which fits about 18 characters per line. Press the 'Send Text' button above to transmit it.

leads to a crash which reboots the ESP and puts it into WiFiManager captive portal mode:

133289 : short SYNC done
133289 : Mode changed to Idle
133289 : Idle
Entering set_custom
Display type = 2

Stack smashing protect failure!

abort() was called at PC 0x401607f3 on core 1

ELF file SHA256: 0000000000000000

Backtrace: 0x40089538:0x3ffe7f00 0x400897b5:0x3ffe7f20 0x401607f3:0x3ffe7f40 0x400d8595:0x3ffe7f60 0x400d8dd9:0x3ffe8030 0x400d91a5:0x3ffe8190 0x400e1131:0x3ffe81b0 0x400def19:0x3ffe81f0 0x400defa5:0x3ffe8240 0x401851c1:0x3ffe8260 0x40185251:0x3ffe82a0 0x401858f6:0x3ffe82c0 0x4008a7c6:0x3ffe82f0

Rebooting...

With this text it does not happen:

Enter text here. Each display type uses a font which fits about 18 characters per line.

Maybe some memory is too small? cc @bitbank2

Chroma29 unpredictable behaviour

I'm having unpredictable results with the Chroma29. Some activate fine but won't work the next day, others don't seem to activate but respond to commands now and again. They will swap behaviour, one that works fine now will misbehave tomorrow.

Any known tricks to make them behave? Using red CC1101, frequency tuned with Airspy and powering from lab PSU.

Recent answers.txt:
NetID: 1 freq: 2 display: 0 87184 = 85:05:19:0C:CA:00:01:00:00:00
NetID: 254 freq: 8 display: 0 195477 = 12:9F:09:2F:00:00:03:00:00:04:00:00:9A:11:80:00:28:01:01:01:06:00:00:02:08:00:01:02:21:01:00:21:22:24:00
NetID: 254 freq: 8 display: 0 59080 = 12:9F:09:2F:00:00:03:00:00:04:00:00:9A:11:80:00:28:01:01:01:06:00:00:02:08:00:01:02:21:01:00:21:22:24:00
NetID: 1 freq: 2 display: 0 303888 = 85:05:00:00:00:00:06:00:00:00
NetID: 1 freq: 2 display: 0 321698 = 03:04:85:05:AD:0B:E8:00:01:00
NetID: 1 freq: 2 display: 0 343918 = 03:04:85:05:9F:0B:E8:00:01:00
NetID: 1 freq: 2 display: 0 629488 = 85:05:B8:0B:CE:00:01:00:00:00
NetID: 254 freq: 8 display: 0 678380 = 12:9F:09:2F:00:00:03:00:00:04:00:00:9A:11:80:00:28:01:01:01:06:00:00:02:08:00:01:02:21:01:00:21:22:24:00
NetID: 1 freq: 2 display: 0 155388 = 85:05:00:00:00:00:06:00:00:00
NetID: 1 freq: 2 display: 0 177598 = 03:04:85:05:DB:0B:AA:00:01:00
NetID: 1 freq: 2 display: 0 323018 = 03:04:85:05:D2:0B:AF:00:01:00
NetID: 254 freq: 8 display: 0 402294 = 12:9F:09:2F:00:00:03:00:00:04:00:00:9A:11:80:00:28:01:01:01:06:00:00:02:08:00:01:02:21:01:00:21:22:24:00
NetID: 1 freq: 2 display: 0 837818 = 03:04:85:05:BF:0A:C2:00:01:00
NetID: 1 freq: 2 display: 0 275290 = 85:05:24:0B:DB:00:01:00:00:00

Send loop breaks - slot gets stuck

After a few days of continuous operation, the access point doesn't work anymore. The status pane on the local webserver shows that it always stays on slot 0 and even when I try to send something it shows 0 bytes left to send. A reboot fixes the issue

Command 0x1b (RfStats)

Originally posted by @atc1441 in #2 (comment)

RfStats contain these for example, but unknown of the order till now:
public sbyte? rssi;
public byte? lqi;
public ushort? packetErrors;
public ushort? transFailure;
public ushort? missedSyncPackets;
public ushort? numberOfResyncs;
public ushort? numberOfUpdates;

I did some tests on this with my Chroma29, maybe it will help ;)

Responses to 0x1b:
NetID: 1 freq: 0 display: 124 7477153 = 9B:0D:D0:00:00:06:00:EC:00:32:00:00:D0:80:80 # offset 30
NetID: 1 freq: 0 display: 124 7505753 = 9B:0D:D0:00:00:06:00:EC:00:32:00:00:D0:80:80 # offset 30
NetID: 1 freq: 0 display: 124 7595953 = 9B:0D:CF:00:00:08:00:EC:00:32:00:00:D0:80:80 # after skipping 2 syncs, offset 30
NetID: 1 freq: 0 display: 124 7646553 = 9B:0D:D0:00:00:09:00:EC:00:31:00:00:D0:80:80 # after skipping 1 sync, offset 30
NetID: 1 freq: 0 display: 124 7714753 = 9B:0D:D0:00:00:0A:00:EC:00:32:00:00:D0:80:80 # after skipping 1 sync, offset 30
NetID: 1 freq: 0 display: 124 7782953 = 9B:0D:D0:00:00:0C:00:EC:00:32:00:00:D0:80:80 # after skipping 2 syncs, offset 30
NetID: 1 freq: 0 display: 124 7928153 = 9B:0D:D0:00:00:0E:00:EC:00:32:00:00:D0:80:80 # after skipping 2 syncs, offset 30
NetID: 1 freq: 0 display: 124 8075553 = 9B:0D:CE:00:00:0E:00:EC:00:6B:00:00:D0:80:80 # offset 45
NetID: 1 freq: 0 display: 124 8086619 = 9B:0D:CE:00:00:0E:00:EC:00:7F:00:00:D0:80:80 # offset 46
NetID: 1 freq: 0 display: 124 8353370 = 9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:9B:0D:D0:00:00:0F:00:EC:00:6C:00:00:D0:80:80 # offset 47, transmit failed / retransmit
NetID: 1 freq: 0 display: 124 8363753 = 9B:0D:D0:0F:00:0F:00:EC:00:6C:00:00:D0:80:80 # offset 45 with previous retransmit error
NetID: 1 freq: 0 display: 124 8574953 = 9B:0D:CF:00:00:11:00:EC:00:32:00:00:D0:80:80 # offset 10

I've intentionally skipped some syncs by changing the frequency for a short moment and also reduced signal quality by getting the frequency offset to the edge.

The 3rd and 10th byte seem to correlate with signal quality.
4th byte may be an error counter but I'm not sure what it caused to reset.
6th byte indeed counts the missed syncs, which is easy to verify.

Compilation ESP32_Async_PlatformIO in arduino

Hi, I can't compile the RFV3.ino file from the "ESP32_Async_PlatformIO" folder via arduino. I also tried using Platfomio, but it throws up the message "UnknownPackageError: Could not find the package with 'me-no-dev/ESPAsyncWebServer' requirements for your system 'windows_amd64'", I use windows 10 x64

Custom_PriceTag_AccesPoint w/ 915MHz Chroma in US

Hello! I am excited by this project, it is very cool. Thank you for making it!

I live in a region where 868MHz is not allowed but 915MHz is OK (US). So I acquired some Chroma74 (and other Chroma) units second-hand. They were sold in this region and were intended for installation in a store, but probably never installed. So they may be activated for 915MHz.

I see that there is a nice toggle in the Custom_PriceTag_AccesPoint UI to set the proper US wakeup frequency for CC1101. However, it seems like activation sets the activated units for 868MHz: https://github.com/atc1441/E-Paper_Pricetags/blob/main/Custom_PriceTag_AccesPoint/ESP32_Async_PlatformIO/RFV3/mode_activation.h#L167-L169

I can hack up my copy and get what I want for the activation process. However, I am having trouble raising any of the units with my CC1101/ESP32 combo. Has anyone successfully activated a 915MHz Chroma unit with Custom_PriceTag_AccesPoint? Are there other CC1101 registers that need to be set for 915MHz access points?

(I am using an 868MHz CC1101 green-board module from AliExpress. I have read it may perform OK at 915MHz once the proper registers are set. Within Custom_PriceTag_AccesPoint I know there is a frequency offset that needs to be set; I do not have a frequency analyzer or oscilloscope to determine the proper frequency offset, so am attempting to brute-force it by choosing every available frequency offset and trying a wake/full sync + activate. Checking for any response from units. So far nothing from -127 to 127. The radio initializes fine, as far as I can tell, and I think my wiring is good.)

Appreciate any help anyone can offer. Thank you!

Stuck Chroma29 - suggestions?

I have a Chroma29 that used to work for me (I managed to load a .bmp at some point) but it seems stuck now.

  • Played with Freq offset
  • Tried activating on different Freq
  • Removed batteries for a while and replaced with fresh
  • Tried "recover" (not sure if that should help)

Any thoughts what to try/debug next? I have three others that work fine, so my ESP32/CC1101 setup seems ok.

Boot loop crash after trying to send a bmp

After activation, when trying to send a 1 bit 640x384 monochrome bmp file to the chroma 74 tag,
From time to time, I get the following repeating in a loop ~10 times:
`input bitmap size: 640 x 384
158868 Main: Count: 4
159082 Main: Mode changed to Sync
159188 Main: Sync
Sync: 0x01 0xfe 0x00 0x00 0x00 0x00

159849 Main: Count: 2
159905 Main: something wrong, back to idle
160059 Main: Mode changed to Idle
160124 Main: Idle
161131 Main: Count: 0
161645 Main: Mode changed to Sync
161819 Main: Sync
Sync: 0x01 0xfe 0x02 0x00 0x00 0x00

162750 Main: Count: 0
162750 Main: something wrong, back to idle
162750 Main: Mode changed to Idle
162750 Main: Idle
163132 Main: Count: 1
163132 Main: Mode changed to Sync
163132 Main: Sync
Sync: 0x01 0xfe 0x00 0x00 0x00 0x00

163150 Normal: short SYNC done
163150 Main: Mode changed to Idle
163151 Main: Idle
E (163818) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (163818) task_wdt: - async_tcp (CPU 1)
E (163818) task_wdt: Tasks currently running:
E (163818) task_wdt: CPU 0: IDLE0
E (163818) task_wdt: CPU 1: loopTask
E (163818) task_wdt: Aborting.
abort() was called at PC 0x40147bf8 on core 0

ELF file SHA256: 0000000000000000

Backtrace: 0x40088c50:0x3ffbf9a0 0x40088ecd:0x3ffbf9c0 0x40147bf8:0x3ffbf9e0 0x40087405:0x3ffbfa00 0x4015a5af:0x3ffbc330 0x4014a30b:0x3ffbc350 0x4008b68d:0x3ffbc370 0x40089ede:0x3ffbc390

Rebooting...
`
If this happens I have to reactivate the display to successfully send a cmd again with the display tag.

License missing

Hey @atc1441,
would you mind adding an official LICENSE file? (GitHub will offer you templates for the most common ones)
I'd like to fork the access point for my use case (automatically pulling an image from the cloud) and would prefer to do that after the code is officially licensed.
It's gonna be open-source, too, so I don't mind which license you chose

Occasional Full-Sync actually causes Sync-Loss with 2/4 slots (Chroma29)

Hey,
I just noticed that the occasional full-sync (which is a Wake-Up phase followed by longer sync pulses on the configured channel) actually causes a loss of sync for the Chroma29 (and others, I guess).
The full-sync switches to the wake-up channel for 16s. If only 2 or 4 slots are used, labels in sync will actually miss enough sync pulses to fall back to the wake-up channel. However, they will only start listening to the wake-up channel 15s after the fall-back. When they do, the full-sync is already back on the configured channel, so the label won't wake up again.

I've also noticed that labels go back in sync on their own after ~15-30min. I guess they are listening to their configured channel periodically and looking for syncs.
So the occasional full-sync may not really be necessary.

With 8/16/32 slots it's not really a problem because they won't miss 3 syncs in 16s and thus stay in sync.

Where to buy?

Great work, I'd like to play with this.
Question: Where do you buy compatible ESLs as a private person in Germany?

Use more standard bit rate for RFV3

Is there a particular reason why RFV3.ino is using 500000?

If not, it might be preferable to use a more standard bit rate. 115200 is the highest one the Arduino 2.0 IDE offers.

Do not hardcode the WLAN credentials

Let's not hardcode the WLAN credentials.

Using WiFiManager the device opens a temporary WLAN access point that can be used to tell the device which WLAN to connect to, and using which password.

image

Screenshot source

I have started to integrate this but since I am still waiting on devices I could not test this on hardware yet:

main...probonopd:patch-1

On 04-18-21 release, "No connection possible" on Chroma74 activation

When trying to test out the Chroma74 display activation on the latest build it keeps getting RX Timeouts with a "no connection possible" message:
2692061 : short SYNC done 2692061 : Mode changed to Idle 2692061 : Idle 2692663 : Mode changed to Wakeup Activation 2692663 : Wakeup Activation Len 10 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x01 0x00 0x01 2692674 : Radio set to base freq: (F=35) 915.00 Mhz 2692674 : Radio set id done 0 2693143 : Count: 109 2694243 : Count: 248 2695343 : Count: 248 2696443 : Count: 248 2697543 : Count: 250 2698643 : Count: 247 2699743 : Count: 247 2700843 : Count: 248 2701943 : Count: 248 2703043 : Count: 248 2704143 : Count: 248 2705243 : Count: 249 2706343 : Count: 248 2707443 : Count: 249 2708167 : Wakeup Activation done 2708167 : Mode changed to Activation 2708167 : Activation Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708213 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708259 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708305 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708351 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708397 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708443 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708489 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708535 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708543 : Count: 173 2708581 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708627 : RX Timeout retry Len 16 Data: 0x00 0x4a 0x4d 0x10 0x17 0x66 0x78 0x80 0x03 0x01 0x00 0x7b 0x00 0x00 0x00 0x00 2708674 : no connection possible, exit activation 2708674 : Mode changed to Idle

Tried with both US and EU channel.

Using the old offset that worked previously with earlier builds (15)
However when trying EPOP900 display it works the first time, although actually sending actual images and text to the EPOP display is also getting RX timeouts.

Getting WakeUp during activation / resync counter

Hey,
it sometimes switches into WakeUp mode during activation of the Chroma29 ESLs. I guess this is because you're switching to sync/idle mode during activation on the activation channel and resync_start_counter may just kick in and mess with the activation, switching to WakeUp.
I guess adding a check in mode_idle.h would help

    if (resync_start_counter >= get_rounds_to_resync() && !get_last_to_short()  && !get_trans_mode())

But I'm wondering if it wouldn't be better to put the resync counter into a global scope and make sure it only triggers a resync after it was in sync/idle mode for the required intervals and reset it completely whenever an other mode is active?

Hanshow nebular 350R-N

Is the Hanshow nebular 350R-N (used by ALDI) also supported? Could not find any meaningful information about it yet.

Had the chance to have look at one cracked open:

  • Controller:
    image
  • Display:
    image
  • Board - front side:
    image
  • Board - back side:
    image

Chroma74 displays picture inverted and without color

The test images work fine, but the images that I attached get rendered in black and white only and actually inversed (i.e. white instead of black and vice versa).

As the transmission is working fine, I'm not sure of this is an error in the display or this library...

data.zip

Rotate BMPs automatically if needed

Given that we can even render text, would there be a way to remove the need to rotate BMPs manually? So that one could upload a BMP and it would be rotated automatically if the uploaded BMP is landscape but the display needs portrait.

Can't get interrupts to work

I'm pretty sure this isn't an issue with Aaron's code, but I don't know where else to ask.

I'm not able to get interrupts working. I've tried two different "DORHEA 3PCS ESP32 Development Board" (Reviews on Amazon say it's really a Doit V1). I've also tried two different cc1101 boards. The current one look like the one Aaron has.

I've triple checked the wiring and I think everything is correct. All of the SPI signals look fine and the radio init routine is able to read the radio version (20). Additionally cc1101_test_gpio() passes.

As a test I put cc1101_test_gpio() in an infinite loop and watched GDO2 with a scope and I see a perfectly textbook square wave:

test_loop

But when I run the normal code I get this funky waveform:

interrupt

and zoomed out

interrupt_zoom_out

Here's the log:

142 : SPI init
143 : SPI init done
143 : Radio init
154 : Radio version: 20
165 : Radio set to base freq: (F=4) 869.85 Mhz 
165 : Radio set id done 1
Error opening the settings file
265 : Interval timer init
265 : Interval timer done
*WM: [1] AutoConnect 
*WM: [2] [ESP32] event handler enabled 
*WM: [2] Connecting as wifi client... 
*WM: [3] STA static IP:
*WM: [2] setSTAConfig static ip not set, skipping 
*WM: [1] Connecting to SAVED AP: not_really_the_SSID
*WM: [3] Using Password: this_is_not_really_the_password
*WM: [3] WiFi_enableSTA enable
*WM: [3] Mode after delay:  STA
*WM: [1] connectTimeout not set, ESP waitForConnectResult... 
*WM: [2] Connection result: WL_CONNECTED
*WM: [3] lastconxresult: WL_CONNECTED
*WM: [1] AutoConnect: SUCCESS 
*WM: [1] STA IP Address: 192.168.73.142
Connected! IP address: 192.168.73.142
mDNS responder started
*WM: [3] unloading 
3110 : Mode changed to Idle
3110 : Idle
3110 : Count: 0
3111 : Mode changed to Sync
3111 : Sync
Len 7 Data: 0x01 0xfe 0x02 0x00 0x00 0x00 0x00
3112 : Radio set to base freq: (F=0) 868.15 Mhz 
3565 : Count: 0
3565 : something wrong, back to idle
3566 : Mode changed to Idle
3566 : Idle
4665 : Count: 0
4665 : Mode changed to Sync
4665 : Sync
Len 7 Data: 0x01 0xfe 0x00 0x00 0x00 0x00 0x00
5765 : Count: 0
5765 : something wrong, back to idle
5765 : Mode changed to Idle
5766 : Idle
6865 : Count: 0
6865 : Mode changed to Sync
6865 : Sync
Len 7 Data: 0x01 0xfe 0x02 0x00 0x00 0x00 0x00
7965 : Count: 0
7965 : something wrong, back to idle
7965 : Mode changed to Idle
7966 : Idle
9065 : Count: 0
9065 : no interrupts anymore, something is broken, trying to fix it now
9065 : Mode changed to Sync
9066 : Sync
Len 7 Data: 0x01 0xfe 0x00 0x00 0x00 0x00 0x00
...

I'm out of ideas, anyone else have any ??

Thanks,
Skip

Build using native Arduino toolkit fails

Haven't had time to dive into this, opening just in case others run into this. Build using native Arduino toolkit started to fail after WifiManager merge.

Installed the library from https://github.com/tzapu/WiFiManager (not via native library manager)

Build exits with "'class WiFiClass' has no member named 'mode'"
Compile errors start with "error: redeclaration of 'HTTP_DELETE' XX(0, DELETE, DELETE)"

Does WifiManager have version dependencies I may not have taken into consideration?

watchdog got triggered - reboot

Hi, now in english 🗡️

after a successfully activating of a chroma74 display i can't send anything. my serial log says RX_TIMEOUT!!! sending a text and sending a picture over draw.html the system is crashing and the esp reboot.

My system is on a esp32wroom

input bitmap size: 640 x 384
Entering encode_raw_image; width=640, height=384
1282858 : Count: 4
1282960 : Mode changed to Sync
1282960 : Sync
Len 7 Data: 0x07 0xfe 0x0e 0x00 0x00 0x00 0x00
1283779 : short SYNC done
1283983 : Mode changed to Idle
1283983 : Idle
1284086 : Count: 4
1284086 : Mode changed to Sync
1284188 : Sync
Len 7 Data: 0x07 0xfe 0x0f 0x00 0x00 0x00 0x00
1285007 : Count: 3
1285007 : something wrong, back to idle
1285109 : Mode changed to Idle
1285211 : Idle
1286132 : Count: 0
1286133 : Mode changed to Sync
1286235 : Sync
Len 7 Data: 0x07 0xfe 0x11 0x00 0x00 0x00 0x00
1286951 : short SYNC done
E (1289748) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (1289748) task_wdt:  - async_tcp (CPU 1)
E (1289748) task_wdt: Tasks currently running:
E (1289748) task_wdt: CPU 0: IDLE
E (1289748) task_wdt: CPU 1: IDLE
E (1289748) task_wdt: Aborting.

abort() was called at PC 0x400fdfc8 on core 0

Backtrace:0x40083b01:0x3ffbebcc |<-CORRUPTED

ELF file SHA256: 0000000000000000

Rebooting...

any tipps for me? :)

I think it's the async dependency. However, I do not know how I can change the versions. Googling for the error tells me that a delay should be avoided as much as possible.

greetings

Christoph

Idea: MQTT publish/subscribe

It would be nice if one could use MQTT and Node-RED to send messages out to the displays, and get messages from the displays.

This way, the displays could be hooked much more easily e.g., into home automation setups.

The following is not quite working yet because I am not sure how to hand over the values properly, but should give a rough idea.

main...probonopd:codespace-06f9

What do you think, would this be interesting and worthwhile for you?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.