Vm211 i cannot upgrade firmware please help

I am new to Arduino.
Instructions to upgrade vm212 firmware are very basic and missing lost of passages.
I downloaded the new firmware zip as per instruction, then loaded the “earthlistener4v0final” on to the arduino softaware and clicked “upload”. The instructions suggest to import libraries and i think the problem is there, but i dont know which libraries they are talking about (are they in the zip file too? Which ones) and how/where to import them.
Any help appreciated.
See screenshot below. Thanks

I have unzipped all the content of the vm211 v4 firmware in the arduino/library directory and still it says it doesn’t find the libraries.
I also used manage libraries and found the adafruit gfx library is there!
I am connecting the earth monitor to the pc with its usb cable, am i doing it right? Do i need a serial port/cable instead??
Also, whicj INO file do i need to selcet to upload? So far i have selected the “v4final” one but there are other INO files such as Setup?

Hi @Nicdip,

We use local copies for the 3th party libraries (like Adafruit) to make sure the VM211 code works even when these libraries are updated. If you download the latest firmware from our Github page, you’ll see a src folder with the libraries. Please check if you have the folder in the picture below in your downlaod:


In the main folder, you’ll find the EarthListener4v0_final.ino file. This is the file to upload to your Arduino via USB cable.

Don’t forget to set your processor and port settings before uploading to the board!

Kind regards,

@VEL342 Thanks for your reply.
The folders you mentioned are already in my Arduino/library folder.
I have found those libraries when i unzipped the VM211 v4final firmware from the link you suggested and placed all its content in the library folder. Even though the linraries are there, when i run the upload it says it cannot find them.
I even tried adding the libraries manually using the Sketch add library function. The adafruit-GFX library shows as being installed even there in sketch.
I tried to copy this gfx library in different locations, including the folder Arduino (the parent folder of library). The program says that it finds the library in multiple location but it seems it doesn’t like its content as it causes a fatal error.
My earthmonitor is indeed selected as mega and the port is also selected correctly.
Of note, even if i use “verify” on the sketch EartmonitorV4final.INO without “uploading” it, it gives me the same error.
What baffles me is that i am using the libraries which were unzipped from the very zip file you linked on github, so i am sure those are the correct ones.
It is really frustrating.
Thank you for your continuous help

This is the screenshot of my current library folder and the adafruit is definitely there.

Hi @Nicdip,

I understand the issue.
There are 2 ways of working with Arduino libraries:

  • global libraries in the Arduino/Libraries folder
  • local libraries in the src directory where your ino file is located

You have tried to copy the libraries from the src file to the Arduino/Libraries folder. That is possible, but the links in the code still refer to the local libraries in the src directory!

We do not recommend using global libraries for the EarthListener, since we made small modifications to the libraries. If you use the global libraries some functions might not preform.
So we recommend using the local onces.

To conclude; all you need to do are these steps:

  1. Download the zip file from our Github page
  2. Extract the zip file to a location in your documents or on your desktop
  3. open the ino file (Arduino IDE should launch)
  4. connect your Arduino via USB cable to your computer
  5. select Arduino Mega and the correct port in the Arduino IDE
  6. hit upload

So no messing with the library folders ;-).

Note: if you still want to use global libraries (what we do not recommend), you should change these lines:

#include "src\Adafruit-GFX-Library\Adafruit_GFX.h"     	  // Core graphics library by Adafruit
#include "src\Adafruit-GFX-Library\Fonts\FreeSans9pt7b.h" // Font FreeSans 9pts (as an alternative for basic font)
#include "src\MCUFRIEND_kbv\MCUFRIEND_kbv.h"           	  // TFT library by David Prentice
#include "src\SDmega\SDmega.h"                          	// SD library (mod by PSI to work with MEGA & TFT SD card shield)
#include "src\SparkFun_BME280\src\SparkFunBME280.h"    	  // BME280 library by SparkFun
#include "src\SparkFun_CCS811\src\SparkFunCCS811.h"    	  // CCS811 library by SparkFun
#include "src\SparkFun_AS3935\src\SparkFun_AS3935.h"          // AS3935 library by SparkFun
#include "src\TFTLCD-Library\Adafruit_TFTLCD.h"        	  // Hardware-specific library for TFT screen by Adafruit
#include "src\TouchScreen\TouchScreen.h"               	  // TouchScreen library by Adafruit


#include <Adafruit_GFX.h>     	  // Core graphics library by Adafruit
#include <FreeSans9pt7b.h>          // Font FreeSans 9pts (as an alternative for basic font)
#include <SDmega.h>                    // SD library (mod by PSI to work with MEGA & TFT SD card shield)
#include <SparkFunBME280.h>    // BME280 library by SparkFun
#include <SparkFunCCS811.h>   // CCS811 library by SparkFun
#include <SparkFun_AS3935.h>   // AS3935 library by SparkFun
#include <Adafruit_TFTLCD.h>      // Hardware-specific library for TFT screen by Adafruit
#include <TouchScreen.h>             // TouchScreen library by Adafruit


Hi Pieter
I proceeded as following:
-Uninstalled Arduino IDE from my pc, so to be sure to remove all its content including libraries i might have added.
-removed manually Arduino folder left behind by Windows uninstaller, including library folder.
-redownloaded Arduino IDE and installed it.
-unzipped the github vm211v4final zip file on my desktop.
-selected v4final.INO file and opened it from the desktop folder.
-IDE opened the file and said it needed to be copied in sketches and moved there. I selected yes.
-i connected the earthlistener
-selected mega and selected port 4 on Ide
-click upload

it still stops and tells me the same thing over and over, that it cannot find the libraries.
Of note, the SRC folder is there on my desktop, in the file unzipped from github.
I also went to Arduino library and made sure there are no libraries there and there are none.
So Ide Is definitely using the libraries of my desktop. And still doesn’t work.
I tried to attach screenshots but they are too big.
Have you got an email i can send them to?
Thanks again

as a last resort i also replaced the string you mentioned, with the different one you provided (i cut and pasted it)
i obviously had to add each library individually but could not find the library of the Fonts and the SDmega, as they are not found in the library directory. I think i managed to find the rest but never got there as it stopped at the first library it couldnt find, which this time was the fonts one.
(btw have you got a zip file with all the libraries i need so i can add them all in one go with the zip file?)

it gave the following error.
Arduino: 1.8.11 (Windows 10), Board: “Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)”

EarthListener4v0_final:14:10: error: FreeSans9pt7b.h: No such file or directory

#include <FreeSans9pt7b.h> // Font FreeSans 9pts (as an alternative for basic font)


compilation terminated.

exit status 1
FreeSans9pt7b.h: No such file or directory

This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.

I think my IDE looks for libraries wherever it wants, finds multiple entries for the same library and decides to use the one that doesn’t work. I have copied the libraries that came in the zip file (folder SRC) in many locations, including Arduino/Libraries and still throws up an error code "multiple libraries found, adafruit_GFX.h: no such file or directory.
This file is in multiple locations, i have copied and pasted it in every parent directory of Arduino out of desperation. Still no change…

Hi @Nicdip,

Thank you for describing your problem. Here lies the issue:

-IDE opened the file and said it needed to be copied in sketches and moved there. I selected yes.

The IDE will place the INO file in a new folder, and in that folder, the scr folder with libraries is not present, hence giving you the error.

Kind regards,

Hi Pieter
I therefore tried to move the src folder in the newly created folder, where the INO file was moved, so that the src folder could be again with the sketches. But it didnt work!
I also did the opposite, moved the ino file where the SRC folder is, it still doesn’t work

Hi @Nicdip
Here are step by step instructions. Please follow them to the letter to succeed.

  1. Download the latest firmware from https://github.com/Velleman/VM211_Firmware as a ZIP file


It doesn’t really matter where you place the zip file, but for this guide we will place the file on our desktop.

  1. Extract the contents of the zip file by moving the folder 'VM211_Firmware-master" to your desktop


  1. Make sure the “VM211_Firmware-master” folder contains these files:


  1. Rename the name of the folder “VM211_Firmware-master” to the name of the “EarthListenerXXX.ino”-file. In this case “EarthListener4v0_final”.

  1. Open the “EarthListenerXXX.ino”-file, the Arduino IDE will launch with no errors

  2. Connect the Arduino to your PC with the provided USB cable

  3. Set the proper board “Arduino/Genuino Mega or Mega 2560” & port “COMxx”.

  4. Hit upload

The code will be compiled and uploaded to the board.
This can take up to 3 minutes.


Hi there,
After IDE asked to create a new folder (and i clicked ok) i then moved ALL the other extracted files (not only SRC) to the newly created folder (where IDE moved the INO) and IT WORKED.
Thank you so much for the help, i hope this has been useful to change the instructions on your website.
Can i just ask you what the new menu “timer” is? Timer for what?
Also the “interface” options, what are they? Thanks again!!

Hi @Nicdip,

Glad you got it working!
The timer setting is the amount of seconds before going to the other screen if you set the EarthListener in slideshow mode. The interface option is for the Lightning sensor, changing the interface from I2C to SPI. Default is I2C, as instructed in the manual.
Kind regards,


Thanks again, really enjoying the unit. I think it could do much more than it does at the moment. I hope the developers will try to add as many functions as possible.
Can i ask you another question please? I have added the rgb leds and all working well. If i want to add the clock module though, i reckon all the pins are taken? Or can i use the same pins as those used by the rgb led? I am not sure if the same pin can be attached to different sensors?

Hi @Nicdip,

To keep your questions on-topic, have a look at this post:

bert.test implemented the real time clock by using pins A13-A15. Since you already used them for your RGB LED, you will need to use other pins. The Arduino mega has a lot of pins unused under the sensor shield, you can use those and carefully bend the connectors under the shield.

Be advised, you will need to alter the Earthlisteners firmware to include the real time clock.
Kind regards,


Thank you
Would the unused pins under the sensor shield have the same name (ie A13-A15 etc)?
Where can i find the firmware changes to add the clock?
I have read a previous topic on it and it was mentioned the extra sensors fitting and instructions would b pronted in the new version of the manual, is the up to date manual out yet?