Firmware Developer for CC2652 Zigbee Devices

Job ID: 39588939

Budget: $15 – $25 USD

Generic Firmware Requirements – CC2652 Zigbee Devices
Applies to: 16A Switch, Single Input Switch, Dimmer, Plug
Target MCU: CC2652 (Zigbee 3.0 + PA compatible)

1. Core Firmware Capabilities
Zigbee 3.0 Compliant Stack

Device role: End Device (Router or FFD optional if power-available)

Support joining/leaving networks

PAN ID, MAC-ID-based secure joining

Child aging and rejoin logic

Device binding/unbinding for groups/scenes

Network Stack Integration

IEEE 802.15.4 MAC over 2.4 GHz

Secure communication (AES-128 encryption)

RF Range optimization: ≥30 meters indoor

Support for mesh topology with ≥4 hops (routing handled by RTU/repeaters)

Manual switch events to trigger auto state update to RTU (MQTT interface indirectly via UART or GPIO triggers)

2. Device Behavior & Features
Manual Input Logic

Tactile push-button(s) to trigger local actions

Long-press ≥10 seconds = Factory reset (with LED confirmation)

Button press toggles state and reports to RTU

LED Indicator Modes

State LED Behavior
Searching/Connecting 2×100ms blink every 10s
Failed RTU Connection 10×100ms blink after 1 minute timeout
Normal ON Dim LED glow
Normal OFF Full LED brightness
Operational Error Custom blink pattern or fixed state

Persistent State

Store last known state in flash

Resume last state after power failure

Respond to RTU query with current state

3. RTU Interface & Communication
Provisioning

Secure joining using RTU MAC whitelist

Only 1 RTU allowed (RTU MAC binding at join time)

Reject other RTUs – maintain blacklist

Deregistration by cloud/RTU triggers factory reset + blacklist

Commands & OTA

UART/UART-over-GPIO interface for communication with RTU

Accept individual or group commands (on/off, dim, etc.)

Support OTA firmware updates using Zigbee OTA cluster

Firmware Protocol Hooks

Command Received: Validate → Execute → Respond with ACK

Manual Event: Execute → Send state update

Error State: Report via LED and diagnostic pin (if debug enabled)

4. Memory & Flash Requirements
Minimum Flash/RAM

Code size budget: ~200–300 KB (Zigbee stack + app)

64 KB RAM minimum

Non-Volatile Storage

Store:

Device configuration (RTU ID, Group ID)

State history (up to 24h buffering if power available)

OTA firmware slot

5. Debugging & Diagnostics
Expose debug pins (TX/RX, SWD, Reset) – unpopulated in production

Factory Test Mode (test firmware): LED toggle, Zigbee beacon, relay click

Console interface via UART to output logs (only in debug firmware)

6. Security & Updates
Zigbee-standard AES-128 network key

Private mesh: only route messages to/from whitelisted devices

Support OTA upgrade with signature validation

Blacklist mechanism for rejected RTUs or repeated auth failures

7. Power & Environment
Input voltage: 110V–240V AC through power supply module

Surges protected and noise filtered

Target relay/mechanical operations: ≥100k button presses, ≥200k relay cycles

Fully operational in washroom/humid conditions

Power-efficient LED driving (PWM dimming if needed)

8. Optional Configurations by Device Type
Device Extra Features
16A Switch Relay control, LED dim after ON, relay feedback GPIO
NONC Switch Input-only monitoring + feedback GPIO to RTU
Dimmer 3-button input logic, stage-based dimming (5–7 steps)
Plug No button, soft relay + power-sense pin (optional)