# 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 | Effects | Physical Position | |-----|--------|----------|-------------|------------|---------|-------------------| | A | Green | PA0 | PWM0 | ✅ 0-100% | All | 1st (leftmost) | | B | Blue | PA2 | PWM2 | ✅ 0-100% | All | 4th (rightmost) | | C | Orange | PA9 | None | On/Off | Blink | 2nd | | D | Red | PA8 | None | On/Off | Blink | 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 | Brightness | Effects | |-----|---------|----------|-------------|------------|---------| | A | Orange | PA0 | PWM0 | ✅ 0-100% | All | | B | Green | PA8 | None | On/Off | Blink | | C | Red | PA9 | None | On/Off | Blink | | D | Red2 | PA2 | PWM2 | ✅ 0-100% | All | **Note:** Only LEDs on PA0 and PA2 can use PWM brightness control and PWM effects (pulse, fade) on any PM3 variant. ## Usage Examples ### Basic LED Control ```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 ``` ### LED Effects Three effects are available: **pulse**, **fade**, and **blink**. ```bash # Pulse effect (PWM LEDs only: A, B) # Smoothly fades in and out hw led --led a --pulse # 5 cycles @ 500ms default hw led --led a,b --pulse --count 10 # 10 cycles hw led --led a --pulse --speed 300 # Faster pulse (300ms cycle) hw led --led b --pulse --count 0 # Infinite until button press # Fade effect (PWM LEDs only: A, B) # Starts at full brightness, fades to off hw led --led a --fade # Default 500ms fade hw led --led a,b --fade --speed 1000 # Slower 1-second fade # Blink effect (ALL LEDs supported: A, B, C, D) # Alternates on/off hw led --led a,b,c,d --blink # All LEDs, 5 blinks hw led --led c,d --blink --count 20 # Non-PWM LEDs work too hw led --led all --blink --speed 200 # Fast blink (200ms cycle) hw led --led a --blink --count 0 # Infinite until stopped ``` ### Effect Parameters | Parameter | Description | Range | Default | |-----------|-------------|-------|---------| | `--speed` | Cycle time in milliseconds | 50-10000 | 500 | | `--count` | Number of effect cycles | 0-65535 | 5 | **Note:** `--count 0` runs the effect indefinitely until interrupted by: - Pressing the button on the Proxmark3 device - Sending any other command ### Multi-Device Identification Use brightness levels and effects 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: Pulsing green (easy to spot) hw led --led a --pulse --count 0 # Device 4: Fast blinking all LEDs hw led --led all --blink --speed 200 --count 0 ``` ## 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:** 2026-01-06 **Hardware:** Proxmark3 Easy with LED_ORDER=PM3EASY **Effects Added:** pulse, fade, blink (v1.1)