-
Notifications
You must be signed in to change notification settings - Fork 393
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
added ISO15693 emulation codec #136
Conversation
That's great news, thanks! Will take a look asap. |
I forgot to mention: dual subcarrier and low data rate have not been tested yet! That's why testing this has a high priority. |
Hi @geo-rg I started looking at the code. First I flashed the Chameleon with the eep/hex file from the Firmware/Chameleon-Mini/Latest. The command CONFIG=? in the serial console does not return ISO15693, is this still a todo? How should I go about testing? I also tried to compile the code myself, without success so far, but I'll figure that out... I used Eclipse with AVR Plugin, is that a good idea or is there anything better? |
I set the config to vicinity. Then as a first test, try to see if anything gets detected by my phone (Huawei P8 lite), but nothing gets detected. I am very sure my phone supports ISO15693. Any ideas? |
Hi @vdwel I also cannot detect anything, maybe we also need a correct dump? Right now I use the card-mifare-sample.bin (but that's a Mifare dump). Trying to figure out how to produce an ISO15693 dump. I don't think Chameleon can be used for this as it only works as ISO14443 reader. Maybe I'll try with the Proxmark... |
I also have a m24lr discovery board, which seems to communicate quite well. :-) I also have some iso15693 tags and chips here. Will do some more testing... [edit] Did some more testing by implementing iso15693_SNIFF. When sniffing the MLR24-discovery board, I see understandable data, in all speeds (high, low, 10%, 100%, dual SC).. But when sniffing the communication between a tag and the phone, I get one command readable, and the rest is garbage: [edit] It seems that this is not garbage. 22 2b (get sys info for specific tag), the bytes following is the UID of my tag. So it's simply not implemented in the appProcess yet. :-) Good job!! Let's build iso15693 tags now. |
I am implementing a tag now. When trying to send a lot of bytes (around 40 or more) with command "ISO15693_CMD_READ_MULTIPLE 0x23", read errors start to occur. With my m24lr and my phone as a reader. Any idea what could be the cause? I looks like some kind of timing issue. |
@vdwel Glad to hear you've done some progress. I haven't really found the time to look at the code seriously. If you don't mind sharing your code so far (those two implementations) and helping me get up to speed we can do this together and hopefully I can contribute my part ;-) |
@m2otech I actually have no clue how to fork a branch of a fork... So I'll just share a link with a zipfile to my source: http://www.fuzzybunny.eu/iso15693.zip I've added: ISO15693_SNIFF and SL2S2002 |
Ok, thanks a lot. Will work on it today. Once we figure ISO15693 I'm sure we can figure Github too ;) |
@vdwel I've installed your FW and uploaded your dump... it works! Up to the point were the reader says it can't read the whole tag, that must be what you also mention. I will now try to implement one of the tags I want to emulate, following your approach and then investigate the issue. One question, how did you create the dump? |
@m2otech I got a book from the library.. they have iso15693 tags. Dumped it with my phone. But I can also dump it with the m24lr discovery kit. Very handy tool for debugging the chameleon. 😊 |
Which app do you use? Haven't found one yet that can dump... I see that m24lr is not even that expensive, will probably get one. |
@m2otech I am using nxp taginfo on Android to scan/dump tags. |
I use that too, but I only see a text dump/report, no binary dump... |
Simply write a python script to covert to binary. |
Ok so that's basically a byte array of the memory content... |
So I've finally start to dig into the code, will continue tomorrow... |
This looks like awesome progess! The problems you have described really sound like timing issues. I will try to reproduce the problem later this week and see what I can do. |
@vdwel You may also add pull requests to my fork (feature-ISO15693 branch), which then could be added here. Also, we could discuss there better, since we could open an issue for every problem that occurs. |
@geo-rg I would love to do that.. But somehow I can't figure out how to fork your branch.. :S |
@vdwel I just tried simply clicking |
@geo-rg Hmm that’s interesting, maybe it’s because I already have a fork of emsec.. I just tried again with my phone, no luck. Will try again later today. |
OK, I can see the problem. When I now try to fork the original rep with the new account, I am simply redirected to my geo-rg fork-fork.
|
@geo-rg That's funny, I just did what you described, and then read your message. Couldn't wait until tonight. |
This reverts commit c0dbc03.
@vdwel I noticed that my fork was not really up-to-date with the emsec repository, so I updated it. Now my fork (and also the feature-ISO15693 branch) contain all the changes that have been made in the original rep (e.g. automatic FRAM usage of the log function). This means that the code you have uploaded here has diverged from my feature-ISO15693 branch, but I don't think that it will be difficult to merge your changes to the updated branch. |
Short update:
Nonetheless, the app shows sometimes that there has occurred a communication problem. The nfc-tools app can read the Chameleon, but does not stop at the end and wants to read more blocks. The emulation at this point cannot handle this and returns the FRAM contents. --> We need to add the error handling soon. |
Hmmm that's interesting, because I was using responses sniffed from a working set-up. So you'd expect those values are good. |
Hi people. Sorry if is not relevant but I'm currently working on supporting the Chameleon Mini project (made a fork on my account) and I've made a start in implementing ISO15693 reader support. I've some spare time free this week and I hope to make some progress in implementing this feature. I've already defined the base code and added the option to allow you to identify an ISO15693 tag. ISO15693 codec reader support will be the main focus for this week. Thanks |
Hi @phillipnasher |
@vdwel How do you implement the iCode features? I found the data sheet directly on the nxp website: https://www.nxp.com/docs/en/data-sheet/SL136430.pdf It contains all the information needed for implementing the optional commands. I can also implement some things but I would rather continue with the codecs since this is more complicated. Now, how should we proceed with the application layer? |
@geo-rg I would love to implement further features of the application. It's all a matter of finding time. I am still having problems when trying to read the emulated tag because it gets unstable when transferring more than 6 blocks of 4 bytes. With the read multiple blocks command (0x23). That makes debugging a little difficult. I am not a specialist on this field.. Until now I was just reverse engineering the communication that I sniffed. So I haven't looked into iCode yet. It would be great if you could fix the codec somehow so that this works... :-) I'll look into the application then. |
Hi, is it possible edit sniffing code in order to sniff both direction of communication? Even I can participate, but now I have no idea what is needed to do so. |
Hi,
As I want to emulate a writefunction too I did it like this:
But there must be some bug elsewhere, because when I try this functions with proxmark reader this
Any Ideas. |
Do you guys have any update on iso 15 implementation? :) |
This is my report related to 15693 emulation testing with chameleon mini rev G. ALL Chameleon COMMANDS available with the present release of the 15693 codecs seems to work correctly. |
I've tested the iso 15693 SL2S2002 emulation with Chameleon mini rev G and the STMicroelectronics RF transceiver demo board . I uploaded the Chameleon Mini with the memory content of texas Tag-it standard tag. |
Time to close this merge? |
Hi @ceres-c , |
We have a first draft of ISO 15693 emulation codec! We could verify that two readers actually can talk to the Chameleon.
The following things are new with this update:
Please don't expect a perfectly working codec/application right now, the following things are still to do, in order of importance:
After testing, a short report with the used reader name would be very nice and helpful.