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

[Bug]: Overheat Issues in 84/89 #354

Closed
1 task done
Toy203 opened this issue Jul 31, 2024 · 23 comments
Closed
1 task done

[Bug]: Overheat Issues in 84/89 #354

Toy203 opened this issue Jul 31, 2024 · 23 comments
Assignees
Labels
bug Something isn't working

Comments

@Toy203
Copy link

Toy203 commented Jul 31, 2024

What actions were attempted?

Triggering the overheat sequence while in 84 or 89 modes makes the cyclotron leds go out of synch and go on and off seemely randomly. Eeprom is correctly configured for my 36 frutto leds.

What actually happened?

https://youtu.be/4U4C8m3I3ZY

What was expected?

Should just slow down the rotation animation i guess? Or they should all blink together in synch at least.

Firmware Version

5.3.2

Mode in Use

Super Hero / Video Game

Notable Hardware

9 leds frutto pucks.

Homework Completed

  • I did my part!
@Toy203 Toy203 added the bug Something isn't working label Jul 31, 2024
@nomakewan
Copy link
Collaborator

In overheat, with fade enabled (which is the default setting), overheat should have them all in sync.

However, it would appear that the fix for the seizure-inducing color shifts during fade events has also caused the overheat animation to be out of sync. I'll look into it.

For now, since it's overheating which is an error state anyway, this erratic behavior can just be a "feature". But yes, 5.3.3 will have a fix. Along with that ring sim ramp up/down fix that's been on the back burner since 5.3.0.

@nomakewan nomakewan self-assigned this Jul 31, 2024
@Toy203
Copy link
Author

Toy203 commented Jul 31, 2024

Honestly yeah, I could also see it as a malfunctioning thing and doesn't look sloppy at all.

@nomakewan
Copy link
Collaborator

Should now be fixed in commit ffb493a.

@Toy203 Toy203 closed this as completed Aug 1, 2024
@nomakewan
Copy link
Collaborator

Just to check back, did that commit actually fix the bug? I still won't be able to test on real hardware until later this month, so if you get a chance to test the new code, it would be appreciated.

@Toy203
Copy link
Author

Toy203 commented Aug 1, 2024

Didn't check, will flash it in a sec

@Toy203
Copy link
Author

Toy203 commented Aug 1, 2024

Looks like it's still present, i'm not sure what would be the regular animation, don't think i ever trigged it. Lights are still blinking out of synch. I can hear two identical overlapping sounds on Overheat end in 89, at 0:06.
https://youtu.be/F5Ajxt-3CBs

@Toy203 Toy203 reopened this Aug 1, 2024
@nomakewan
Copy link
Collaborator

And just to check, when you flashed you flashed from the Arduino IDE and not using the 5.3.2 binary in the binaries folder in the repo, yes?

@Toy203
Copy link
Author

Toy203 commented Aug 1, 2024

Still learning the ropes on GitHub, might have used the wrong file, can you link it?

@nomakewan
Copy link
Collaborator

It actually didn't exist until just now. The new binary is now in the 5.3.3 branch's binaries folder here: https://github.com/gpstar81/GPStar-proton-pack/tree/v5.3.3/develop/binaries/pack

@Toy203
Copy link
Author

Toy203 commented Aug 1, 2024

Yes, same as above as for 84 and 89 with the double sound overlap.

@nomakewan
Copy link
Collaborator

Iiiiiiiiiiinterdasting. I definitely hear the sound overlap but the sound shouldn't have had anything to do with the LEDs. So if that overlap was there, it should've also been there in earlier firmware. Hrm.

The alarm code for 84/89 is pretty basic, so I'm not sure why it would be out of sync like that (it literally just sets four timers, one for each lens). I'll take a harder look and try to trace it out. Thanks!

@Toy203
Copy link
Author

Toy203 commented Aug 1, 2024

Sound thing might has been there for a while, I never use the pack in 84-89. Just thought of mentioning it since I just noticed it

@nomakewan
Copy link
Collaborator

Sound thing was indeed there for a while. I've tracked at least part of it down--it's more obvious in 1989 because the startup sound is so unique. But there's a wand startup version and a pack startup version of that sound, and due to the sequence of serial events between the pack and wand during overheat recovery, the pack both plays its startup and the wand plays its startup (and then commands the pack to play its startup sound too).

If you wouldn't mind performing a test for me, that would be helpful.

Disable Extra Neutrona Wand Sounds (EEPROM Config Menu Level 1 Option 1 Intensify). Does the weird overlap still happen at the end of overheating in '89, or did disabling Extra Neutrona Wand Sounds solve that part of the issue?

@Toy203
Copy link
Author

Toy203 commented Aug 1, 2024

Will test it out tomorrow

@Toy203
Copy link
Author

Toy203 commented Aug 2, 2024

Looks like it doesn't overlap two sounds with neutrona wand sounds disabled.

@nomakewan
Copy link
Collaborator

Okay, so it's definitely the thing I found with the wand sound serial calls on restart. I'll get those fixed while I'm in here messing with the cyclotron alarm code. Thanks as always!

@Toy203 Toy203 changed the title [Bug]: Cyclotron lights out of synch during overheat in 84/89 [Bug]: Overheat Issues in 84/89 Aug 2, 2024
@nomakewan
Copy link
Collaborator

Was finally able to get a bench pack LED setup going. I actually already fixed the sound bug with the wand sounds overlapping after overheat ends, so that's good.

The short of it is that the ramps between the four LEDs are not matching up. I can get them to start together easily, but once they're freerunning they go out of sync like when you try to match your turn signal with someone else's car's turn signal. I can see the values going out of alignment via the serial data debug. The thing is...I just don't know why that is happening.

I've got some theories on how to tackle it, and now that I have working hardware I'll be able to iterate a lot faster. Hopefully will have this tackled before the weekend's out. Thank you for your patience!

@Toy203
Copy link
Author

Toy203 commented Aug 23, 2024

Glad to hear you finally got the testing hardware! Let me know if I can help in any way.

nomakewan added a commit that referenced this issue Aug 23, 2024
This resolves #354 by fixing the out-of-sequence cyclotron LEDs when overheat is in progress in 84/89 year mode.
@nomakewan
Copy link
Collaborator

Okay! I've gotten the out-of-sync animation solved. Or rather, it's solved enough for now. The real problem I'm pretty sure is due to floating point error within the ramp library. It appears that the individual LEDs are not actually ramping at the same speeds despite having the exact same ramp calculation calls. This slight error will still cause the LEDs to be ever-so-slightly out of sync brightness-wise on occasion, but the overall animation itself will remain in sync, so this can be viewed as the type of error you'd see with incandescent bulbs.

Namely that two different bulbs may not have the same on/off illumination curves as they heat up and cool down. At least, that's how I'm going to justify not ripping the entire Ramp library out of this thing and rewriting the entire thing right here and now.

I've tested this on my bench setup and it looks good, but please do feel free to test. Note that you will of course need to update all of your devices in order to test it out. Here is the folder for 5.3.3 WIP binaries.

@Toy203
Copy link
Author

Toy203 commented Aug 23, 2024

Will test it tomorrow and report back. "Solved enough" is the epitome of programming life.

@nomakewan
Copy link
Collaborator

Oh right, forgot to mention, but there are of course also new sounds as well, so for SFX to work correctly you'll need to update your SD cards as well.

Thank you as always for reporting these bugs! Every bug reported makes this project that much better for everyone.

@nomakewan nomakewan mentioned this issue Aug 24, 2024
@Toy203
Copy link
Author

Toy203 commented Aug 24, 2024

Looks like somewhat resolved, although it's not so regular still. If it is a bulb problem, it's not worth looking into it too much imo.

https://youtube.com/shorts/g4Gh4xVp0TU

@Toy203 Toy203 closed this as completed Aug 24, 2024
@nomakewan
Copy link
Collaborator

Yep, that's how it looks on my end too. I don't think it's actually a bulb problem, I think it's a problem with the Ramp library having floating point imprecision. This isn't a huge deal when you're doing things in a circle, but when you're trying to synchronize four elements at different locations around an LED strip, it becomes a problem.

The "bulb problem" comment above was just me justifying the imperfect fade by pointing out that if there were incandescent bulbs rather than LEDs, they might have similar behavior due to manufacturing differences.

So yeah, "good enough" for now. When the LED code gets tossed in the garbage bin and replaced come v6 we can come back and figure out a much better way of handling this animation. I already have an idea or two.

DustinGrau added a commit that referenced this issue Aug 25, 2024
* Fix 84/89 cyclotron overheat

This fixes the erratic behavior from the outer cyclotron when overheating in 84/89 mode by asserting a red colour scheme if we are in one of the two colour-shift firing modes, and then only using the special fade code if we are not overheating.

* Update pack binary

* Fix remote overheat failures

Fixes issues where if pack overheating is triggered by the wireless module, it will fail if either the wand is turned off or no wand is connected.

* Update DIY_WAND.md

Updates several issues with the DIY guide that incorrectly referred to the old Arduino Nano pins when referencing the new Mega2560 Pro Mini board. The new board uses the exact same pinout as the GPStar Wand PCB and should be treated accordingly.

* Add GB1 barrel pop SFX

Thanks to Graham Starke from the HasLab Ghostbusters Modders group we now have a clean recording of the GB1 rooftop barrel pop sound.

* Swap stereo channels for 84 bootup

For people who built their pack kits according to the original installation instructions (the majority of users), it was specified that the right channel should be the "main" speaker while the left channel should be the "sub" speaker. In this configuration, the main sound should be in the right channel, not the left. The original file is now 'alt'.

* Update voltage detection limits

* Implement dynamic standalone mode

This change implements the ability to switch the wand to standalone mode dynamically rather than needing to flash a unique binary. To enable standalone mode, bridge the TX and RX pins on the Neutrona Wand board while powering up.

* Introducing initial code for the single-shot blaster

* Minor fixes

Fixes missing definition for the GBFE pack freeze sound, fixes position of volume reset when switching to standalone mode on the wand, minor typo fix

* Fix sync light behavior

This removes b_sync_light as it was an unnecessary variable, and prevents the top LED from getting stuck in the on state when transitioning to standalone mode.

* Update FE brass pack functions

Disables cyclotron switch panel LEDs if brass pack sound is running (resolves #358) and makes it so user-set spectral colors will be respected in spectral custom mode with brass pack sound running (resolves #359).

* Move pin definitions to defines

This changes the constant variables with lowercase names into preprocessor defines with uppercase names. It also clarifies what a few of the previously ambiguous pins actually do.

* Update SINGLESHOT.md

* Update SINGLESHOT.md

* Change inner cyclotron panel to use an ENUM

* Adjust color coding for static vs. dynamic panel

* Adjust button-smash sounds for GB:FE

* Adjust wand button mash for GB:FE

* Adjust inner LED panel colors, fix typos

This removes unnecessary includes, does proper integer conversion from booleans in Serial.h, and corrects the colors for the year mode selection switch inner cyclotron switch panel.

* Adjust mash timeout, separate compile scripts

* Update compile_attenuator_esp.sh

* Update SINGLESHOT.md

* Additional brass pack fixes

Fixes Frutto LED panel not remaining off while ramping down which resolves #361 and adds a new brass pack shutdown sound from Aces6469

* Brass pack switch panel updates

Updates the brass pack switch panel shutoff functionality to also occur when ribbon cable alarm is active, when overheat is active, and when the button mash freeze lockout is active.

* Adjust freeze-up sound with new shutdown segment, add voices for inner panel options

* Implement more of the freeze-up effect

* Recompile binary

* Add missing sound defs to wand

* Cleanup wand bargraph code

There were a lot of unnecessary calls to the full bargraph reset function and lots of unnecessary explicit multiplier assignments which are better suited to a function dedicated to setting the multiplier.

* Fix improper bargraph speed after overheat

Moved WAND_ACTION_STATUS update to after the bargraph speed reset function so that said reset function has an opportunity to use the correct variables for recovering from overheating.

* Address change to mode for ezButton library

* More work on the pack freeze-up for GBFE

* Adjusting serial comms to attenuator (for stock wand)

* Return smoke prefs when no wand is connected

* Adjustments for power detection and display

* Rebuild binaries

* Text adjustments for UI

* Update PowerMeter.h

* Change from Amps to Watts for measurements

* Update PowerMeter.h

* Update PowerMeter.h

* Minor text adjustments for UI

* Removed some debugs, changed color values for more obvious effect

* stl updates

* Wand overheating fixes, optimizations

Fixes wand idle hum overlap when recovering from overheat, fixes overlapping pack startup sounds when recovering from overheat, makes it so wand bootup sounds will only be sent if the pack is not already playing its own bootup sound, fixes wand function names to more accurately describe what they do, cleaned up code relating to overheat an AL/FE startup ramps, removed legacy wand variables from single shot blaster.

* updated top dial no numbers fix

* Minor timing tweaks

* Move overheat into dedicated function

This moves the overheating initiator on the pack into a dedicated function rather than having the functionality duplicated across three separate call locations. Likewise it creates a dedicated function for the quick vent start for future extensibility.

* Fix pack buttons in web interface

This fixes the pack on/off buttons inadvertently ignoring pack state, and fixes the manual vent button not working unless a wand is connected (which is no longer necessary).

* Improve 84/89 cyclotron fade effect

Extends the fade effect for the 84/89 cyclotron to fade out after one additional movement, which both makes the effect look less jerky and more closely represents how the animation looked in the video game.

* Add power notes for Singleshot

* Fix 84/89 cyclotron overheat animation

This resolves #354 by fixing the out-of-sequence cyclotron LEDs when overheat is in progress in 84/89 year mode.

* Rebuild with new Switch library

* Fix 84/89 cyclotron in multicolor modes

This fixes the seizure-inducing outer cyclotron LEDs in Holiday and Spectral firing modes for good. While there is room for improvement that can come with v6 when the LED code gets overhauled.

* Fix powercell sound playing when button mashing

This fixes the Afterlife/Frozen Empire powercell SFX still playing during button mash lockout.

* Additional fix to AL/FE powercell SFX

Additional conditional checks added to Afterlife/Frozen Empire powercell sound.

* Fix potential button mash flag issue

Makes sure that if we start a button mash sequence on the pack and the pack thinks the wand is firing, we make sure that we reset all the firing-related flags and sounds.

* fixed powercell sound effect but

* Additional button mash cleanup

Prevents noisy overlaps of wand restart sounds in 84/89, makes certain that the button mash restart will always occur even when extra wand sounds are disabled, and cleans up some powercell and button mash checks on the pack.

* Recompile wand binaries

* Whitespace fix

Fixes missing whitespace before braces

* fixed quick volume adjustment bug from the wand

---------

Co-authored-by: nomakewan <nomakewan@users.noreply.github.com>
Co-authored-by: Michael Rajotte <michael.rajotte@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants