Commit Graph
951 Commits
Author SHA1 Message Date
Niel Nielsen 75f723647d Define CMD_PM5_BWM_AUTOOFF for USB unplug
Added command definition for PM5 automatic power-off feature.

Signed-off-by: Niel Nielsen <nieldk@gmail.com>
2026-08-25 12:43:53 +02:00
dxl 347cbf153a Move gpio defs to config_gpio_proxmark5.h 2026-08-24 09:55:27 +02:00
Niel Nielsen 190ed8a990 ADD: BWM status includes AW32001ECSR registerd, Charging set to 256mAh and keeps BWM safety guards for temperature 2026-08-23 20:31:01 +02:00
Niel Nielsen ca129dcafa ADD bwmsetcap command id i
Signed-off-by: Niel Nielsen <nieldk@gmail.com>
2026-08-23 13:28:07 +02:00
Antiklesys 6a317bdacc Added CMD_HF_ICLASS_RAW
Raw iCLASS reader exchange that leaves the field ON
2026-08-21 12:45:46 +08:00
Nemanja Nedeljkovic 6507b8f36b feat(pm5): hf tune --rgb / lf tune --rgb - antenna RGB as a tuning meter
Adds an opt-in `--rgb` flag to the continuous `hf tune` / `lf tune` commands that
mirrors the antenna tuning level on the PM5 antenna RGB LED: blue = low, green =
mid, red = high, tracking the on-screen bar so you can find coupling (e.g. an
implant) by feel without watching the screen.

The colour is computed client-side from the same per-iteration voltage / running
peak the bar uses (so it matches the bar and auto-scales), and pushed to the
device via a new dumb CMD_PM5_RGB_SET {r,g,b}. That command is handled (#ifdef
PM5) by a dedicated AT32 RGB HAL module, common_arm/rgb/{rgb_apis.h,
rgb_hw_at32.c} (RgbLedSet(), I2C controller @ 0x48), wired into the armsrc
Makefile/CMake as SRC_RGB for PM5 only - so no other platform is affected and no
hardware code lands in shared files.
2026-08-20 11:55:55 +02:00
Philippe Teuwen 52af3f11e2 rename a couple of commands 2026-08-19 15:51:54 +02:00
dxl d59e96e09e Make proxmark3_arm.h more cross-platform. 2026-08-19 15:51:18 +02:00
dxl e3511c5350 Used HAL layer
in appmain.c and cmd added.
in cmd.c and add some code for test CEP
in em4x50.c(Do not timeout--)
in em4x70.c
in emvsim.c
in epa.c
in felica.c
in felicasim.c
in felicasim.c
in hfops.c
in hfsnoop.c
in hitag2.c
in hitag_common.c(Cross-platform implementation is incomplete.)
in hitagS.c
in hitagu.c
in i2c.c(Incomplete, continue to abstract.)
in i2c_direct.c
in iclass.c
in iso14443a.c(Sniff no finish yet)
in iso14443b.c and fixed bug for st25
in iso15693.c
in legicrf.c
in legicrfsim.c
in lfadc.c(lf_count_edge_periods_ex() improved)
in lfops.c(TI tag no finish yet)
in lfsampling.c
in lfzx.c
in mifarecmd.c
in mifaredesfire.c
in mifaresim.c
in mifaresniff_disabled.c
in mifareutil.c
in pcf7931.c
in sam_xxx
in secc & seos
in start.c
in thinfilm.c
in utils
2026-08-19 15:32:39 +02:00
Philippe Teuwen d2a8cca233 Add pm5 capabilities 2026-08-19 12:04:33 +02:00
dxl 94e350fab9 Fixed a bug where Proxmark5 dump mfu data was empty. 2026-08-19 12:04:33 +02:00
dxl 389e052ba4 Add the relevant IO definitions for capturing ssc_frames on PM5. 2026-08-19 12:04:33 +02:00
dxl 7bb46ff71e Separate the GPIO definitions of different platforms. 2026-08-19 12:04:32 +02:00
dxl 516ef68ba6 Fixed bug for RAMFUNC definition 2026-08-19 12:04:32 +02:00
dxl c3df8e705d Added def: FORCE_INLINE & STATIC_FORCE_INLINE 2026-08-19 12:04:32 +02:00
dxl 69c5db7487 Make VERSION_INFORMATION_MAGIC cross-platform. 2026-08-19 12:04:32 +02:00
dxl f145871b7e Added some cmd and struct definitions for proxmark5 2026-08-19 12:04:32 +02:00
kormax 91145e5539 Introduce FeliCa SEAC command constants 2026-08-01 00:36:47 +03:00
kormax e7bb2370bc Add more encountered FeliCa command codes to the knowledge base 2026-07-28 21:16:37 +03:00
iceman1001 58eb7a9e43 escape sequences 2026-07-28 15:53:20 +02:00
kormax b2a54cd95b Move some used FeliCa constants into shared protocols 2026-07-25 12:58:52 +03:00
kormax 1f5010bc3e Add missing FeliCa secure session command code recognition 2026-07-25 12:48:50 +03:00
kormax 1a4c2b7c70 Normalize FeliCa command constant names 2026-07-25 12:46:47 +03:00
kormax 9c787c1162 Cleanup unused FeliCa constants 2026-07-25 11:37:45 +03:00
kormax 9c42daabea Add annotation for extended FeliCa commands 2026-07-24 21:32:00 +03:00
kormax c3ba7e29c7 Add annotation of mobile commands for FeliCa 2026-07-23 17:39:59 +03:00
kormax 8b67f60775 Add annotation of secure channel commands for FeliCa 2026-07-22 17:15:47 +03:00
iceman1001 2c6e607110 style 2026-07-15 16:39:15 +02:00
kormax b3781a7bbc Update ASK CTS general info output 2026-06-30 23:41:44 +03:00
kormax 9d7447ddcd Refine Innovatron protocol handling 2026-06-26 23:20:05 +03:00
kormax 1e254bc7a1 Add support for Innovatron protocol to Calypso commands 2026-06-18 22:33:41 +03:00
kormax a881c81ec1 Add support for detecting Innovatron protocol in 'hf 14b info' 2026-06-18 20:26:13 +03:00
kormax da5355ed81 Add support for GetContainerId to 'hf felica sim' 2026-06-13 22:20:45 +03:00
towelbyte c1cefd6e38 Complete and working reimplementation of COTAG support
- "lf cotag reader": now behaves mostly the same as "lf read",
   except it is dedicated for COTAG.
	- It makes sure to send COTAG start sequence and to use
          real time sampling mode to get enough samples.

- "lf cotag demod": Working client-side COTAG demodulation implementation
   (high-low raw demod + Manchester demodulation from high/low demod).
	- Now uses samples directly from g_GraphBuffer
	- Supports 3 types of COTAG preamble (1 active, 2 passive), which
          can start anywhere in the samples.
	- Prints full 128-bits of COTAG tag data in 3 formats: raw,
          groupped by nibbles, and in hex, and identifies and
          prints out the card number.

Signed-off-by: andrej@towelbyte.net
2026-06-12 22:49:06 +02:00
kormax 4ad136b5db Implement 'hf felica sim' command 2026-06-12 18:31:57 +03:00
Philippe Teuwen 184a957436 counterfeit ULC: add support to auth with nonce pairs 2026-06-10 01:02:14 +02:00
Philippe Teuwen 607737e52e counterfeit ULC: need to merge nonce collection in auth logic for proper timings 2026-06-10 00:39:46 +02:00
michael 9a4fcf2140 hf 15 reader: 16-slot anti-collision inventory (--all)
Add ISO 15693 16-slot inventory with anti-collision tree-walking, reachable via 'hf 15 reader --all'; single-tag reading stays the default. The firmware steps the 16 slots with EOF markers and flags 'signal but no decode' slots as collision hints; the client walks the UID mask tree, validates CRC per slot to confirm real collisions, and dedups discovered tags. Single-tag reading (default) and 16-slot inventory (--all) both run under hf 15 reader.
2026-06-08 14:54:00 -07:00
Philippe Teuwen ff04e1ea9a hf mfu cauth: add -c to collect nonces 2026-06-07 22:58:39 +02:00
Philippe Teuwen d078e8a62b make style 2026-05-21 20:54:44 +02:00
Iceman 537f844ce4 Merge pull request #3301 from suut/desfire-ev3c-support__create-mapping
Desfire EV3C Support: create MFC mapping
2026-05-14 18:50:53 +02:00
Iceman d9ed0b310f Merge pull request #3302 from kormax/calypso-improvements
Calypso improvements
2026-05-12 21:53:17 +02:00
kormax d0d562528d Recognize more command codes in 'hf calypso list' 2026-05-12 19:04:02 +03:00
kormax bd5cb11ee7 Add color codes to ansi.h 2026-05-12 18:22:15 +03:00
iceman1001 cbb572afad style 2026-05-11 14:36:17 +02:00
suut 1c258381ef add support for hf mfdes createmfcmapping 2026-05-11 10:54:22 +02:00
Antiklesys abe54994d2 Implemented SC operations 2026-05-11 13:54:49 +08:00
kormax 3da7e52c1a Implement 'hf calypso list' command 2026-05-10 21:18:04 +03:00
kormax 226f049599 Make clearing the trace an explicit flag in FeliCa module 2026-04-25 20:26:44 +03:00
Antiklesys 0ffe244a6b Fix for circular buffer error during hf iclass sim
Issue origin:
Commit 6b7665ed5 "Added live fc/cn update to hf iclass tagsim" added a data_available() poll inside the per-byte DMA loop of GetIso15693CommandFromReader so the ARM could drop out of RF-listen and process live emulator updates.

Before that commit, that tight loop had no USB poll at all — only gotFrame / BUTTON_PRESS / WDT_HIT. Verified via git show 6b7665ed5^:armsrc/iso15693.c.

Why it shows up on sim -t 3/6/7: those are the FULL sim modes that share do_iclass_simulation. Between reader commands the decoder sits in STATE_READER_UNSYNCD, so the gated poll at iso15693.c:1570-1575 fires every byte (reading UDP peripheral registers). With DMA filling at ~1 byte / ~19 µs, the added USB register reads plus jitter occasionally push the CPU past the 90% lag threshold → behindBy 461 with DMA_BUFFER_SIZE=512.

Commit fb8f94fa2 narrowed the gate to UNSYNCD to stop mid-frame exits, but the per-byte poll itself is still what's new on that path.

Fix:

New mode constant in include/iclass_cmd.h:

#define ICLASS_SIM_MODE_FULL_LIVE  8  // FULL + allow USB interrupt for live emul updates
Treat it identically to ICLASS_SIM_MODE_FULL everywhere except for the poll gate.

Add a flag param to GetIso15693CommandFromReader — e.g. bool allow_usb_interrupt in iso15693.c:1495 and iso15693.h:42. Wrap the poll:

if (allow_usb_interrupt &&
    (dr->state == STATE_READER_UNSYNCD ||
     dr->state == STATE_READER_AWAIT_1ST_FALLING_EDGE_OF_SOF) &&
     data_available()) { ... }
Pass true only for live mode in do_iclass_simulation iclass.c:502:

bool live = (simulationMode == ICLASS_SIM_MODE_FULL_LIVE);
len = GetIso15693CommandFromReader(receivedCmd, MAX_FRAME_SIZE, &reader_eof_time, live);
The len == -2 drain block stays but becomes dead code for non-live modes (never returns -2).

Client side: cmdhficlass.c:1687 (CmdHFiClassTagSim) sends ICLASS_SIM_MODE_FULL_LIVE. CmdHFiClassSim -t 3/6/7 keeps sending ICLASS_SIM_MODE_FULL / _GLITCH / _GLITCH_KEY.

Other callers (iso15693.c:2270, iclass.c:1121 = reader-attack sim) pass false.

Result:

hf iclass sim -t 3/6/7 → byte-inner loop is back to its pre-tagsim shape → no blow-buffer abort.
hf iclass tagsim → keeps live update ability; still has the overhead, but that's the trade-off the feature needs.
2026-04-17 03:00:14 +08:00