First the easy stuff, All botboarduino compiles should be done with the Arduino Duemilanove with Atmega 328 as the board. The Uno setting probably won’t work (in the actual upload) as it does not use an FTDI chip for the USB connection…
My guess also is you don’t want to use the QuadC_PS2_SSC32.ino (I should remove this from the top level). That is configured for my Quad, that is the old style one and not the new Square one. Also mine has type C legs where the one Lynxmotion sells as type A legs.
I have an example build under the Phoenix folder that is called LSQuadA_PS2_SSC32 which is configured with the stuff from Xan’s build which includes square body and Type A legs…
Know why it does not compile for you? I am not sure. Will try downloading this stuff to my Portable that I don’t use very often and see if it works for me. Make sure the code includes:
Phoenix_code.h as this is where the code is. Also I need to double check if you have stated if this is being done on a PC or under Linux…
Note: the main INO file is pretty small, it just includes other stuff: Here is the LSQuadA-PS2_SSC32 (minus comments at top)
define DEFINE_HEX_GLOBALS
#if ARDUINO>99
#include <Arduino.h>
#else
#endif
#include <Wire.h>
#include <EEPROM.h>
#include <PS2X_lib.h>
#include <SoftwareSerial.h>
#include "Hex_CFG.h"
#include <Phoenix.h>
#include <Phoenix_Input_PS2.h>
#include <Phoenix_Driver_SSC32.h>
#include <Phoenix_Code.h>
Also you might want to turn on verbose compile (File Preferences) and check to make sure it loaded all of the appropriate files.
More as I figure it out.
Edit: I installed 1.0.5 on the portable (Had 1.0.1 on it so about time). I downloaded the Quad fork of the project as a zip file. I opened the Zip file…
I went to my Users Arduino Libraries folder and moved all of the folders out of it that started with Phoenix (put them to a dummy folder on my desktop). I then copied in the Phoenix* folders from the zip file into this folder.
I then started up Arduino 1.0.5. I then clicked on the File menu, then on the Examples menu item, then on the Phoenix menu item and then finally on LSQuadA_PS2_SSC32. This loaded up the project with two files in it. The main .INO file and Hex_Cfg.h. I then went to the Tools menu and selected the correct board (Arduino Duemilanove w…328) and then clicked on the Verify button and it compiled. Not sure what else to try here.
You asked Why .h files instead of .cpp/.c files? I am sorry this has been setup to make it easy for me. That is the easiest thing for the majority of users to use would be if they would choose a specific project and all of the files were self contained in it. That is great if you only have one robot and you only ever want to use one way to control it… But for me, I have many different configurations and when I wish to make fixes and/or enhancements, I did not want to have to make the same change in 10 different places. So I decided to make split the stuff up into libraries. But the problem with the Arduino environment and libraries is that there is no way to have compile time options. That is suppose some of your robots you wish to have GP sequence support included, but in other cases you don’t, there was no easy way to do that (at least that I found). But then I noticed a few cases where people put their code into header files instead, and this gave you that ability as the code is compiled with the main project code and not pre-compiled as part of the library. Hope that makes sense.
Note: Your Quad looks nice. It will be interesting to see how well it performs. Will the extra weight up top cause you to need to change how the weight shifting code is done as it walks.
Kurt