Main PIC Communication Guide
The Main PIC is the central controller of the BIRDS OBC subsystem. It interfaces with the Com PIC, Reset PIC, and Mission PICs via UART to coordinate all mission-critical tasks, including data transmission, power control, and subsystem management.
Estimated time to complete: 7 minutes
📡 Communication with Com PIC
The Com PIC is responsible for managing the radio transceiver and handling all uplink/downlink operations. The Main PIC sends commands or data to it when transmission or reception is required.
🔌 Interface
- Protocol: UART
- Baud Rate: [Specify, e.g., 9600 bps]
- Direction: Bidirectional
📦 Data Sent
Type | Description | Size |
---|---|---|
Command Packet | e.g., send CW, start transmission | 1–3 bytes |
CW Data | Continuous Wave identification string | ≤16 bytes |
Payload Data | Data to be downlinked | Variable (typically ≤32 bytes) |
🔁 Data Received
Type | Description | Size |
---|---|---|
ACK/NACK | Acknowledgment of received command | 1 byte |
Received Data | Data received from ground (e.g., commands) | Variable |
🔁 Communication with Reset PIC
The Reset PIC functions as a watchdog controller. It monitors activity and ensures mission boards or other PICs can be reset if they become unresponsive.
🔌 Interface
- Protocol: UART
- Baud Rate: [Specify, e.g., 9600 bps]
- Direction: Unidirectional (Main → Reset PIC)
📦 Data Sent
Type | Description | Size |
---|---|---|
Reset Command | Instruction to reset a specific PIC | 1 byte |
Power Control | Signal to turn ON/OFF power lines | 1 byte |
⚠️ The Reset PIC is not expected to reply. Instead, it acts on the command and may reset the target system immediately.
🛰️ Communication with Mission Boards (FAB PICs)
Each mission board (e.g., payload or sensor unit) includes its own PIC and communicates with the Main PIC over dedicated UART lines.
🔌 Interface
- Protocol: UART
- Direction: Bidirectional
- Baud Rate: [Specify if fixed]
📦 Data Sent
Type | Description | Size |
---|---|---|
Command Packet | Instructions for payload operation | 1–2 bytes |
Payload Input | Data used to configure or trigger action | Variable |
🔁 Data Received
Type | Description | Size |
---|---|---|
Telemetry Data | Output from payload or board sensor | Variable |
Status Response | Confirmation or operational status | 1–2 bytes |
💡 Each mission board should document its command ID format and telemetry payload format separately in its own peripheral ICD.
📋 Summary Table
Link | Connected To | Protocol | Data Types | Size (approx) |
---|---|---|---|---|
Main ↔ Com | Com PIC | UART | Commands, CW, Payload | 1–32 bytes |
Main → Reset | Reset PIC | UART | Reset signal, Power toggle | 1 byte |
Main ↔ FABs | Mission PICs | UART | Commands, Payload, Telemetry | Variable |
📎 Notes for Developers
- All UART communication uses custom packet structures with framing and checksums. Please refer to the OBC Communication Protocol Spec for full details.
- When adding a new mission board, make sure to:
- Assign a unique command ID range
- Define expected responses
- Test resilience against invalid commands or corrupted frames
🧪 Example Test Case
Test: Send a
START_PAYLOAD_CAPTURE
command to Mission Board #2
Expected Response:0xAA
ACK byte within 200ms
Failure Action: Log timeout, retry once, escalate to Reset PIC if unresponsive after 2 retries.