This is a centralized tracker for experiments comparing SUPT (Synchronized Universal Pulse Timing) vs random pulse timing in electromagnetic devices. This workspace connects with our GitHub repository at https://github.com/Pashe10019/supt-pulse-driver.
Testing whether SUPT timing delivers measurable efficiency gains (faster spin-up, lower pulse count for target RPM) over random pulsing.
| Trial # | Date | Mode | Max RPM | Pulse Count | Current Draw (mA) | Time to 10 RPM | Notes |
|---|---|---|---|---|---|---|---|
| 1 | |||||||
| 2 | |||||||
| 3 |
| Date | Schumann (Hz) | K-Index | Sunspot (Wolf) | Notes |
|---|---|---|---|---|
| July 14, 2025 | 7.83 Hz prominent | 1-3 (quiet to active) | ~195 (high activity) | Jagged pulses with surge before 12:00 UTC, vertical white beams in harmonics |
// SUPT-Aligned Newman Motor Pulser with Random vs SUPT Toggle
// Pulses coil at ψ₈ intervals or random when Hall detects magnet
// Logs RPM, pulse count, & optional input current
const int COIL_PIN = 9; // MOSFET gate for coil
const int HALL_PIN = 2; // Hall sensor
const int CURRENT_PIN = A0; // Optional shunt for input current (0-1023 → mA scale)
const int collapseTimes[] = {
3, 5, 8, 10, 13, 15, 18, 21, 24, 26, 29, 31, 34, 36, 42, 45, 47, 50, 52,
57, 63, 65, 68, 70, 73, 75, 78, 81, 84, 86, 89, 91, 94, 96, 102, 105, 107,
110, 112, 117, 123, 125, 128, 130, 133, 139, 141, 144, 146, 149, 151, 154,
156, 160, 162, 165, 167, 170, 172, 178, 183, 185, 188, 190, 193
}; // 65 SUPT collapses
const int numCollapses = sizeof(collapseTimes) / sizeof(int);
bool useSUPT = true; // Toggle: true = SUPT timing, false = random delays
int currentIndex = 0;
unsigned long lastTrigger = 0;
const unsigned long stepDelay = 100; // ms/step for SUPT (tune to rim RPM)
volatile bool magnetPassed = false;
unsigned long lastRPMTime = 0;
int passCount = 0; // For RPM (adjust to magnet count, e.g., 6)
int magnetCount = 6; // Set to your setup
int pulseCount = 0; // Track total pulses
void setup() {
pinMode(COIL_PIN, OUTPUT);
pinMode(HALL_PIN, INPUT_PULLUP);
pinMode(CURRENT_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(HALL_PIN), onMagnetPass, FALLING);
Serial.begin(9600);
Serial.println(useSUPT ? "SUPT Mode Active" : "Random Mode Active");
randomSeed(analogRead(0)); // For random mode
}
void loop() {
unsigned long currentMillis = millis();
bool pulseReady = false;
if (useSUPT) {
int simulatedStep = (currentMillis / stepDelay) % 200;
pulseReady = (simulatedStep == collapseTimes[currentIndex]);
} else {
// Random mode: Pulse on magnet pass with random delay check
static unsigned long lastRandomPulse = 0;
if (currentMillis - lastRandomPulse > random(50, 150)) { // Random 50-150ms intervals
pulseReady = true;
lastRandomPulse = currentMillis;
}
}
if (pulseReady && magnetPassed) {
digitalWrite(COIL_PIN, HIGH);
delay(50); // Pulse width (tune 10-100ms)
digitalWrite(COIL_PIN, LOW);
pulseCount++;
Serial.print("Pulsed (Count: ");
Serial.print(pulseCount);
Serial.print(" | Mode: ");
Serial.print(useSUPT ? "SUPT" : "Random");
Serial.print(" | Input Current: ");
Serial.print(analogRead(CURRENT_PIN) * (5.0 / 1023.0 / 0.185)); // ACS712 example scaling; adjust
Serial.println(" mA");
if (useSUPT) {
currentIndex = (currentIndex + 1) % numCollapses;
}
magnetPassed = false;
}
// RPM logging
if (magnetPassed) {
passCount++;
if (passCount >= magnetCount) {
unsigned long now = millis();
float rpm = 60000.0 / (now - lastRPMTime);
Serial.print("RPM: ");
Serial.print(rpm);
Serial.print(" | Time: ");
Serial.println(now / 1000.0); // Seconds
lastRPMTime = now;
passCount = 0;
}
magnetPassed = false;
}
}
void onMagnetPass() {
if (millis() - lastTrigger > 50) { // Debounce
magnetPassed = true;
lastTrigger = millis();
}
}
This Notion page works alongside the GitHub repository for the SUPT Pulse Driver project. Updates from experiments should be documented here for analysis, while code changes should be pushed to the GitHub repo.