It was very close between picaxe and the AVR when I was deciding what to use for the logger. The article on the piclog was very clear and made the picaxe look perfect for the role. I had never worked with micro-controllers before and the picaxe seemed right for me. The picaxe seemed to be easier to program compared to what I had read about the AVR but the AVR was potentially faster and could have more I/O depending on which chip you used. When I walked into Jentronics I was all set to order the picaxe chip since I figured I would start simple and then go to AVR once I needed more processing power. The game plan changed when the counter salesman informed me that the picaxe was $4 but had to be shipped in at a charge of $8 shipping and $5 handling. I asked what the cost of the ATmega328 was and he said $7. Then he said there was no shipping or handling since they carried them in store. That is all it took to convince me that I was going with Atmel chips even if it was a steeper learning curve. I went with the Atmel AVR line of micro-controllers because of economics.
I run Linux and it turns out that all the dev tools for avr chips work on Linux. I used the AVR GCC tool chain along with code::blocks IDE for coding in c/c++ and compiling. Its the first micro-controller I have programmed so can't compare it to anything else (ie picaxe). In the end I didn't find it hard since tons of free info/tutorials are available on the web for it but did have to do a lot of reading.
I don't know anything about the timing used for programming but programming was easy once I understood it . I used a home made parallel port dongle and the avrdude command line utility to do the in service programming. Actually I cheated. I programmed the Arduino bootloader using ISP then used the usb port to upload my hex files each time I made updates.
After mucking around on breadboard for a while I eventually bought a Freeduino board to mount the ATMega328. Still at the beginning stages in printed circuit board making.
Once I got the basic system working based on piclog I started doing a lot more on chip processing/analysis which I don't think I could have done with the picaxe.
The ATmega328 has 32K flash for program storage, 2K ram, 1K EEPROM. I use all 6 analog input ports and 5 of the digital I/O ports. One digital output channel is configured for PWM for the dump load. I was using another PWM channel for the turbine boost controller but ended up going with a dedicated analog PWM controller(TL494) for that function. Currently 6.47K is used for program and static text data and about 0.7K for dynamic data in ram. About 0.4K of the EEPROM is used for user settings, and history. I utilize the USB interface to connect to a cheap ($100 second hand) netbook to store data on the 160 gig hard drive for long term storage and further analysis ie making pretty power curve graphs.
Parameters that are monitored and can be displayed on the LCD screen are:
Turbine: RPM, Amps, Watts, TSR, 24hr hourly log of watt hour history
Wind: Speed, 24hr hourly log of avg and peak history
Solar: Amps, Watts, 24hr hourly log of watt hour history
Battery: Volts, Total amps in, amps out, SOC, temperature, absorption voltage temp comp, float voltage temp comp, absorption time left, time since last full charge, dump load %
System: time on displayed as days, hours, minutes, seconds, burn date and revision.
I was monitoring wind direction but had some problems with the sensor that need to be fixed so its on the back burner for now.
I went with a 3 stage battery charge control algorithm ie boost, absorption, float. One of the analog inputs is used to sense battery temperature so that temperature compensation can be performed. Time since last full charge, absorption time left, float voltage, absorption voltage and state of charge are calculated on the microcontroller.