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
Will solder it this night to test if it is then oke.
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.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
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
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
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
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.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
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
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.
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
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
#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
Added two videos;
The current code runs on all ATmega328 chip based boards so UNO and the newer or upgraded Duemilanoves.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
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 ?
My PulseFire box needs an expansion card for hardware upgrades!:D I love the software look.Quote from txqNL on July 27th, 2011, 09:42 PM Added two videos;
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
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)?
Nate, google
H-Bridge
That is a reversing polarity circuit, used as a motor controller. That work grate!
~Russ
Will, amazing again my friend!
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.