[Solved] Problem trying to use ESPWheel library

Hello, I was trying to use this library (https://drive.google.com/file/d/1CrJxms5pFNL6whzVFgNIWS55XVVezBFZ/view) and I found some errors when trying to compile the proyect included with the file. I tried using the latest version of the Arduino IDE, however that didn't work because the library is intended for Arduino 1.0.5 so I used the Arduino 1.0.5 r2 downloaded from here (Google Code Archive - Long-term storage for Google Code Project Hosting.) (because the official previous IDE versions page didn't allow me to download it). I followed the installation instructions from the "Readme" file inside of the zip, (importing the library from the IDE does not work, it places all the zip files inside of C:/Users/USER/Documents/Arduino/libraries) and placed the RFRWheel folder from ESP_WHEEL inside C:/Users/USER/Documents/Arduino where the sketches are. I placed the libraries (from ESP_WHEEL/arduino-1.0.5/libraries) in C:/ProgramFiles(x86)/Arduino/libraries and the content from ESP_WHEEL/arduino-1.0.5 inside C:/ProgramFiles(x86)/Arduino, however I realized that inside ESP_WHEEL/arduino-1.0.5/hardware/arduino/cores there is a folder called "arduino_gs" which has the same file names of the "arduino" folder inside C:/ProgramFiles(x86)/Arduino/hardware/arduino/cores but with some additions such as inside of Arduino.h it defines class types such as "u8" and many other things, at first I did not know this and when I tried to compile the RFRWheel proyect I got the following error message when trying to compile:

RFRWheel.ino:26:36: error: DualVNH5019MotorShield.h: No such file or directory
RFRWheel.ino:33:19: error: HX711.h: No such file or directory
In file included from RFRWheel.ino:24:
ffb.h:278: error: 'u8' does not name a type
ffb.h:279: error: 'u8' does not name a type
ffb.h:280: error: 'u8' does not name a type
ffb.h:281: error: 'u16' does not name a type
ffb.h:282: error: 'u16' does not name a type
ffb.h:283: error: 's16' does not name a type
ffb.h:284: error: 's16' does not name a type
ffb.h:285: error: 's16' does not name a type
In file included from RFRWheel.ino:25:
ffb_pro.h:56: error: 'f32' does not name a type
ffb_pro.h:58: error: 's32' does not name a type
ffb_pro.h:59: error: 's32' does not name a type
ffb_pro.h:60: error: 'b8' does not name a type
ffb_pro.h:61: error: 's32' does not name a type
ffb_pro.h:62: error: 'u8' does not name a type
ffb_pro.h:68: error: 'u8' has not been declared
ffb_pro.h:69: error: 's32' has not been declared
ffb_pro.h:70: error: 's32' does not name a type
ffb_pro.h:71: error: 's32' does not name a type
ffb_pro.h:73: error: 's32' does not name a type
ffb_pro.h:74: error: 's32' does not name a type
ffb_pro.h:75: error: 's32' does not name a type
ffb_pro.h:76: error: 's32' does not name a type
ffb_pro.h:77: error: 's32' does not name a type
ffb_pro.h:78: error: 's32' does not name a type
ffb_pro.h:79: error: 's32' does not name a type
ffb_pro.h:80: error: 's32' does not name a type
ffb_pro.h:82: error: 'u8' does not name a type
ffb_pro.h:90: error: 's32' does not name a type
ffb_pro.h:93: error: 'b8' does not name a type
In file included from RFRWheel.ino:27:
debug.h:39: error: 'u8' does not name a type
debug.h:43: error: 'b8' does not name a type
debug.h:55: error: variable or field 'LogSendByte' declared void
debug.h:55: error: 'u8' was not declared in this scope
debug.h:68: error: 'u8' has not been declared
debug.h:69: error: 'u8' has not been declared
debug.h:73: error: 'u8' has not been declared
In file included from RFRWheel.ino:31:
Config.h:63: error: 'u32' does not name a type
In file included from RFRWheel.ino:32:
QuadEncoder.h:18: error: 's32' has not been declared
QuadEncoder.h:18: error: 'b8' has not been declared
QuadEncoder.h:19: error: 's32' does not name a type
QuadEncoder.h:20: error: 's32' has not been declared
RFRWheel:45: error: variable or field 'getParam' declared void
RFRWheel:45: error: 'u8' was not declared in this scope
RFRWheel:45: error: 'u8' was not declared in this scope
RFRWheel:45: error: 'addr_to' was not declared in this scope
RFRWheel:45: error: 'u8' was not declared in this scope
RFRWheel:46: error: variable or field 'setParam' declared void
RFRWheel:46: error: 'u8' was not declared in this scope
RFRWheel:46: error: 'u8' was not declared in this scope
RFRWheel:46: error: 'addr_to' was not declared in this scope
RFRWheel:46: error: 'u8' was not declared in this scope
RFRWheel:48: error: 'u32' does not name a type
RFRWheel:51: error: 'b8' does not name a type
RFRWheel:53: error: 'u16' does not name a type
RFRWheel:57: error: variable or field 'EnableInterrupt' declared void
RFRWheel:57: error: 'u8' was not declared in this scope
RFRWheel:57: error: 'u8' was not declared in this scope
RFRWheel:58: error: 'u8' does not name a type
RFRWheel:60: error: variable or field 'LogSendData' declared void
RFRWheel:60: error: 'u8' was not declared in this scope
RFRWheel:60: error: 'data' was not declared in this scope
RFRWheel:60: error: expected primary-expression before 'len'
RFRWheel:67: error: 'u8' has not been declared
RFRWheel:68: error: 'u8' has not been declared
RFRWheel:69: error: 'u8' has not been declared
RFRWheel:70: error: 'b8' does not name a type
RFRWheel:71: error: variable or field 'LogSendByte' declared void
RFRWheel:71: error: 'u8' was not declared in this scope
RFRWheel:73: error: 'b8' does not name a type
RFRWheel:74: error: 'b8' does not name a type
RFRWheel:75: error: 'b8' does not name a type
RFRWheel:95: error: 's32' does not name a type
RFRWheel:96: error: 's32' does not name a type
RFRWheel:97: error: 's32' does not name a type
RFRWheel:98: error: 's32' does not name a type
RFRWheel:99: error: 's32' does not name a type
RFRWheel:117: error: variable or field 'setPWMDir' declared void
RFRWheel:117: error: 's16' was not declared in this scope
RFRWheel:118: error: variable or field 'setPWM' declared void
RFRWheel:118: error: 's16' was not declared in this scope
RFRWheel:41: error: 'u8' does not name a type
RFRWheel:42: error: 'u8' does not name a type
RFRWheel:43: error: 'u8' does not name a type
RFRWheel:45: error: 'u32' does not name a type
RFRWheel:46: error: 'u32' does not name a type
RFRWheel:47: error: 'b8' does not name a type
RFRWheel:48: error: 's32' does not name a type
RFRWheel:53: error: 's32' does not name a type
RFRWheel:58: error: 'HX711' does not name a type
RFRWheel.ino: In function 'void setup()':
RFRWheel:91: error: 'last_send' was not declared in this scope
RFRWheel:91: error: 'last_refresh' was not declared in this scope
RFRWheel:92: error: 'fault' was not declared in this scope
RFRWheel:93: error: 'accel' was not declared in this scope
RFRWheel:94: error: 'brake' was not declared in this scope
RFRWheel:95: error: 'turn' was not declared in this scope
RFRWheel:97: error: 'ReadEEPROMConfig' was not declared in this scope
RFRWheel:125: error: 'setPWM' was not declared in this scope
RFRWheel.ino: In function 'void loop()':
RFRWheel:132: error: 's32' was not declared in this scope
RFRWheel:132: error: expected `;' before 'command'
RFRWheel:133: error: 'u32' was not declared in this scope
RFRWheel:133: error: expected `;' before 'now_micros'
RFRWheel:135: error: expected `;' before 'time_diff'
RFRWheel:138: error: 'now_micros' was not declared in this scope
RFRWheel:138: error: 'last_refresh' was not declared in this scope
RFRWheel:142: error: 'turn' was not declared in this scope
RFRWheel:142: error: 'class cQuadEncoder' has no member named 'Read'
RFRWheel:142: error: 'class cCalibrator' has no member named 'mOffset'
RFRWheel:143: error: 'class cCalibrator' has no member named 'mState'
RFRWheel:144: error: 'command' was not declared in this scope
RFRWheel:144: error: 'class cFFB' has no member named 'CalcTorqueCommand'
RFRWheel:146: error: 'command' was not declared in this scope
RFRWheel:146: error: 'class cCalibrator' has no member named 'CalcTorqueCommand'
RFRWheel:147: error: 'command' was not declared in this scope
RFRWheel:147: error: 'setPWMDir' was not declared in this scope
RFRWheel:148: error: 'X_AXIS_PHYS_MAX' was not declared in this scope
RFRWheel:152: error: 'digitalWriteFast' was not declared in this scope
RFRWheel:159: error: 'time_diff' was not declared in this scope
RFRWheel:161: error: 'last_send' was not declared in this scope
RFRWheel:161: error: 'now_micros' was not declared in this scope
RFRWheel:164: error: 'accel' was not declared in this scope
RFRWheel:164: error: 'analog_inputs' was not declared in this scope
RFRWheel:183: error: 'u16' was not declared in this scope
RFRWheel:183: error: expected `;' before 'buttons'
RFRWheel:184: error: 's16' was not declared in this scope
RFRWheel:184: error: expected `)' before 'brake'
RFRWheel:184: error: expected `)' before 'accel'
RFRWheel:184: error: 'buttons' was not declared in this scope
RFRWheel:184: error: 'SendInputReport' was not declared in this scope
RFRWheel:189: error: 'class cCalibrator' has no member named 'mState'
RFRWheel:193: error: 'u16' was not declared in this scope
RFRWheel:193: error: expected `;' before 'flash_per'
RFRWheel:194: error: 'class cCalibrator' has no member named 'mState'
RFRWheel:196: error: 'flash_per' was not declared in this scope
RFRWheel:202: error: 'digitalWriteFast' was not declared in this scope
Config.ino: At global scope:
Config:6: error: variable or field 'getParam' declared void
Config:6: error: 'u8' was not declared in this scope
Config:6: error: 'u8' was not declared in this scope
Config:6: error: 'addr_to' was not declared in this scope
Config:6: error: 'u8' was not declared in this scope
Config:12: error: variable or field 'setParam' declared void
Config:12: error: 'u8' was not declared in this scope
Config:12: error: 'u8' was not declared in this scope
Config:12: error: 'addr_to' was not declared in this scope
Config:12: error: 'u8' was not declared in this scope
Config.ino: In function 'void SetDefaultConfig()':
Config:20: error: 'u32' was not declared in this scope
Config:20: error: expected `;' before 'val'
Config:21: error: 'u8' was not declared in this scope
Config:21: error: expected primary-expression before ')' token
Config:21: error: 'val' was not declared in this scope
Config:21: error: 'setParam' was not declared in this scope
Config:23: error: expected primary-expression before ')' token
Config.ino: At global scope:
Config:26: error: 'u32' does not name a type
Inputs:36: error: 's16' does not name a type
Inputs:38: error: 'u8' does not name a type
Inputs:40: error: 'u8' does not name a type
Inputs:51: error: 'u8' does not name a type
Inputs:62: error: 's32' does not name a type
Inputs:64: error: 'u8' does not name a type
Inputs:65: error: 's32' does not name a type
Inputs:104: error: 'b8' does not name a type
Inputs.ino: In function 'void InitInputs()':
Inputs:127: error: 'u8' was not declared in this scope
Inputs:127: error: expected `;' before 'i'
Inputs:127: error: 'i' was not declared in this scope
Inputs:127: error: 'digital_inputs_pins' was not declared in this scope
Inputs:130: error: expected `;' before 'i'
Inputs:130: error: 'i' was not declared in this scope
Inputs:130: error: 'analog_inputs_pins' was not declared in this scope
Inputs:134: error: 'class cCalibrator' has no member named 'mOffset'
Inputs:137: error: 'InitLoadCell' was not declared in this scope
Inputs:139: error: 'nb_mes' was not declared in this scope
Inputs:140: error: 'load_cell_channel' was not declared in this scope
Inputs.ino: At global scope:
Inputs:145: error: 'u16' does not name a type
Inputs.ino: In function 'void ClearAnalogInputs()':
Inputs:160: error: 'u8' was not declared in this scope
Inputs:160: error: expected `;' before 'i'
Inputs:160: error: 'i' was not declared in this scope
Inputs:160: error: 'analog_inputs_pins' was not declared in this scope
Inputs:161: error: 'analog_inputs' was not declared in this scope
Inputs:162: error: 'nb_mes' was not declared in this scope
Inputs.ino: In function 'void ReadAnalogInputs()':
Inputs:167: error: 'u8' was not declared in this scope
Inputs:167: error: expected `;' before 'i'
Inputs:167: error: 'i' was not declared in this scope
Inputs:167: error: 'analog_inputs_pins' was not declared in this scope
Inputs:168: error: 'analog_inputs' was not declared in this scope
Inputs:169: error: 'nb_mes' was not declared in this scope
Inputs.ino: In function 'void AverageAnalogInputs()':
Inputs:174: error: 'u8' was not declared in this scope
Inputs:174: error: expected `;' before 'i'
Inputs:174: error: 'i' was not declared in this scope
Inputs:174: error: 'analog_inputs_pins' was not declared in this scope
Inputs:175: error: 'analog_inputs' was not declared in this scope
Inputs:175: error: 'axis_shift_n_bits' was not declared in this scope
Inputs:175: error: 'nb_mes' was not declared in this scope
Inputs:182: error: 'class cCalibrator' has no member named 'mState'
Inputs:182: error: 'gLoadCell' was not declared in this scope
Inputs:185: error: 's32' was not declared in this scope
Inputs:185: error: expected `;' before 'w1'
Inputs:186: error: 'w1' was not declared in this scope
Inputs:188: error: 'w1' was not declared in this scope
Inputs:188: error: 'Y_AXIS_PHYS_MAX' was not declared in this scope
Inputs:190: error: 'brake' was not declared in this scope
QuadEncoder.ino: At global scope:
QuadEncoder:35: error: 'b8' does not name a type
QuadEncoder:36: error: 'u8' does not name a type
QuadEncoder:37: error: 's32' does not name a type
QuadEncoder:62: error: variable or field 'EnableInterrupt' declared void
QuadEncoder:62: error: 'u8' was not declared in this scope
QuadEncoder:62: error: 'u8' was not declared in this scope

After I replaced "arduino"'s files with "arduino_gs"' I didn't get errors such as 's32 does not name a type', but I still got the following error messages:

RFRWheel:73: error: 'Setup' was not declared in this scope
RFRWheel:74: error: 'Setup' was not declared in this scope
RFRWheel:75: error: 'Setup' was not declared in this scope
RFRWheel.ino: In function 'void loop()':
RFRWheel:156: error: 'nb_mes' was not declared in this scope
RFRWheel:184: error: 'Joystick' was not declared in this scope
Inputs.ino: In function 'b8 InitLoadCell()':
Inputs:107: error: 'gLoadCell' was not declared in this scope
Inputs.ino: In function 'void InitInputs()':
Inputs:134: error: 'myEnc' was not declared in this scope
Inputs.ino: In function 'void AverageAnalogInputs()':
Inputs:182: error: 'gLoadCell' was not declared in this scope
QuadEncoder.ino: In member function 'void cQuadEncoder::Init(s32, b8)':
QuadEncoder:137: error: 'CORE_PIN0_INT' was not declared in this scope
QuadEncoder:138: error: 'CORE_PIN1_INT' was not declared in this scope
SerialInterface.ino: In function 'void ProcessSerialPort()':
SerialInterface:24: error: 'myEnc' was not declared in this scope

I have no clue where to go from here. Thanks in advance.

Please post a link to where you found this project. That may provide us with valuable information about how to use it.

1 Like

OK, please follow these instructions:

  1. First of all, we need to make a fresh start so that your previous attempts don't trip us up. Uninstall your installation of Arduino IDE 1.0.5.
  2. Download Arduino IDE 1.0.6 from this link: https://downloads.arduino.cc/arduino-1.0.6-windows.zip
    Even if the project has the format for use with Arduino IDE 1.0.x, you might as well have a slightly less antiquated version. This is why I picked 1.0.6 instead of 1.0.5.
  3. Unzip the downloaded file.
    This is the .zip version of the Arduino IDE. It doesn't require installation, so it can coexist with a modern version of the IDE for your other projects.
    You can put it in any convenient location on your computer. From here on, I will refer to the location of it like this: <Arduino IDE installation folder>
  4. Download https://drive.google.com/file/d/1CrJxms5pFNL6whzVFgNIWS55XVVezBFZ/view
  5. Unzip the downloaded file.
    From here on, I will refer to the location of it like this: <ESP_WHEEL unzip folder>
  6. From the unzipped folder, copy this subfolder:
    <ESP_WHEEL unzip folder>\arduino-1.0.5\hardware\arduino\cores\arduino_gs
    
    to here:
    <Arduino IDE installation folder>\hardware\arduino\cores
    
  7. From the unzipped folder, copy all folders under this subfolder:
    <ESP_WHEEL unzip folder>\arduino-1.0.5\libraries
    
    to here:
    <Arduino IDE installation folder>\libraries
    
  8. Open this file in a text editor:
    <Arduino IDE installation folder>\hardware\arduino\boards.txt
    
  9. Paste this text at the end of the file:
    ##############################################################
    
    leonardoffb.name=Arduino Leonardo (FFB HID)
    leonardoffb.upload.protocol=avr109
    leonardoffb.upload.maximum_size=28672
    leonardoffb.upload.speed=57600
    leonardoffb.upload.disable_flushing=true
    leonardoffb.bootloader.low_fuses=0xff
    leonardoffb.bootloader.high_fuses=0xd8
    leonardoffb.bootloader.extended_fuses=0xcb
    leonardoffb.bootloader.path=caterina
    leonardoffb.bootloader.file=Caterina-leonardoffb.hex
    leonardoffb.bootloader.unlock_bits=0x3F
    leonardoffb.bootloader.lock_bits=0x2F
    leonardoffb.build.mcu=atmega32u4
    leonardoffb.build.f_cpu=16000000L
    leonardoffb.build.vid=0x2341
    leonardoffb.build.pid=0x8036
    leonardoffb.build.core=arduino_gs
    leonardoffb.build.variant=leonardo
    
  10. Double click on this file:
    <Arduino IDE installation folder>\arduino.exe
    
  11. Wait for the Arduino IDE to start up.
  12. Select File > Open from the Arduino IDE menus.
  13. In the "**Open an Arduino sketch..." dialog, select this file:
    <ESP_WHEEL unzip folder>\RFRWheel\RFRWheel.ino
    
  14. Click the Open button.
  15. Select Tools > Board > Arduino Leonardo (FFB HID) from the Arduino IDE menus.

Now try compiling the sketch again. The error should no longer occur.


Please note that, in general, you should never install things to the hardware or libraries subfolders of the Arduino IDE installation.

The reason is that all this will be lost every time you update to a new version of the Arduino IDE. My instructions do that because it is the way the "ESP_WHEEL" creator set it up (it was made at a time where that sort of foolishness was common practice) and I don't have the time right now to go through the changes that are needed to install it in a best practices manner.

1 Like

Sorry I couldn't get back to you sooner, I tried what you instructed me and it worked, no errors at all. Thanks a lot!

You are welcome. I'm glad it is working now. Enjoy!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.