Your Orangutan boards would be a lot more approachable to newbies if you preinstalled a bootloader on them, with a well-documented protocol. Then anybody with a serial port and an appropriate hex file (you could provide several such as examples) could upload programs to it and have immediate success, without having to get a programmer and work out how to use it with their Mac OS X machine.
On another note, I also suggest adding a “product suggestions” forum.
Thanks for the suggestion. We do have a bootloader that we use for updating the mega168 firmware on our Orangutan X2, but I’m not sure it would be incredibly useful having it on the other Orangutans. In the next few days we will be releasing our own external AVRISPv2 programmers, which will be a more universal solution since the mega48 doesn’t have a bootloader option. Right now we don’t have any Mac people here, so we can’t really support them, however, as far as I know, Mac users can talk to our external programmer over the serial port with avrdude.
Does your post mean you’ve worked out how to program Orangutans with a Mac OS X machine?
The Baby Orangutan (my personal favorite) also uses the mega168, so the bootloader should work on that too, right? Why would it not be useful?
Yes, probably true. But it’s one more hurdle in a long string of hurdles facing a new user. (Buy the right programmer, get avrdude to compile, find the right version of gcc, get that to compile, find the right libraries, find the magic incantations to configure it for the particular device you’re using, etc. etc…)
No, it means I’d like to use an Orangutan, but when I look at the long list of hurdles to jump before getting to the blinky-light stage, and compare it to the amount of free time I have, I’m forced to consider other robot controllers with easier tools.
If you haven’t any Mac developers on staff, you might consider contracting one to collect the necessary tools into a “quick start” package that a newbie could just download and immediately start using, either through a bootloader (where available) or your external programmer. Writing C code is not intimidating; it’s all the steps required to compile it and stuff it into the device that is the barrier. Get people over that, and you’ll have customers you otherwise won’t reach.
So the Orangutan would be friendly enough for you out of the box if all you had to do was hook up the serial connection (and, for the Baby-O, some sort of input to put it into bootloader programming mode)? Wouldn’t you still need to get a GCC C/C++ compiler for AVRs working on your Mac and is doing that significantly more difficult than getting avrdude to compile at the same time?
No, I wouldn’t need that right away, if you also provided a couple of compiled programs that make the Orangutan do something (blink a light or whatever). Then I’d have accomplished something, and would be encouraged to try the next piece, which is getting a compiler up and running.
And for that matter, is there really any reason these days that I have to have a compiler on my own machine? You could have a web server where you paste in or upload a C file, and it returns you the hex file (or whatever you call a compiled binary in the AVR world). With the bootloader and a serial port, I could then go all the way from source code to the device without needing much of anything on my system. I could be using some obscure BeOS box or a Palm Pilot or whatever, and still get it to work.
But I digress, and a web-server compiler is probably going a bit overboard. The real point is, there are a lot of steps between me considering an Orangutan purchase, and achieving success. With a bootloader using a documented protocol, and a couple of sample binaries, you eliminate at least one of them (buying a programmer) and also give the user a quick way to verify that at least the board and communications are working, even before they manage to build a development toolchain.
Actually, it’s not. machinescience.org has web compilers already for select AVR and PIC chips. They’ve got some library code for their own curriculum (they’re educational in nature, not so much hobbyist or commercial), so you do get something other than just stock AVR-gcc commands. Only catch is you can only do single-file projects.
There’s someone in our local robotics club who develops Orangutan code on a Mac. The programmer step is a bugaboo, though. avr-gcc works, the whole toolchain works, but loading the .hex file onto the chip doesn’t entirely. So right now he’s using a Windows machine and AVR Studio 4 for that. If he gets the whole thing running on OS-X, I’ll prod him into posting a how-to.
FWIW the bootloader on the X2 works like a champ. I love that design since it’s one more piece of hardware I don’t have to pack around. And that you get a dedicated processor to handle all the timer-intensive stuff, freeing up ALL the timers on the main processor, is awesome. But I can see that building something like that in the price/weight/power consumption range of the Baby-O isn’t likely. And for some projects, that really is the right size for the job. I’m glad I have the option.
One more FWIW, and I’ll quit: I’ve installed the WinAVR/AVR Studio toolset a couple of times now on a couple of different machines. I’ve had no problem doing it. I’ve also installed the Linux toolchain on two Gentoo machines. Once I munged through the various how-tos, that was pretty painless as well. Nice thing with the AVR toolchains, regardless of platform: You can try before you buy. I was so eager for my first Baby-O to arrive, I had the toolchain installed on my laptop and compiling blinky-blink code before the package ever arrived in my mailbox. It’s all available online. Download it and give it a whirl. If it drives you mad, that’s a sign. If it doesn’t, that’s a sign, too.
Exactly. The shorting block essentially acts as a switch for the computer’s RX line. In one position it connects RX to the programmer’s mega48’s TX (i.e. programming mode) and in the other it connects RX to the pad labeled RX (adapter mode–connect this pad to the TX of some external MCU). The computer’s TX line is always connected to both the programmer’s mega48 and the pad labeled TX (no matter where the shorting block is). All of the labeling is on the bottom of the device, so it doesn’t show in the pictures we currently have up.
In the coming weeks we’ll be putting up some more detailed information about the programmer and how to use it.
If your using windows the entire process takes five minutes.:)[quote]FWIW the bootloader on the X2 works like a champ. I love that design since it’s one more piece of hardware I don’t have to pack around. And that you get a dedicated processor to handle all the timer-intensive stuff, freeing up ALL the timers on the main processor, is awesome. But I can see that building something like that in the price/weight/power consumption range of the Baby-O isn’t likely. And for some projects, that really is the right size for the job. I’m glad I have the option. [/quote]
Actually, you don’t need extra hardware for a boot loader. Im fairly certain you can upload the Arduino bootloader onto the baby o with the only problem being that you need acess to the RX and TX pins to program it with the computer. Though you don’t get any of the advantages you listed.