Files
pi-pm3/LED_MAPPINGS.md
michael 4f35df1781 Initial commit - Phase 3/4
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 13:46:22 -08:00

107 lines
3.2 KiB
Markdown

# 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