Complete pin assignments for both IR v1 and HC-12 v2 versions of the WireLessText Terminal
This document lists all Arduino pin assignments for both v1 (IR) and v2 (HC-12) versions of the WireLessText Terminal.
| Component | IR v1 Pins | HC-12 v2 Pins |
|---|---|---|
| LCD | 2, 3, 4, 5, 6, 7 | 4, 5, 6, 7, 8, 9 |
| Keypad Rows | A0, A1, A3, A4 | A0, A1, A3, A4 |
| Keypad Cols | 10, 11, 12 | 10, 11, 12 |
| IR/RF | 9 (IR LED or IR Rx) | 2, 3 (HC-12 RX, TX) |
Note: HC-12 v2 uses different LCD pins because pins 2 and 3 are used for SoftwareSerial.
| Arduino Pin | LCD Pin | Function | Notes |
|---|---|---|---|
| 2 | RS | Register Select | Data/Command select |
| 3 | EN | Enable | Clock/strobe signal |
| 4 | D4 | Data bit 4 | Lower nibble |
| 5 | D5 | Data bit 5 | Lower nibble |
| 6 | D6 | Data bit 6 | Lower nibble |
| 7 | D7 | Data bit 7 | Lower nibble |
| 5V | VCC | Power | 5V supply |
| GND | GND | Ground | Common ground |
| — | V0 | Contrast | Potentiometer to GND |
| — | R/W | Read/Write | Grounded (write only) |
Note: LCD pins D0-D3 are unused (4-bit mode).
| Arduino Pin | Function | Notes |
|---|---|---|
| A0 | Row 0 | Input with pullup |
| A1 | Row 1 | Input with pullup |
| A3 | Row 2 | Input with pullup |
| A4 | Row 3 | Input with pullup |
| 10 | Column 0 | Output, driven LOW during scan |
| 11 | Column 1 | Output, driven LOW during scan |
| 12 | Column 2 | Output, driven LOW during scan |
Key Mapping (row-major order):
Row 0: ['1', '2', '3']
Row 1: ['4', '5', '6']
Row 2: ['7', '8', '9']
Row 3: ['*', '0', '#']
| Arduino Pin | Component | Notes |
|---|---|---|
| 9 | IR LED anode | Via current-limiting resistor (~100Ω) |
| GND | IR LED cathode | Direct connection |
Protocol: NEC, Address 0xEF00, 38 kHz carrier
| Arduino Pin | Component | Notes |
|---|---|---|
| 9 | IR Rx OUT | Data output from receiver module |
| 5V | IR Rx VCC | Power supply |
| GND | IR Rx GND | Common ground |
Protocol: NEC decode, validates address 0xEF00
| Arduino Pin | LCD Pin | Function | Notes |
|---|---|---|---|
| 4 | RS | Register Select | Data/Command select |
| 5 | EN | Enable | Clock/strobe signal |
| 6 | D4 | Data bit 4 | Lower nibble |
| 7 | D5 | Data bit 5 | Lower nibble |
| 8 | D6 | Data bit 6 | Lower nibble |
| 9 | D7 | Data bit 7 | Lower nibble |
| 5V | VCC | Power | 5V supply |
| GND | GND | Ground | Common ground |
| — | V0 | Contrast | Potentiometer to GND |
| — | R/W | Read/Write | Grounded (write only) |
Note: LCD pins shifted to 4-9 because pins 2-3 are used for HC-12.
Same as IR v1:
| Arduino Pin | Function | Notes |
|---|---|---|
| A0 | Row 0 | Input with pullup |
| A1 | Row 1 | Input with pullup |
| A3 | Row 2 | Input with pullup |
| A4 | Row 3 | Input with pullup |
| 10 | Column 0 | Output, driven LOW during scan |
| 11 | Column 1 | Output, driven LOW during scan |
| 12 | Column 2 | Output, driven LOW during scan |
Key Mapping: Same as IR v1 (see above).
| Arduino Pin | HC-12 Pin | Function | Notes |
|---|---|---|---|
| 2 | TX | HC-12 TX → Arduino RX | SoftwareSerial RX (5V tolerant) |
| 3 | RX | HC-12 RX ← Arduino TX | Via voltage divider (5V → 3.3V) |
| 5V | VCC | Power | 5V supply |
| GND | GND | Ground | Common ground |
| — | SET | Unconnected | Default mode (9600 baud) |
Voltage Divider for HC-12 RX:
- Arduino TX (pin 3) → 2.2 kΩ resistor → HC-12 RX
- HC-12 RX ← 3.3 kΩ resistor ← GND
- This creates approximately 3.3V signal level
Alternative: Use a logic level converter module (e.g., SparkFun Logic Level Converter).
Baud Rate: 9600 (default HC-12 setting)
Note: HC-12 operates at 3.3V logic levels. The Arduino outputs 5V, so a voltage divider is required on the RX line (HC-12 RX). The TX line from HC-12 can connect directly to Arduino (most Arduinos tolerate 3.3V on digital inputs, but check your board specifications).
The following pins are available for future use or debugging:
IR v1:
- Digital: 0, 1, 8, 13 (Note: 0/1 are UART, 13 is onboard LED)
- Analog: A2, A5 (A3 and A4 used for keypad)
HC-12 v2:
- Digital: 0, 1, 11, 12, 13 (Note: 0/1 are UART, 13 is onboard LED)
- Analog: A2, A5 (A3 and A4 used for keypad)
- LCD: Typically draws 1-2 mA (backlight may add 20-100 mA if enabled)
- Keypad: Negligible current (only during scan)
- IR LED: ~20-50 mA during transmission (via current-limiting resistor)
- IR Receiver: ~1-5 mA continuous
- HC-12: ~20-80 mA during transmission, ~16 mA during reception, ~2 μA in sleep mode
All components can be powered from Arduino's 5V regulator if using a 7-12V supply. If powering from USB (5V), ensure total current draw < 500 mA for USB 2.0 or < 900 mA for USB 3.0.