Problem compiling example Simple3piLineFollower

I’ve downloaded and installed the Arduino libraries following the instructions in “Programming Orangutans and the 3pi Robot from the Arduino Environment”.

I get this error when compiling your “Simple3piLineFollower” sketch:

/Users/hfoster/Desktop/arduino-0012/hardware/libraries/pololu/Pololu3pi.h:41:34: error: pololu/OrangutanTime.h: No such file or directory

I have a 3pi robot connected to my PowerBook through an Orangutan USB programmer. I am using the Arduino 12 IDE and have successfully compiled, downloaded, and run some of your other example sketches for using the LEDs, LCDs, buzzer, etc.

Any ideas what the problem might be, or where to find this include file? It does not seem to be included in the Orangutan* or Pololu3pi libraries.

Thanks in advance!

Hello.

The file OrangutanTime.h is for people who program their 3pis outside of the Arduino environment, so it’s not supposed to be included for you. You should be able to fix the problem yourself by modifying the library file pololu/Pololu3pi.h to remove the reference to OrangutanTime.h. Once this is done, delete the object file (the one that ends in .o) from the library directory, close your Arduino IDE, and re-open it. When you do this, the library will be rebuilt, and if all goes well, a new .o file will appear.

The sample 3pi demos all worked for me under the Arduino 11 IDE, but perhaps things have changed with 12 in a way that broke something. I’ll take a look at it later on today and try to release something that works under 12.

- Ben

Thank you. I just tried recompiling the sketch using Arduino 11. I had no include file problems. I believe that there were some changes in 12 that may have caused this; I’ve seen several comments on the Arduino forum about sketches that stopped compiling with 12.

But, I did get a

3: error: invalid suffix "b00000" on integer constant that went away when I changed the definition of the levels[] array to

const char levels[] PROGMEM = { B00000 B00000 etc.
I believe that a byte value is represented by ‘B’ not “0b” in the Arduino language.

I will continue using Arduino 11 until I become more familiar with 3pi programming. I was excited to see that one of the new features in Arduino 12 is the ability to have multiple definitions for “upload.using” in boards.txt, for example
diecimila.upload.using=bootloader
orangutan.upload.using=avrispv2
so that preferences.txt doesn’t have to be edited every time one switches boards. But perhaps Arduino 12 is not quite ready for use.

I cannot get any sketch to download to the 3pi using Arduino 11.

I get these errors:

java.lang.NullPointerException
	at processing.app.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:57)
	at processing.app.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:43)
	at processing.app.Sketch.upload(Sketch.java:1632)
	at processing.app.Sketch.exportApplet(Sketch.java:1701)
	at processing.app.Editor$41.run(Editor.java:2004)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

In programmers.txt I have:
avrispv2.name=AVR ISP v2
avrispv2.communication=serial
avrispv2.protocol=avrispv2

In boards.txt I have:
orangutan.name=Orangutan with Programmer
orangutan.upload.maximum_size=16384
orangutan.build.mcu=atmega168
orangutan.build.f_cpu=20000000L
orangutan.build.core=arduino

/Users/me/Library/Arduino/preferences.txt has been modified to: upload.using=avrispv2

I have Orangutan with Programmer selected as the board, and my serial port is /dev/tty.Pololu.

I was able to download these same sketches (the ones that compiled that is) to the 3pi earlier using Arduino 12.

Have you any ideas?

I would suggest you check through your preferences.txt file to make sure you don’t have any other upload.using parameters set. It looks like your Arduino IDE is crashing for some reason. I’m in the process of testing out the libraries with Arduino 12, so hopefully soon I’ll have a solution for you that will work with the newer version.

- Ben

Also, I don’t get any compile errors when I use 0b notation for binary numbers under the Arduino 11 environment, so I find it strange that you do.

Ok, we have updated the Pololu Arduino libraries to work with Arduino 0012. You can find the new version (080929) linked from here. Thank you for alerting us of the incompatibilities between our libraries and the new Arduino environment. Please let us know if you have any problems getting it to work.

- Ben

All better now with Arduino 12 IDE - thanks very much!