'class HMC5883L' has no member named 'begin'

hello, i’m trying to include HMC5883L Compass Library to my code,
i am using the library from jarzebski,, but i always found errors even when i try the example from that library (HMC5883L Calibration), the code is like this

#include <Wire.h>
#include <HMC5883L.h>

HMC5883L compass;

int minX = 0;
int maxX = 0;
int minY = 0;
int maxY = 0;
int offX = 0;
int offY = 0;

void setup()
{
  Serial.begin(9600);

  // Initialize Initialize HMC5883L
  while (!compass.begin())
  {
    delay(500);
  }

  // Set measurement range
  compass.setRange(HMC5883L_RANGE_1_3GA);

  // Set measurement mode
  compass.setMeasurementMode(HMC5883L_CONTINOUS);

  // Set data rate
  compass.setDataRate(HMC5883L_DATARATE_30HZ);

  // Set number of samples averaged
  compass.setSamples(HMC5883L_SAMPLES_8);
}

void loop()
{
  Vector mag = compass.readRaw();

  // Determine Min / Max values
  if (mag.XAxis < minX) minX = mag.XAxis;
  if (mag.XAxis > maxX) maxX = mag.XAxis;
  if (mag.YAxis < minY) minY = mag.YAxis;
  if (mag.YAxis > maxY) maxY = mag.YAxis;

  // Calculate offsets
  offX = (maxX + minX)/2;
  offY = (maxY + minY)/2;

  Serial.print(mag.XAxis);
  Serial.print(":");
  Serial.print(mag.YAxis);
  Serial.print(":");
  Serial.print(minX);
  Serial.print(":");
  Serial.print(maxX);
  Serial.print(":");
  Serial.print(minY);
  Serial.print(":");
  Serial.print(maxY);
  Serial.print(":");
  Serial.print(offX);
  Serial.print(":");
  Serial.print(offY);
  Serial.print("\n");
}

in that case (with calbrating code), i always found error like this
'class HMC5883L' has no member named 'begin'

please help me

Hi @wasyamsudin

When the question is not a good one,
the answer is the worst.....

It means that the class HMC5883L has no member named 'begin'

Please read How to get the best out of this forum

Post your sketch, but don´t forget..
use tags </> to post sketch.

RV mineirin

i am using the library from jarzebski, even when i try the example from that library (HMC5883L Calibration), i still find the same error like "has no member 'begin' "

oh pardon me, ok i got it

OK, I will teste this example now. (HMC5883L Calibration),
Are you using arduino UNO?

I had no errors compiling this example.

RV mineirin

i'm using arduino mega sir

This is the link to the library I use

@wasyamsudin

I selected Mega Arduino too, and it compiled correctly without errors.

Suggestion, update your HMC5883L library.

What is your IDE version?

RV mineirin

update version of the library sir?
i'm use IDE 1.8.14

Please, use tags </> and post you erros mensages

RV mineirin

oh ok,, the error like this

Arduino: 1.8.14 (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"





















C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Wasyamsudin\Documents\Arduino\libraries\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10814 -build-path C:\Users\WASYAM~1\AppData\Local\Temp\arduino_build_849807 -warnings=none -build-cache C:\Users\WASYAM~1\AppData\Local\Temp\arduino_cache_816397 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino

C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Wasyamsudin\Documents\Arduino\libraries\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10814 -build-path C:\Users\WASYAM~1\AppData\Local\Temp\arduino_build_849807 -warnings=none -build-cache C:\Users\WASYAM~1\AppData\Local\Temp\arduino_cache_816397 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino

Using board 'mega' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr

Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr

Detecting libraries used...

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o nul

Alternatives for Wire.h: [Wire@1.0]

ResolveLibrary(Wire.h)

  -> candidates: [Wire@1.0]

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o nul

Alternatives for HMC5883L.h: [Grove_3-Axis_Digital_Compass_HMC5883L@1.0.1]

ResolveLibrary(HMC5883L.h)

  -> candidates: [Grove_3-Axis_Digital_Compass_HMC5883L@1.0.1]

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o nul

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src\\Wire.cpp" -o nul

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src\\utility\\twi.c" -o nul

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L\\HMC5883L.cpp" -o nul

Generating function prototypes...

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\preproc\\ctags_target_for_gcc_minus_e.cpp"

"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\preproc\\ctags_target_for_gcc_minus_e.cpp"

Compiling sketch...

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp.o"

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino: In function 'void setup()':

HMC5883L_calibrate:26:19: error: 'class HMC5883L' has no member named 'begin'

   while (!compass.begin())

                   ^~~~~

HMC5883L_calibrate:32:11: error: 'class HMC5883L' has no member named 'setRange'; did you mean 'setScale'?

   compass.setRange(HMC5883L_RANGE_1_3GA);

           ^~~~~~~~

           setScale

HMC5883L_calibrate:32:20: error: 'HMC5883L_RANGE_1_3GA' was not declared in this scope

   compass.setRange(HMC5883L_RANGE_1_3GA);

                    ^~~~~~~~~~~~~~~~~~~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:32:20: note: suggested alternative: 'HMC5883L_ADDRESS'

   compass.setRange(HMC5883L_RANGE_1_3GA);

                    ^~~~~~~~~~~~~~~~~~~~

                    HMC5883L_ADDRESS

HMC5883L_calibrate:35:30: error: 'HMC5883L_CONTINOUS' was not declared in this scope

   compass.setMeasurementMode(HMC5883L_CONTINOUS);

                              ^~~~~~~~~~~~~~~~~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:35:30: note: suggested alternative: 'HMC5883L_ADDRESS'

   compass.setMeasurementMode(HMC5883L_CONTINOUS);

                              ^~~~~~~~~~~~~~~~~~

                              HMC5883L_ADDRESS

HMC5883L_calibrate:38:11: error: 'class HMC5883L' has no member named 'setDataRate'

   compass.setDataRate(HMC5883L_DATARATE_30HZ);

           ^~~~~~~~~~~

HMC5883L_calibrate:38:23: error: 'HMC5883L_DATARATE_30HZ' was not declared in this scope

   compass.setDataRate(HMC5883L_DATARATE_30HZ);

                       ^~~~~~~~~~~~~~~~~~~~~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:38:23: note: suggested alternative: 'HMC5883L_ADDRESS'

   compass.setDataRate(HMC5883L_DATARATE_30HZ);

                       ^~~~~~~~~~~~~~~~~~~~~~

                       HMC5883L_ADDRESS

HMC5883L_calibrate:41:11: error: 'class HMC5883L' has no member named 'setSamples'; did you mean 'setScale'?

   compass.setSamples(HMC5883L_SAMPLES_8);

           ^~~~~~~~~~

           setScale

HMC5883L_calibrate:41:22: error: 'HMC5883L_SAMPLES_8' was not declared in this scope

   compass.setSamples(HMC5883L_SAMPLES_8);

                      ^~~~~~~~~~~~~~~~~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:41:22: note: suggested alternative: 'HMC5883L_ADDRESS'

   compass.setSamples(HMC5883L_SAMPLES_8);

                      ^~~~~~~~~~~~~~~~~~

                      HMC5883L_ADDRESS

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino: In function 'void loop()':

HMC5883L_calibrate:46:3: error: 'Vector' was not declared in this scope

   Vector mag = compass.readRaw();

   ^~~~~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:46:3: note: suggested alternative: 'perror'

   Vector mag = compass.readRaw();

   ^~~~~~

   perror

HMC5883L_calibrate:49:7: error: 'mag' was not declared in this scope

   if (mag.XAxis < minX) minX = mag.XAxis;

       ^~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:49:7: note: suggested alternative: 'map'

   if (mag.XAxis < minX) minX = mag.XAxis;

       ^~~

       map

HMC5883L_calibrate:50:7: error: 'mag' was not declared in this scope

   if (mag.XAxis > maxX) maxX = mag.XAxis;

       ^~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:50:7: note: suggested alternative: 'map'

   if (mag.XAxis > maxX) maxX = mag.XAxis;

       ^~~

       map

HMC5883L_calibrate:51:7: error: 'mag' was not declared in this scope

   if (mag.YAxis < minY) minY = mag.YAxis;

       ^~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:51:7: note: suggested alternative: 'map'

   if (mag.YAxis < minY) minY = mag.YAxis;

       ^~~

       map

HMC5883L_calibrate:52:7: error: 'mag' was not declared in this scope

   if (mag.YAxis > maxY) maxY = mag.YAxis;

       ^~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:52:7: note: suggested alternative: 'map'

   if (mag.YAxis > maxY) maxY = mag.YAxis;

       ^~~

       map

HMC5883L_calibrate:58:16: error: 'mag' was not declared in this scope

   Serial.print(mag.XAxis);

                ^~~

C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:58:16: note: suggested alternative: 'map'

   Serial.print(mag.XAxis);

                ^~~

                map

Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire 

Using library Grove_3-Axis_Digital_Compass_HMC5883L at version 1.0.1 in folder: C:\Users\Wasyamsudin\Documents\Arduino\libraries\libraries\Grove_3-Axis_Digital_Compass_HMC5883L 

exit status 1

'class HMC5883L' has no member named 'begin'


@wasyamsudin

See if this post helps:

RV mineirin

that's the final solutions hahaha

@wasyamsudin , your topic has been moved to a more suitable location on the forum.

You can mark ruilviana's last post as solution so others who find this topic know that it was solved.

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