Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RS485 Hotline Protocol Receiver/Transmitter #5

Merged
merged 38 commits into from
Aug 4, 2024
Merged

RS485 Hotline Protocol Receiver/Transmitter #5

merged 38 commits into from
Aug 4, 2024

Conversation

twoshark
Copy link
Collaborator

@twoshark twoshark commented Jul 14, 2024

What

This PR Creates a new control layer for MindShark's fire installations. An input controller consumes button inputs to send Hotline RS485 Messages to the Sign and MegaPoofer output controllers.

Hotline Protocol

  • Docs: docs/protocol.md
  • Library: hotline/README.md

Input Controller

  • Code Base
    • /input_controller
  • Input to Output Trace:
    • input_controller/README.md
  • Jumper select between sign, megapoofer or both.

Output Controller

  • Code Base
    • /output_controller
  • Generic 8 Digital Output Hotline Receiver
  • Hotline Device ID controls active outputs
    • 0x00 - Sign Output
    • 0x01 - MegaPoofer
    • 0xFF - All outputs active (8)

Testing

It still misses the occasional message but since it is repeating full state it doesn't matter:

Received command - Device ID: 1, States: [true, false, false, false]
Solenoid 1 High
Solenoid 2 High
Solenoid 3 High
Received command - Device ID: 1, States: [true, true, true, true]
Failed to Parse Message
Invalid Delimiters
Received command - Device ID: 1, States: [true, true, true, true]
Received command - Device ID: 1, States: [true, true, true, true]
Received command - Device ID: 1, States: [true, true, true, true]
Received command - Device ID: 1, States: [true, true, true, true]
Received command - Device ID: 1, States: [true, true, true, true]
Received command - Device ID: 1, States: [true, true, true, true]
Received command - Device ID: 1, States: [true, true, true, true]
Received command - Device ID: 1, States: [true, true, true, true]
Solenoid 1 Low
Solenoid 2 Low
Solenoid 3 Low
Received command - Device ID: 1, States: [true, false, false, false]

Tested e2e with Solenoids, relays and buttons 🎉

- Protocol: Docs and Implementation
- fire/: rs485 receiver using hotline for control of effect heads, pilots, etc.
- controller/: 13 input (with 1 broadcast) rs485 transmitter using Hotline
- added to ci
@twoshark twoshark requested a review from dtp263 July 14, 2024 21:53
- Update Hotline Protocol to send 16 states in 2 bytes
- Combine Sign and MP output controllers with optional eval of dio states based on installation device_id
- Add Device_ID 0xFF for all outputs active.
@twoshark twoshark merged commit ca6af51 into main Aug 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant