Prime VFD not compiling HELP!

I am trying to use primeVFD, but it will not compile! This is the error I am getting

In file included from HelloWorld.pde:33: C:\Users\User-PC\Desktop\arduino-1.0.5\libraries\PrimeVfd/PrimeVfd.h:79: error: conflicting return type specified for 'virtual void PrimeVfd::write(uint8_t)' C:\Users\User-PC\Desktop\arduino-1.0.5\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'

Any advice??

Yes, please please read the advice before posting - you give no details.

We need the code, we need the library (or its homepage and version number), we need to know which version of the Arduino software you are running - this sounds like it might be an out-of-date library that isn't compatible with Arduino 1.x, but how can we tell for sure?

What's really helpful is to provide enough to recreate the problem easily, and then its possible to experiment with fixes and theories and come back with tested answers, rather than guesses. In general more information means more chance of an accurate timely answer, just saying "help" has less effect :) [we take that as given]

I am using the “Hello World” program from PrimeVFD. I am just trying to get my Futaba M242SD04A to provide me information but I need to see if the VFD is still working.

Here is the code

#include <PrimeVfd.h>

// initialize the library with the numbers of the interface pins
PrimeVfd vfd(PrimeVfd::PIN_CONFIG_PORT_D_OPTION_1);

void setup() {
  // start the library/displaying to the vfd 
  // Print a message to the VFD.
  vfd.print("hello, world!");

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  vfd.setCursor(0, 1);
  // print the number of seconds since reset:

PrimeVFD? As always, please provide links.

In the Print class, write() is a virtual function. That means that classes that derive from Print, as it would appear that PrimeVFD does, need to implement the write method, with the same signature that it has in the Print class.

Starting with 1.0.0, the signature of the write() method was changed. Prior to 1.0.0, write()s return type was void. Now, it is size_t. In your library, the implementation of the write() method has not been changed to match the signature that the base class expects.

So exactly what line do I neet to change in the primevfd.h library?

Well as we don't know where you got it nor which version, how can we tell?

Here is the link to the arduino page

What version is your IDE, it appears they provide an updated version for you: Version updated for Arduino 1.0 and later. Tested to compile only, no other testing has been done. For Arduino versions prior to 1.0. Tested with samples on hardware.

And the new version has the correct prototype:

virtual size_t write(uint8_t character);

Ok. I will have to try that and see if it still comes back with an error

Don't worry it will, there are more bugs, don't know how it was tested to compile. It clearly doesn't.

You will need to open PrimeVfd.cpp & PrimeVfdInterrupt.cpp and replace one include.


#include "WProgram.h"


#include "Arduino.h"

In both files.

After doing this:

Binary sketch size: 3,688 bytes (of a 32,256 byte maximum) - 11% used

Thank you all so much! Now to just get my display connected and run.