-
Notifications
You must be signed in to change notification settings - Fork 83
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
Generic Race Timer Backpack #114
Conversation
FYI, I wasn't sure what to set |
I suppose the backpack should still have the ability to send messages to the bound backpack by default. Should be a quick fix on my end. |
Could we have esp82 target too? |
- more generic targets - rotorhazard targets - registerPeer function
There seems to be an issue that I haven't been able to pinpoint down where there are lost packets between the timer backpack and the HDZero goggle's backpack. This will often result in OSD messages not showing up or being cleared on the display. I'm assuming this issue has to do with the rapid rate at which I've been sending packets over the backpack (multiple messages to multiple pilots as fast as possible). A few different ideas I've tried:
I'm open to trying any other suggested ideas |
I'm thinking we could change the backpacks so you can send more than a single MSP in an ESPNow packet. That would certainly be beneficial for this use case as you could send all the MSP displayport messages to update the screen in one packet. Bearing in mind that the ESPNow packets are limited to 256 bytes. |
- Add recieving queues for timer and HDZero Gogggles - Switched Timer queue(s) to FreeRTOS - Checking incoming serial buffer before reset - Reset ESP32 only when queues are empty - Synchronization of esp32 multi-core actions (wifi & main loop)
These changes seem promising on the bench - field results to come this weekend. Just a heads up, there is a slight modification to the VRx backpack to allow the HDZero goggle backpack to receive and store messages faster than the goggles can processes them. |
Testing this past weekend went well. After reviewing the pilot's footage, I would estimate that 98% of the messages are getting through consistently now. A few ideas as to why its not at 100%
An interesting (and backwards compatibility breaking) change would be to use the first five octets of the MAC address come from the bind phrase, but the last octet would then be determined by device type (transmitter: 1, Vrx: 2, timer: 3). For simplicity, the transmitter could be set to only send to the vrx and vice versa for the vrx to the transmitter, but the timer would then be able to selectively target one or the other depending on the message being sent. |
The last unprovoked changes from me. Removing the periodic reboots fixes the last issue I was worried about. Synced pilot race demo (warning: audio is loud and unedited) |
I'll go over this one more time and if it's all good I'll merge the changes. |
Adds in a backpack target for a generic race timer. It has the following features:
MSP_ELRS_BACKPACK_SET_RECORDING_STATE
only from the bound backpack (assuming race director's backpack)The backpack was built to pair with this RotorHazard Plugin for sending OSD messages throughout the race to pilots with hardware to support it (HDZero goggles).
Has only been tested with the ESP32 chipset.