# Chris Bake # Web Based VIC # 1-10 Channel Analog Amplitude Modulator [![265079631_3195161367363934_1991161274925674298_n.png](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/sG8Y1dqkrzQO4OI3-265079631-3195161367363934-1991161274925674298-n.png)](http://stanslegacy.com/uploads/images/gallery/2022-06/sG8Y1dqkrzQO4OI3-265079631-3195161367363934-1991161274925674298-n.png) [![WFC-Waveform-Generator (1).png](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/6c0obEebyYYRJojJ-wfc-waveform-generator-1.png)](http://stanslegacy.com/uploads/images/gallery/2022-06/6c0obEebyYYRJojJ-wfc-waveform-generator-1.png) # ESP32 Rest API, Pulse Clock & VIC Configurator # Phase Selectable VIC Utilizing DPDT toggle switches to allow inline phase inversion of each VIC component allow significant selectivity in operational configurations. 450VDC push-pull EL34 vacuum tube driven VIC 4:1 stepdown ferromagnetic core Earlier version of above, but with an added DPDT relay driven by a 3rd signal input and darlington driver, attempting the Crossover Voltage Switching utilized in the Steam Resonator. With the monster transformer in there, I would get a very strange buildup of electrostatic vibrations on the metal chassis. No vibrations were felt on the plastic of the meter panels, but everywhere on the metal parts. # CrayonXA (My First 9XA) Learning transistors, power supplies, 555 timers, Schmidt Triggers, AND gates, darlington transistors and optocouplers all in one shot. It still amazes me this ever worked :) The circuit for this design originated from [Max Miller's 9XA](http://irondmax.com/pdf/ProjectIcarus.pdf) (drawn in crayon)
[![240662288_4705169929505824_3723763710195030686_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/SOVr9QE15JbSjfUb-240662288-4705169929505824-3723763710195030686-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/SOVr9QE15JbSjfUb-240662288-4705169929505824-3723763710195030686-n.jpg)[![255806338_4705169809505836_119894751386171394_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/ng4cjLDZ1ZZuLOpg-255806338-4705169809505836-119894751386171394-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/ng4cjLDZ1ZZuLOpg-255806338-4705169809505836-119894751386171394-n.jpg)
[![77026487_2720040918018745_400836674826797056_n (1).jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/fZaWqHktg8MjxfZz-77026487-2720040918018745-400836674826797056-n-1.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/fZaWqHktg8MjxfZz-77026487-2720040918018745-400836674826797056-n-1.jpg)
[Max Millers' 9XA![image-1656200942895.49.00.png](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/7Gg3xEPmyRl4M31B-image-1656200942895-49-00.png)](http://stanslegacy.com/uploads/images/gallery/2022-06/7Gg3xEPmyRl4M31B-image-1656200942895-49-00.png) A funny video illustrating how I still had much to learn about building circuits :) More progress on the 9XA. Learning how proper transistor biasing and loading is important for controlling amplitude modulation. # Crossover Voltage Switch [![109308463_3285262641496567_1211971226813383673_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/ENFGcmHuGjdqHbv2-109308463-3285262641496567-1211971226813383673-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/ENFGcmHuGjdqHbv2-109308463-3285262641496567-1211971226813383673-n.jpg) # 8XA Alternator Setup This was an old attempt at using an unrectified alternator's 3 phase output running from a 1/3 HP AC synchronous motor. # DIY EMF Detector Easy homemade EMF probe. I added a piezo buzzer to mine, and found it very helpful to "listen" to the fields coming off of things like wires and HV bulbs, and water capacitors.

**DIY Guide**: [https://www.instructables.com/Make-a-Ghost-Detector/](https://www.instructables.com/Make-a-Ghost-Detector/)

[![F2VE0JKJ153YCTJ.webp](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/mspBJd7o7Nk3y2D1-f2ve0jkj153yctj.webp)](http://stanslegacy.com/uploads/images/gallery/2022-06/mspBJd7o7Nk3y2D1-f2ve0jkj153yctj.webp) # Magnetic Amplifiers # Saturation Oscillator

You must *listen* to your energy. It plays notes. Once you learn to trigger those notes, you can play a chord.

Playing with distributed inductances and capacitances and harmonics generated from 60 Hz line noise. Using resistive dampening to load mutually coupled transformers inline with the magnetic amplifier's reactive side. # Magamp LFO standing wave oscillator # Introducing harmonics into Amplitude Modulation # Bubbles # Everything Vibrating in a WFC This shows Max's Double Barrel cell holder adapted to mount electrodes at opposing ends of each tube. Tiny streams of nanobubbles can be seen coming from the bolt threads # Demonstrating High Voltage present at the WFC ##### "Waterless" energy transfer ##### Visualizing standing waves occurring across the WFC capacitor. # 4 Channel 12AX7 Toroidal Amplitude Modulator Early Build pics of the 4 Channel modulator.
[![133798005_3767217696634390_7095165259752784715_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/Br7jTZdMwEqqqThb-133798005-3767217696634390-7095165259752784715-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/Br7jTZdMwEqqqThb-133798005-3767217696634390-7095165259752784715-n.jpg) [![134047555_3767217633301063_1100532127399627698_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/DAuPb2JAXEN1Eh0X-134047555-3767217633301063-1100532127399627698-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/DAuPb2JAXEN1Eh0X-134047555-3767217633301063-1100532127399627698-n.jpg)
[![133600591_3767218093301017_8668741515042871589_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/x9hGxkifCOZ4SCES-133600591-3767218093301017-8668741515042871589-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/x9hGxkifCOZ4SCES-133600591-3767218093301017-8668741515042871589-n.jpg) [![133708014_3767218326634327_3937906867011726984_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/fIFTguWRq1yjXP1X-133708014-3767218326634327-3937906867011726984-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/fIFTguWRq1yjXP1X-133708014-3767218326634327-3937906867011726984-n.jpg)
# 12AX7 Dual Triode operating in Heptode Mode Truly Analog Amplitude Modulation AND Gating [![125466214_3650706548285506_994606898162063674_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/YIcm858HctYjx3Ly-125466214-3650706548285506-994606898162063674-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/YIcm858HctYjx3Ly-125466214-3650706548285506-994606898162063674-n.jpg) # 50W PushPull Tube Amp for driving a VIC [![74176231_2666543493368488_4586020633896288256_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/o6B2qAzwlwbpXhjj-74176231-2666543493368488-4586020633896288256-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/o6B2qAzwlwbpXhjj-74176231-2666543493368488-4586020633896288256-n.jpg) [![73019663_2666543533368484_3939437153141915648_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-06/scaled-1680-/KDKdOtkGg8UoEghw-73019663-2666543533368484-3939437153141915648-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-06/KDKdOtkGg8UoEghw-73019663-2666543533368484-3939437153141915648-n.jpg) # Arduino / ESP32 Projects # ESP32 - Complex Waveform Generator [LEGACY] ### Setting Up The App ##### Modify ESP C+ Code to configure local network settings 1. 1. Determine your local network's Subnet range (It should be one of these: 10.0.0.0/8, 192.168.0.0/16, or 172.xxx.xxx.xxx) 1. See: [https://www.businessinsider.com/how-to-find-ip-address-of-router](https://www.businessinsider.com/how-to-find-ip-address-of-router) 2. Write down the address of your Gateway (your Router's IP address) 2. Find a free DHCP issued internal IP address on your local network (Guess an IP not in use by picking a number between 100 and 255 for the very last position in your subnet: 192.168.1.xxx) 3. Find your WIFI SSID and Password 1. SSID = The name of your Wifi Connection as your Phone or PC would see it on the network connection browser 2. Password = Your Wifi Password 4. Configure the IP, Gateway and your Wifi SSID & credentials into the ESP code below 1. Preview Of areas to change in code below: ```C++ // #### Change Me #### const char *SSID = "NETGEAR"; const char *PWD = "12345678"; // Don't Change Me const char *ASSET_HOST = "https://wavegenjs.s3.amazonaws.com"; // Web server running on port 80 WebServer server(80); // #### CHANGE ME #### // Set your Static IP address IPAddress local_IP(192, 168, 1, 8); // Set your Gateway IP address IPAddress gateway(192, 168, 1, 1); ``` 5. Copy the full script (down below) and paste it into your Arduino IDE 1. See: [https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/](https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/) 6. Compile and Upload the code to the ESP32 1. Install required libraries (FreeRTOS, ArduinoJSON, Wifi, and WebServer.) 1. See: [https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries](https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries) 2. [![298171574_5523327307690078_4273704313364637631_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-08/scaled-1680-/dm3BHay59TS8NGay-298171574-5523327307690078-4273704313364637631-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-08/dm3BHay59TS8NGay-298171574-5523327307690078-4273704313364637631-n.jpg) 3. [![298253535_5523321941023948_4638314484689292979_n.jpg](http://stanslegacy.com/uploads/images/gallery/2022-08/scaled-1680-/SCMvDM6ZTF2gTCWJ-298253535-5523321941023948-4638314484689292979-n.jpg)](http://stanslegacy.com/uploads/images/gallery/2022-08/SCMvDM6ZTF2gTCWJ-298253535-5523321941023948-4638314484689292979-n.jpg) 2. Observe the Serial Monitor Log output from the Arduino IDE 3. Confirm network connectivity was established with your router. 7. Connect 2 separate Oscilloscope probes to pins "0" and "2" to ground, on your ESP. 8. Open a web browser on a computer connected to the same internal network as the ESP was given 1. Go to the ESP's given IP Address: [http://192.168.1.8](http://192.168.1.8) 9. Enjoy! (if it works) ##### Troubleshooting: View the Console Log for errors in your browser while clicking the app's sliders buttons etc.. [![Screenshot from 2022-08-06 13-24-55.png](http://stanslegacy.com/uploads/images/gallery/2022-08/scaled-1680-/VUxhtVg24Ps11Wlw-screenshot-from-2022-08-06-13-24-55.png)](http://stanslegacy.com/uploads/images/gallery/2022-08/VUxhtVg24Ps11Wlw-screenshot-from-2022-08-06-13-24-55.png)

[https://www.browserstack.com/guide/inspect-element-in-chrome#:~:text=One%20of%20the%20easiest%20ways,%2C%20Sources%2C%20and%20other%20tools](https://www.browserstack.com/guide/inspect-element-in-chrome#:~:text=One%20of%20the%20easiest%20ways,%2C%20Sources%2C%20and%20other%20tools).

Confirm the ESP is a connected host in your network and was given the IP you specified

[https://www.wikihow.com/See-Who-Is-Connected-to-Your-Wireless-Network](https://www.wikihow.com/See-Who-Is-Connected-to-Your-Wireless-Network)

#### ESP C+ Code
Expand ```C++ #include #include #include #include #include TaskHandle_t pulseTaskHandle; // #### Change Me #### const char *SSID = "NETGEAR"; const char *PWD = "12345678"; // Don't Change Me //const char *ASSET_HOST = "https://wavegenjs.s3.amazonaws.com"; const char *ASSET_HOST = "http://192.168.1.2"; // Web server running on port 80 WebServer server(80); // #### CHANGE ME #### // Set your Static IP addres IPAddress local_IP(192, 168, 1, 8); // Set your Gateway IP address IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 255, 0); IPAddress primaryDNS(8, 8, 8, 8); //optional IPAddress secondaryDNS(8, 8, 4, 4); //optional // JSON data buffer StaticJsonDocument<500> jsonDocument; char buffer[500]; // env variable float width = 150; float space = 150; float width1 = 0; float space1 = 0; float widthelongationmodifier = 1; float spaceelongationmodifier = 1; float gate = 1; int count = 5; int enablegate = 1; int channels = 2; int reference1 = LOW; int reference2 = HIGH; int enablealternate = 0; int invertOne = 0; int invertTwo = 0; int ch1lastState = LOW; int ch2lastState = LOW; void connectToWiFi() { Serial.print("Connecting to "); Serial.println(SSID); // Configures static IP address if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println("STA Failed to configure"); } WiFi.begin(SSID, PWD); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.print("Connected. IP: "); Serial.println(WiFi.localIP()); } void setup_routing() { server.enableCORS(); server.on("/metrics", getMetrics); server.on("/set", HTTP_POST, handlePost); server.on("/", getIndex); server.begin(); } void create_json(float width, float space, float count, float gate, float enablegate, float channels, float widthelongationmodifier, float spaceelongationmodifier, float enablealternate, int invertOne, int invertTwo) { jsonDocument.clear(); jsonDocument["width"] = width; jsonDocument["space"] = space; jsonDocument["widthelongationmodifier"] = widthelongationmodifier; jsonDocument["spaceelongationmodifier"] = spaceelongationmodifier; jsonDocument["count"] = count; jsonDocument["gate"] = gate; jsonDocument["enablegate"] = enablegate; jsonDocument["channels"] = channels; jsonDocument["enablealternate"] = enablealternate; jsonDocument["invertOne"] = invertOne; jsonDocument["invertTwo"] = invertTwo; serializeJson(jsonDocument, buffer); } String getHtml() { String ptr = " \n"; ptr +="\n"; ptr +="ESP32 Complex Waveform Generator\n"; ptr +=""; ptr +=""; ptr +=""; ptr +=""; ptr +="
\n"; return ptr; } void getIndex() { server.send(200, "text/html", getHtml()); } void getMetrics() { create_json(width, space, count, gate, enablegate, channels, widthelongationmodifier, spaceelongationmodifier, enablealternate, invertOne, invertTwo); server.send(200, "application/json", buffer); } void handlePost() { if (server.hasArg("plain") == false) { Serial.println("no plain mode"); } String body = server.arg("plain"); deserializeJson(jsonDocument, body); width = jsonDocument["widthtotal"]; space = jsonDocument["spacetotal"]; widthelongationmodifier = jsonDocument["widthelongationmodifier"]; spaceelongationmodifier = jsonDocument["spaceelongationmodifier"]; count = jsonDocument["count"]; gate = jsonDocument["gatetotal"]; enablegate = jsonDocument["enablegate"]; channels = jsonDocument["channels"]; invertOne = jsonDocument["invertOne"]; invertTwo = jsonDocument["invertTwo"]; enablealternate = jsonDocument["enablealternate"]; serializeJson(jsonDocument, buffer); server.send(200, "application/json", buffer); } void customDelay(long delayValue) { long i = 0; int x = 0; for(i=0;i # ESP32 - Complex Waveform Generator V2 #### Setting Up The App

ESP32 Complex Waveform Generator - Arrangement for WROOM-32 or WROVER-E (DevKit-C)

##### ##### PARTS Required - 1 - ESP32 (WROOM-32 or WROVER-32) with 16 exposed pins - 1 - ESP32 Breakout Board or equivalent pin header block - 7 - Rotary Encoders (i.e. KY-040 Rotary Encoder Module CYT1062) - TODO: add >= 2 more for Elongation adjustments. - 1 - +5VREG 1A Power Supply for ESP32 (i.e. ATX PowerSupply) ##### Installation Prerequisites Install ESP Libraries in Arduino-IDE v2.0 ```MarkDown ArduinoJson ESP32Encoder ``` ##### Step 1. Open Esp32Full.ino and set Wifi Credentials ``` // #### Change Me - Local Wifi Info #### const char *SSID = "NETGEAR"; const char *PWD = "12345678"; ``` ##### Step 2. Configure free local LAN IP address Check your Router for more information ``` // #### CHANGE ME #### // Set your Static IP address to a free IP in your local network IPAddress local_IP(192, 168, 1, 8); // Set your Gateway IP address IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 255, 0); IPAddress primaryDNS(8, 8, 8, 8);   //optional IPAddress secondaryDNS(8, 8, 4, 4); //optional ``` ##### Step 3. Configure ESP\_HOST in Javascript File Edit `./assets/espwavegen.js` and set the IP address used in Step 2 above.

TODO: Make configurable in the web interface

Save and close the file ##### Step 3. Upload The code in `Esp32Full.ino` Paste the code into your Arduino-IDE and upload it to your ESP32

[Installing the ESP32 Board in Arduino IDE](https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/ "Installing the ESP32 Board in Arduino IDE")

##### Step 4. Access the WebApp in your Web Browser Open Web Browser Open `index.html` in the `WebApp` directory below this file - File -> Open -> Browse to WebApp/index.html -> Open Interface is now displayed! #### Step 5: Enjoy!! Please post pics and videos of your waves, and let others know how achievable this is! [![Screenshot from 2022-12-31 13-23-07.png](https://stanslegacy.com/uploads/images/gallery/2022-12/scaled-1680-/uaaVo1B7ToYrI4Lr-screenshot-from-2022-12-31-13-23-07.png)](https://stanslegacy.com/uploads/images/gallery/2022-12/uaaVo1B7ToYrI4Lr-screenshot-from-2022-12-31-13-23-07.png) #### Need Amplification?

See: [ESP32 - Complex Waveform Generator - Driver & Amplification](https://stanslegacy.com/books/chris-bake/page/esp32-cwg-driver-amplification)

#### [![Esp32-Encoder-Setup (5).png](https://stanslegacy.com/uploads/images/gallery/2022-12/scaled-1680-/qqNXcCwadrtae9wk-esp32-encoder-setup-5.png)](https://stanslegacy.com/uploads/images/gallery/2022-12/qqNXcCwadrtae9wk-esp32-encoder-setup-5.png) #### #### Additional Troubleshooting / Customization ##### Optional: Configure alternate Output Pins - Output will be on Pins D2 and D4 by default ```C++ // #### Output Pins #### int pinChannel1 = 2; int pinChannel2 = 4; ``` ##### Optional: Adjust Encoder Pins if needed ```C++ int pulseCount_EncoderPIN1 = 14; int pulseCount_EncoderPIN2 = 13; int pulseWidth_EncoderPIN1 = 35; int pulseWidth_EncoderPIN2 = 34; int pulseSpace_EncoderPIN1 = 19; int pulseSpace_EncoderPIN2 = 18; int gate_freq_EncoderPIN1 = 22; int gate_freq_EncoderPIN2 = 23; int pulseWidthModifier_EncoderPIN1 = 27; int pulseWidthModifier_EncoderPIN2 = 26; int pulseSpaceModifier_EncoderPIN1 = 5; int pulseSpaceModifier_EncoderPIN2 = 32; int gateModifier_EncoderPIN1 = 25; int gateModifier_EncoderPIN2 = 33; ``` #### ESP C+ Code

Git Repo: [https://bitbucket.org/cbake6807/esp32-complex-waveform-generator/src/master/](https://bitbucket.org/cbake6807/esp32-complex-waveform-generator/src/master/)

##### Troubleshooting: View the Console Log for errors in your browser while clicking the app's sliders buttons etc.. Look in the Network tab for red errors. 404 or other. Sometimes the ESP may drop or reject the connection on the first attempt. Just refresh the browser once or twice and it should resolve. [![Screenshot from 2022-08-06 13-24-55.png](http://stanslegacy.com/uploads/images/gallery/2022-08/scaled-1680-/VUxhtVg24Ps11Wlw-screenshot-from-2022-08-06-13-24-55.png)](http://stanslegacy.com/uploads/images/gallery/2022-08/VUxhtVg24Ps11Wlw-screenshot-from-2022-08-06-13-24-55.png)

[https://www.browserstack.com/guide/inspect-element-in-chrome#:~:text=One%20of%20the%20easiest%20ways,%2C%20Sources%2C%20and%20other%20tools](https://www.browserstack.com/guide/inspect-element-in-chrome#:~:text=One%20of%20the%20easiest%20ways,%2C%20Sources%2C%20and%20other%20tools).

Confirm the ESP is a connected host in your network and was given the IP you specified

[https://www.wikihow.com/See-Who-Is-Connected-to-Your-Wireless-Network](https://www.wikihow.com/See-Who-Is-Connected-to-Your-Wireless-Network)

`` Code notes if internet connectivity isn't an option. Also, encoder wiring connections for this particular setup (Notepad++ document file type). [Chris Bake ESP32 notes.txt](https://stanslegacy.com/attachments/116) Notepad++ download: [Notepad++](https://stanslegacy.com/attachments/117) # ESP32 - CWG Driver & Amplification #### A dual channel, dual isolated power supply, pulse amplification for driving all VIC arrangements [![schemeit-project(2).png](https://stanslegacy.com/uploads/images/gallery/2023-02/scaled-1680-/JcsTkR0DgHVFVMkD-schemeit-project2.png)](https://stanslegacy.com/uploads/images/gallery/2023-02/JcsTkR0DgHVFVMkD-schemeit-project2.png) [![Esp32-Encoder-Setup (5).png](https://stanslegacy.com/uploads/images/gallery/2022-12/scaled-1680-/qqNXcCwadrtae9wk-esp32-encoder-setup-5.png)](https://stanslegacy.com/uploads/images/gallery/2022-12/qqNXcCwadrtae9wk-esp32-encoder-setup-5.png) ##### Arrangement favoring Particle Oscillation as an Energy Generator [![Screenshot from 2022-12-24 20-09-21.png](https://stanslegacy.com/uploads/images/gallery/2022-12/scaled-1680-/bpPuUTGMyzm4dC6m-screenshot-from-2022-12-24-20-09-21.png)](https://stanslegacy.com/uploads/images/gallery/2022-12/bpPuUTGMyzm4dC6m-screenshot-from-2022-12-24-20-09-21.png) ##### Variation 2 - Ground Bonded / "Forced" Uni-polar Operation [![Screenshot from 2022-12-24 20-09-13.png](https://stanslegacy.com/uploads/images/gallery/2022-12/scaled-1680-/ywzysAuQq2M7ZuHx-screenshot-from-2022-12-24-20-09-13.png)](https://stanslegacy.com/uploads/images/gallery/2022-12/ywzysAuQq2M7ZuHx-screenshot-from-2022-12-24-20-09-13.png) # ESP32 - Complex Waveform Generator V3 #### Installing and Using the ESP32 Complex Waveform Generator V3 Application Screenshot of web interface
[![image-1683400232715.png](https://stanslegacy.com/uploads/images/gallery/2023-05/scaled-1680-/MX4zLcrWYrUJauHX-image-1683400232715.png)](https://stanslegacy.com/uploads/images/gallery/2023-05/MX4zLcrWYrUJauHX-image-1683400232715.png)[![342755495_606076878142350_7100434860017235921_n.png](https://stanslegacy.com/uploads/images/gallery/2023-05/scaled-1680-/G1uYZlR7805tiMpU-342755495-606076878142350-7100434860017235921-n.png)](https://stanslegacy.com/uploads/images/gallery/2023-05/G1uYZlR7805tiMpU-342755495-606076878142350-7100434860017235921-n.png)
### Prerequisites To use this application, you need to have the Arduino IDE installed on your computer. You can download the Arduino IDE from the official website: [https://www.arduino.cc/en/software](https://www.arduino.cc/en/software) 1. **ESP32 Development Board**: You'll need an ESP32 development board, such as the popular ESP32-DevKitC or ESP32-WROOM-32D. These boards typically come with Wi-Fi and Bluetooth capabilities and a variety of GPIO pins for interfacing with peripherals. 2. **Rotary Encoders**: To adjust the waveform parameters, you will need a total of 7 rotary encoders. You can use KY-040 rotary encoder modules or any other type of incremental rotary encoder with built-in push buttons. Ensure that the rotary encoders you choose have a CLK, DT, and SW (push button) pinout. 3. **Breadboard and Jumper Wires**: A breadboard and jumper wires are required to make the necessary connections between the ESP32 development board and the rotary encoders. 4. **Power Supply**: You will need a power supply to power the ESP32 development board. This can be a USB power supply, a battery, or any other suitable power source that meets the board's voltage and current requirements, such an ATX Supply from a computer. 5VDC 1A minimum is recommended to prevent brownout conditions while interacting with a driver circuit. 5. **Oscilloscope (optional)**: To visualize the generated waveform, you can use an oscilloscope. Connect the output pins (channel1OutputPin and channel2OutputPin) from the ESP32 development board to the oscilloscope's input channels. #### Installing required libraries
1. **ArduinoJson**: To install the ArduinoJson library, follow these steps: a. Open the Arduino IDE. b. Click on `Tools` in the menu bar, then `Manage Libraries`. c. In the Library Manager window, search for "ArduinoJson" in the search bar. d. Find "ArduinoJson by Benoit Blanchon" in the search results and click on the `Install` button. 2. **ESP32Encoder**: To install the ESP32Encoder library, follow these steps: a. Open the Arduino IDE. b. Click on `Tools` in the menu bar, then `Manage Libraries`. c. In the Library Manager window, search for "ESP32Encoder" in the search bar. d. Find "ESP32Encoder by Gil Mora" in the search results and click on the `Install` button.
#### Uploading the Application
1. Download the source code for the [ESP32 Complex Waveform Generator V3](https://bitbucket.org/cbake6807/esp32-complex-waveform-generator-v3/src/master/) application or copy it to a new file in the Arduino IDE. 2. Connect the ESP32 development board to your computer using a USB cable. 3. In the Arduino IDE, select the appropriate board and port under `Tools` > `Board` and `Tools` > `Port`. 4. Click on the `Upload` button (right-facing arrow icon) in the Arduino IDE to compile and upload the application to the ESP32 development board.
#### Hardware Setup
1. Wire the rotary encoders and other components according to the pin assignments defined in the source code.
ESP32 PinEncoder ConnectionEncoder Function
14Pulse Encoder CLKPulse count
13Pulse Encoder DTPulse count
35Width Encoder CLKPulse width
34Width Encoder DTPulse width
19Spacing Encoder CLKPulse spacing
18Spacing Encoder DTPulse spacing
23Off-time Encoder CLKOff-time
22Off-time Encoder DTOff-time
27Width Mod Encoder CLKWidth modifier
26Width Mod Encoder DTWidth modifier
15Spacing Mod Encoder CLKSpacing modifier
32Spacing Mod Encoder DTSpacing modifier
33Off-time Mod Encoder CLKOff-time modifier
4 Off-time Mod Encoder DTOff-time modifier
2Output Channel 1Output waveform
5Output Channel 2Output waveform
2. Make sure the connections are secure and verify the CLK/DT pins for each encoder are wired correctly, and that each encoder turns in the correct direction relative to the respective parameter change.
#### Using the Application
1. Power on the ESP32 development board. 2. Use the rotary encoders to adjust the following parameters: - Pulse count - Pulse width - Pulse spacing - Off-time - Width modifier - Spacing modifier - Off-time modifier 3. The application will generate a complex waveform based on the adjusted parameters. 4. Connect the output pins (channel1OutputPin and channel2OutputPin) to an oscilloscope to visualize the generated waveform. 5. Open the WebApp/index.html page in a browser. 6. Fine-tune the parameters using the rotary encoders to achieve the desired waveform shape and characteristics.
#### Next Steps For Utilization
- Build ESP32 CWG - VIC Driver circuit(s) - [https://stanslegacy.com/books/chris-bake/page/esp32-cwg-driver-amplification](https://stanslegacy.com/books/chris-bake/page/esp32-cwg-driver-amplification) - Cell Construction - [https://stanslegacy.com/books/ethan-crowder/page/resonant-cavity-related](https://stanslegacy.com/books/ethan-crowder/page/resonant-cavity-related)
#### Troubleshooting
1. If the waveform does not match the expected output, verify the wiring connections and ensure the rotary encoders are functioning correctly. 2. If the application does not upload to the ESP32 development board, double-check the board and port selection in the Arduino IDE. 3. If the rotary encoders behave unexpectedly (e.g., adjusting one parameter affects another), check the CLK/DT pin assignments and wiring. 4. Click the PInout button to fetch the currently defined GPIO pins from the ESP32 directly and confirm they are wired correctly. [![image-1683400997931.png](https://stanslegacy.com/uploads/images/gallery/2023-05/scaled-1680-/0KZXcho6wJLP4Onh-image-1683400997931.png)](https://stanslegacy.com/uploads/images/gallery/2023-05/0KZXcho6wJLP4Onh-image-1683400997931.png)
For further assistance or to report any issues, contact the application's support team or refer to the community forums. # 2 Arduino - Dual Channel - Triple AND Gate (Perfect Pulse Driver) By: Chris Bake **Arduino Code**: [https://bitbucket.org/cbake6807/dualtripleseq/src/master/](https://bitbucket.org/cbake6807/dualtripleseq/src/master/) #### Parts List 1. **External Signal Generator**: 0-5Vppk output. 2. **Power Supply**: ATX is ideal, providing +5V REG and +12V REG. 3. **2N7000 Signal MOSFETs**: Quantity 6. 4. **IRFP460 or Similar Power N-channel MOSFET**: Quantity 2. 5. **56Ω 1/8W Resistors**: Quantity 10. 6. **100Ω 1/2W Resistors**: Quantity 2. 7. **4.7kΩ Resistors**: Quantity 2. 8. **2N3906 PNP General Purpose Transistor**: Quantity 2 (can be substituted with any general PNP transistor). 9. **IR2110PB Gate Driver Chip 14-pin**: Quantity 2. 10. **Arduino Nano (or similar)**: Quantity 2 (must support hardware PCNT). 11. **Rotary Encoder**: Quantity 1. #### Software Requirements - **Arduino IDE**: Ensure it is installed and updated to the latest version. - **Encoder Library**: Install via the Arduino Library Manager. ### ### Arduino Setup #### Pulse Counter Arduino 1. **Upload Script** - Open the Arduino IDE. - Connect the first Arduino (PulseCounter) to your PC. - Open `PulseCounter.ino` from the provided file. - Upload the script to the Arduino. 2. **Connect the Encoder** - Connect the encoder's VCC to the Arduino's 5V pin. - Connect the encoder's GND to the Arduino's GND pin. - Connect the encoder's CLK and DT pins to two digital pins on the Arduino D2 and D3. - Connect the encoder's Button pin to D4. 3. **Verify Encoder Output** - Open the Serial Monitor in the Arduino IDE. - Rotate the encoder and check the output to confirm it is functioning correctly. >
const int outputPin = 9;
const int encoderPinA = 2;
const int encoderPinB = 3;
const int encoderSwitchPin = 4;
const int disableSwitchPin = 6;
#### Adding a Pushbutton for Sync Mode Toggle To add a pushbutton to the Sequencer Arduino for toggling the sync mode, follow these instructions: ##### Parts Required - **Pushbutton**: Quantity 1 - **10kΩ Resistor**: Quantity 1 - **Connecting Wires** ##### Hardware Connections 1. **Connect the Pushbuttons** - NANO1 - D6 -> BUTTON -> GND - NANO2 - D4 -> BUTTON -> GND

Summary of Connections

#### Sequencer Arduino 1. **Upload Script** - Disconnect the PulseCounter Arduino and connect the second Arduino (Sequencer) to your PC. - Open `Sequencer.ino` from the provided file. - Upload the script to the Arduino. ### Pin Mapping and Connections #### Connecting the Two Arduinos - **PulseCounter Arduino to Sequencer Arduino** - Signal Generator (+5Vppk max) →PulseCounter NANO1 - D5 (Input) - Signal Generator (+5Vppk max)→Q2 **First** 2N7000 FET Gate - Signal Generator (+5Vppk max)→Q7 **First** 2N7000 FET Gate (opposite branch) - PulseCounter NANO1 - D9 (Output) → Sequencer NANO2 - D2 (Input) - PulseCounter NANO1 - D9 (Output) → Q1 **Second** 2N7000 FET Gate - PulseCounter NANO1 - D9 (Output) → Q6 **Second** 2N7000 FET Gate (opposite branch) - **Sequencer Arduino Outputs** - Sequencer NANO2- D9 (Output) → Input to Q4 - **Third** 2N7000 Gate. - Sequencer NANO2 - D10 (Output) → Input to Q9 - **Third** 2N7000 Gate (opposite branch) - **Gate Enable/Disable Button** - Connect NANO1 - D6 -> BUTTON -> GND - **SyncMode / Offset Mode Button** - Connect NANO2 - D4 -> BUTTON -> GND

**Note:** The schematic shows the outputs merged due to limitations, but there should be dual outputs from the sequencer, D9 and D10, each connecting to a separate AND gate tree.

- **Shared Connections** - Both Arduinos' GND pins should be connected together to ensure a common ground. ### Gate Driver Chip Connections #### IR2110PB Gate Driver Chip 1. **Power Connections** - VCC (Pin 3) → +12V REG - VSS (Pin 2, 10, 11, 15) → GND - VDD (Pin 9) +5V REG 2. **Input Connections** - LIN (Pin 12) → Arduino PWM pin (as per script) 3. **Output Connections** - LO (Pin 1) → Gate of the IRFP460 MOSFET 4. **Bootstrap Capacitor** - Connect a 22µF and a 100nF capacitor near VDD (Pin 9) and Ground. 5. **No Connection** 1. Pin 6, 7 - NC 6. **Noise Filtering** - R2: Connect a 10Ω resistor between LO and the gate of the MOSFET. - D2: Place a 1N4001 diode in parallel with the Resistor R2 in reverse direction for added noise filtering and protection. ### Schematic Overview Refer to the schematic image to visualize these connections. The IR2110PB gate driver chips control the IRFP460 MOSFETs, enabling high-power switching of the VIC (Voltage Intensifier Circuit) primaries. ### Additional Notes - **Resistor Tolerances**: The resistors can have a large tolerance. The 56Ω value is selected to preserve signal clarity. Any value ≤220Ω should be acceptable. - **Merged Outputs**: The Arduino Channel Sequencer has 2 outputs shown merged due to Scheme-It limitations. [![image-1719630807457.png](https://stanslegacy.com/uploads/images/gallery/2024-06/scaled-1680-/3tIVYmfAyboOM3bo-image-1719630807457.png)](https://stanslegacy.com/uploads/images/gallery/2024-06/3tIVYmfAyboOM3bo-image-1719630807457.png) # Core Permeability > There are 2 inductors on a ferrite core, closed loop U shape. The core's permeability is approx 2000. One coil is 300 turns of 22Ga wire, and the other coil is 1000 turns of 30Ga wire. The inductance of the 300 turn coil, while shorting the 1000 turn coil, is 12.188mH. The inductance of the 1000 turn coil, while shorting the 300 turn coil, is 159.69mH. Both measurements were taken at a 1 kHz test frequency with an LCR meter. > > **What is the true core permeability?** We can use the following equation to calculate the inductance of an inductor on a closed loop ferrite core with two coils:

L\_total = μ \* N\_1^2 \* A / (2 \* l) + μ \* N\_2^2 \* A / (2 \* l)

where L\_total is the total inductance of the two coils, μ is the permeability of the core in henries per meter (H/m), N\_1 and N\_2 are the number of turns in each coil, A is the cross-sectional area of the core in square meters (m^2), and l is the length of the core in meters (m). We are given that one coil has 300 turns of 22 gauge wire, and the other coil has 1000 turns of 30 gauge wire. We are also given that the inductance of the 300 turn coil while shorting the 1000 turn coil is 12.188 mH, and the inductance of the 1000 turn coil while shorting the 300 turn coil is 159.69 mH. Both measurements were taken at a 1 kHz test frequency using an LCR meter. Let's start by solving for the permeability μ. We can do this by using the equation for the inductance of the 300 turn coil:

12.188 × 10^-3 H = μ \* N\_1^2 \* A / (2 \* l)

Substituting the given values for N\_1, A, and l, we get:

12.188 × 10^-3 H = μ \* (300)^2 \* A / (2 \* 0.1 m)

**Simplifying, we get:**

μ = 4 \* 12.188 × 10^-3 H \* 0.1 m / (300)^2 \* A

The cross-sectional area of 22 gauge wire is approximately 0.0000006475 m^2, and the cross-sectional area of 30 gauge wire is approximately 0.0000005067 m^2. Since the two coils are wound on the same core, we can assume that they have the same cross-sectional area. Let's use the average of the two values:

A = (0.0000006475 m^2 + 0.0000005067 m^2) / 2 = 0.0000005771 m^2

Substituting this value, we get:

μ = 1.56 × 10^-3 H/m

Next, let's use the equation for the inductance of the 1000 turn coil to solve for the length of the core:

159.69 × 10^-3 H = μ \* N\_2^2 \* A / (2 \* l)

Substituting the values we found for μ and A, we get:

159.69 × 10^-3 H = (1.56 × 10^-3 H/m) \* (1000)^2 \* 0.0000005771 m^2 / (2 \* l)

Simplifying, we get:

l = (1.56 × 10^-3 H/m) \* (1000)^2 \* 0.0000005771 m^2 / (2 \* 159.69 × 10^-3 H) l = 0.0266 m

Therefore, the length of the core is approximately 0.0266 m. Finally, we can use the same equation for the inductance of the 1000 turn coil to solve for the true value of the permeability μ:

159.69 × 10^-3 H = μ \* (1000)^2 \* A

Substituting the value of A we found earlier, we get:

159.69 × 10^-3 H = μ \* (1000)^2 \* 0.0000005771 m^2 / (2 \* 0.0266 m)

Simplifying, we get:

μ = 1865.5 H/m

Therefore, the true permeability of the core is approximately **1865.5 H/m**.

To determine the number of turns of 30Ga wire required to produce the same inductance as the 300 turn 22Ga coil, we can use the following formula:

L = (μ \* N^2 \* A) / l

where L is the inductance in henries, μ is the permeability of the core, N is the number of turns, A is the cross-sectional area of the core, and l is the length of the core. We know that the inductance of the 300 turn 22Ga coil is 12.188mH and the permeability of the core is 1865.5 H/m. We also know that the cross-sectional area of the core is 0.0000005771 m^2 and the length of the core is 0.0266 m. Substituting these values, we get:

12.188 × 10^-3 H = (1865.5 H/m) \* (300)^2 \* 0.0000005771 m^2 / 0.0266 m

Solving for N, we get: N ≈ **712 turns**

Therefore, approximately 712 turns of 30Ga wire would be required to produce the same inductance as the 300 turn 22Ga coil.

# Resonant Modes in a Water‑Fuel Cell Explore how Maxwell’s equations lead to discrete resonant patterns in a cylindrical water‑fuel cell, from Bessel functions through mode shapes, axial quantization, circuit implementation, and ferrite‑choke advantages. ### Legend of Symbols
**∇**Nabla (gradient/div/curl operator)
**E**Electric field vector
**B**Magnetic field vector
**μ₀**Permeability of free space
**ε₀**Permittivity of free space
**εᵣ**Relative permittivity (water)
**ψ**Wave function (e.g. E field component)
**k**Total wave number
**kᵣ**Radial component of wave number
**kz**Axial wave number
**ω**Angular frequency (rad/s)
**ℓ**Axial mode index
**J₀**Bessel function of 1st kind, order 0
**Y₀**Bessel function of 2nd kind, order 0
**R(r)**Radial part of ψ
**Z(z)**Axial part of ψ
**c**Speed of light (1/√μ₀ε₀)
## 1. Maxwell’s Equations to the Wave Equation Maxwell's equations describe how electric and magnetic fields behave. In the absence of free charges and currents (idealized for resonance analysis): ``` ∇·E = 0 (Gauss's law: no free charges) ∇·B = 0 (No magnetic monopoles) ∇×E = -∂B/∂t (Faraday's law of induction) ∇×B = μ₀ε₀ ∂E/∂t (Ampère's law with Maxwell's correction) ``` To derive the wave equation, take the curl of Faraday’s law: ``` ∇×(∇×E) = -∂/∂t (∇×B) ``` Substitute Ampère's law into the right-hand side: ``` ∇×(∇×E) = -μ₀ε₀ ∂²E/∂t² ``` Use the vector identity: ``` ∇×(∇×E) = ∇(∇·E) - ∇²E ``` Since ∇·E = 0, this simplifies to: ``` -∇²E = -μ₀ε₀ ∂²E/∂t² ⇒ ∇²E = μ₀ε₀ ∂²E/∂t² ``` Thus we get the standard 3D wave equation for each field component: ``` ∇²ψ = (1/c²) ∂²ψ/∂t², where c = 1/√(μ₀ε₀) ``` This equation describes how electromagnetic waves propagate through space. The term **ψ** here can represent a component of the electric field. ## 2. Cylindrical Coordinates & Separation of Variables For a cylindrical water-fuel cell, we convert the wave equation into cylindrical coordinates (r, φ, z): ``` (1/r) ∂/∂r(r ∂ψ/∂r) + ∂²ψ/∂z² + k²ψ = 0 ``` Assuming symmetry in φ and time-harmonic oscillation (ψ ~ ejωt), we use separation of variables: Let ψ(r,z) = R(r)·Z(z) Substituting and dividing by R·Z: ``` (1/Rr) d/dr(r dR/dr) + (1/Z) d²Z/dz² + k² = 0 ``` Each term depends only on one variable, so we equate them to constants: ``` (1/r) d/dr(r dR/dr) + kᵣ² R = 0 ← Radial equation d²Z/dz² + kz² Z = 0 ← Axial equation k² = kᵣ² + kz² ``` This yields ordinary differential equations (ODEs) for the radial and axial components of the solution, which can be solved independently. ## 3. Bessel Functions in the Radial Solution The radial equation from the previous step is: ``` (1/r) d/dr(r dR/dr) + kᵣ² R = 0 ``` This is a standard form of Bessel’s differential equation of order zero. It arises naturally in problems with cylindrical symmetry, such as waveguides and resonant cavities. The general solution is a linear combination of two basis solutions: ``` R(r) = A·J₀(kᵣr) + B·Y₀(kᵣr) ```
- **J₀(kᵣr)**: Bessel function of the first kind (finite at r = 0) - **Y₀(kᵣr)**: Bessel function of the second kind (diverges at r = 0)
In a real physical coaxial fuel cell (with inner radius a and outer radius b), the radial field must vanish at both boundaries: ``` R(a) = 0 R(b) = 0 ``` Applying these boundary conditions leads to the transcendental equation: ``` J₀(kᵣa)·Y₀(kᵣb) - J₀(kᵣb)·Y₀(kᵣa) = 0 ``` Solutions for kᵣ must satisfy this equation. These are the discrete radial resonance modes. Each root of this equation corresponds to a standing wave mode inside the cavity. **Physical meaning:** The radial structure of the electric field is shaped by these modes. Nodes form at the boundaries, and lobes appear in between. Higher radial mode numbers produce more complex field patterns. ## 4. Axial Mode Quantization The axial component of the wave function Z(z) satisfies a second-order ordinary differential equation (from Section 2): ``` d²Z/dz² + kz² Z = 0 ``` This is a classic harmonic oscillator equation, whose general solution is: ``` Z(z) = C·sin(kzz) + D·cos(kzz) ``` To satisfy boundary conditions that the field is zero at the ends of the cavity (perfectly conducting end plates at *z = 0* and *z = L*):
- Z(0) = 0 ⇒ D = 0 - Z(L) = 0 ⇒ sin(kzL) = 0
This means: ``` kz = ℓπ / L where ℓ = 1, 2, 3, ... ``` These are discrete axial modes — each **ℓ** value represents a mode where there are **ℓ** half-wavelengths along the cell length. **Physical meaning:** The standing wave fits an integer number of half-wavelengths into the cavity. The number of lobes (antinodes) increases with ℓ, creating more complex field structures longitudinally. ## 5. Mode Shapes and Field Patterns Each set of mode indices (n, m, ℓ) defines a distinct electromagnetic field structure inside the cavity. These shapes include regions of high and low electric field intensity — useful for engineering energy deposition into water.
- **Radial (n):** Defines number of rings in cross-section - **Azimuthal (m):** Defines number of angular nodes (often 0 in water cell use) - **Axial (ℓ):** Defines number of field segments along the tube
Engineers choose modes that maximize field gradients across the electrode gap, to promote water molecule excitation and separation. ## 6. Circuit Implementation with Ferrite Chokes To effectively excite resonant modes in the water-fuel cell, the external circuitry must deliver energy tuned to the cell's natural frequencies. Stanley Meyer’s approach used bifilar coils wrapped around ferrite cores to form a resonant tank circuit with the cell’s water capacitor. ### Key Features of the Resonant Circuit:
- **Ferrite Core:** High-permeability material that concentrates magnetic fields and reduces core losses. This improves inductance density and limits RF leakage. - **Bifilar Winding:** Two matched-length inductors wound in parallel but electrically isolated. This allows high mutual inductance while minimizing stray inductance and promoting balanced field generation. - **Series LC Resonance:** The water capacitor and bifilar inductor form a high-Q resonant circuit. At resonance, voltage is stepped up across the water gap, and current is minimized — crucial for energy-efficient molecular excitation.
Instead of relying on brute-force electrolysis (which requires high current), this design builds up electric field strength through repeated charge and discharge cycles at resonance. The water is polarized by high-voltage pulses that oscillate in time, causing molecular alignment and vibrational stress that may aid in dissociation. ## 7. Conclusion: Benefits of Resonant Excitation By exploiting discrete electromagnetic modes within a coaxial water-fuel cell cavity — and matching excitation circuits to those modes — several significant advantages emerge over conventional electrolysis:
- **Efficient Energy Transfer:** Resonance concentrates energy where it's most effective, allowing water to be influenced by electric field rather than brute-force current. - **High Voltage, Low Current:** Minimizes I²R losses. The focus is on dielectric field stress, not Joule heating. - **Selective Excitation:** Specific vibrational, rotational, or electronic modes of water molecules may be selectively excited by tuning the waveform and frequency. - **Low Power Draw:** Thanks to resonance, substantial field effects can be achieved with modest input energy. - **Custom Geometry Tuning:** Cell dimensions (a, b, L) define mode structure. These can be engineered to target optimal field distributions.
This method attempts to interact with water molecules through resonant, field-based mechanisms rather than thermal or electrolytic brute force. The result is a new paradigm for water splitting — aiming for higher efficiency and lower power consumption, as proposed in Stanley Meyer’s original vision. # AI Conversations # Complete Theoretical Guide: VIC Circuit, EDL Disruption, Zeta Potential & Geometry Comparison This guide presents an integrated, in-depth exploration of key electrochemical and physical principles underlying Voltage Ignition Charging (VIC) circuits and Water Fuel Cells (WFC). Covered topics include: **Stern (Helmholtz) & Gouy–Chapman layers, Zeta Potential dynamics, Helmholtz capacitance, Gauss’ Law, Faraday’s and Ohm’s Laws, carrier depletion and electron-volts (eV), cumulative pulse conditioning, electrode geometries (parallel plates, tube-in-tube, concentric spheres), efficiency metrics, and Stanley Meyer’s resonant charging concepts.** --- ## I. Electric Double Layer (EDL) Structure The EDL at a charged electrode–water interface comprises two sublayers: - **Helmholtz (Stern) Layer:** A compact, nanometer-scale layer of immobile counter-ions directly adsorbed on the electrode surface. Acts like a discrete capacitor with capacitance *CH = ε₀εrA/dH*. - **Diffuse (Gouy–Chapman) Layer:** Extends into the bulk solution, featuring a gradient of mobile ions whose density decays exponentially with distance from the surface. ``` Electrode Surface ----------------- | Helmholtz Layer (dH) | <-- Immobile counter-ions | ---------------------------- | | Slipping Plane * | <-- Zeta Potential location | ~~~~~~~~~~~~~~~~~~~~~~~~~~ | <-- Gouy–Chapman diffuse layer | Bulk Water (neutral) | ------------------------------- ``` --- ## II. Zeta Potential (ζ) Fundamentals **Zeta Potential** is the electrical potential at the slipping plane, governing the EDL’s shielding efficiency. - **Dependence on pH & Ionic Strength:** Alters surface charge and diffuse layer thickness; high ionic strength compresses the diffuse layer, reducing ζ. - **Relation to Surface Charge Density (σ):** πrεrε₀ζ ≈ σ; increased σ elevates ζ, enhancing repulsion. - **Measurement:** Electrophoretic mobility (Henry’s equation) or streaming potential techniques quantify ζ. - **Practical Effect:** In VIC, a high ζ suppresses ionic conduction, favoring dielectric field coupling. --- ## III. Helmholtz Capacitance & Energy Storage The compact Helmholtz layer acts as a nanoscale capacitor: - **Capacitance (CH):** C = ε₀εrA/d, where d is the Stern layer thickness. - **Energy Density:** U = ½C V²; maximizing CH and V stores substantial energy at the interface. --- ## IV. Gauss’ Law & Field Penetration **Gauss’ Law:** ∮E·dA = Qenclosed/ε₀ defines flux from enclosed charge. In VIC operation: - With minimal conduction, surface charge (Q) accumulates, intensifying E across the gap. - Disrupted EDL enables full flux penetration into the bulk, maximizing field coupling. --- ## V. Faraday’s & Ohm’s Laws in Context - **Faraday’s Law:** Gas mass ∝ Q\_passed; VIC minimizes Q to limit Faradaic losses. - **Ohm’s Law:** V = IR; high interfacial resistance (from EDL disruption) reduces I, preserving V for dielectric effects. --- ## VI. Electron Volts (eV) & Carrier Depletion High-voltage pulses cause: - **Ionic Carrier Removal:** Reduces Ncarriers, increasing effective eV per dipole: eV ∝ V/(Ncarriers+Ndipoles). - **Dielectric Coupling:** Field energy transfers directly to molecular polarization rather than ionic currents. ### Cumulative Pulse Conditioning: - Sequential pulses progressively deplete ions, enhancing V efficacy. - EDL instability promotes deeper field penetration. - Repeated cycles boost gas yield and energy efficiency. --- ## VII. Electrode Geometry & Field Distribution - **Parallel Plates:** Uniform E; simple but edge effects limit active area. - **Tube-in-Tube:** E(r) ∝ 1/r creates strong radial gradient; optimal volume efficiency. - **Concentric Spheres:** E(r) ∝ 1/r² gives peak local fields; limited bulk processing. --- ## VIII. Efficiency Metrics & Practical Gains - **Specific Energy Input (SEI):** J/mol H₂; goal is to minimize SEI via dielectric dominance. - **Gas Yield per Pulse:** Increases as carrier depletion and field penetration improve. - **Energy Recovery:** Potential resonance between pulses can recapture interfacial energy (Stan Meyer’s concept). --- ## IX. Helmholtz Resonance & Stanley Meyer Stanley Meyer’s WFC leveraged: - **Resonant Charging:** Pulse frequencies tuned to Helmholtz relaxation for maximal interfacial voltage. - **Non-Faradaic Dissociation:** Maintaining dielectric conditions to limit current and enhance water breakdown. - **Dynamic EDL Control:** Toggling EDL integrity to cycle between storage and field penetration phases. --- ## X\\. Electrode Example & Resonant Matching Consider a tubular cell made of SS304L with a 3\\" (0.0762 m) cavity, inner tube OD 0.5\\" (0.0127 m), outer tube ID 0.75\\" (0.01905 m), leaving a 0.060\\" (0.001524 m) annular gap: - **Coaxial Capacitance (C):** Using C = 2π·ε₀·εr·L / ln(b/a), with εr ≈ 80 (water): a = 0.00635 m, b = 0.007874 m, L = 0.0762 m C ≈ 2π·(8.854×10⁻¹² F/m)·80·0.0762 m / ln(0.007874/0.00635) ≈ 1.6 nF - **Matching Inductance (L):** For a target resonance around 100 kHz, choose L such that ω₀=1/√(LC): L ≈ 1 / \[(2π·100×10³ Hz)² · 1.6×10⁻⁹ F\] ≈ 1.6 mH ### Role of Bifilar Inductor & Resonance - **Bifilar Inductor:** Provides high mutual coupling and low leakage inductance, storing magnetic energy and isolating high-frequency pulses. - **Resonant Behavior:** At f₀ ≈ 1/(2π√(LC)), the cell–inductor circuit forms a resonant tank, maximizing voltage swings across the cell while minimizing input current. - **Efficiency Advantage:** Resonance elevates peak voltages with minimal energy loss, enhancing field penetration and dielectric dissociation in the water gap. --- ## XI\\. Comprehensive Summary & Takeaways - Multilayer EDL governs field access; mastering Helmholtz and diffuse layers is key. - Gauss, Faraday, and Ohm laws collectively describe VIC behavior. - Carrier depletion amplifies eV per interaction, shifting from ionic to dielectric mechanisms. - Geometry selection (tube-in-tube) optimizes field intensity and scalability. - Resonant Helmholtz charging (Meyer) may recover and reuse interfacial energy, enhancing efficiency. --- Generated by ChatGPT based on comprehensive technical discussions — June 2025. # Charles Steinmetz and transient period conditions in the VIC # Analysis: Steinmetz Transient Theory & Meyer Voltage Intensifier Circuit **Steinmetz approached transients** using what we now call complex algebra and differential equations. He realized that instead of just thinking about voltages and currents as simple sine waves, you could represent them using complex numbers, which made the math much easier to handle, especially when things were changing quickly. For transient analysis, here’s the key idea: when something in a circuit suddenly changes, like closing a switch or applying a surge of voltage, the circuit responds according to its inductance, capacitance, and resistance. These elements cause the current and voltage to evolve over time — they don’t just snap into their final values. Steinmetz used the exponential function, often written as e-t/τ, to describe how the transient dies out over time. That “τ” is the time constant — it tells you how fast the transient fades away. For example, in an RL circuit — one with a resistor and an inductor — if you suddenly apply a voltage, the current will start at zero and grow toward its steady value in a smooth curve. The shape of that curve is described by the exponential function Steinmetz used. By developing these mathematical tools, he allowed engineers to predict not just the final steady state of a circuit, but also the whole path it takes to get there — which is crucial when designing safe and reliable electrical systems. **Why did the industry move away from using transients?** Mainly for practicality and safety. Historically, engineers aimed for predictable, steady-state systems. Transients were treated as problems — causing insulation breakdown, overheating, and noise — so engineers designed to avoid them with better switching, filtering, and materials. But today, with advanced materials and control systems, engineers are revisiting transient operation in fast switching converters, pulsed power, quantum electronics, and more — because transients let you move energy quickly and efficiently. ## Applying this to Stanley Meyer’s Voltage Intensifier Circuit (VIC) Meyer’s VIC used sharp high-voltage pulses rather than continuous power to break water molecules. The circuit aimed to operate deep in the transient regime — with water behaving like a strange capacitor — exciting the system dynamically instead of reaching a steady state. If designed right — matching pulse rate to the resonant frequency of the LC-water capacitor system — energy builds in the transients. This is where “resonant water splitting” originates. Steinmetz’s math helps model this. One would analyze the transient response, identify natural resonances, and tune the pulsing circuit to stay in the transient sweet spot — maximizing voltage build-up without stabilizing into a boring steady state. ## Common Mistakes in Reproducing VICs
- Builders focus only on generating high voltage or fast-looking pulses on a scope. - They neglect modeling the system’s full transient dynamics — including how water’s capacitance changes with voltage. - They miss the importance of pulse repetition rate matching system resonance. - They fail to track dielectric changes which shift the LC resonance as voltage rises. - They think in volts per pulse instead of energy per pulse — which matters for cumulative energy build-up.
The key is: **modeling the transient path**, tracking how voltage and capacitance evolve, and dynamically adapting pulse frequency and amplitude. ## How Dielectric Constant of Water Changes Water’s dielectric constant (~80 at low field) drops as voltage increases, due to dielectric saturation. Molecules align with the field, reducing their ability to store more energy. As the dielectric constant drops:
- Capacitance decreases. - Resonant frequency increases. - System needs dynamic pulse tracking to stay in sync.
Without this, voltage build-up will stall as the circuit falls out of resonance. ## Dynamic C(V) Modeling Modeling capacitance as a function of voltage (C(V)) allows one to predict how frequency shifts over time and how to adapt the pulse generator accordingly: ``` Dielectric_constant(E) = k_low / (1 + (E / E_sat) ^ n) ```
## Incorporating Meyer’s Patent Insights Meyer suggested adaptive pulse trains — with pulse width and spacing modulated progressively — exactly what is needed to track the dynamic resonance. By modulating both:
- Pulse timing (frequency sweep) - Pulse amplitude (voltage sweep)
— the system can stay locked onto the changing resonant frequency as the dielectric saturates and capacitance shifts. ## Amplitude Modulation via Multi-Tap Coil Meyer advanced beyond LM317 and counter-driven modulation by using a multi-tap coil, allowing controlled amplitude steps synchronized with transient evolution. Combining all this yields a full adaptive transient strategy:
- Dynamic C(V) - Adaptive pulse frequency - Adaptive pulse amplitude
This provides the optimal condition for building field energy across the water capacitor to assist molecular dissociation, as Meyer intended. Modern builders can implement this far more precisely using DSPs or microcontrollers, greatly improving on the old mechanical sequencing approaches.