ATMega8

I’m wondering if the SSC-32 firmware code is available and if I could have a little looksy? I nosed around the site for a while but couldn’t find it or any references to it. Maybe it’s proprietary? I’m tinkering with the robotic arm from the unix command line (Mac OSX) and I would like to get a better feel for the SSC-32 command syntax in optimizing things. What would be really nice is if the firmware is written to be compiled with avr-gcc??? I realize it may be a long shot, but I thought I would ask…

“Firmware version: SSC32-1.03XE”

here is the open source information on the firmware.

lynxmotion.com/images/html/proj078.htm

Thanks! Nice that it’s in C. I will tinker with it…

Let me know if you are able to make anything others might find useful. We can post it on the website. :smiley:

Sure, that’s what it’s all about! I wrote a makefile and tried compiling with avr-gcc but, alas, there were some errors. I’m just back from lunch and I’ll take another crack at it. Stay tuned…

Go ahead and post your errors. I will ask Mike to look at them. I’m sure he can help.

I’ll try to solve the stuff I think I can solve first. I’m happy to post files once (if) I get things worked out.

Just as an update, mostly the errors are from missing declarations (stuff with lost libraries). I’m also getting some messages with expected ','s and stray '@'s. Not sure what to think there yet… Compiler stuff, yuck.

Also, if I remember right, spi.h is being phased out in favor of io.h (for interrupt stuff) and the version of avr-gcc that I’m using (4.1.0) doesn’t even have spi.h included as a library. I switched spi.h to io.h but that hasn’t solved everything.

Another thing with avr-gcc is that you specify the target at compile time with a command like:

avr-gcc -c -g -O3 -Wall -mmcu=$(MCU_TARGET) -I. myfile.c -o myfile.o

So there isn’t a library corresponding to: #include <mega8.h> that installs with avr-gcc. This is where most declarations seem to stem from. I’m hunting for the mega8.h lib now…

Great! This is a nice forum. Thanks for the help. I’m sure be back soon with some questions…

The SSC-32 firmware was developed using the CodeVisionAVR compiler (Version 1.24.1e Standard). I have intended to port it to avr-gcc, but have not done so yet. It uses some compiler-specific extensions such as allocation of global variables to registers, the “flash” modifier for constants stored in program memory, inline assembly, etc. These capabilities are all present in avr-gcc, but in many cases the syntax is incompatable. Also, as you observed, the library usage and target specification are different.

Sorry to not have better news on this. I would like to remove the dependency on a commercial compiler with a license key, but the porting project has never made it to the top of my priority list because it works fine as is.

Mike