[Homemade Quantum Computer NMRQCP] Control of Quantum Computer

*Original Japanese version is available here.

 Hello! I'm a KOSEN student taking on the challenge of developing a quantum computer using a homemade Earth's Field NMR (EFNMR) system.

I've previously built and tested the "polarization MOSFET circuit" and the "receiving op-amp circuit" individually, but this time I'll talk about finally integrating the two and programming them for fully automatic control (sequence building) using the "M5Stack CoreS3 Lite"!

The 3 Steps That Absolutely Cannot Be Mistaken

To operate the EFNMR system, it is necessary to switch the circuits accurately in the following order:

  • 1. Polarization Phase: Completely disconnect the receiving circuit and pass a large current through the coil.
  • 2. Switching (Surge Protection) Phase: Cut off the current and wait a few milliseconds for the coil's back electromotive force to decay.
  • 3. Receiving Phase: Connect the coil and the op-amp to pick up the minute FID signal.

What happens if you connect the receiving circuit while the large current from polarization or surge voltage is still present? ...Yes, that ultra-low distortion op-amp will instantly blow smoke and be destroyed (a trauma from the past, indeed).

To prevent this, I built a control logic that combines physical isolation (disconnection) using a "Mini Relay Unit for M5Stack" and a programmed "delay (dead time)".

The Magic "50 Milliseconds" That Saves the Op-Amp's Life

Here is the state machine (state transition) code I actually wrote in the Arduino IDE to link the MOSFET gate voltage and the relay unit.

// ==========================================
// 2. Surge Decay Phase (Dead Time) *SUPER IMPORTANT*
// ==========================================
// Turn OFF the MOSFET to cut off the current
digitalWrite(MOSFET_PIN, LOW);
M5.Display.println("2. Surge Waiting...");

// Wait for the coil's back EMF to dissipate through the freewheeling diode
// *Without this delay, there is a risk of destroying the receiving circuit
delay(50);

// ==========================================
// 3. Receiving Phase (Receiving / FID)
// ==========================================
// After the surge has dissipated, connect the receiving circuit with the relay
digitalWrite(RELAY_PIN, HIGH);

The most important part of the program is the delay(50); code between the end of polarization and the start of receiving.

This is a command to "wait for just 50 milliseconds (0.05 seconds)," but this brief moment is a lifeline. By setting this time while the receiving circuit is kept disconnected by the relay, we can safely let the intense back electromotive force from the coil dissipate.

Seeing the M5Stack automatically repeat the cycle of polarization (5 seconds) → wait (50 milliseconds) → receiving (3 seconds) while making the physical clicking sounds of the relay, I finally feel that "the system is integrated!"

The "automatic control system" of my homemade quantum computer, designed to run experiments safely without destroying the hardware, is complete!


If you are wondering things like "Will it really work?" or "How do you generate waveforms?", please bookmark this blog and follow me on X!

コメント

このブログの人気の投稿

【自作量子コンピュータ NMRQCP】いよいよ稼働かと思いきやデバッグ地獄