-
Notifications
You must be signed in to change notification settings - Fork 0
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
[FEATURE] Support for TVG Mode #19
Comments
Progress UpdateThis is now partially working. I can change the mode on the wand and the Cyclotron changes color: The configuration looks like this: "modes": {
"proton": {
"color": {
"powercell": "0x0000FF",
"cyclotron": "0xFF0000",
"nfilter": "0xFFFFFF"
}
},
"slime": {
"color": {
"powercell": "0x0000FF",
"cyclotron": "0x00FF00",
"nfilter": "0xFFFFFF"
}
},
"stasis": {
"color": {
"powercell": "0x0000FF",
"cyclotron": "0x0000FF",
"nfilter": "0xFFFFFF"
}
},
"meson": {
"color": {
"powercell": "0x0000FF",
"cyclotron": "0xFFA500",
"nfilter": "0xFFFFFF"
}
}
} (NOTE: The Powercell is always Blue for all modes, and the N-Filter is always White, but it would be possible for someone to make these different colors if they wanted). Until now we haven't supported Venting at all, I am only half way through implementing this instead of Overheating (which is why the Powercell currently cuts out during venting). Next I will be focusing on refactoring the JSON config/preset file so that it loads correctly, then complete venting support. |
Progress UpdateThis is now fully completed as far as I can tell. Changes have been pushed to the I have converted all hard-coded animation configuration into JSON and included it in As you can see, all of the animations come from the JSON file, giving full control to the users: Note that this Also note that I have removed "Overheating" for now from the main sketch. As far as I know the soundboard doesn't support overheating, only "venting". So if we want to support this, we will need to allow users to customize the overheat duration, and perform our own "temperature check" calculation based on this so that it (hopefully) syncs up with the soundboard. This is complicated and so I believe it's worth leaving out for now. This demo video shows how this works currently: Proton Mode "proton": {
"powercell": "0x0000FF",
"cyclotron": "0xFF0000",
"nfilter": "0xFFFFFF"
}, Slime Mode "slime": {
"powercell": "0x0000FF",
"cyclotron": "0x00FF00",
"nfilter": "0xFFFFFF"
}, Stasis Mode "stasis": {
"powercell": "0x0000FF",
"cyclotron": "0x0000FF",
"nfilter": "0xFFFFFF"
}, Meson Mode "meson": {
"powercell": "0x0000FF",
"cyclotron": "0xFFA500",
"nfilter": "0xFFFFFF"
} Testing
pio run --target uploadfs
pio run --target upload As far as I can tell this should work with the soundboard, based on what I'm seeing in the documentation. |
(Moving this from #10 so it doesn't get too confusing)
After reading the soundboard documentation PDF I can see the following:
OK, so I had no idea what "R2DEVO" was, looks like it's an old pack light kit from 10+ years ago and isn't applicable to this project, so we can ignore it.
Firing
Mode 1 (Movie Pack Sounds) and Mode 2 (Movie Pack Sounds with Interactive Features) appear to be exactly the same, except that Mode 2 plays clips from the movie (ie "Nice Shooting, Tex!") after firing finishes.
As far as I can tell there's no difference in the signals that the Soundboard sends to the wand lights in these modes (it will send
STATE_FIRE_MOVIE
either way).Mode 3 (TVG Pack Sounds) is the more complicated one here.
Firing documentation:
Super simple. In Movie mode this will send
STATE_FIRE_MOVIE
until the button is let go. In TVG Mode it will sendSTATE_FIRE_TVG
regardless of current TVG setting (ie Proton/Slime/Stasis/Meson).Looks like this also will just send
STATE_FIRE_TVG
for quick bursts, so we already support this, and the pack lights don't currently have to behave differently for these. It could be something we add on later (if firing was only for a fraction of a second we display different animations), but that's out of scope.Each time the TVG pack is changed, it looks like this just notifies the pack lights to change Cyclotron color via:
Venting
So, venting exists in both Movie and TVG mode.
We have the following vent states documented from the soundboard:
I have no idea what
STATE_VENT_STROBE
is supposed to do here, there's nothing documented about this as far as I can see.So, can we assume that
STATE_VENTING_ACTION
refers to a manual vent action, andSTATE_AUTOMATIC_VENTING
refers to an automatic one (ie triggered by a full overheat)?As far as the pack lights go I don't think there's any difference, venting is venting.
So we should be able to treat both the same, via something like:
I've implemented the above into my demo Arduino Nano sketch, with the difference that my second pushbutton is used to toggle TVG modes instead of manually venting. This should be enough for me to proceed.
The text was updated successfully, but these errors were encountered: