In case anyone else wishes to install the VUK ball-search MOD like I did, here is a list of materials and a crude wiring diagram. I don't have the time right now to trace this out in a computer, but perhaps someone else can help there. I'm no electrical engineer, so any mod you make to your game is your responsibility!!
You'll need:
1. Arduino (Nano, Pro Mini, Uno, etc)
2. Two Relays. I used these: (https://www.amazon.de/-/en/ARCELI-KY-019-Channel-Module-Arduino/dp/B07BVXT1ZK/ref=sr_1_5)
3. An Arduino-controllable MOSFET. I used this: (https://www.amazon.de/gp/product/B0924J4R47/ref=ppx_yo_dt_b_asin_title_o02_s00)
4. Some sort of box to mount it in. The box I designed and printed is saved here: (https://www.thingiverse.com/thing:5957910)
5. 2.5A fuse holder & fuse to protect the VUK coil (when it is in standalone-firing mode).
6. 1N4004 diode to prevent a voltage spike (on the standalone-firing side). I forgot to draw this on the wiring diagram.
7. Wire, and some resistors. I used a 30 ohm current-limiting resistor in-line with the positive 5v feeding the Arduino.
8. LEDs to indicate status (optional)
9. VUK assembly with a fork switch, IR sensor, or another method of sensing the presence of the ball.
10. 10k ohm pull-up/pull-down resistor for the Fork switch sensing line. This keeps the line from "floating" and giving false inputs to the Arduinio.
20230408_113837 (resized).jpg
And here is the Arduino code. Pay special attention to the pin numbers and what each input/output does. The pin numbers used in the code don't match exactly to my wiring schematic (as this was drawn days earlier) so PLEASE review the code descriptions (after the double slashes) and the diagram for yourself and you should see what wires need to be connected to where. I strongly recommend you build it on a breadboard and test it out before installing anything into your machine!!!
Arduino Code:
const int pin7 = 7; // input pin for checking status of VUK Fork Switch
const int pin5 = 5; // output pin for pulsing VUK Coil MOSFET and LED2
const int pin3 = 3; // output pin for illuminating LED1
const int pin9 = 9; // output pin for closing relay #1
const int pin11 = 11; // output pin for closing relay #2
void setup() {
pinMode(pin7, INPUT);
pinMode(pin5, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin9, OUTPUT);
pinMode(pin11, OUTPUT);
}
void loop() {
digitalWrite(pin9, HIGH); // Open Relay 1
digitalWrite(pin11, HIGH); // Open Relay 2
if (digitalRead(pin7) == HIGH) { // check if pin 7 is high (VUK fork switch closed)
digitalWrite(pin3, HIGH); // illuminate BLUE LED1 on pin 3
delay(11000); // wait 11 seconds
if (digitalRead(pin7) == HIGH) { // check if pin 7 is still high
digitalWrite(pin9, LOW); // Close relay 1
digitalWrite(pin11, LOW); // Close relay 2
delay(1000); // Delay to allow relays to close
digitalWrite(pin5, HIGH); // pulse pin 5 (VUK Coil) and RED LED for 30ms
delay(30);
digitalWrite(pin5, LOW);
delay(4000); // wait 4 seconds
while (digitalRead(pin7) == HIGH) { // continue pulsing pin 5 every 4 seconds if pin 7 remains high
digitalWrite(pin5, HIGH);
delay(30);
digitalWrite(pin5, LOW);
delay(4000);
}
}
digitalWrite(pin3, LOW); // turn off BLUE LED on pin 3
digitalWrite(pin9, HIGH); // Open Relay 1
digitalWrite(pin11, HIGH); // Open Relay 2
}
}