How can I determine what version of a library was used, plus how to get it ?

I am trying to make an old sketch work and it has been suggested that I try and compile it with the libraries that were in effect at the time the sketch went public.
The date that I have on the sketch was 8/22/2016 and there are a lot of .h files

It looks like I can get the .h files from github by date but I can't see how I can install them into the sketch using the arduino IDE. I tried just copying the .h file into the library folder but when I compile the sketch I get a "missing .h file" message.

any ideas ?

thanks

You might look at your library manager to see if some of your library files are listed there. Once you find one of the libraries in library manager, you can see what versions are in the drop down list box; the one that lists previous versions, and install that version. Perhaps this may work for some or all.

You need the complete library, not just the .h file.

What sort of errors are you getting while compiling with the current versions of the libraries? It may be easier to modify the sketch than trying to find all the old libraries.

david_2018:
You need the complete library, not just the .h file.

What sort of errors are you getting while compiling with the current versions of the libraries? It may be easier to modify the sketch than trying to find all the old libraries.

It's not that I get any errors, it compiles clean. It just won't execute properly. The sketch is supposed to determine my present position based upon connecting to a GPS satellite. That works. Then it accepts the position of another satellite. That works ok. It then computes the best way to track the 2nd satellite and is supposed to issue commands to move 2 servos so as to be able to follow the 2nd satellitenacross the sky.
Nothing happens. I have been embedding printf commands so as to try and track the sketches progress but so far no luck.
Plus it's a damn complicated sketch.
A friend of mine suggested that I try and compile it based upon the libraries that were present at the time he published the sketch and that is what I am now doing.

Thanks

Do you have the answer to your question now, or do you still need help with this?

pert:
Do you have the answer to your question now, or do you still need help with this?

I think that I have found a way to do this so I guess consider this closed.

What I am doing is this, and I would appreciate any comments as to my method.
Using the issue date of the sketch, 7/29/2018, from github, I download the library that was in effect as of that date.
Then I use the library manager within the IDE to install it.
Then compile and check the version and date listed.
It's cumbersome as there are 15 of them.
This will be a miracle if it works, so a prayer might be in order :=).

As to my using .github here is one library where there appears to be multiple choices.
Github

I would appreciate any comments as to which one I should try.

As an aside, whoever the library manager is, they could use some training. I appreciate that this is all free, but when the compiler can't find the library because it has a different name within the .zip file and the .zip file also has a different name. Phew, that is kinda evil.

hextejas:
Then compile and check the version and date listed.

How do you check the version and date?

hextejas:
As to my using .github here is one library where there appears to be multiple choices.
Github

I would appreciate any comments as to which one I should try.

What is the exact header filename from the #include directive in the sketch?

hextejas:
As an aside, whoever the library manager is

What do you mean by "library manager"?

hextejas:
when the compiler can't find the library because it has a different name within the .zip file and the .zip file also has a different name. Phew, that is kinda evil.

Please provide an example of this so I can understand what you mean.

pert:
How do you check the version and date?

Let me do this a bit at a time.
Not the date but the version number is shown when you select in the preferences to show verbose output during the compile. The date I get from the .github
Example:

Using library ESP8266WiFi at version 1.0 in folder: /home/hexdump/.arduino15/packages/esp8266/hardware/esp8266/2.7.1/libraries/ESP8266WiFi 
Using library EEPROM at version 1.0 in folder: /home/hexdump/.arduino15/packages/esp8266/hardware/esp8266/2.7.1/libraries/EEPROM 
Using library Wire at version 1.0 in folder: /home/hexdump/.arduino15/packages/esp8266/hardware/esp8266/2.7.1/libraries/Wire 
Using library Adafruit_Sensor at version 1.1.2 in folder: /home/hexdump/Arduino/Sketchbooks/libraries/Adafruit_Sensor 
Using library Adafruit_BNO055 at version 1.2.0 in folder: /home/hexdump/Arduino/Sketchbooks/libraries/Adafruit_BNO055 
Using library SoftwareSerial at version 6.8.0 in folder: /home/hexdump/Arduino/Sketchbooks/libraries/SoftwareSerial 
Using library TinyGPS at version 13.0.0 in folder: /home/hexdump/Arduino/Sketchbooks/libraries/TinyGPS

pert:
What is the exact header filename from the #include directive in the sketch?

Here is part of the sketch showing the #include for <Adafruit_PWMServoDriver.h>
I installed ver 2.4.0 from within the IDE. I picked that version number based upon the date within .github as the version being in force at 7/29/2018, the date that my sketch was issued.
Generally I try and find library entries name Adafruit…something. Though it is not always the case. An example is wire.h

// class to control two motors to track a target az and el using the Adafruit I2C interface

#ifndef _GIMBAL_H
#define _GIMBAL_H

#include <Wire.h>
#include <WiFiClient.h>
#include <Adafruit_PWMServoDriver.h>

#include "AutoSatTracker-ESP.h"
#include "Target.h"
#include "Sensor.h"

class Gimbal {

    private:

	// I2C servo interface
	Adafruit_PWMServoDriver *pwm;
	static const uint8_t GIMBAL_I2C_ADDR = 0x40;	// I2C bus address of servo controller
	static const uint8_t SERVO_FREQ = 50;		// typical servo pulse frequency, Hz
	static constexpr float US_PER_BIT = (1e6/SERVO_FREQ/4096);	// usec per bit @ 12 bit resolution
	static const uint8_t MOT1_UNIT = 0;		// motor 1 I2C unit number
	static const uint8_t MOT2_UNIT = 1;		// motor 2 I2C unit number
	bool gimbal_found;				// whether PWM controller is present

pert:
What do you mean by "library manager"?

Whoever it is that posts "official" updates to the Adafruit libraries. Given that this is all "freeware:, there probably isn't one assigned. Though I tend to trust anything coming from LadyAdafruit.

pert:
Please provide an example of this so I can understand what you mean.

Part of the problem is that the original sketch includes both:
#include Adafruit_Sensor.h
and
#include Sensor.h

The Adafruit_Sensor is a perfect example.
The #include
#include <Adafruit_Sensor.h>

The zip file within .github is named Adafruit_Sersor-master.zip which is what is downloaded.
Within the .zip file is the folder
\Adafruit_Sensor-master…which contains
Adafruit_Sensor.cpp,
Adafruit_Sensor.h

Which brings up another topic as to where the IDE looks as it tries to find the libraries. I have read all about the differences about <>, vs, " ", and I dont know what else.
This level of flexibility is a mistake in my opinion. The IDE compiler seems to find the files no matter where I try and hide them.

So, I am back off to see if I can make this thing work.
I thank you again for all your help. It has been invaluable.
73 KG5TKY

hextejas:
Here is part of the sketch showing the #include for <Adafruit_PWMServoDriver.h>

When a library contains the word “Adafruit”, you should start by assuming it’s one of Adafruit’s libraries, and look under their GitHub account for it.

If you do a search across all of GitHub for the library, you’ll likely find derivative projects, which are less likely to be the dependency of your sketch than the original.

hextejas:
The Adafruit_Sensor is a perfect example.
The #include
#include <Adafruit_Sensor.h>

The zip file within .github is named Adafruit_Sersor-master.zip which is what is downloaded.
Within the .zip file is the folder
\Adafruit_Sensor-master…which contains
Adafruit_Sensor.cpp,
Adafruit_Sensor.h

That’s just how GitHub works. There’s nothing Adafruit’s “library manager” can do about it. GitHub appends the Git ref of the repository download to the end of the repository name. You downloaded the tip of the master branch, so “master” was appended. In almost all cases, it makes no difference what the folder is named, so you’re free to leave the -master on the folder name.

If you know which version of the Adafruit library you want, look in the library manager in the Arduino IDE, there is often an option to pick which version to install.

I would also verify that the servos actually work using the example sketches from whichever library you are using, it may turn out that you have a hardware problem.

david_2018:
If you know which version of the Adafruit library you want, look in the library manager in the Arduino IDE, there is often an option to pick which version to install.

I would also verify that the servos actually work using the example sketches from whichever library you are using, it may turn out that you have a hardware problem.

Thank you david and I have tried this. The example worked just fine so that proved all my wiring to be correct. I will do it again then compare the 2 sketches, line by line to see if I can spot it.