top of page

Arduino-Stanley-A-Meyer

So we are starting to see people  Making Voltrolysis for their Hydrogen Hot Rods

using Arduino as the PWM and Gate. The Idea is not new but  since we have more working examples and training appearing i am unlocking this page. 

IT IS HIGHLY INSISTED AND RECCOMMENED YOU DO NOT START WITH ARDUNIO <

 

YOU SHOULD START WITH 9XB 9XA PWM first

to ensure you make the switch and understand them and correct voltrolysis effect fully first . 

 

Dan 
 

Detailed model by Stanley Meyer. What physical principles the Stanley Meier cell consists of is considered. Knowing the model and physical principles, it is possible to recreate the operation of a fuel cell. In turn, without knowing the physical principles, no matter how accurately you copy technical devices, it will not be possible to put the fuel cell into operation.

Technical solution No. 1 - the procedure for selecting voltages and frequencies for starting the Stanley Meyer fuel cell

Technical solution No. 2 - the procedure for selecting voltages and frequencies for starting the Stanley Meier fuel cell. Refusal to use a variable inductor

A quick self-learning technique is briefly described. Do not dive immediately into the depth of the object, but from the beginning on the surface "to swim", then dive "a little deeper", and then dive even "deeper". You take a crumb from each chapter, topic, page, paragraph, if you miss something incomprehensibly. As a result, you are not drowning in details

First experience of drawing up a voltage regulation circuit using an operational amplifier and an Arduino Uno for a Stanley Meier Fuel Cell Pulse Generator.
The diagram was drawn up after 2 hours of preparation, including watching a video on how to work with programs, installing programs and libraries, and creating the working diagram itself. The simulation was successful, but there are flaws.

The calculation of strobes, the thickness of the strobe, their number, the gap between them, and also the Period (Frequency) is calculated.

 

The potentiometer affects the X exponent, which affects the Time Between the Beginning of a Strobe Burst.

 

Based on these formulas, a sketch for Arduino is programmed, as a result, when you rotate the potentiometer knob, we change the frequency of the Pulse Generator.

Added Potentiometer to adjust the Pulse Generator Frequency. Now you can adjust both the Pulse Voltage Amplitude and the Pulse Rate.
The program regulates the number of strobes, strobe width, gap between strobes.
Designations and calculations are taken from the previous video.
N is the number of strobes;
dtH - strobe width;
dtL - gap between strobes;
N is the number of strobes in a pack;
X is the distance between the strobe packs, this indicator is adjusted by the added Potentiometer.
Taking into account the Width of the stack of strobes equal to N * (dtH + dtL) and the distance between the strobes X, we get the Period T
T = N * (dtH + dtL) + X; and from here we find the frequency
f = 1 / T;
f = 1 / (N * (dtH + dtL) + X);

We fill in the mind map in the FreePlane program.
We must remember that only from 1 to 6 branches can leave the NODE, no more.
We called the KNOT - programming V and gave a breakdown of what programming is in the notes.

Shown is a voltage divider circuit for driving the measured voltage to the +5 volt limit.
On the analog leg A0, the voltage in the range (0 - 5) volts is measured by bits in the range (0 - 1023)
Therefore, the voltage on the signal amplification circuit must be brought to 5 volts through a voltage divider.
And in the program it is already multiplied by the coefficient K and we get the actual voltage value, which will be displayed.

It is shown how to connect the LM016L display (16 characters 2 lines) After compiling the program, you need to transfer the file with the extension ***. Hex to the desired folder.
Next, double-click on the arduino on the diagram and in the dialog box show the path where the file with the extension ********. Hex is located.
Simulation of the program and display of information on the screen indicates that the display is connected correctly

Mathematical formulas and conversion functions for displaying from the range of digits to the range of 0-12 volts and 0-15000 hertz are presented.

It is shown that the display is receiving data generated and written in the sketch V 1.1. The result is shown that the data output logic occurs (while the data is not correct).

Stanley A Meyer Arduino.png
Following is from 2010

== PulseFire ==

PulseFire is a programmable PWM and bit sequencer build on the Arduino platform in C. Targeted for free energy (re)search with full
generic configurable mappings for analog/digital inputs so it can operate HHO cells, magnetic motors and solid state coil shorting setups.

== Features ==

- Prebuild arduino firmwares.
- Standalone config in eeprom.
- Multiple lcd sizes support.
- Extentable with some simle chips.
- Max 16 output for pulse train.
- Mulple pulse train modes.
- Invert signal per output.
- Per output bit pattern config.
- Generic mappable analog and digital inputs.
- Maximum and minimum treshold values.
- Comes with gui interface to config.
- etc/etc.

== Requirements ==

- Arduino IDE (only for drivers/testing); http://arduino.cc
- Java 1.6 or higher; http://java.com

== Install ==

- Unzip the downloaded file.
- Run pulsefire.exe or run.bat or run.sh.
- Goto setting tab and "Burn" firmware into Arduino.
- Connect to virtual COM port of Arduino.
- Done.

== Flashing Arduino ==

With Pulsefire there is no need to compile code in the Arduino IDE.
It is already compiled and packaged inside the application.
On the settings tab there is a "Burn" button which will show the flash dialog.
There you can select your MCU and SPEED, for example for the UNO we select "atmega328p"
and "16Mhz" which gives a list of precompiles chip firmware images.

Currently the "atmega328p-001" or "atmega328p-002" images are a fine start,as they
have no external chip requirements.
After selecting the image select the port and hit the "Flash" button.

Also remember that after flashing a chip it is most often needed to make the config correct
from older eeprom saved config variables,so then do;
1) Reset Config
2) Save Config
3) Reset Chip

If the flashing code does not work correctly there is a fallback on the avrdude flash tool.
For that to work select the command and config of avrdude needs to be selected in the
settings tab, these avrdude command/config can be found in a arduino IDE subdirectory.
After that reopen the flash dialog and first select an images then override
the selected "Programer" to the "native-" version and hit flash.

This "native-" version runs the avrdude program with the correct arguments to flash the
temporarily exported hex file to the arduino. With the manual export button it also possible
to run avrdude or other loaders like; http://xloader.russemotto.com/


== Arduino Uno ==

Chips: atmega328p & atmega168p
Pins: http://git.savannah.gnu.org/cgit/pulsefire.git/tree/pulsefire-chip/src/main/c/chip_avr.c
schema-simple: http://pulsefire.nongnu.org/images/arduino-default.png
schema-extensions: http://pulsefire.nongnu.org/images/avr-ext-chips.png

Simple firmware selection list based on IO chips and LCD connections;
atmega328p-001 - No lcd support but 6 analog inputs.
atmega328p-002 - lcd, connections like simple schemetic.
atmega328p-003 - lcd on 74xx595 chip.
atmega328p-004 - lcd 595, 8 out on 595
atmega328p-005 - lcd 595, 2*8 out 595
atmega328p-006 - lcd 595, 2*8 out 595, 74xx153 multiplex digital in to 8 in.
atmega328p-007 - lcd 595, 2*8 out 595, dic on 153, 8 digital output on 595.
atmega328p-020 - no lcd, 8 out on 595
atmega328p-021 - no lcd, 2*8 out 595
atmega328p-022 - TEST no lcd,no pwm,no ppm


== Arduino Mega ==

Chips: atmega2560 & atmega1280
Pins: http://git.savannah.gnu.org/cgit/pulsefire.git/tree/pulsefire-chip/src/main/c/chip_avr_mega.c
schema-simple: todo
schema-extensions: http://pulsefire.nongnu.org/images/avr-ext-chips.png

There are some MEGA fixes this version as I now have a MEGA but have not done full test yet.
It seems to be that the default bootloader in the 2560 does not support watchdog timer support.
Have to fix/workaround that first then next version should be fully tested MEGA firmwares.


== Connecting ==

If the pulsefire gui will not connect to the arduino chip, there are a few
things to try to make it work;
(note: most connect problems seems to be on 64b windows.)

- Sometimes does it works on 2 or 3th connect attempt.
- Unplug and plugback arduino in usb before connecting.
- Hit reset button on arduino board just before connecting.

Else check:
- is pulsefire chip firmware correctly flashed.
- is pulsefire promt working in serial monitor in the arduino IDE.
- is COM port the same as in arduino IDE.

To debug;
- Enable "Tab UILog" on settings tab.
- Set log level to ALL
- Try to connect again.
- See for unexcepted exceptions.


== Config ==

todo write out some examples here.


== FAQ ==

Which LCD displays are supported ?
> All parralel connected LCD which are compatible with HD44780.

Are GLCD dislays supported ?
> No, but there is a experimental GLCD flag+code for MEGA.

Which i2c devices are supported ?
> None at the moment.


== Lastest version ==

Download latest version from;
http://download.savannah.gnu.org/releases/pulsefire/
(download ui-launch4j for windows and ui-dist for other platforms)

1.0.3 Changes:
- Added loading splash screen
- Fixed rxtx support for Mac OS X
- Cleaned connect code to fix 2+ connect on some windows.
- Added icon on pulsefire.exe
- Renamed cancel to close in flash dialog.

Chip changes from 1.0.0-beta8 to 1.0.2;
- Renamed lpm_auto_cmd to lpm_fire and made triggerable.
- Renamed req_auto_lpm to req_lpm_fire like other triggers.
- Reversed ppm idx bits so first fire works correct after mode switch.
- Fixed PPM_ALL mode pulse train length.
- Improved serial for only ascii and synced cmd echo of input.
- Fixed PTC and PTT, reversed step and time action.
- Added pulse_hold_fire trigger and req_pulse_hold_fire cmd and added to int pins.
- Fixed AVR_MEGA pin18 & pin19 pin interrupt on/off based on avr_pinX_map
- Fixed async interrupt command push which sometimes printed thru an other cmd.
- Added readonly vars pulse_fire_cnt and pulse_fire_freq.
- Fixed ext_pin and pulse_fire trigger speed and fixed ext_pin fire only on idle pwm state.
- Added mal_ops/mal_ops_fire/mal_mticks interpreter speed control.
- Renamed mal_program to mal_code.
- Splitted DIC_NUM_MAX to chip so now 8 normal and 16 on MEGA.
- Recoded triggers removed all req_*_fire and replaced with req_trigger [].
- Added CIT,Chip Internal Timer on last hardware timer left in 168P/32P chip
- Added pulse_reset_fire/pulse_resume_fire triggers to control pulse train.
- Added pulse_fire_mode and pulse_hold_mode to control fire and hold setup.
- Added pulse_fire/hold/resume/reset_map event maps on pulse fire sequence.
- Improved save command speed by only update changed data.
- Fixed MEGA save command, disabled watchdog while updating eeprom.
- Fixed MEGA max value pulse_steps value and MEGA PTC map size.
- Fixed MEGA MAL code address size issue when mal_code is bigger then 255.

Errata:
- pulse_hold_auto in ext/fire trigger mode max output step is not auto holded.
(auto hold on max-1)
- Second variable in pulse_fire/reset/hold/resum_map has no function.
- MAL editor does not auto renumber goto statements.
- MAL code does not get saved/loaded to/from config file.
- After connecting to lower chip version then gui does not update correctly to newer chip version.
(restart application)
- Sometime pulse_reset_fire is needed after pulse trig/mode/fire change before pulse_fire starts.


== Next verion ==

- Test & Fix MEGA support
- Add CIP (3x 16b hardware pwm on MEGA)
- new IO software config to remove some EXT flags.
- new config for interrupt input pins.
- Redo + test all chip firmwares.

Happy pulsing,
Willem

build  :)
######
# Linux #
######

dependancy
git-core
avrdude

git clone git://git.sv.gnu.org/pulsefire.git

cd pulsefire
cd pulsefire-chip/src/main/c/

# build firmware
make atmega328p-002

# Upload in arduino
/usr/bin/avrdude -p m328p -P /dev/ttyUSB0 -b 57600 -c arduino -v -v -C /etc/avrdude.conf -U flash:w:build/atmega328p-002/pulsefire.hex:i

Jean-Alexandre

Here is a new minor version with only gui code updates to fix support for macs and fix connect problems on some windows platforms;

1.0.3 Changes:
- Added loading splash screen
- Fixed rxtx support for Mac OS X
- Cleaned connect code to fix second connect on some windows.
- Added icon on pulsefire.exe
- Renamed cancel to close in flash dialog.

Download it from: http://download.savannah.gnu.org/releases/pulsefire/

# build micro kernel
Jean-Alexandre

Hi Jean-Alexandre, Great description for manual compile steps of the pulsefire 'chip firmware' code as it is called.
Also there are a few more dependencies like; avr-libc,binutils-avr,gcc-avr and make.
The list is probably a bit longer but I haven't yet tried it on a clean machine.

 

Quote from securesupplies on April 19th, 2012, 01:08 PM

can we setup a drop box and share  link to post here when you do version and backup  for written code versions.

To place all code in one text file is not going to work as the source is over 400 files.
But the distributed backup  is already done of by the People who run Savannah.
Also the pulsefire releases also include a full source copy which gets distributed
over 24 servers which are all indepently managed by different entities.

See full list here; http://download.savannah.gnu.org/mirmon/savannah/
For example to download from Brazil; http://savannah.c3sl.ufpr.br/pulsefire/

But the best way to have a local copy of all the source and extra files is to have a clone
of the git repository and periodically fetch new changes.
This can be done with a few git commands or some git hosters also provide this feature for you.

Updated PulseFire to 1.0.4 with some bug fixed and gui improvements especially the "Fixed dial start offset" was very needed.

Changes version 1.0.4:
- Changed ptc_Xcnt and ptt_cntX to 16bit so mapping works with values above 255.
- Enabled cit_0a_com gui dropdown box.
- Fixed avr-gcc const warning of pmCmdList array.
- Added more variable filters in data tab panel.
- Improved chip seconds timing from ~96% to ~99.5% relative to atom time.
- Fixed/removed the 50% extra time offset of ptt and ptc 'time' mapping.
  (now ptt time step of 6000 is 10min but in real 10min and ~24secs)
- Redone firmware filter options, speed/type are saved and click column header to filter.
- Fixed dial start offset, now relative from start so it is not jumping anymore.
- Improved fire dial tooltip editor support.
- Improved fire qmap table keyboard handling support.

Download latest version from;
http://download.savannah.gnu.org/releases/pulsefire/
(download ui-launch4j for windows and ui-dist for other platforms)

And found one new errata while testing:
- 32bit linux and openjdk-6 do not work,use sun jdk as workaround.

Trying to play around with my mega 1280 and it wont connect. Get an info_chip error. Any ideas?

ok learned that I had to pick a file first, but this is error I get now. This is the burn log.
01:51:34 # Flash data size: 30188
01:51:34 # Flash protocol: arduino
01:51:34 # Flash verify: false
01:51:35 # Connected to port: //./COM3
01:51:35 # Reboot device.
01:51:40 # IOError: timeout on read.
01:51:40 # Disconnected from port.

Like

 txqNL

  • Jr. Member

  • Posts: 83

RE: PulseFire Arduino controller

« Reply #12, on August 14th, 2012, 08:56 AM »Last edited on August 14th, 2012, 09:01 AM by txqNL

== Important MEGA info ==
The current bootloader for the mega2560 has issues with the Watch Dog Timer feature of the chip.
This feature is used in pulsefire to reset the chip when requesting more pulse time then is available which makes pulse code loop, then the watch dog timer will reset chip after 4 seconds. (or some crashing bug which stop the main loop code as result)

The bug in the current mega2560 bootloader locks/crashes the bootloader when the chip is rebooted by the internal watch dog timer.
I have created a small test program to test this bug and tested the patched bootloader from http://code.google.com/p/optiboot/issues/detail?id=50 to upload this you need some extra hardware or Arduino see bootloader help of arduino.

Code: [Select]


/*
 * Arduino Bootload WatchDog Test
 *
 * The current bootloader for the mega2560 has issues with the WDT, this program
 * will test if the arduino crashes on this feature.
 *
 * WARNING: When device crashes it will not react om (flash) commands anymore
 * until power cycly is performed.
 * This means that to flash non-crashing program after this, you have about 15
 * seconds after usb is connected to hit the upload button, before it crashes again.
 *
 * Correct output should repeat this;
 * - 10 seconds fast blinking
 * - 4 seconds slow blinking
 *
 * Incorrect output looks like;
 * - 10 seconds fast blinking
 * - 4 seconds slow blinking
 * - Led stays on
 *
 * To fix this you need to burn a corrected bootloader into the arduino chip.
 *
 * There are different ways to burn the bootloader, for help see arduino
 * site and/or forum; http://arduino.cc/en/Hacking/Bootloader
 *
 * Currently the stk500v2 bootloader shipped with the Arduino IDE 1.0.1 is having
 * this bug, there is fixed code and hex file in this optiboot ticket;
 * http://code.google.com/p/optiboot/issues/detail?id=50
 *
 */

#include

#define PIN_LED 13

void setup() {                
  pinMode(PIN_LED, OUTPUT);
  digitalWrite(PIN_LED, LOW);
  wdt_enable(WDTO_4S);
  wdt_reset();
}

void loop() {
  for (int i=0;i<50;i++) {
    digitalWrite(PIN_LED, HIGH);
    delay(100);
    digitalWrite(PIN_LED, LOW);
    delay(100);
    wdt_reset();
  }  
  for (int i=0;i<400;i++) {
    digitalWrite(PIN_LED, HIGH);
    delay(300);
    digitalWrite(PIN_LED, LOW);
    delay(300);
  }
}


After flashing my mega2560 this program works correctly. If you can't upgrade your bootloader just make sure not to request crashing conditions in pulsefire. (like setting pwm_clock=1 and use very low value on pwm_on_x timers, which requests the next step quicker then the step calculation time, so no time left over for serial/etc)

Quote from rawbush2 on August 12th, 2012, 09:47 PM

Trying to play around with my mega 1280 and it wont connect.
01:51:40 # IOError: timeout on read.

Thanks to Rawbush we found this bug in the flash baud rate setting in pulsefire which defaults to 112k but the bootloader for the mega1280 uses 57k..
As workaround to flash the mega1280 Arduino, export the firmware hex file and use xloader or avrdude to upload manually.

Like

 partsoven

  • Newbie

  • Posts: 4

RE: PulseFire Arduino controller

« Reply #13, on August 14th, 2012, 04:07 PM »

Hey all. I want to build Russ's rig and would love to document it using Fritzing. Here is a project page already started:

http://fritzing.org/projects/pulsefire-basic-setup/

I don't want to put up something incorrect so will someone with knowledge on the PulseFire take a look? Russ?

Like

 rawbush2

  • Newbie

  • Posts: 4

RE: PulseFire Arduino controller

« Reply #14, on August 19th, 2012, 11:29 PM »

Quote from partsoven on August 14th, 2012, 04:07 PM

Hey all. I want to build Russ's rig and would love to document it using Fritzing. Here is a project page already started:

http://fritzing.org/projects/pulsefire-basic-setup/

I don't want to put up something incorrect so will someone with knowledge on the PulseFire take a look? Russ?

here is a link to the schematic.....don't think it is complete with all the switches but will give you an idea of the hook up.  http://pulsefire.nongnu.org/images/arduino-default.png

Like

 partsoven

  • Newbie

  • Posts: 4

RE: PulseFire Arduino controller

« Reply #15, on August 20th, 2012, 08:42 AM »

Quote from rawbush2 on August 19th, 2012, 11:29 PM

Quote from partsoven on August 14th, 2012, 04:07 PM

Hey all. I want to build Russ's rig and would love to document it using Fritzing. Here is a project page already started:

http://fritzing.org/projects/pulsefire-basic-setup/

I don't want to put up something incorrect so will someone with knowledge on the PulseFire take a look? Russ?

here is a link to the schematic.....don't think it is complete with all the switches but will give you an idea of the hook up.  http://pulsefire.nongnu.org/images/arduino-default.pngHey thanks. I have this and the corresponding one. I will just need someone to check my work since I am far from being a professional EE.

arduino-default.png
bottom of page