View Single Post
Old 04-26-2011, 03:48 PM   #111 (permalink)
FalconFour
EcoModding Lurker
 
FalconFour's Avatar
 
Join Date: Sep 2010
Location: Fresno, CA
Posts: 78

LEAF - '11 Nissan LEAF
Thanks: 4
Thanked 9 Times in 7 Posts
Nice list.

OK, I guess you've got some good points there. But in all fairness about 50% of those points are BS... chalking up human factors as a flaw in the hardware, hardly a bullet point. You can't rant about newbies as if that's a problem with the hardware itself... hell, the world is full of morons, I'd say a concentration of about 80% morons to 20% people that can actually write proper English (and in light of that, it's nice that both of us, and most in this topic, are part of that elite 20%, haha). That poses a mixed bag of issues: on one hand, we want to give the tools to the 20% that would know how to use it and appreciate all its fun. On the other hand, in a business sense, we would want it to be accessible for those 80% morons as well, the people that skim over FAQs and installation guides, screw everything up, and whine in reviews with total lack of punctuation when they can't figure out how to make it work.

Right now though, of the people that understand, want, and can use MPGuino... maybe 1% of them actually have the tools or knowledge to mod it in raw AVR/GCC/whatever code. It looks, smells, reads, hacks, and feels like Arduino, so that's where the code gets plugged into. It compiles, happy face. Everyone is happy, and I think it's a safe guess to say that 100% of the people doing "mods" on the MPGuino code here on ecomodder are using Arduino to do it. Are they noobs? Maybe to AVR. Because we didn't go to college for microcontroller programming, we don't live, sleep, eat, drink, breathe AVR. We don't want to have to root through 500+ page manuals (ATmega328P manual) to figure out what, exactly, switching Timer2 to Fast PWM mode does (rather, what WGM20 and WGM21 in the TCCR2A register do). I went through all that. It hurt my head. It wasted hours of my time. Noob? I dunno... I can turn a case of beer into a talking sentry with Arduino. Could I do that with raw AVR? Hell no... I probably could, if I rooted around fugly 1990's websites for a couple weekends, dedicated to the task, piecing together countless pieces of info... but I had a hard enough time understanding memcpy() (about 20 minutes debugging why I was getting setup failures, set up serial debugging to find it was returning gibberish due to having "dest" and "src" swapped - seriously, memcpy(dest,src,len)? WTF? Anything else is "src,dest" format)... then understanding char * pointers (I spent about an hour resolving a compiler error with how to pass "char name[10] = "blahblah0"" to a function call looking for "char *", before I realized that the call allowing "char *" was actually looking for a different data type in the FIRST parameter, hence I couldn't even use a char with it). Arduino is already tough and powerful enough as it is. The fact is, if someone is too noob to understand how to mod it, they're more than welcome to just run the damn code as it is. There's no need to put up fences to prevent willing-and-able people from trying to use MPGuino to learn Arduino or AVR... hell, if anything, it'll get your project extra press and attention for being open and flexible.

As for the hardware itself, and saying how ISP is "far and away the most common way to program atmegas"... ah, haha, and hahaha. Yeah, maybe in the avrfreaks circles. Maybe in the professional microcontroller development circles. Maybe in your house But certainly not in the open-source world of hobbyists and geeks. I'd love to see you pick up an ISP programmer at an electronics store. No? Even if you did find one, what would you use it with? Scour the internet and put together a toolchain, if you can. Bust open the command line and start hammering away. Hm... I dunno, not too inviting or open. Arduino is everywhere. It's a packaged product sold in stores. It's in the (mainstream) news. Websites like Instructables have Arduino sections. Paste a block of code in there, upload it, run it. Stupid-easy. Use one Arduino to program another. Mix and match, rinse and repeat. Hardware modders? Use the 16mhz version of MPGuino on a real Arduino, plug on a WingShield, add a few I/O pins and some code, hack away. The accessories and code for Arduino is everywhere, easily accessible, well indexed, well supported. You say it uses "specialized hardware" - really? The USB-UART chip? Well, if you don't want serial I/O on your Arduino, they make those too. Fact is, if you buy an Arduino, you know you can plug it in to any computer and program it. ISP, not so much. Why limit myself? With the USB in the Arduino, I can also use that serial to communicate with the PC with just a few lines of code.

AVR? Hell, I don't even know what to call it, the ecosystem is so fragmented. Everywhere I go, I see pages from the 1990s, no formatting, no indexes, belching out raw data for me to sift through. The avr-libc documentation is a nightmare to browse through. Granted, Arduino docs have issues of their own (most notably with lack of full documentation on all Arduino-specific core functions), but overall their documentation is much more useful for people looking to understand how to use it - that is, helping noobs become "less noob" (I dunno, am I still a noob for using Arduino?).

There's nothing "moving target" about Arduino. Hell, even you were surprised at how flexible it was, in allowing people to just paste the MPGuino code into Arduino and compile it/run it, and have it be stable. Arduino is merely a (huge) extension to avr-libc anyway. Take 'em or leave 'em, there's nothing moving about it, but anything you do implement from the Arduino libraries is pretty much guaranteed to be 100% stable for the life of the Arduino project.

Plus, I have no idea how the hell to compile and upload outside of Arduino. :P

  Reply With Quote