#4975850
This post may contain an affiliate link that helps support GBFans.com when you make a purchase at no additional cost to you.

************** MICROCONTROLLER REPLACEMENTS **************
The Haslab microcontrollers have been completely replaced with Arduino boards (Mega 2560 Rev 3 in the pack and Nano in the Wand).

Project page:

https://github.com/gpstar81/haslab-proton-pack

Upcoming Features:
-(Optional features) 2 extra LEDs for 2 more hat lights, wide angle led support in the wand barrel tip.

Current Features :
-Pack/Wand communication (pack and wand can play each others sounds).
-Ribbon cable alarm.
-Video game firing modes.
-Crossing the streams.
-900+ music track support.
-Music can be played while using other pack/wand functions (firing etc).
-Wand settings menu with music playback control, volume control for pack/wand, independent music volume control for pack/wand, independent sound effects volume control for pack/wand, loop music track, change track.
-Wand sub menu allowing you to toggle various settings: 1984/1989/2021 mode, cyclotron rotation direction, vibration, smoke, crossing the streams / video game modes.
-Vibration support in pack and wand with toggle switch to enable or disable.
-1984 / 1989 / 2021 mode with toggle switch to change between them.
-1984/1989 mode uses the middle led only for a accurate look.
-Cyclotron lights ramp up and ramp down when powering up the pack or shutting it down.
-Can run the pack without the cyclotron lid.
-Overheat mode (user customisable for any wand power mode )
-Continuous firing (user customisable for any wand power mode)
-Volume control from crank generator knob.
-Can used any speaker setup (amps, aux ports, etc)
-Wand only fires when the barrel is extended.
-Wand bargraph animation updates.
-Wand tail firing sound when you stop firing. (3 variations based on how long you have been firing)
-Wand activate switch turns on the pack.
-Wand has 1984/1989 and 2021 modes.
-(optional) Cyclotron light rotation control with toggle switch (clockwise / anti-clockwise).
-(optional) Eight LEDs support for the inner cyclotron switch plate. They animate and ramp up or down depending on the pack status.
-(optional) NeoPixel Ring support for inner cyclotron. They change colour for the different video game firing modes. (35 pixel ring recommended)
-(optional) Three - 5V pin relays (they trigger during overheat and occasionally while continuous firing). Can be used for smoke, fans etc.
-(optional) N-Filter NeoPixel jewel LED support.
-(optional) Toggle switch to enable or disable the smoke relays.
-(optional) Support for a 40 pixel NeoPixel ring in the cyclotron lid to offer more LEDs and colour options for video game firing modes.
-(optional) 28 LED bargraph segment to replace the 5 LED Hasbro bargraph.

Demonstration video:



5 hour time lapse idling test


————————- BELOW HERE IS EVERYTHING RELATED TO EXPERIMENTING WITH THE EXISTING HASLAB ELECTRONICS ————————-

************** KEEP ALIVE MOD (PACK & WAND) **************
Now some information first about what Haslab did and how the pack functions in the standard configuration. There are 2 auto shut down timers to deal with. The pack which is 200 seconds and the wand at 30 seconds. The U7 pin on the pack microcontroller is feeding 4.33V and ground through the hose on the pack to the wand. When you turn the wand on the voltage levels from U7 pin drop and the pack microcontroller detects this. The pack will turn on. When the wand is turned off, the levels go back up over 4.3V and the pack knows the wand was turned off and now the pack does the shut down sequence and turns the lights and sound off and stays in a silent low power idle mode for several minutes. During this window, you can turn the wand back on and the pack fires back up. Now any time the wand does the 30 second timeout and turns itself off, the pack will do the same and sit in its low power idle mode. You can reset the wand's auto shutdown timer anytime a button is pressed on the wand. For the pack, the only way I found so far to reset the auto shutdown timer is when the wand's activate mode switch is turned on, and or off. Basically what is happening is the wand is drawing more power to power more lights and the vibration motor and the pack detects this and resets the pack timer. When the extra draw stops, the pack does the same thing and resets the 200 second timer. However a constant draw at any of those levels does not reset the timers. So the trick is to fluctuate the power draw up and down every X amount of seconds to trick the pack to reset the shut down timer. Then for the wand, you need to make it think a switch as been activated on/off every X amount of seconds. However the downside with the wand is every switch will make the wand play a sound effect. However, the fire mode selector switch will not play a sound effect while the activate mode on the wand is off, so this is the best one to target. However you do loose the ability to keep the wand alive while Activate mode is on.

Now the estimated voltage levels from the U7 pin feeding the wand that I found are:
4.33 (wand off)
4.30 (Above this seems to be around when the wand will shut off, and below this and the pack will turn itself on)
4.28 (wand on, no lights except slo-blo only.)
4.23-4.20 (wand on with lights, depending on how many bargraph leds are on)
4.17 (Going to this level or above after being below it will reset the pack shutoff timer)
4.16 (Going down to this level or lower after being above it will reset the pack shutoff timer)
4.13 (activate mode on and no lights)
4.09 (wand on, activate mode on with some lights)

So if you are designing or building your own keep alive mod, the sweet spot you want to fluctuate from is dropping down to 4.16 or lower and back up to 4.17 and higher every X amount of seconds. When the pack detects these thresholds being passed, it will reset the 200 second timer. There is another problem to contend with, the wand microcontroller will always have power fed to it from the pack. So if you are pigging backing off the VDD on the wand board for power, you will trigger the pack to stay on if whatever you wire in drops the voltage levels down to 4.3 and lower, even if you have the wand turned off. So this required me to redo the switches on the wand, where the switch to turn on the lights on the wand is removed and tucked away in the on position inside the wand, and the old power switch for the wand is moved up to the light switch position. Then I cut the power wire going to V4.5 pin into the wand board about halfway on the wire and then soldered some extra wire onto both cut ends and solder them onto a on/off switch which then mounts where the old wand power on switch used to go, all this is really doing is powering up the metro mini board I am using which draws it's power off the wand VDD pin, which in turn will trigger the pack to turn on or off.

Then I ended up changing some of the functions of how the wand works and the slo-blo led. The slo-blo led pulses when the wand is in certain modes and stay on full brightness during the activate mode on the wand, and is entirely controlled by the metro mini. I am using a second metro mini only for power draw consumption only. So in short, for the keep alive to work, the wand needs to be turned on, and not be idling in the ACTIVATE mode. Here is a video demonstrating how my wand/pack functions after the mods:



Now here are the parts I used:
(I will provide some links to examples usually in bulk, but you can find them individually for cheaper if you search around).

2 Adafruit Metro Mini
https://www.adafruit.com/product/2590

1 On/Off switch.
https://www.amazon.fr/gp/product/B07RQ4 ... =UTF8&th=1

2 PN2222 NPN transistors
https://www.adafruit.com/product/756

1 150ohm resistor
https://www.amazon.fr/gp/product/B08FD1 ... =UTF8&th=1

Misc things to help you:
soldering iron
solder
electrical tape

Solder sucker: Good for removing solder out of pin holes and tiny places:
https://www.adafruit.com/product/1597

wire stripper & cutter
https://www.adafruit.com/product/147

heat shrink tubing in various sizes, good for sealing off exposed wire to wire soldered connections.
https://www.amazon.fr/gp/product/B071D7 ... UTF8&psc=1

22AWG wiring
https://www.adafruit.com/product/288

JST SM 2-pin male/female connectors to make things easy to remove if required.
https://www.amazon.fr/gp/product/B08JV9 ... =UTF8&th=1

Sorry for the crude wiring schematic: The direction of the NPN transistors, are flat side up with writing on it for schematic purposes.
Image

Now on the wand board, some reference photos to match up on my schematic:
V4.5 is here: (I cut this wire and extended it to feed into the new switch I installed that I talked about above. The other end of the wire comes from the wand handle for reference.
Image

Here is the VDD, GND, P008 and Fire Mode Pin that you need to solder onto. For the P008, I went in and fed my wire from the top side of the board. VDD, GND and the Fire Mode Selector Pin I come in underneath.
Image

This is the Slo-Blo LED pins. Black = negative and Red = positive. I desoldered these from the wand board and they join up to metro mini #1 as per my schematic.
Image

To access the Slow-Blo LED, you need to remove the back cover. It's the same as the bottom of the wand, remove the 2 caps and you have access to the 2 screws, and wiggle and feed the cable around as you wish to avoid the barrel spring mechanism.
Image

This here is the new switch (ref #1) as per the schematic. Switch (ref #2) used to be where the #1 switch was. The switch that used to be where #2 is now is turned into the on position and hidden inside the wand body. For the switch that's hidden inside the body of the wand, put some electrical tape on the connectors so it doesn't make contact with anything.
Image

Here is my setup that I drop into the wand. I recommend putting some electrical tape on the bottom of the metro mini's to cover the pins from contacting anything. Then just tuck everything into the board how you wish. Make sure to avoid the barrel release mechanism area.
Image
Image

For removing the caps from the wand to access the screws, I prefer using the reamer on a swiss army knife. A few twists into the cap and pull it out like a cork from a wine bottle.
Image

Here is the code for the Metro Mini #1 board. When programming with the Arduino editor, select the Arduino UNO as the board type. The Metro Mini #2 does not need anything uploaded to it.
Code: Select all
/********************************************************
  Haslab Proton Pack and Neutrona Wand keep alive.
  December 2022.
  Michael Rajotte
********************************************************/
#include <Metro.h>
#include <millisDelay.h> 

int sloBlo = 6; // Slo-Blo LED.
int wPin = 11; // Vibration motor.
int lPin = 10; // For controlling the second metro mini to turn on or off.
int aPin = 9; // For controlling the 3V to the fire mode selection pin. 
int val = 0;

// Slo-Blo LED pulse control.
int rLED = 0; // red led starts at 0 (off).
int rLEDHigh = 255; // high light setting during the fade up.
int rLEDLow = 20; // low light setting during the fade down.
int redLEDTimer = 6; // millisecond speed control for the fade.
int redLEDPause = 125; //125; // milliseconds for pausing the red led. Used when reaching full value of low or high.
int rLEDMultiplier = 5;
boolean bLEDUp = true;
boolean bLEDPause = false;
boolean bLEDStart = true;
millisDelay redLED;
millisDelay redLEDPauseTimer;

millisDelay wpTimer;
millisDelay wpTimerDelay;
int wpTimerCount = 20000; // 20 seconds.

void setup() {
  Serial.begin(9600);

  pinMode(sloBlo, OUTPUT);
  pinMode(wPin, INPUT);
  pinMode(lPin, OUTPUT);
  pinMode(aPin, OUTPUT);
  
  analogWrite(sloBlo, 0);
  
  wpTimer.start(wpTimerCount);
}

void loop() {
  val = digitalRead(wPin);

  // Vibration motor is active, activate mode is turned on. 
  if(val > 0) {
    // Slo-Blo led on full brightness.
    rLED = 255;
    analogWrite(sloBlo, rLED);
    
    wpTimer.start(wpTimerCount);
    redLED.start(1100);
  }
  else {
    if(wpTimer.justFinished()) {
        digitalWrite(lPin, HIGH);
        digitalWrite(aPin, HIGH);
  
        wpTimerDelay.start(1000);
    }

    if(wpTimerDelay.justFinished()) {
      digitalWrite(lPin, LOW);
      digitalWrite(aPin, LOW);
  
      wpTimer.start(wpTimerCount);
    }

    // Slo-Blo led.
    analogWrite(sloBlo, rLED);
    
    // Slo-Blo pulse control.
    if(redLED.remaining() < 1) {
      redLED.start(redLEDTimer);
    
      if(bLEDPause == false) {
        if(rLED == rLEDHigh) {
          bLEDUp = false;
          redLEDPauseTimer.start(redLEDPause);
          bLEDPause = true;
        }
        else if(rLED == rLEDLow && bLEDStart == false) {
          bLEDUp = true;
        
          redLEDPauseTimer.start(redLEDPause);
          bLEDPause = true;
        }
      }
      
      if(redLEDPauseTimer.remaining() < 1) {
         bLEDPause = false;
        
        if(bLEDStart == true && rLED == rLEDLow) {
          bLEDStart = false;
        }
        
        if(bLEDUp == true) {
          rLED = rLED + rLEDMultiplier;
        
          if(rLED > rLEDHigh) {
            rLED = rLEDHigh;
          }
        }
        else {
          rLED = rLED - rLEDMultiplier;
        
          if(rLED < rLEDLow) {
            rLED = rLEDLow;
          }
        }
      }
    }
  }
}




************** CYCLOTRON LIGHT MOD **************
With this you have full control of the cyclotron LEDs. 1984 mode has just the single LED lighting up which looks more accurate. 2021 has a ramp-up feature when the pack is turned on. Anti-clockwise/clockwise toggle switch to change the rotation direction of the LEDs.




84 mode light mod.


Second switch mod.


Parts that I used
1 Adafruit Metro Mini
https://www.adafruit.com/product/2590

1 Adafruit Perma-Proto Quarter-sized Breadboard PCB
https://www.adafruit.com/product/1608

1 On/Off switch
https://www.amazon.fr/gp/product/B07RQ4 ... =UTF8&th=1

1 470ohm resistor
https://www.amazon.fr/gp/product/B08FD1 ... =UTF8&th=1

22awg wiring
https://www.adafruit.com/product/288

*** Some extra things to help if you require ****
JST SM 2-pin male/female connectors to make things easy to remove if required. Up to you where you want to use them.
https://www.amazon.fr/gp/product/B08JV9 ... =UTF8&th=1

**refer to my keep alive mod below for additional soldering tools list that may help you if required**

Sorry for the poor hand drawn schematic again:
Image

Some notes:
Metro mini: pin 6 to same pin that has the red wire on the (84/2021) selector switch.
Perma-Board: wire from the same pin with the green wire on the (84/2021) selector switch to the ground rail on the perma-board.
Image

Metro mini: pin 8 to the same pin that has the red wire on the cyclotron alarm switch.
Perma-Board: wire from the same pin with the black wire on the cyclotron alarm switch to the ground rail on the perma-board. (Scroll down a bit to see a photo of the Perma-Board)
Image

The cyclotron alarm switch can be found here, remove the 2 screws to access it:
Image

Metro mini: pin 8 to any pin on a toggle switch. Then another wire from the toggle switch to one of the GND pins on the Metro Mini.
Image

Perma-board: Looks like this for ground connections.
Image

Cyclotron led board: (sorry I didn't take a photo of this board with my connections soldered onto it, here is what it looks like from Haslab)
-Run a wire from VCC(red) to 5V in the Metro Mini. (old wire still stays connected)
-Run a wire from the Brown GND to the ground rail on the Perma-board. (old wire still stays connected)
-De-solder the yellow RI wire from the cyclotron led board. Run this desoldered wire to analog pin A0 on the Metro mini. I ended up soldering a wire to this removed wire to extend it to reach my Metro mini. (See below photo)
-With the old RI wire removed from the cyclotron LED board. Run a new wire from the RI pin on the cyclotron LED board to a 470ohm resistor. Then run another wire from the other end of the 470ohm resistor to pin #3 on the Metro mini.
Image

It's a bit messy, but you can clean it up after. Just use velcro and stick the metro mini wherever you want to put it.
Image

I ended up making my wires extra long so I could put things anywhere in the pack. I used velcro to put my Perma-board ground rail here:
Image

I ended up putting the cyclotron led direction toggle switch into the unused switch in the crank generator. It just slides in. Or you can just run it into the powercell box, and save the crank generator switch for something else. All up to you.
Image
Image

Then arrange the wires how you wish.
Image
Image

I ended up leaving a USB cable connected to the Metro Mini and running the cable to the Powercell box. That way I can upload code to it in the future without having to take the pack apart to reach it. Or you can just stick the Metro Mini into the powercell box altogether. Lots of options you can do.
Image

Here is the code to upload onto the Metro Mini. When programming with the Arduino editor, select the Arduino UNO as the board type. FastLED, Ramp and ezButton libraries will need to be installed in your Arduino editor. Just go to TOOLS/MANAGE LIBRARIES and you can find them in the search feature to install them.
Image
Image
Image
Code: Select all
/********************************************************
  Haslab Proton Pack Cyclotron Controller.
  January 2022.
  Michael Rajotte / gpstar
********************************************************/
#include <Metro.h>
#include <millisDelay.h> 
#include <FastLED.h>
#include <ezButton.h>
#include <Ramp.h>

#define LED_PIN 3
#define NUM_LEDS 12
CRGB leds[NUM_LEDS];

bool c_clockwise = true;
bool cyclotronState = false;

int led = 0;
int c1984Delay = 1050;
int c2021Delay = 15;
int c2021RampDelay = 300;
int c2021RampLength = 6000;
bool c2021Rampup = true;
bool c2021RampUpStart = true;
rampInt c2021Ramp;
millisDelay cTimerDelay;

int alarmDelay = 3000;
bool bcAlarm = false;
millisDelay cAlarm;

ezButton directionSwitch(10);
ezButton modeSwitch(6);
ezButton alarmSwitch(8);

int riPin = A0;
int val = 0;
float riVol;
int riTimerDelay = 1000;
millisDelay riTimerOn;

void setup() {
  Serial.begin(9600);

  pinMode(riPin, INPUT);
  
  directionSwitch.setDebounceTime(50);
  modeSwitch.setDebounceTime(50);
  alarmSwitch.setDebounceTime(50);
  
  FastLED.addLeds<NEOPIXEL, LED_PIN>(leds, NUM_LEDS);
  resetCyclotronLeds();
  
  riTimerOn.start(riTimerDelay);
  cTimerDelay.start(c2021Delay);
}

void loop() { 
  alarmSwitch.loop();
  directionSwitch.loop();
  modeSwitch.loop();
  
  if(alarmSwitch.getState() == LOW) {
    if(bcAlarm == true) {
      resetCyclotronLeds();
      reset2021RampUp();

      riTimerOn.start(riTimerDelay);
      cTimerDelay.start(c2021Delay);

      bcAlarm = false;
    }
  }
  
  val = analogRead(riPin);
  riVol = val * (4./1024);

  if(riVol > 0.01) {
    cyclotronState = true;
    riTimerOn.start(riTimerDelay);
  }

  if(riTimerOn.justFinished()) {
    cyclotronState = false;

    reset2021RampUp();
    resetCyclotronLeds();
  }
  
  if(cyclotronState == true) {
    if(directionSwitch.getState() == LOW) {
      c_clockwise = true;
    }
    else {
      c_clockwise = false;
    }
      
    if(alarmSwitch.getState() == HIGH) {
      if(bcAlarm == false) {
        c2021Rampup = false;
        bcAlarm = true;
        cAlarm.start(alarmDelay);        
      }
      
      // Ribbon cable has been removed.
      cyclotron_noCable();
    }
    else {
      if(c2021RampUpStart == true) {
        // To time it with the sound effects.
        delay(500);
        c2021RampUpStart = false;

        c2021Ramp.go(0); // Reset the ramp.
        c2021Ramp.go(c2021RampDelay - c2021Delay, c2021RampLength, CIRCULAR_OUT);

        if(c_clockwise == false && modeSwitch.getState() == LOW) {
          led = 2; // Start on LED #2 in anti-clockwise mode in 2021 mode.
        }
        else {
          led = 0; 
        }
      }
    
      if(modeSwitch.getState() == HIGH) {
        cyclotron_1984(c1984Delay);
      }
      else {
        cyclotron_2021(c2021Delay);
      }
    }
  }
}

void cyclotron_noCable() {  
  if(cAlarm.justFinished()) {
    resetCyclotronLeds();
    cAlarm.finish();
  }

  if(cAlarm.isRunning()) {
    if(modeSwitch.getState() == HIGH) {
      // 1984.
      cyclotron_1984(c1984Delay * 2);
    }
    else {
      // 2021.
      cyclotron_2021(c2021Delay * 10);
    }
  }
}


int cyclotron_2021(int cDelay) {
  if(cTimerDelay.justFinished()) {
    if(c_clockwise == true) {
      if(led - 1 > -1) {
        leds[led-1] = CRGB(0,0,0);
        FastLED.show();
      }
      else {
        leds[11] = CRGB(0,0,0);
        FastLED.show(); 
      }
  
      if(led > 11) {
        led = 0;
      }
  
      if(led == 3 || led == 6 || led == 0) {
        delay(cDelay);
      }
      
      leds[led] = CRGB(255,0,0);
      FastLED.show();
  
      led++;
    }
    else {
      if(led + 1 < 12) {
        leds[led+1] = CRGB(0,0,0);
        FastLED.show();
      }
      else {
        leds[0] = CRGB(0,0,0);
        FastLED.show(); 
      }

      if(led < 0) {
        led = 11;
      }
      
      if(led == 8 || led == 5 || led == 2) {
        delay(cDelay);
      }
      
      leds[led] = CRGB(255,0,0);
      FastLED.show();

      if(led == 0) {
        led = 11;
      }
      else {
        led--;
      }
    }

    if(c2021Rampup == true) {
      if(c2021Ramp.isFinished()) {
        c2021Rampup = false;
        cTimerDelay.start(cDelay);
      }
      else {        
        cTimerDelay.start(c2021RampDelay - c2021Ramp.update());
      }
    }
    else {
      cTimerDelay.start(cDelay);
    }
    
  }
}

int cyclotron_1984(int cDelay) {
  if(cTimerDelay.justFinished()) {
    cyclotron84LightOff(led);

    if(c_clockwise == true) {
      led = led + 3;
    }
    else {
      led = led - 3;
    }

    if(led < 0) {
      led = 9;
    }
    else if(led > 9) {
      led = 0;
    }
    
    cyclotron84LightOn(led);

    cTimerDelay.start(cDelay);
  }
}

void reset2021RampUp() {
  c2021Rampup = true;
  c2021RampUpStart = true;
}

void cyclotron84LightOn(int cLed) {
  leds[cLed+1] = CRGB(255,0,0);
  
  FastLED.show();
}

void cyclotron84LightOff(int cLed) {
  leds[cLed+1] = CRGB(0,0,0);
  
  FastLED.show();
}

void resetCyclotronLeds() {
  for(int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CRGB(0,0,0);
    FastLED.show();
  }
  
  led = 0;
}

************** SPEAKER AND POWER SUPPLY MOD AND TEAR DOWN ***************
NOTE: Some people are reporting ground loop problems, lots of static, alarm sounds, etc. Read throughout the thread for more info.

So my plan is to add in 2 more speakers and switch the power supply to the pack to run off a Talentcell battery without hacking or cutting anything so I can revert back to stock if I wanted. I did an extra tear down of the pack here which is not required, as I wanted to see what was really in this pack.

Image

Here is the microcontroller board:
Image
Image
SW1: The switch under the ion arm.
SW2: Unused.
SW4-SW3: The 2 switches inside the cyclotron, for changing between 84/Afterlife modes and turning the rumble motor off/on.
SW5: PURPLE/WHITE/YELLOW wires: Rotary switch for the volume control.
SW6: Is the push sensor on the cyclotron lid, when not pressed down, it causes the beeps.
SPK0: Unused.
SPK1: 2 YELLOW Wires: Speaker connections.
U7: Purple connector, provides power to the hose which feeds into the Neutrona wand.
M1: Green connector, for the rumble motor.
BAT1: Goes to the power supply.
4 PIN RED connector: Cyclotron LEDs.
4 PIN WHITE connector: Powercell LEDs.

Here is the Haslab speaker and specs written on it:
Image

The rotary switch for the volume control:
Image

The pack is assembled for the most part by 1 type of screw (I did find a few smaller versions).
Image

Motherboard:
Image
Image

Backside of the battery tray:
Image
Image
Image

Rumble motor:
Image
Image

Ion Arm. It is 2 pieces.
Image
Image
Image
Image

This is the back piece of the switches inside the cyclotron.
Image
Image

Where the booster plug mounts.
Image

Filler line and beam line mount here.
Image

Where the unused black switch under the crank generator assembly is.
Image

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image

SPK0 and SPK1 on the microcontroller both output at the same time. I connected SPK0 to a 12V amp powered by a talentcell battery.

Standard Haslab speaker by itself.


2x 4" (10cm) Pioneer TS-G1020F car speakers running off a XY-502 amplifier board with 12V power + Haslab speaker at same time.


And also, the rotary volume control knob on the pack controls the overall system output volume on both SPK0 and SPK1. (see video below)


I soldered on a connector for the speakers onto the microcontroller at SPK0.
Image
Image

I am leaving the original battery tray on the motherboard (it is molded into it). I am not going to cut or hack anything as I want the ability to revert back to stock if need be.

On the powercell, the door that opens, there is a piece inside you can remove with 2 screws which opens it up into the inside of the pack. I removed the talentcell battery out of it's casing and stuffed the battery into it. Then I can charge it by just opening the side door and plug in the charger when it needs it.
Image

I managed to get the speakers stuffed in and pointed up towards the Haslab speaker and speaker outlet grill. Then I solder a jst-2 connector onto the 5v usb output of the talentcell which is powering the pack.
Image
Image

Here is where I tapped into on my talentcell battery.
Image

I use sticky velcro to hold the amp onto the rumble motor mount.
Image
Image
Image
Image
Image
Image

How I access the battery pack from the side door.
Image
Image

Then voilà, finished and mounted back onto a LC1 frame.
Image

For now here is a video.
Last edited by gpstar on April 23rd, 2023, 3:10 pm, edited 50 times in total.
jonogunn, SP Productions, ccv66 and 15 others liked this
#4975881
does changing the battery out like this cause any difference in how long the pack will run before it turns itself off? Hopefully, this is something that future mods will address so we can leave the lights, etc. running longer on the pack itself. Since Spongeface already made mod boards for the Spengler wand, my best bet is that he can whip up a replacement board that duplicates the base functionality for how the pack runs and can switch back and forth between the afterlife mode and 84 modes, that doesn't have the power shutdown timeout present on the stock board.
By gpstar
#4975882
doctorevil30564 wrote: December 29th, 2022, 12:56 pm does changing the battery out like this cause any difference in how long the pack will run before it turns itself off? Hopefully, this is something that future mods will address so we can leave the lights, etc. running longer on the pack itself. Since Spongeface already made mod boards for the Spengler wand, my best bet is that he can whip up a replacement board that duplicates the base functionality for how the pack runs and can switch back and forth between the afterlife mode and 84 modes, that doesn't have the power shutdown timeout present on the stock board.
No it does not. Though I am curious what the unused SW2 does. The next time I open the pack, I am going to see if it does anything. The key though is going to be the wand. Supposedly if the wand does not time out, then the pack will always stay on.
Last edited by gpstar on December 29th, 2022, 1:16 pm, edited 1 time in total.
By gpstar
#4975883
Spectregater wrote: December 29th, 2022, 10:31 am Can you please make a list of the parts you bought to do this?
I used the following:

Talentcell YB1206000-USB Battery
Two 4" (10cm) Pioneer TS-G1020F speakers
XY-502 amplifier board -> Make a connection from the appropriate +/- from the 12V output on the Talentcell.
JST-2 male connector -> Goes onto the microcontroller BAT1. Solder this onto the appropriate +/- connections on the 5V output on the Talentcell.
Some 26 AWG wire for running/extending the connections.
A few JST SM 2 Pin plugs for making my connections clean and easy to remove.
User avatar
By jonogunn
#4975892
gpstar wrote: December 29th, 2022, 1:10 pm
Spectregater wrote: December 29th, 2022, 10:31 am Can you please make a list of the parts you bought to do this?
I used the following:

Talentcell YB1206000-USB Battery
Two 4" (10cm) Pioneer TS-G1020F speakers
XY-502 amplifier board -> Make a connection from the appropriate +/- from the 12V output on the Talentcell.
JST-2 male connector -> Goes onto the microcontroller BAT1. Solder this onto the appropriate +/- connections on the 5V output on the Talentcell.
Some 26 AWG wire for running/extending the connections.
A few JST SM 2 Pin plugs for making my connections clean and easy to remove.
Do you also use these as speaker wires?
By gpstar
#4975908
jonogunn wrote: December 29th, 2022, 4:23 pm
gpstar wrote: December 29th, 2022, 1:10 pm

I used the following:

Talentcell YB1206000-USB Battery
Two 4" (10cm) Pioneer TS-G1020F speakers
XY-502 amplifier board -> Make a connection from the appropriate +/- from the 12V output on the Talentcell.
JST-2 male connector -> Goes onto the microcontroller BAT1. Solder this onto the appropriate +/- connections on the 5V output on the Talentcell.
Some 26 AWG wire for running/extending the connections.
A few JST SM 2 Pin plugs for making my connections clean and easy to remove.
Do you also use these as speaker wires?
No the speakers themselves came with speaker wires already in the box from Pioneer, it is sold as a kit ready to be dropped into a car for quick installation.

Image
Image
jonogunn liked this
By gpstar
#4975909
The next plan is to mod the wand so it does not time out and shut the pack down, thus this should keep the pack running indefinitely until the wand is manually powered down completely. I have a extra Metro Mini controller from Adafruit (basically a clone of the Arduino Mini), that I am going to stuff into the the wand and figure something out to keep the countdown clock in the wand from timing out.

At the same time, I am going to stuff a 5V amp and a powerful 1.5" / 4cm speaker in the wand to make it louder with more sound range.
User avatar
By jonogunn
#4975911
gpstar wrote: December 30th, 2022, 3:20 am The next plan is to mod the wand so it does not time out and shut the pack down, thus this should keep the pack running indefinitely until the wand is manually powered down completely. I have a extra Metro Mini controller from Adafruit (basically a clone of the Arduino Mini), that I am going to stuff into the the wand and figure something out to keep the countdown clock in the wand from timing out.

At the same time, I am going to stuff a 5V amp and a powerful 1.5" / 4cm speaker in the wand to make it louder with more sound range.
Yo if you can pull off the wand timer issue you would be a god amongst men. The wand has been out for 2-3 years now and no one has figured that out other than the Spengler link board. Good luck brother!
#4975927
Gpstar this is all great work. I have two questions.

1. Now that you are using your own power source, does the pack stay on if the wand is disconnected or does it still shut down after 3:30 minutes?

2. When you disassembled the pack did you try to access the leds in the cyclotron cover at all? Does it seem you can remove the CRT emitter connectors to access the leds?

Thank you for all the photos you provided of the disassembled pack. It is really helpful for planning my own mods. I really appreciate it!
By gpstar
#4975928
jonogunn wrote: December 30th, 2022, 3:43 am
gpstar wrote: December 30th, 2022, 3:20 am The next plan is to mod the wand so it does not time out and shut the pack down, thus this should keep the pack running indefinitely until the wand is manually powered down completely. I have a extra Metro Mini controller from Adafruit (basically a clone of the Arduino Mini), that I am going to stuff into the the wand and figure something out to keep the countdown clock in the wand from timing out.

At the same time, I am going to stuff a 5V amp and a powerful 1.5" / 4cm speaker in the wand to make it louder with more sound range.
Yo if you can pull off the wand timer issue you would be a god amongst men. The wand has been out for 2-3 years now and no one has figured that out other than the Spengler link board. Good luck brother!
Ok I figured it out, if you send a pulse to this pin on the microcontroller in the neutrona wand, it will reset the shutdown clock timer in the wand and keep it alive and not shut down automatically. I will finish up my soldering and code for my metro mini board tomorrow, meanwhile I should have a 5v amp and speaker that hopefully can fit in here by tuesday to play with.
Image
jonogunn, Nighty80 liked this
By gpstar
#4975929
Egon Zeddemore wrote: December 30th, 2022, 9:15 am Gpstar this is all great work. I have two questions.

1. Now that you are using your own power source, does the pack stay on if the wand is disconnected or does it still shut down after 3:30 minutes?

2. When you disassembled the pack did you try to access the leds in the cyclotron cover at all? Does it seem you can remove the CRT emitter connectors to access the leds?

Thank you for all the photos you provided of the disassembled pack. It is really helpful for planning my own mods. I really appreciate it!
The new power source does not affect the auto shutdown timer on the pack. You could connect something to the U7 connector that draws power to trick the pack that a active wand is connected. However you will loose the ability to turn the pack on/off with the wand. However If the wand is active, the pack will stay active.

Thus my goal to mod the wand to never shut down automatically, to keep the pack alive, which I am almost there with.

I will open the pack again over the weekend and will probe the unused SW2 connector on the pack microcontroller to see what it does.

As for the LEDs in the cyclotron, I didn't go that far, but I have no reason to believe they can not be easily removed. I encounter no glue at all in the pack when taking it apart. It is all screws and everything appears to come apart quite easily. Just get some long thin precision screw drivers as a few screws will need it to access them.
Ecto-1 fan liked this
User avatar
By jonogunn
#4975931
gpstar wrote: December 30th, 2022, 9:44 am
jonogunn wrote: December 30th, 2022, 3:43 am

Yo if you can pull off the wand timer issue you would be a god amongst men. The wand has been out for 2-3 years now and no one has figured that out other than the Spengler link board. Good luck brother!
Ok I figured it out, if you send a pulse to this pin on the microcontroller in the neutrona wand, it will reset the shutdown clock timer in the wand and keep it alive and not shut down automatically. I will finish up my soldering and code for my metro mini board tomorrow, meanwhile I should have a 5v amp and speaker that hopefully can fit in here by tuesday to play with.
Image
Wow! After all these years and u just waltz in here and solve a problem that plagued the wand since its release. You are amazing.

While building my 3D printed pack I’ve been going back and forth whether I wanna print the wand as well or use my Spengler wand and mod it. The reason I was back and forth was because of the 30 second time out that I despise but if your solution works then my decision is easy now!
By gpstar
#4975936
Was testing the time outs on the pack itself, and a active wand will not keep the pack active over the 3minute time out. So I will be opening up the pack tomorrow and looking at ways to keep the timeout on the pack itself from happening.
Kieron W liked this
User avatar
By One time
#4975944
gpstar wrote: December 30th, 2022, 12:57 pm Was testing the time outs on the pack itself, and a active wand will not keep the pack active over the 3minute time out. So I will be opening up the pack tomorrow and looking at ways to keep the timeout on the pack itself from happening.
We need a watch battery powered Wand Ressurect Widget, (installable in the powerbar without opening up the wand). This should keep the pack alive indefinitely.
By gpstar
#4975946
One time wrote: December 30th, 2022, 3:22 pm
gpstar wrote: December 30th, 2022, 12:57 pm Was testing the time outs on the pack itself, and a active wand will not keep the pack active over the 3minute time out. So I will be opening up the pack tomorrow and looking at ways to keep the timeout on the pack itself from happening.
We need a watch battery powered Wand Ressurect Widget, (installable in the powerbar without opening up the wand). This should keep the pack alive indefinitely.
In my testing, the pack does the power down sequence even when drawing the power out of the U7 switch (aka the wand). It will start back up right away if the power draw is constant though.
Image
Last edited by gpstar on December 30th, 2022, 4:07 pm, edited 1 time in total.
By gpstar
#4975949
Also the trick with the wand is if you do something with it like turn on the lights or adjust volume etc, it resets the shutdown timer of the wand. There is one switch on the wand if you send a 5V signal it resets the wand shutdown timer. So far with the pack I haven’t found anything like that. I will probe the pack more on Saturday.
By Mathew_impact1
#4975963
This is great information. Thank you.

It's really good to know that the pack, and wand, can run off of 5v. So a regular USB battery bank should work fine. I plan to install a dual 5w audio amp as well, but it can run on 5v. I installed a mono version and 3w speaker in my wand.

I assume the 6v (VBAT) supply is being regulated to a lower voltage (VCC) on the board. Looks like the vibration motor is on the VBAT supply, and reduced power by 30% at 5v. The LEDs are on the VCC supply, so they should have the same brightness at 5v. I'd also like to check the voltage going to the wand (V43), and see if it's being boosted or regulated at all.

For the keep alive on the wand, seems like a 555 timer might do the job, or an attiny85 modual at most. Perhaps even a blinking led with a resistor divider.
Last edited by Mathew_impact1 on December 31st, 2022, 2:38 am, edited 2 times in total.
By gpstar
#4975968
Mathew_impact1 wrote: December 30th, 2022, 11:40 pm This is great information. Thank you.

It's really good to know that the pack, and wand, can run off of 5v. So a regular USB battery bank should work fine. I plan to install a dual 5w audio amp as well, but it can run on 5v. I installed a mono version and 3w speaker in my wand.

I assume the 6v (VBAT) supply is being regulated to a lower voltage (VCC) on the board. Looks like the vibration motor is on the VBAT supply, and reduced power by 30% at 5v. The LEDs are on the VCC supply, so they should have the same brightness at 5v. I'd also like to check the voltage going to the wand (V43), and see if it's being boosted or regulated at all.

For the keep alive on the wand, seems like a 555 timer might do the job, or an attiny85 modual at most. Perhaps even a blinking led with a resistor divider.
For the keep alive on the wand, that pin I found that works is for the switching of the firing modes. So like ghostlab's link kit, he allows the keep alive mode only when the wand is not in the activate mode (when the vibration motor is not running). The same thing will probably apply here as well.

As for the pack, the microcontroller is definitely measuring the voltage current that is being drawn from the hose U7 connector. The 200 second shut down timer on the pack will reset if you:

1. Turn the wand on after the pack has been turned on and running already.
or
2. When the wand is already running (with activate switch on the wand off), and flipping the activate switch on the wand, the pack's 200 second timer resets. Flipping the activate switch off also resets the timer on the pack as well.

Meanwhile I just heard the pack play some Slimer sounds....

Anyhow, back to hacking around with the pack.
SP Productions liked this
By AGiantSlor
#4975978
So the audio signal going to the amp is the full 8ohm 5w speaker signal from the haslab board? Wouldn’t you require an LOC to not pop the amp? sorry, my primary knowledge in this field is car audio where I’ve routinely converted speaker signals to line out when tapping in.
By gpstar
#4975984
The talentcell battery I use to power both the amp and pack is 12v. It has both a 12v and 5v output. I use the 5v to power the pack. The 12v powers my 12v amp and the 2 pioneer speakers.
By gpstar
#4975986
After poking around the pack. SW2 does nothing and the pack doesn’t do anything with it that I could find.

For the 200 second timeout, none of the other pack switches affect it. The only way to reset the timeout on the pack that I could find is from the U7 switch that feeds power to the hose to the wand . It provides 4.3 volts to the wand. (VDD43). I can trigger it to turn on the pack by sending a pulse to the VDD43 pad above the U7 switch and one of the circuits on the LM358 chip just underneath it or plugging in any device into the U7 switch that draws the 4.3V coming from it.. I suspect the LM358 chip is detecting the different power draws from the U7 switch to the wand and the pack microcontroller is acting accordingly (turn on pack/turn off pack/reset pack timeout timer). I am going to go back to the wand and concentrate on that as I know when the wand activate switch is opened or closed it will reset the pack 200 second shutdown timer.
Image
Image
Mathew_impact1 liked this
#4975987
Agiantslor, most of the single chip digital amps like the one on the circuit board are rated for a 2 to 16 ohm speaker. So 2x 8ohm speakers in parallel (4ohm) should be fine. If the second speaker port is being used a tap for another amplifier, as co-star did here, it's almost no additional load on a the onboard amplifier chip.

Btw, if someone is running a tap to another amp. It's highly recommended that they keep the original speaker connected well, if they want to avoid signal distortion. The onboard amp expects a speaker like output load to function correctly.
Last edited by Mathew_impact1 on December 31st, 2022, 4:56 pm, edited 2 times in total.
#4975989
gpstar wrote: December 31st, 2022, 3:49 pm For the 200 second timeout, none of the other pack switches affect it. The only way to reset the timeout on the pack that I could find is from the U7 switch that feeds power to the hose to the wand . It provides 4.3 volts to the wand. (VDD43). I can trigger it to turn on the pack by sending a pulse to the VDD43 pad above the U7 switch and one of the circuits on the LM358 chip just underneath it or plugging in any device into the U7 switch that draws the 4.3V coming from it.
Gpstar, thank you for sharing your efforts an discoveries, this great. I can at least plan upgrades while waiting for my pack to arrive next year.
What do you mean by "pulse"? A momentary connection to a grounded resistor? Or a connection to VCC? Btw, what voltage do you measure between GROUND an VCC? I realise activating the wand does this as well.
By AGiantSlor
#4975996
Agiantslor, most of the single chip digital amps like the one on the circuit board are rated for a 2 to 16 ohm speaker. So 2x 8ohm speakers in parallel (4ohm) should be fine. If the second speaker port is being used a tap for another amplifier, as co-star did here, it's almost no additional load on a the onboard amplifier chip.

Btw, if someone is running a tap to another amp. It's highly recommended that they keep the original speaker connected well, if they want to avoid signal distortion. The onboard amp expects a speaker like output load to function correctly
Thank you - I wonder if I’m asking the right question. I’m actually asking about the new amp that was put in and the audio signal it is receiving.

He ran wires from the speaker output of the haslab pack to the audio in of the new amp, but is that not an amplified speaker level output (from the haslab) going into a line level input (on the new amp)? I’m concerned about the new amp receiving too much current from the haslab board
#4975998
Your not wronge. However most amps have an AC coupled input, usually a small capacitor in series with a resistor. This will prevent overload at the levels coming from a toy, if you leave the the speaker attached to the output wires.

But there will be a still be a small amount of clipping distortion at full volume. If it's an issue, either build a 5 to 1 resistor divider, or tap the audio off the input pin (probably pin 4) of the amplifier chip.
By AGiantSlor
#4976003
Your not wronge. However most amps have an AC coupled input, usually a small capacitor in series with a resistor. This will prevent overload at the levels coming from a toy, if you leave the the speaker attached to the output wires.

But there will be a still be a small amount of clipping distortion at full volume. If it's an issue, either build a 5 to 1 resistor divider, or tap the audio off the input pin (probably pin 4) of the amplifier chip.
Amazing - thank you for your reply and the info!
And OP thank you for this wealth of info, I can’t wait to tear down my pack in March or whenever it arrives!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 22
Uniform Tips

Sorry for the triple post (you guys have gotten […]

Proton Props???

Ugly Little Spud, Did you actually get the pack?[…]

Just seen this thread add me JudgeGerry to London

Proton Props UK

I would like to apologise to everyone for the dela[…]