Arduino-Stanley-A-Meyer

Stanley A Meyer BASIC PWM

== 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.

About Us

Secure Supplies Media Group is

an international collective of Hot Rodders photographers, writers & drivers with a shared passion for promoting the world's most exciting

Hydrogen car culture stories.

Contact Us

We're always very interested to hear your own stories as well as to receive your feedback.

Please New Members first but if you don't find what you are looking for then you are welcome to contact us via email, thank you.

Secure Supplies  Social

 Facebook- @SecureSupplies

 Twitter      @SecureSupplies

 Instagram - SecureSupplies​

 Pinterest   - Secure.Supplies

 Minds         - SecureSupplies 

 Youtube       - SecureSupplies

Team Secure

Tip Us Please

$10  $25    $50   $100   $250  $500

Event Partners

Editor in Chief: Daniel Donatelli 
Senior Editor: Simone White
Editor at Large: Johny Case
Commercial Director: Willem Coetzee
Community Manager: Ryan
Butters
Technical Editor: Jason Nash
Concept Artist:  Samuel Hill
Senior Contributors:  Jacky Bright
Contributors:  Sally Smith,

Joanne

Livey, Bruce Smith.

GitHub 

https://github.com/SecureSupplies

SLACK Chat 

hydrogenhotro-vpe9599.slack.com

FaceBook

https://bit.ly/37mTwUo

Other Forums

http://speeduino.com/forum/viewtopic.php?f=19&t=4022&sid=c9c3c4b5f08ca86e4bf20a187f19967e#p43577

Untitled.png

Automotive Partners

Back to Main Site 

www.securesupplyusa.com

logo.jpg

Merchandise Partners

Wechat

Whatsapp

Line

Skype

Secure Supplies Energy Power Gas Magazine ™

All Rights Reserved Worldwide. Copyright © 2012 Secure Supplies Limited Daniel Donatelli © 2009 

TRADEMARKS BELONG TO THEIR RESPECTIVE OWNERS. ALL RIGHTS RESERVED

 No duplication is permitted of this site graphically or
conceptually unless requested and approved in writing.

TERMS OF SERVICE // PRIVACY & COOKIE POLICY // LEGAL NOTICES // ADVERTISING OPPORTUNITIES

Work with us Employment