Commit graph

15 commits

Author SHA1 Message Date
Henry Gabryjelski
69a2cc1ff0 em4x70 --par deprecation: Step 4: remove client references to client->arm field that used to store this 2025-06-09 14:03:05 -07:00
Henry Gabryjelski
31b1117a51 em4x70 --par deprecation: Step 2: arm-side always uses false 2025-06-09 12:58:50 -07:00
Henry Gabryjelski
21ad101ff5 Major update to EM4x70 support:
1. Rework how communications with tag occur.
    a. bitstream to be sent to the tag is now fully pre-generated.
    b. bits sent and received are logged with start / end times.

2. Support built-in `hw dbg` for controlling verbosity of debug output

The new bitstream generation and logging has exposed a surprising legacy behavior ... each of the command that sent additional data (beyond the command) were:
* inserting an extra RM zero bit
* force-enabling command parity is used

This was not expected.  However, this PR maintains the behavior of the existing code.

TODO: Root-cause why the third RM bit is needed.  Fix code to remove that hack.

TODO: change the arm/client interface to ONLY use arrays of bytes, with well-defined content endianness, to avoid this problem.
2025-03-16 01:05:55 -07:00
Henry Gabryjelski
0a598b254c make style changes 2024-03-11 17:28:05 -07:00
Henry Gabryjelski
160d61682b Add lf em 4x70 autorecover
Also:
* common.h: Increase safety of some of the macros.
  Parenthesizing the macro parameters ... a best practice.
* firmware: partially-tracked source of "extra bits" messages.
  Add a TODO comment for further study.
* Improve reliability of `lf em 4x70 writekey`
  Authenticate w/new key after it is written.
  Particularly important for glass modules,
  or other tags with weaker coupling.
2024-03-11 17:14:03 -07:00
Henry Gabryjelski
4ebd6d4bff Add id48lib and second half of key recovery. 2024-03-03 12:16:16 -08:00
Adrian Teuscher
71389e0b17 Add function to brute force partial key 2023-01-27 19:37:40 +01:00
Philippe Teuwen
30aa7aa7d1 Adapting license headers, WIP 2022-01-08 00:40:52 +01:00
Christian Molson
60f36b468d em4x70: Add write key convenience function. Use real values in writekey/auth help text so people with blank tags can program a test key and test authentication. 2020-12-15 12:32:30 -05:00
Christian Molson
dc35f79bd2 em4x70: Add write pin convenience function to write and verify a new pin 2020-12-15 11:22:43 -05:00
Christian Molson
a6024a8622 EM4x70 Authentication support 2020-12-12 09:59:30 -05:00
Christian Molson
ed8c63a4f4 EM4x70 Unlock support. Send pin code to unlock tag. 2020-12-12 01:20:26 -05:00
Christian Molson
4c52fac9e1 EM4x70 write support 2020-12-11 23:26:17 -05:00
Christian Molson
a9dd75510b Remove packed attribute on em4x70_data_t struct that only has one entry 2020-12-08 16:40:24 -05:00
Christian Molson
614ab55809 Initial commit for em4x70 support.
Initially I only have an em4x70 variant used for car transponders.
Also known as the ID48.
2020-12-05 17:47:03 -05:00