# Proxmark3 LED Mappings Reference ## Proxmark3 Easy Based on hardware testing with Proxmark3 Easy and `LED_ORDER=PM3EASY`: ### LED Configuration | LED | Color | GPIO Pin | PWM Channel | Brightness | Physical Position | |-----|--------|----------|-------------|------------|-------------------| | A | Green | PA0 | PWM0 | ✅ 0-100% | 1st (leftmost) | | B | Blue | PA2 | PWM2 | ✅ 0-100% | 4th (rightmost) | | C | Orange | PA9 | None | On/Off | 2nd | | D | Red | PA8 | None | On/Off | 3rd | **Physical LED order (left to right):** Green, Orange, Red, Blue ### GPIO Pin Details From `include/config_gpio.h` with `LED_ORDER_PM3EASY`: ```c #define GPIO_LED_A AT91C_PIO_PA0 // Green - PWM0 capable #define GPIO_LED_B AT91C_PIO_PA2 // Blue - PWM2 capable #define GPIO_LED_C AT91C_PIO_PA9 // Orange - GPIO only #define GPIO_LED_D AT91C_PIO_PA8 // Red - GPIO only ``` ### LED Bitmask Values | LED | Bitmask (decimal) | Bitmask (hex) | Binary | |-----|-------------------|---------------|--------| | A | 1 | 0x01 | 0001 | | B | 2 | 0x02 | 0010 | | C | 4 | 0x04 | 0100 | | D | 8 | 0x08 | 1000 | | All | 15 | 0x0F | 1111 | ## Standard Proxmark3 (Non-Easy) With default LED ordering (no `LED_ORDER_PM3EASY`): | LED | Color | GPIO Pin | PWM Channel | Notes | |-----|---------|----------|-------------|-------| | A | Orange | PA0 | PWM0 | ✅ Brightness capable | | B | Green | PA8 | None | On/Off only | | C | Red | PA9 | None | On/Off only | | D | Red2 | PA2 | PWM2 | ✅ Brightness capable | **Note:** Only LEDs on PA0 and PA2 can use PWM brightness control on any PM3 variant. ## Usage Examples ### Proxmark3 Easy ```bash # Green LED at 50% brightness hw led --led a --brightness 50 # Blue LED at 75% brightness hw led --led b --brightness 75 # Orange LED on (no brightness control) hw led --led c --on # Red LED toggle hw led --led d --toggle # Both PWM LEDs at 30% hw led --led a,b --brightness 30 ``` ### Multi-Device Identification Use brightness levels to distinguish between multiple Proxmark3 devices: ```bash # Device 1: Dim green hw led --led a --brightness 20 # Device 2: Bright blue hw led --led b --brightness 100 # Device 3: Medium green + dim blue hw led --led a --brightness 60 hw led --led b --brightness 30 ``` ## Hardware Testing Notes - Confirmed via individual LED testing on PM3 Easy hardware - During `hw tune`: Red (D) and Blue (B) LEDs typically active - During flashing: Orange (C) and sometimes Green (A) visible - LED polarity: Active-low (PWM duty cycle is inverted) ## Code References - LED definitions: [armsrc/util.h](/.pm3-test/proxmark3/armsrc/util.h) lines 45-63 - LED macros: [include/proxmark3_arm.h](/.pm3-test/proxmark3/include/proxmark3_arm.h) lines 91-102 - GPIO mapping: [include/config_gpio.h](/.pm3-test/proxmark3/include/config_gpio.h) lines 22-39 - PWM functions: [armsrc/util.c](/.pm3-test/proxmark3/armsrc/util.c) lines 419-504 --- **Last Updated:** 2025-12-02 **Hardware:** Proxmark3 Easy with LED_ORDER=PM3EASY