Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

NFC_Eink#245

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Closed
Closed

Conversation

@RebornedBrain
Copy link
Contributor

@RebornedBrainRebornedBrain commentedSep 26, 2024
edited
Loading

What's new

  • This app allows emulation and writing of NFC Eink tags from Waveshare and Goodisplay
  • Image saved as one screen type can be then loaded to screen of another type

Here is the list of displays wich app supports now:
Waveshare:

  • Waveshare 2.13 inch
  • Waveshare 2.7 inch
  • Waveshare 2.9 inch
  • Waveshare 4.2 inch
  • Waveshare 7.5 inch

Goodisplay:

  • GDEY0154D67
  • GDEY0213B74
  • GDEY029T94
  • GDEY037T03

Verification

Emulation

Goodisplay emulation verification:

  1. Install Goodisplay NFC-D1 application fromhere (scan QR code)
  2. Choose screen type and select any image from gallery, or use predefined one
  3. On Flipper select Emulate->Goodisplay
  4. Apply phone to Flippers back

Waveshare emulation verification:

  1. Install Waveshare NFCTag application fromhere
  2. Choose screen type and select any image from gallery
  3. On Flipper select Emulate->Waveshare
  4. Apply phone to Flippers back

Waveshare emulation verification using Proxmark:

  1. On Flipper select Emulate->Waveshare
  2. Put Flipper close to Proxmark
  3. On proxmark use such commandhf waveshare loadbmp -f <path_to_file.bmp> -m 0

Writing

  1. Choose saved image on Flipper
  2. Choose Write
  3. Select screen type you want to write
  4. Apply Eink tag of that type, or another Flipper with emulation.

Writing depends on 'Writing mode' on Settings menu:

  • Strict - image can be written only to that type of screen which was used during emulation (initial screen).
  • Size - image can be written to any screen with the same resolution (example Waveshare 2.13 inch to GDEY0213B74)
  • Vendor - image can be written to any screen with the same vendor as in initial screen.
  • Free - image can be written to any screen without restrictions.

When initial image is smaller then target screen, then it will be copied to target and other part in target will be filled with black color.
When initial image is larger then target screen, then it will be cropped to fit target screen size.

Checklist (For Reviewer)

  • PR has description of feature/bug or link to Confluence/Jira task
  • Description contains actions to verify feature/bugfix
  • I've built this code, uploaded it to the device and verified feature/bugfix

@RebornedBrainRebornedBrain marked this pull request as ready for reviewSeptember 30, 2024 09:48
@Xbxjdjdjd
Copy link

Will this work on Pricer brand tags?

here

@RebornedBrain
Copy link
ContributorAuthor

Will this work on Pricer brand tags?

here

I don't think so, because each vendor has it's own protocol over NFC which needs to be investigated and implemented separately. In order to do that some protocol traces are required, I had tags of mentioned vendors only. But anyway app is done in the way, which assume adding new vendors and screens.

@skotopes
Copy link
Contributor

Good display: No reaction and eventual out of memory on trying to write with original app(https://www.good-display.com/product/423.html using GDEY037T03 config)
Wave share: works but not super stable.

@skotopesskotopes marked this pull request as draftNovember 1, 2024 05:57
@RebornedBrainRebornedBrain marked this pull request as ready for reviewNovember 27, 2024 19:13
@skotopes
Copy link
Contributor

(gdb) bt#0  0x080125ac in __furi_crash_implementation () at furi/core/check.c:170#1  0x20011e92 in image_scroll_set_image (instance=0x2000d8c8, width=width@entry=0, height=height@entry=0, image=0x0, invert_image=false) at /Users/aku/Work/Flipper/flipperzero-good-faps/nfc_eink/views/image_scroll.c:148#2  0x200114a2 in nfc_eink_scene_show_image_on_enter (context=0x2000a828) at /Users/aku/Work/Flipper/flipperzero-good-faps/nfc_eink/scenes/scene_show_image.c:24#3  0x08082fb2 in scene_manager_next_scene (scene_manager=scene_manager@entry=0x20013ca0, next_scene_id=4) at applications/services/gui/scene_manager.c:106#4  0x200112bc in nfc_eink_scene_screen_menu_on_event (context=<optimized out>, event=...) at /Users/aku/Work/Flipper/flipperzero-good-faps/nfc_eink/scenes/scene_screen_menu.c:80#5  0x08082f1e in scene_manager_handle_custom_event (scene_manager=<optimized out>, custom_event=0) at applications/services/gui/scene_manager.c:53#6  0x2001212a in nfc_eink_app_custom_event_callback (context=<optimized out>, event=<optimized out>) at /Users/aku/Work/Flipper/flipperzero-good-faps/nfc_eink/nfc_eink_app.c:32#7  0x08083afc in view_dispatcher_handle_custom_event (view_dispatcher=view_dispatcher@entry=0x2000c230, event=0) at applications/services/gui/view_dispatcher.c:323#8  0x08083b20 in view_dispatcher_run_event_callback (object=<optimized out>, context=0x2000c230) at applications/services/gui/view_dispatcher.c:386#9  0x0801342e in furi_event_loop_process_level_event (item=0x2000c590) at furi/core/event_loop.c:115#10 furi_event_loop_process_event (item=0x2000c590, instance=0x2000c1a8) at furi/core/event_loop.c:136#11 furi_event_loop_process_waiting_list (instance=0x2000c1a8) at furi/core/event_loop.c:179#12 furi_event_loop_run (instance=0x2000c1a8) at furi/core/event_loop.c:235#13 0x0808396e in view_dispatcher_run (view_dispatcher=0x2000c230) at applications/services/gui/view_dispatcher.c:123#14 0x2001244a in nfc_eink () at /Users/aku/Work/Flipper/flipperzero-good-faps/nfc_eink/nfc_eink_app.c:275#15 0x0805c8c4 in flipper_application_thread (context=0x20003168) at lib/flipper_application/flipper_application.c:239#16 0x08016232 in furi_thread_body (context=<optimized out>) at furi/core/thread.c:108#17 0x080161de in furi_thread_catch () at furi/core/thread.c:80Backtrace stopped: previous frame identical to this frame (corrupt stack?)

emulate, good-display, 2 color

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@skotopesskotopesAwaiting requested review from skotopes

@DrZlo13DrZlo13Awaiting requested review from DrZlo13DrZlo13 is a code owner

@hedgerhedgerAwaiting requested review from hedgerhedger is a code owner

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

3 participants

@RebornedBrain@Xbxjdjdjd@skotopes

[8]ページ先頭

©2009-2025 Movatter.jp