EPG Testing sequential pulsar using the Arduino

txqNL

RE: EPG Testing sequential pulsar using the Arduino
« Reply #125, on July 14th, 2011, 01:08 PM »
Quote from firepinto on July 9th, 2011, 07:08 PM
Just noticing something as I watch the neo twitch, the backlight on my LCD dims out in sync with the pulses.  Maybe I have a low power problem on the Arduino?

Nate
Checked that I can see it now it seems that we need a small power + regulator for all connected IO and with DIODE also to arduino Vin for standalone power.
Will solder it this night to test if it is then oke.

firepinto

RE: EPG Testing sequential pulsar using the Arduino
« Reply #126, on July 14th, 2011, 03:06 PM »
Quote from txqNL on July 14th, 2011, 01:08 PM
Quote from firepinto on July 9th, 2011, 07:08 PM
Just noticing something as I watch the neo twitch, the backlight on my LCD dims out in sync with the pulses.  Maybe I have a low power problem on the Arduino?

Nate
Checked that I can see it now it seems that we need a small power + regulator for all connected IO and with DIODE also to arduino Vin for standalone power.
Will solder it this night to test if it is then oke.
Cool, it will be interesting to see how it is all wired up.:)  Anyone know if you hook up external power to an Arduino does it then turn off the USB power connection?  I'm thinking the power socket switches it off internally, but I haven't tested it.  I still need to hack one of my atx supplies.:P
  What numbers do I use to map a POT to pulse steps like in your video?  

Nate


txqNL

RE: EPG Testing sequential pulsar using the Arduino
« Reply #127, on July 14th, 2011, 03:57 PM »Last edited on July 14th, 2011, 09:55 PM by txqNL
Quote from firepinto on July 14th, 2011, 03:06 PM
Cool, it will be interesting to see how it is all wired up.:)  Anyone know if you hook up external power to an Arduino does it then turn off the USB power connection?  I'm thinking the power socket switches it off internally, but I haven't tested it.  I still need to hack one of my atx supplies.:P
  What numbers do I use to map a POT to pulse steps like in your video?  

Nate
I asked the same question, answer was old versions have jumper for selection which was the best option, newer versions to ALWAYS use usb power and they forgot to add diode on Vin for that. Other option is to use own power and power the Arduino with extern pwr in of Arduino.

The variable id number for mapping may change every version so now use the name to map it like this;
root@pulsefire: sys_adc_map 4 pulse_steps 1 6

Note in new version I removed the name mappings again so interface is number only but the command accepts and parses also names if second argument does not start with digit.

now I can ask the help cmd what the mappable number are;
Code: [Select]

root@pulsefire: help map
# The commands are;
map.pulse_enable==0
map.pulse_mode==1
map.pulse_steps==2
map.pulse_trigger==3
map.pulse_dir==4
map.pulse_data_inv==5
map.pulse_data_mask==6
map.pulse_data_init==7
map.pulse_delay_pre==8
map.pulse_delay_post==9
map.pwm_on_cnt==10
map.pwm_off_cnt==11
map.pwm_tune_cnt==12
map.pwm_loop==13
map.pwm_loop_delta==14
map.pwm_clock==15
map.pwm_duty==16
map.ppm_data_offset==17
map.ppm_data_len==18
map.ppm_data==19
map.lpm_start==20
map.lpm_stop==21
map.lpm_size==22
map.ptc_run==23
map.ptc_time_slots==24
map.sys_warmup_delay==41
map.sys_warmup_mode==42
map.sys_warmup_secs==43
map.sys_warmup_duty==44
map.sys_doc_port==51
map.req_pwm_freq==58
map.lpm_level==64
map.ptc_trig_fire==75
map.dev_volt==76
map.dev_amp==77
map.dev_temp==78
map.dev_freq==79
map.dev_var==80
map.mal_trigger==90
help==done


And some of them are indexed so mapping accepts index like;
root@pulsefire: sys_adc_map 5 ppm_data 0 65535 3
So this maps analog input 5 to ppm_data field of output channel 3.

Code: [Select]

root@pulsefire: help idx
# The commands are;
idx.pwm_on_cnt==16
idx.pwm_off_cnt==16
idx.pwm_tune_cnt==16
idx.ppm_data==16
idx.ptc_time_map==8 4
idx.ptc_trig0_map==4 4
idx.ptc_trig1_map==4 4
idx.ptc_trig2_map==4 4
idx.ptc_trig3_map==4 4
idx.stv_max_map==8 4
idx.stv_min_map==4 4
idx.sys_adc_map==6 4
idx.sys_dic_map==8 4
idx.sys_adc_value==6
idx.sys_doc_port==8
idx.ptc_trig_idx==4
idx.ptc_trig_time_cnt==4
idx.ptc_trig_fire==4
idx.dev_var==8
idx.ppm_data_idx==16
idx.mal_trigger==4
idx.mal_variable==16
help==done


Need to check one thing and then can upload new version.

Lot of changed to make it as consistent as possible and some are for gui frontend protocol parsing.
A few important fixes and some very nice new features.

Pulse Fire version 0.8:

- Fixed duplicate name so renamed pf_data.pulse_dir to pulse_dir_cnt
- Added req_tx_promt and req_tx_echo for less serial output
- Renamed req_auto_push to req_tx_push
- droped SF_SHORT_CMD and SF_ENABLE_LOW_MEMORY compiler flags
- Added auto config change based on eeprom space of avr chip.
- Added 'help max' outputs max values of variales with 'max.' as prefix.
- Changed 'help index' to 'help idx' and output max index values instead of map var id.
- Added 'help bits' to output variable bit field values.
- Added 'help map' to list it mappable value ids of variales with 'map.' prefix
- Reserved extended lcd/out mode pins so in 3 output mode out0,1,2 are used.
- Renamed reset_prog to reset_chip
- Added chip/build info to info_chip
- Renamed info_calc to info_freq and made output freq for all channels.
- Added dev_volt,dev_amp,dev_temp,dev_freq,dev_varX for code and mappings.
- Added sys_pin2_map to map pin2 do diffent features.
- Renamed pwm_wait to pwm_tune_cnt,pwm_compa to pwm_on_cnt,pwm_compb to pwm_off_cnt
- Renamed ppm_data_off to ppm_data_offset
- Added stv Min and Max Safety Treshold Values.
- Revered extened 16bit output so chip0 keeps output0
- Added support for digital output my map to sys_doc_port[0-7] variable.
- Removed named mapping support but left it working in command but output is numeric.
- Improved lcd menu for all type lcd screens.
- WIP ptc timers for variable like pulse_enable for conditioning of cells and trigger timers.
- Changed safaty minimal value on pwm_cnt_on from 5 to 1 for motor setups.
- Almost silenced boot so we can connect faster to port after flash.
- Fixed pwm_off_cnt offset by one.
- Fixed duty (pwm_off_cnt) to also use pwm_loop.

Errata:
- Serial/io on high freq output.
- Soft warmup and pulse_mode 3,4,5 is not oke.
- MAL support is WorkInProgress.
- req_auto_lpm_tune/pulse_delay_pre are not yet implemented.
- sys_pin3_map and sys_pin4_map not yet implemented.

[attachment=128]

~Russ

RE: EPG Testing sequential pulsar using the Arduino
« Reply #128, on July 15th, 2011, 02:02 AM »
Quote from txqNL on July 14th, 2011, 03:57 PM
Quote from firepinto on July 14th, 2011, 03:06 PM
Cool, it will be interesting to see how it is all wired up.:)  Anyone know if you hook up external power to an Arduino does it then turn off the USB power connection?  I'm thinking the power socket switches it off internally, but I haven't tested it.  I still need to hack one of my atx supplies.:P
  What numbers do I use to map a POT to pulse steps like in your video?  

Nate
I asked the same question, answer was old versions have jumper for selection which was the best option, newer versions to ALWAYS use usb power and they forgot to add diode on Vin for that. Other option is to use own power and power the Arduino with extern pwr in of Arduino.

The variable id number for mapping may change every version so now use the name to map it like this;
root@pulsefire: sys_adc_map 4 pulse_steps 1 6

Note in new version I removed the name mappings again so interface is number only but the command accepts and parses also names if second argument does not start with digit.

now I can ask the help cmd what the mappable number are;
Code: [Select]

root@pulsefire: help map
# The commands are;
map.pulse_enable==0
map.pulse_mode==1
map.pulse_steps==2
map.pulse_trigger==3
map.pulse_dir==4
map.pulse_data_inv==5
map.pulse_data_mask==6
map.pulse_data_init==7
map.pulse_delay_pre==8
map.pulse_delay_post==9
map.pwm_on_cnt==10
map.pwm_off_cnt==11
map.pwm_tune_cnt==12
map.pwm_loop==13
map.pwm_loop_delta==14
map.pwm_clock==15
map.pwm_duty==16
map.ppm_data_offset==17
map.ppm_data_len==18
map.ppm_data==19
map.lpm_start==20
map.lpm_stop==21
map.lpm_size==22
map.ptc_run==23
map.ptc_time_slots==24
map.sys_warmup_delay==41
map.sys_warmup_mode==42
map.sys_warmup_secs==43
map.sys_warmup_duty==44
map.sys_doc_port==51
map.req_pwm_freq==58
map.lpm_level==64
map.ptc_trig_fire==75
map.dev_volt==76
map.dev_amp==77
map.dev_temp==78
map.dev_freq==79
map.dev_var==80
map.mal_trigger==90
help==done


And some of them are indexed so mapping accepts index like;
root@pulsefire: sys_adc_map 5 ppm_data 0 65535 3
So this maps analog input 5 to ppm_data field of output channel 3.

Code: [Select]

root@pulsefire: help idx
# The commands are;
idx.pwm_on_cnt==16
idx.pwm_off_cnt==16
idx.pwm_tune_cnt==16
idx.ppm_data==16
idx.ptc_time_map==8 4
idx.ptc_trig0_map==4 4
idx.ptc_trig1_map==4 4
idx.ptc_trig2_map==4 4
idx.ptc_trig3_map==4 4
idx.stv_max_map==8 4
idx.stv_min_map==4 4
idx.sys_adc_map==6 4
idx.sys_dic_map==8 4
idx.sys_adc_value==6
idx.sys_doc_port==8
idx.ptc_trig_idx==4
idx.ptc_trig_time_cnt==4
idx.ptc_trig_fire==4
idx.dev_var==8
idx.ppm_data_idx==16
idx.mal_trigger==4
idx.mal_variable==16
help==done


Need to check one thing and then can upload new version.

Lot of changed to make it as consistent as possible and some are for gui frontend protocol parsing.
A few important fixes and some very nice new features.

Pulse Fire version 0.8:

- Fixed duplicate name so renamed pf_data.pulse_dir to pulse_dir_cnt
- Added req_tx_promt and req_tx_echo for less serial output
- Renamed req_auto_push to req_tx_push
- droped SF_SHORT_CMD and SF_ENABLE_LOW_MEMORY compiler flags
- Added auto config change based on eeprom space of avr chip.
- Added 'help max' outputs max values of variales with 'max.' as prefix.
- Changed 'help index' to 'help idx' and output max index values instead of map var id.
- Added 'help bits' to output variable bit field values.
- Added 'help map' to list it mappable value ids of variales with 'map.' prefix
- Reserved extended lcd/out mode pins so in 3 output mode out0,1,2 are used.
- Renamed reset_prog to reset_chip
- Added chip/build info to info_chip
- Renamed info_calc to info_freq and made output freq for all channels.
- Added dev_volt,dev_amp,dev_temp,dev_freq,dev_varX for code and mappings.
- Added sys_pin2_map to map pin2 do diffent features.
- Renamed pwm_wait to pwm_tune_cnt,pwm_compa to pwm_on_cnt,pwm_compb to pwm_off_cnt
- Renamed ppm_data_off to ppm_data_offset
- Added stv Min and Max Safety Treshold Values.
- Revered extened 16bit output so chip0 keeps output0
- Added support for digital output my map to sys_doc_port[0-7] variable.
- Removed named mapping support but left it working in command but output is numeric.
- Improved lcd menu for all type lcd screens.
- WIP ptc timers for variable like pulse_enable for conditioning of cells and trigger timers.
- Changed safaty minimal value on pwm_cnt_on from 5 to 1 for motor setups.
- Almost silenced boot so we can connect faster to port after flash.
- Fixed pwm_off_cnt offset by one.
- Fixed duty (pwm_off_cnt) to also use pwm_loop.

Errata:
- Serial/io on high freq output.
- Soft warmup and pulse_mode 3,4,5 is not oke.
- MAL support is WorkInProgress.
- req_auto_lpm_tune/pulse_delay_pre are not yet implemented.
- sys_pin3_map and sys_pin4_map not yet implemented.
im going to try this out when i get home!

i did have problms with the desplay going crazy with pulse fire .7

so ill let you know if this is the same... dont know what would make it do that.

nothing changed as far as hardware right?


~Russ

txqNL

RE: EPG Testing sequential pulsar using the Arduino
« Reply #129, on July 15th, 2011, 06:20 AM »
Quote from Rwg42985 on July 15th, 2011, 02:02 AM
im going to try this out when i get home!

i did have problms with the desplay going crazy with pulse fire .7
so ill let you know if this is the same... dont know what would make it do that.

nothing changed as far as hardware right?

~Russ
Default HW is unchanged, but the magic lpm_size change of pin2 is gone that is now done with sys_pin2_map variable.
In next version will try to do the same for sys_pin3_map/sys_pin4_map pins so these can have other functions. (lcd is then readonly or none)

I think the extended mode chip connections are now oke and should not change anymore, cannot say 100% sure because i just have it all connected since 3 days but working :) For extended mode you can use 1-5 chips where 2x 74..595 gives lots of options. (ext lcd & 8out, 6analog, 2digital in)
And use 4x 74..595 and 1x 74..153 gives all options.

About the lcd in .8 the lcd.clear() is removed from the refresh function so now is a lot cleaner to watch.
My lcd only goes grazy when messing with the power or datalines, have tested the lcd code by running it continuously for days.
But not all lcd chip are 100% the same so maybe the timing is a bit to fast.

Also just tested with 7805 power for board but lcd backlight still dimms a bit :(
Will check on other projects so see whats needed for it to fix, I've met some new people here they are working on a replica of led plasma wall so I'll ask them also about this lcd power issue.

https://www.youtube.com/watch?v=yzCAcbA51A0

txqNL

RE: EPG Testing sequential pulsar using the Arduino
« Reply #130, on July 16th, 2011, 04:23 PM »
Oke that 0.8 was a little bit to early so fixed some bugs so here is 0.8-fix;
[attachment=131]

- Dropped SF_ENABLE_INFO_CMD flags else gui wont work.
- Renamed SF_ENABLE_FREQ_CMD -> SF_ENABLE_FREQ
- Renamed SF_ENABLE_SOFT_START -> SF_ENABLE_WARMUP
- Quick fix for auto_lpm will smooth more out when adding mmw code.
- Added some missing chip_flags in info_chip
- Added check to removed cmd which are removed by disable SF_ENABLE_* flags.
- Dropped req_auto_lpm_tune cmd will be done in gui to many options for chip.
- Fixed PF_VAR array size with SF_ENABLE_* flags so help cmd list is shorter.
- Tuned lcd code to be bit slower to work on more models,Done by Russ.
- Limited pwm_duty to 110, need to add extra counter for higher values.
- Created readme/examples/command txt files in project zip.

I've added most nice example from this thread and some new ones to examples.txt in the zip like this one;

Run for always 2 steps , which switch of output on/off every 5 seconds.
root@pulsefire: ptc_time_map 0 pulse_enable 0 5
root@pulsefire: ptc_time_map 1 pulse_enable 1 5
root@pulsefire: ptc_time_slots 2
root@pulsefire: ptc_run 255





txqNL

RE: EPG Testing sequential pulsar using the Arduino
« Reply #133, on July 20th, 2011, 01:12 PM »
Finally have working mapping tables in the gui, thats makes bug hunting a lot easier.
Hope to release next version this weekend, then Safety Trashhold Values do work as intended fixed about 4 bugs in that.
Next to check for me is the Programatic Timer Controller and triggers.
Also made new trigger called 'pulse_fire' for internal triggering which replaces the push button trigger and added the code for pin3/4 mapping.

~Russ

RE: EPG Testing sequential pulsar using the Arduino
« Reply #134, on July 20th, 2011, 02:21 PM »
Quote from txqNL on July 20th, 2011, 01:12 PM
Finally have working mapping tables in the gui, thats makes bug hunting a lot easier.
Hope to release next version this weekend, then Safety Trashhold Values do work as intended fixed about 4 bugs in that.
Next to check for me is the Programatic Timer Controller and triggers.
Also made new trigger called 'pulse_fire' for internal triggering which replaces the push button trigger and added the code for pin3/4 mapping.
After that demo... I'm getting Anccy!

In my pancy.

Dude. I can wait! This is going to help me out alot... And now others with less nolage on the programing side can work with pulse fire alot better!

~Russ


txqNL

RE: EPG Testing sequential pulsar using the Arduino
« Reply #136, on July 25th, 2011, 02:39 AM »Last edited on July 25th, 2011, 06:18 AM by txqNL
[attachment=138]

PulseFire version 0.9:

- Added stv_error_secs for optional recovery from error.
- Added second timer map; ptc_time1_map.
- Removed ptc_time_slots leaving unmapped is the same.
- Added ptc_timeX_mul for time multipliers of steps.
- Moved version cmd to chip_info output.
- Changed feedback when mapping to echo only changed mapping.
- Added sys_pin3_map and sys_pin4_map
- WIP Added VFC_in/out_map for Virtual Feedback Channels
- Added pulse_fire variable to do internal trigger replaces pulse_trigger=1.
- Added req_pulse_fire to trigger fire on command.
- Fixed default reset_data start step from one to zero.
- Added dirty impl of freq/prm counter for vfc test.
- Added trigger bit output to 'help map' cmd.
- Fixed STV_*_secs minimal time in warning/error mode.
- Fixed STV_*_secs 255 value of always off means always off.
- Made sys_warmup_* unmappable for safety.
- Added new pulse mode PULSE_MODE_FLASH_ZERO but shifted all modes;
0=PULSE_MODE_OFF,
1=PULSE_MODE_FLASH,
2=PULSE_MODE_FLASH_ZERO,
3=PULSE_MODE_TRAIN,
4=PULSE_MODE_PPM,
5=PULSE_MODE_PPMA,
6=PULSE_MODE_PPMI
- Added support for 16 digital outputs (DOC) without extra chip.(untested)
- Added support for 12 digital inputs (DIC) done with pin mappings.
- Renamed sys_warmup_* to swc; System Warmup Controller
- Renamed SF_ENABLE_FREQ to SF_ENABLE_FRQ so chip_flags are inline.
- Added bank support for pwm_on/of and ppm_data renamed to ppm_data_a/ppm_data_b/etc.
- Renamed pulse_data_* to without _data_ keyword.
- Added bank support for pulse_init_a/b and pulse_mask_b/b.
- Renamed pulse_delay_post to pulse_post_delay.
- Renamed/Impl pulse_trig_delay (was pulse_delay_pre)
- Renamed sys_pinX_map to avr_pinX_map because is avr chip pins mappings only.
- Renamed pulse_trigger to pulse_trig to be like others.
- Added stv_*_mode value of 255 is keep the same, so message only.
- Change swc_mode 0 was keep now 0 = off and 255 is keep the same.
- Added chip_name and chip_name_id for manufacturing box type id.
- Fixed &Renamed ptt_trigX_map timer looped for ever.
- Added swc_trig to fire trigger after warmup.
- Renamed sys_* to without sys_ for faster serial communition.
- Fixed DIC reset bit to only clear one bit not all.
- Fixed ptt_fire trig it would loop forever now runs once per trigger.

Errata:
- Serial/io on high freq output.
- Soft warmup and pulse_mode 3,4,5 is not oke.
- MAL support is WorkInProgress.
- When using 16 pwm outputs last output step had extratime.

~Russ

RE: EPG Testing sequential pulsar using the Arduino
« Reply #137, on July 25th, 2011, 04:26 AM »
Quote from txqNL on July 25th, 2011, 02:39 AM
PulseFire version 0.9:

- Added stv_error_secs for optional recovery from error.
- Added second timer map; ptc_time1_map.
- Removed ptc_time_slots leaving unmapped is the same.
- Added ptc_timeX_mul for time multipliers of steps.
- Moved version cmd to chip_info output.
- Changed feedback when mapping to echo only changed mapping.
- Added sys_pin3_map and sys_pin4_map
- WIP Added VFC_in/out_map for Virtual Feedback Channels
- Added pulse_fire variable to do internal trigger replaces pulse_trigger=1.
- Added req_pulse_fire to trigger fire on command.
- Fixed default reset_data start step from one to zero.
- Added dirty impl of freq/prm counter for vfc test.
- Added trigger bit output to 'help map' cmd.
- Fixed STV_*_secs minimal time in warning/error mode.
- Fixed STV_*_secs 255 value of always off means always off.
- Made sys_warmup_* unmappable for safety.
- Added new pulse mode PULSE_MODE_FLASH_ZERO but shifted all modes;
0=PULSE_MODE_OFF,
1=PULSE_MODE_FLASH,
2=PULSE_MODE_FLASH_ZERO,
3=PULSE_MODE_TRAIN,
4=PULSE_MODE_PPM,
5=PULSE_MODE_PPMA,
6=PULSE_MODE_PPMI
- Added support for 16 digital outputs (DOC) without extra chip.(untested)
- Added support for 12 digital inputs (DIC) done with pin mappings.
- Renamed sys_warmup_* to swc; System Warmup Controller
- Renamed SF_ENABLE_FREQ to SF_ENABLE_FRQ so chip_flags are inline.
- Added bank support for pwm_on/of and ppm_data renamed to ppm_data_a/ppm_data_b/etc.
- Renamed pulse_data_* to without _data_ keyword.
- Added bank support for pulse_init_a/b and pulse_mask_b/b.
- Renamed pulse_delay_post to pulse_post_delay.
- Renamed/Impl pulse_trig_delay (was pulse_delay_pre)
- Renamed sys_pinX_map to avr_pinX_map because is avr chip pins mappings only.
- Renamed pulse_trigger to pulse_trig to be like others.
- Added stv_*_mode value of 255 is keep the same, so message only.
- Change swc_mode 0 was keep now 0 = off and 255 is keep the same.
- Added chip_name and chip_name_id for manufacturing box type id.
- Fixed &Renamed ptt_trigX_map timer looped for ever.
- Added swc_trig to fire trigger after warmup.
- Renamed sys_* to without sys_ for faster serial communition.
- Fixed DIC reset bit to only clear one bit not all.
- Fixed ptt_fire trig it would loop forever now runs once per trigger.

Errata:
- Serial/io on high freq output.
- Soft warmup and pulse_mode 3,4,5 is not oke.
- MAL support is WorkInProgress.
- When using 16 pwm outputs last output step had extratime.
gives me a headache just reading what you changed more less acutely changing this stuff... lol

Giving it a try once I get home!

What’s the fastest pulse time for a single out put again? I cant remember?

Some fancy and hard work as normal txqNL!

Thank you! ~Russ

txqNL

RE: EPG Testing sequential pulsar using the Arduino
« Reply #138, on July 25th, 2011, 06:55 AM »
Quote from Rwg42985 on July 25th, 2011, 04:26 AM
gives me a headache just reading what you changed more less acutely changing this stuff... lol

Giving it a try once I get home!

What’s the fastest pulse time for a single out put again? I cant remember?
Some fancy and hard work as normal txqNL!
Thank you! ~Russ
Don't know yet have to scope that out, but think a few Khz and later when the step loop get speed tuned hope to get out 20-30% more.
But when running at high speeds you lose most of other functions due to that the pwm output interrupt takes all time.

Will do a guess of max speed from 16Mhz/(total opcoded needed per step interrupt) when the code move to real source files done because then the makefile will also show me the assembly of the code.
But had a problem with that when I try to move the main variable table PF_VARS to vars.h or vars.c the binary code growed 3KB :(

Anyways lets see some examples;
-- Safety values --

Warning for minimal 10 sec over 200 volts types and error over 400 volts types.
root@pulsefire: pulse_mode 4
root@pulsefire: pulse_steps 6
root@pulsefire: adc_map 5 dev_volts 0 1023
root@pulsefire: stv_warn_mode 1
root@pulsefire: stv_warn_secs 10
root@pulsefire: stv_error_mode 0
root@pulsefire: stv_error_secs 30
root@pulsefire: stv_max_map 0 dev_volts 200 400


-- Timed output --

Run for alway 2 steps , which switch of output on/off every 5 seconds.
root@pulsefire: ptc_0map 0 pulse_enable 0 5
root@pulsefire: ptc_0map 1 pulse_enable 1 5
root@pulsefire: ptc_0run 255


-- External trigger --

root@pulsefire: avr_pin2_map 3
root@pulsefire: dic_map 02 ptt_fire 1 0 0
root@pulsefire: ptt_0map 0 pulse_steps 2 10
root@pulsefire: ptt_0map 1 pulse_steps 3 10
root@pulsefire: ptt_0map 2 pulse_steps 4 10
root@pulsefire: ptt_0map 3 pulse_steps 5 10

make pin 2 low for few seconds wait few seconds and do again.
note; this works better on the real DIC inputs.

CaptainBay77

RE: EPG Testing sequential pulsar using the Arduino
« Reply #139, on July 27th, 2011, 01:24 PM »
Arduino Question From New user with little Code Expr. Duemilanove, Mega2560, or UNO Does the Code Basics Developer Software run the same way all using the same format of communication Software?
The Mega2560 the better Board with more inlets outlets has twice more memory, in other words would the Code witten for the Duemilanove could be manipulated (different pinout struckture in coding) with little effort to run on the Mega2560 Board with the addition of USB(ATMega 8U2) Driver software?
I'm thinking as in PC Hardware Driver, but I do not know if this operates on same principle as PC, C-MOS operation?
Secondly LCD 4X20 Parallel uses a lot of PWM+ Ports could you use a Serial LCD type like the LCD-Smarty uses (+ - ser) or is Parallel LCD type built into the CODE cannot be changed? Please Help me Understand...   CaptBay    

txqNL

RE: EPG Testing sequential pulsar using the Arduino
« Reply #140, on July 27th, 2011, 07:00 PM »
Quote from CaptainBay77 on July 27th, 2011, 01:24 PM
Arduino Question From New user with little Code Expr. Duemilanove, Mega2560, or UNO Does the Code Basics Developer Software run the same way all using the same format of communication Software?
The Mega2560 the better Board with more inlets outlets has twice more memory, in other words would the Code witten for the Duemilanove could be manipulated (different pinout struckture in coding) with little effort to run on the Mega2560 Board with the addition of USB(ATMega 8U2) Driver software?
I'm thinking as in PC Hardware Driver, but I do not know if this operates on same principle as PC, C-MOS operation?
Secondly LCD 4X20 Parallel uses a lot of PWM+ Ports could you use a Serial LCD type like the LCD-Smarty uses (+ - ser) or is Parallel LCD type built into the CODE cannot be changed? Please Help me Understand...   CaptBay
The current code runs on all ATmega328 chip based boards so UNO and the newer or upgraded Duemilanoves.
It should already run on Mega2560 but only using the same pins as the smaller Arduino boards.
For real mega pin mode so mega don't need to use the extension chips will come in a couple of months of earlier is some send me one.
The extra eeprom space should already be used on the mega see the difference in total variables;
Code: [Select]

#if (__AVR_ATmega1280__ || __AVR_ATmega2560__)
  // 4096 bytes eeprom
  #define MAL_PROGRAM_SIZE          128
  #define MAL_PROGRAM_MAX           8
  #define ADC_NUM_MAX                 6  // todo max 16 work
  #define PTC_TIME_MAP_MAX         32
  #define PTT_TRIG_MAP_MAX         16
  #define STV_MAX_MAP_MAX         32
  #define STV_MIN_MAP_MAX          16
  #define DEV_VAR_MAX                 16  
  #define VFC_MAP_MAX                 8
#elif __AVR_ATmega328P__
  // 1024 bytes eeprom
  #define MAL_PROGRAM_SIZE         64
  #define MAL_PROGRAM_MAX         2
  #define ADC_NUM_MAX                6
  #define PTC_TIME_MAP_MAX        8
  #define PTT_TRIG_MAP_MAX        4
  #define STV_MAX_MAP_MAX        8
  #define STV_MIN_MAP_MAX         4
  #define DEV_VAR_MAX                4
  #define VFC_MAP_MAX                3


The LCD is optional is and default connected parallel, change one flag in software and the lcd works serial with a chip.
There are up to 6 chip to extent io pins which are all optional.
For serial lcd turn on this flag in "vars_define.h"';
#define SF_ENABLE_EXT_LCD        // enable extended connection mode lcd.
The schematics for this are in the lastest zip file included.

"I'm thinking as in PC Hardware Driver, but I do not know if this operates on same principle as PC, C-MOS operation?"
What do you mean ?


firepinto

RE: EPG Testing sequential pulsar using the Arduino
« Reply #142, on July 27th, 2011, 10:02 PM »
Quote from txqNL on July 27th, 2011, 09:42 PM
Added two videos;
My PulseFire box needs an expansion card for hardware upgrades!:D  I love the software look.  

I'm already getting ideas for more outputs.  Anyone know how to make a circuit that replicates a 'DPDT relay used as a polarity reverser',  with 'MOSFETS'?  I can see myself burning up lots of parts experimenting with that.  I'd like to sequentially change polarity on coils instead of having them "hard wired".  Coil 1 would be +, Coil 2 -, Coil 3 off or charging, coil 4 +, Coil 1 -, and so on...  It would be like a theoretical "fireing sequence" with gap space..(?)  Each coil changes its role as the sequence goes around the coil.

Tired and my head hurts, lol bad time for ideas..

Nate

CaptainBay77

RE: EPG Testing sequential pulsar using the Arduino
« Reply #143, on July 28th, 2011, 04:46 AM »
Quote from txqNL on July 27th, 2011, 07:00 PM
Quote from CaptainBay77 on July 27th, 2011, 01:24 PM
Arduino Question From New user with little Code Expr. Duemilanove, Mega2560, or UNO Does the Code Basics Developer Software run the same way all using the same format of communication Software?
The Mega2560 the better Board with more inlets outlets has twice more memory, in other words would the Code witten for the Duemilanove could be manipulated (different pinout struckture in coding) with little effort to run on the Mega2560 Board with the addition of USB(ATMega 8U2) Driver software?
I'm thinking as in PC Hardware Driver, but I do not know if this operates on same principle as PC, C-MOS operation?
Secondly LCD 4X20 Parallel uses a lot of PWM+ Ports could you use a Serial LCD type like the LCD-Smarty uses (+ - ser) or is Parallel LCD type built into the CODE cannot be changed? Please Help me Understand...   CaptBay
The current code runs on all ATmega328 chip based boards so UNO and the newer or upgraded Duemilanoves.
It should already run on Mega2560 but only using the same pins as the smaller Arduino boards.
For real mega pin mode so mega don't need to use the extension chips will come in a couple of months of earlier is some send me one.
The extra eeprom space should already be used on the mega see the difference in total variables;
Code: [Select]

#if (__AVR_ATmega1280__ || __AVR_ATmega2560__)
  // 4096 bytes eeprom
  #define MAL_PROGRAM_SIZE          128
  #define MAL_PROGRAM_MAX           8
  #define ADC_NUM_MAX                 6  // todo max 16 work
  #define PTC_TIME_MAP_MAX         32
  #define PTT_TRIG_MAP_MAX         16
  #define STV_MAX_MAP_MAX         32
  #define STV_MIN_MAP_MAX          16
  #define DEV_VAR_MAX                 16  
  #define VFC_MAP_MAX                 8
#elif __AVR_ATmega328P__
  // 1024 bytes eeprom
  #define MAL_PROGRAM_SIZE         64
  #define MAL_PROGRAM_MAX         2
  #define ADC_NUM_MAX                6
  #define PTC_TIME_MAP_MAX        8
  #define PTT_TRIG_MAP_MAX        4
  #define STV_MAX_MAP_MAX        8
  #define STV_MIN_MAP_MAX         4
  #define DEV_VAR_MAX                4
  #define VFC_MAP_MAX                3


The LCD is optional is and default connected parallel, change one flag in software and the lcd works serial with a chip.
There are up to 6 chip to extent io pins which are all optional.
For serial lcd turn on this flag in "vars_define.h"';
#define SF_ENABLE_EXT_LCD        // enable extended connection mode lcd.
The schematics for this are in the lastest zip file included.

"I'm thinking as in PC Hardware Driver, but I do not know if this operates on same principle as PC, C-MOS operation?"
What do you mean ?
When Booting a Computer system for instance you may press F1 to Run SETUP this will give you access to CMOS/BIOS Bootstrap software (machine language) is built into the PC Chipset, and is the first code run by a PC when powered on ('boot firmware'). Initialize and identify system devices such as the video display card, keyboard and mouse, hard disk drive, optical disc drive and other hardware.
Do you have the SETUP ability or Do you have to write a Bootup Program for the hardware changes and load it to the CMOS/BIOS Chip(intergrated) for stand alone w/o-PC?
Assuming that Arduino software only gives you Chip access to write to. nothing is pre-SET (plug play)?

~Russ

RE: EPG Testing sequential pulsar using the Arduino
« Reply #144, on July 28th, 2011, 06:25 AM »
Quote from firepinto on July 27th, 2011, 10:02 PM
Quote from txqNL on July 27th, 2011, 09:42 PM
Added two videos;
My PulseFire box needs an expansion card for hardware upgrades!:D  I love the software look.  

I'm already getting ideas for more outputs.  Anyone know how to make a circuit that replicates a 'DPDT relay used as a polarity reverser',  with 'MOSFETS'?  I can see myself burning up lots of parts experimenting with that.  I'd like to sequentially change polarity on coils instead of having them "hard wired".  Coil 1 would be +, Coil 2 -, Coil 3 off or charging, coil 4 +, Coil 1 -, and so on...  It would be like a theoretical "fireing sequence" with gap space..(?)  Each coil changes its role as the sequence goes around the coil.

Tired and my head hurts, lol bad time for ideas..

Nate
Will, amazing again my friend!



Nate, google

 H-Bridge

That is a reversing polarity circuit, used as a motor controller. That work grate!

~Russ



txqNL

RE: EPG Testing sequential pulsar using the Arduino
« Reply #146, on July 28th, 2011, 12:03 PM »Last edited on July 28th, 2011, 12:46 PM by txqNL
Quote from CaptainBay77 on July 28th, 2011, 04:46 AM
Do you have the SETUP ability or Do you have to write a Bootup Program for the hardware changes and load it to the CMOS/BIOS Chip(intergrated) for stand alone w/o-PC?
Assuming that Arduino software only gives you Chip access to write to. nothing is pre-SET (plug play)?
Most hardware changes are done with compiler flags so when adding chips or lcd size then compiling and flashing of Arduino is needed.
There are a few pins with multiple functions which can be switched runtime but when change from input to output or resverse reset_chip is (still) needed. (avr_pinX)

All the pulse and timing settings get saved into the eeprom memory of the avr arduino chip because full standalone usage was a requirement from start of project.

The Arduino boot code is there so the avr can be flashed without hardware programmer for the chip.
In near future I'll add some code so all arduino depencies are gone and if you got a avr ISP then flashing without arduino boot code can be done. (which gived 2KB flash extra)
But the prime reason is support for multiple platforms and it looks like the Arduino has some real errors in usb vs board power which come showing if using power supplier for extra hardware and analog inputs.
(I already got shocked from Arduino even while all power suppliers are in the same socket with working earth connection)

Quote from Rwg42985 on July 28th, 2011, 06:25 AM
Nate, google

 H-Bridge

That is a reversing polarity circuit, used as a motor controller. That work grate!

~Russ
Indeed your mosfets come from an H-Bridge allmost all ups transformers are pulsed by h-bridge.

Only pulsing h-bridges you have to make sure you never turn on both mosfets on one legs because then the mosfets short the power rail.
This can be done with some logic chips or in software its on todo list.

CaptainBay77

RE: EPG Testing sequential pulsar using the Arduino
« Reply #147, on July 28th, 2011, 02:41 PM »
Russ Nate some moore to look Think at:
MEGA Motors

http://www.robotshop.com/arduino-compatible-mega-motor-shield-1a-5-28v.html

http://www.robotshop.com/arduino-dual-motor-shield-kit-2.html

http://www.robotshop.com/robotics-conection-10a-12-24v-dual-motor-controller.html

http://www.robotshop.com/pololu-dual-motor-driver-9a.html

http://www.robotshop.com/pololu-high-current-motor-driver-14.html

http://www.robotshop.com/pololu-high-current-motor-driver.html

http://www.robotshop.com/devantech-md03-50v-20a-h-bridge-driver-2.html

http://www.adafruit.com/products/81

LCD Parallel / Serial , and Droids SAS MuIn Multi Interface Board
The Droids MuIn 4x20 LCD (Blue) is a multi-interface LCD display controller compatible with HD44780 chipset and similars. It doesn't need to be programmed. It operates like a serial remote terminal. Data received are displayed directly on the LCD and the carriage return is automatic at the end of a row.
Features:
• On-Board Speaker
• Backlight can turned off or on with intensity adjustment
• Up to 6 general purpose inputs, TTL and CMOS compatible
• Up to 5 A/D channels with 10 bit resolution
• Can play a 4KHz standard tone or an user-defined tone
• Xbee slot: can be used for the connection of other compatible boards
• RS485 connection
• USB Bootloader for an easy firmware update without the need of a programmer
• Commands set compatible with Matrix Orbital displays

http://www.robotshop.com/droids-muin-lcd-blue.html

http://www.robotshop.com/droids-multi-interface-board.html

Droids SAS MuIn - Multi Interface Board
The Droids Multi-Interface (MuIn) Board is a versatile Multi Interface Board that can be used in many applications: robotics, automation, control, development, etc. The board is equipped with a powerful PIC18F2520 running at 40MHz and comes preloaded with a bootloader for serial programming and upgrading, and a firmware full of features.
The MuIn can drive two H-Bridges with two PWM channels and two enable I/O. It can read up to five analog devices with 10Bit resolution. With Port B it can drive 4 or 8 R/C servos or it can read or write to 4 or 8 I/O ports. With the I2C bus you can control almost any I2C devices, sending the commands through the serial connection. With special commands you can easily read almost all of the Devantech I2C sensor and devices and with the free GUI (Graphical User Interface) you can program the device ID with a mouse click.
There are several ways to send and receive data to and from the MuIn, thanks to its socket you can use an XBee module* to make a ZigBee connection, with an XPort module* you can use an Ethernet connection, you can talk to the MuIn through the Internet or a LAN. With Droid’s 990.004 USB to Serial converter*, you can easily connect the MuIn to your PC USB port. The firmware is made to be compatible with the free version of the Microchip C18 compiler is Open Source (non commercial use).
Features
• Versatile interface board based on PIC18F2520
• Two PWM motor drivers
• Drives 4 or 8 R/C servos
• Reads 4 or 8 analog sensors
• Connect via USB, Ethernet or Zigbee (sold separately)
• XBee module sold separately
• Powerful 40MHz PIC18 MCU
• Wireless, Ethernet, USB, TTL data connections (w/optional devices)
• Serial to I2C interface
• Serial to I2C Devantech devices interface
• 3.3V and 5.0V on board low drop out voltage regulators
• High PWM frequency, up to 39.4KHz
• High Serial Speed up to 115.2K
• 3 LED’s for: ASSOC, RSSI and MCU status
• On board ICSP connector
• Power and Ground headers
• Power line selectable Servo
• Power Connector
• Open Source Code
• Free Graphical Interface

Hummm Thinking
CaptBay









firepinto

RE: EPG Testing sequential pulsar using the Arduino
« Reply #148, on July 28th, 2011, 07:41 PM »Last edited on July 28th, 2011, 07:48 PM by firepinto
Quote from Rwg42985 on July 28th, 2011, 06:25 AM
Will, amazing again my friend!



Nate, google

 H-Bridge

That is a reversing polarity circuit, used as a motor controller. That work grate!

~Russ
Cool thanks Russ!  
I looked into it some, looks like it could work like I was saying with some modifications.  :-)  I'll have to research it more when I recover from this week of hell. lol

Quote from txqNL on July 28th, 2011, 12:03 PM




Indeed your mosfets come from an H-Bridge allmost all ups transformers are pulsed by h-bridge.

Only pulsing h-bridges you have to make sure you never turn on both mosfets on one legs because then the mosfets short the power rail.
This can be done with some logic chips or in software its on todo list.
I see that now, it is all starting to make sense!  Do you think the time between each pulse on the train is too close together and would cause a "shoot through" on an H bridge?  The idea would  be using 12 outputs in a pulse train to make one full sequence through four H bridges.