Skip to content
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

Lf read From merlokk #216

Open
wants to merge 28 commits into
base: main
Choose a base branch
from
Open

Conversation

xianglin1998
Copy link
Contributor

Strengthen low-frequency related functions

Copy link

You are welcome to add an entry to the CHANGELOG.md as well

@@ -72,6 +72,7 @@ class Command(enum.IntEnum):

EM410X_SCAN = 3000
EM410X_WRITE_TO_T55XX = 3001
DATA_CMD_LF_READ = 3010
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe rename to LF_READ?

@@ -116,6 +117,8 @@ class Status(enum.IntEnum):
LF_TAG_OK = 0x40
# Unable to search for a valid EM410X label
EM410X_TAG_NO_FOUND = 0x41
# Unable to search for a valid LF tag
LF_TAG_NO_FOUND = 0x42
Copy link
Contributor

@taichunmin taichunmin Jun 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe rename EM410X_TAG_NO_FOUND to LF_TAG_NO_FOUND and reuse 0x41?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe rename EM410X_TAG_NO_FOUND to LF_TAG_NO_FOUND and reuse 0x41?

At present, this PR is in the testing phase, and all code formats and naming conventions will be corrected before merging.

@augustozanellato
Copy link
Contributor

A notice should probably be added stating that this code is at least partly based on the Flipper lfrfid library

@shayya
Copy link

shayya commented Jun 17, 2024

can we start working on HID26 protocol emulation. It's by far the most common LF protocol. I'm not as familiar with the chameleon ultra codebase. If you tell me what are the files that are need I'd be happy to contribute

@xianglin1998
Copy link
Contributor Author

A notice should probably be added stating that this code is at least partly based on the Flipper lfrfid library

I will confirm some copyright related issues with the author, which is indeed very important.

@xianglin1998
Copy link
Contributor Author

can we start working on HID26 protocol emulation. It's by far the most common LF protocol. I'm not as familiar with the chameleon ultra codebase. If you tell me what are the files that are need I'd be happy to contribute

Within the "firmware/application/src/rfid", you can see the 'nfctag' and 'reader' dir, if you are want to implement a tag, you can view the nfctag dir's file.

Copy link

github-actions bot commented Jul 24, 2024

Built artifacts for commit 8dab924

Firmware

Client

@merlokk
Copy link
Contributor

merlokk commented Jul 24, 2024

A notice should probably be added stating that this code is at least partly based on the Flipper lfrfid library

I will confirm some copyright related issues with the author, which is indeed very important.

yes, it GPL3. license will be added later.

@yarreg
Copy link

yarreg commented Sep 21, 2024

What is the status of this PR? We are waiting for a new code base to support more LF protocols. Thanks.

@merlokk
Copy link
Contributor

merlokk commented Sep 22, 2024

im working on it. i think in several weeks I will publish it

@yarreg
Copy link

yarreg commented Sep 22, 2024

im working on it. i think in several weeks I will publish it

Thanks for your work!

@Xample
Copy link

Xample commented Oct 25, 2024

Hello, here is my feedback:
I recently purchased a Chameleon Ultra which one I immediately updated with the latest FW but reading the LF never worked. I first thought the Chameleon to be faulty and therefore purchased another one supposed to be genuine. On delivery, it was loaded with the FW 1.0, I tried loading a LF card and the new Chameleon was able to detect it. I then tried to upgrade it to the v2.0.0 but then my Chameleon is not reading LF anymore. I saw many users experienced the same issue (which is the reason why I'm here). I therefore tried your firmware (based on the artefact) on at least one device but, it is still not reading any card. I therefore rebased your branch on master and rebuilt the firmware. Something like

git clone https://github.com/merlokk/ChameleonUltra.git
cd ChameleonUltra
git remote add upstream https://github.com/RfidResearchGroup/ChameleonUltra.git
git fetch upstream
git checkout lf_read
git rebase upstream/main
docker run --rm --platform=linux/amd64 -v "$(pwd)":/workdir -w /workdir ghcr.io/rfidresearchgroup/chameleonultra-fw-builder:pr-233 bash -c "./firmware/build.sh"

For the curious, the builds will be in ChameleonUltra/firmware/objects/bootloader
I then updated my 2 Chameleons (using MTools BLE using my iPhone), but I'm still unable to read any lf card.

I therefore think about downgrading the FW to 1.0 to start testing my Chameleons with a firmware from scratch. But having no XXXLink (based on the only artefact available for 1.0) I just don't know how to load or pack this ultra.hex to load it into my chameleon. I will open a ticket to ask for help.

To summarize: My issue has not been fixed (yet?) by this branch's code. I will continue digging on my side to see if my device is "corrupted" and if so, why.

@whywilson
Copy link
Contributor

Hello, here is my feedback: I recently purchased a Chameleon Ultra which one I immediately updated with the latest FW but reading the LF never worked. I first thought the Chameleon to be faulty and therefore purchased another one supposed to be genuine. On delivery, it was loaded with the FW 1.0, I tried loading a LF card and the new Chameleon was able to detect it. I then tried to upgrade it to the v2.0.0 but then my Chameleon is not reading LF anymore. I saw many users experienced the same issue (which is the reason why I'm here). I therefore tried your firmware (based on the artefact) on at least one device but, it is still not reading any card. I therefore rebased your branch on master and rebuilt the firmware. Something like

git clone https://github.com/merlokk/ChameleonUltra.git
cd ChameleonUltra
git remote add upstream https://github.com/RfidResearchGroup/ChameleonUltra.git
git fetch upstream
git checkout lf_read
git rebase upstream/main
docker run --rm --platform=linux/amd64 -v "$(pwd)":/workdir -w /workdir ghcr.io/rfidresearchgroup/chameleonultra-fw-builder:pr-233 bash -c "./firmware/build.sh"

For the curious, the builds will be in ChameleonUltra/firmware/objects/bootloader I then updated my 2 Chameleons (using MTools BLE using my iPhone), but I'm still unable to read any lf card.

I therefore think about downgrading the FW to 1.0 to start testing my Chameleons with a firmware from scratch. But having no XXXLink (based on the only artefact available for 1.0) I just don't know how to load or pack this ultra.hex to load it into my chameleon. I will open a ticket to ask for help.

To summarize: My issue has not been fixed (yet?) by this branch's code. I will continue digging on my side to see if my device is "corrupted" and if so, why.

If you have the issues below, it can be the antenna issues.
FW 1.0 return all 00 when run lf read no matter if there is a EM4100 tag there or not. FW 2.0 doesn't return anyting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants