Compiling ML-v410 code


 

Hi, I am trying to compile the ML_v410 code but getting an error message, can anyone help please:

Arduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Board: "Arduino Uno"

ML_v410:61:10: fatal error: LiquidCrystalFast.h: No such file or directory

 #include <LiquidCrystalFast.h>

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

compilation terminated.

exit status 1

LiquidCrystalFast.h: No such file or directory



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

Thanks, Mike (GW6UWW)


Gamma Kiwi Al
 

Mike,
Try to download the previous version of Arduino. 
I know Loftur made 4.10 a couple of months ago mainly to include later versions of Arduino, not sure but maybe there is a newer Arduino version come out since. 
Al


Gamma Kiwi Al
 

Mike,
One more thing, I assume you will need to select Teensy, I see you have chosen Arduino Uno. 
Al


 

Thanks for the reply Al.  I'm afraid I got a little confused when it came to downloading.  I have the Teensy on the PCB.  I downloaded the Arduino Environment and then the Teensy download.  When I am in the Arduino Sketch and goto Tools then selected Teensy 3.1/3.2 from the list.
I have now downloaded ML_v409 code and get the following error message:
Arduino: 1.8.13 (Windows 10), TD: 1.53, Board: "Teensy 3.2 / 3.1, Serial, 96 MHz (overclock), Faster, US English"
 
 
ML_v409:224: error: no matching function for call to 'HardwareSerial::HardwareSerial()'
 
 HardwareSerial Uart = HardwareSerial();
 
                                      ^
 
In file included from C:\Users\User\Downloads\arduino-1.8.13-windows\arduino-1.8.13\hardware\teensy\avr\cores\teensy3/WProgram.h:46:0,
 
                 from C:\Users\User\AppData\Local\Temp\arduino_build_644955\pch\Arduino.h:6:
 
C:\Users\User\Downloads\arduino-1.8.13-windows\arduino-1.8.13\hardware\teensy\avr\cores\teensy3/HardwareSerial.h:256:12: note: candidate: constexpr HardwareSerial::HardwareSerial(void (*)())
 
  constexpr HardwareSerial(void (* const se)()) : _serialEvent(se) {}
 
            ^
 
C:\Users\User\Downloads\arduino-1.8.13-windows\arduino-1.8.13\hardware\teensy\avr\cores\teensy3/HardwareSerial.h:256:12: note:   candidate expects 1 argument, 0 provided
 
C:\Users\User\Downloads\arduino-1.8.13-windows\arduino-1.8.13\hardware\teensy\avr\cores\teensy3/HardwareSerial.h:253:7: note: candidate: constexpr HardwareSerial::HardwareSerial(const HardwareSerial&)
 
 class HardwareSerial : public Stream
 
       ^
 
C:\Users\User\Downloads\arduino-1.8.13-windows\arduino-1.8.13\hardware\teensy\avr\cores\teensy3/HardwareSerial.h:253:7: note:   candidate expects 1 argument, 0 provided
 
C:\Users\User\Downloads\arduino-1.8.13-windows\arduino-1.8.13\hardware\teensy\avr\cores\teensy3/HardwareSerial.h:253:7: note: candidate: constexpr HardwareSerial::HardwareSerial(HardwareSerial&&)
 
C:\Users\User\Downloads\arduino-1.8.13-windows\arduino-1.8.13\hardware\teensy\avr\cores\teensy3/HardwareSerial.h:253:7: note:   candidate expects 1 argument, 0 provided
 
no matching function for call to 'HardwareSerial::HardwareSerial()'
 
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

I have scanned through the code but cannot find any reference to the error.
Mike


 

I have since found the following section of the ML_v409 source code with the following extract:

Define a "Uart" object to access the serial port
HardwareSerial Uart = HardwareSerial();

This is in the ML_v409 code.  What would have to go in here please?
Mike


Gamma Kiwi Al
 

Hi Mike,
I suggest you stick with 4.10 but download one older version of the Arduino software. 
Al


 

Hi Al,
Have installed earlier version of the Arduino and retained ML_v4.10.
Compiled fine, no errors.
Sent it to Teensy and I have a working Loop Controller.

Many thanks for your help with this, very much appreciated.
Mike


wgalaugher@...
 

I have the same problem.  What older version of Arduino did you use to solve it


Johan Holstein
 

Do you need help with this or is it solved?

Best regards,

Johan Holstein

On 26-03-2022 22:53, wgalaugher@... wrote:

I have the same problem.  What older version of Arduino did you use to solve it


wgalaugher@...
 

If I commented out HardwareSerial Uart =  HardwareSerial(); then the code compiles.  I'm using Arduino 1.8.5 which is the oldest the teensyarduino.exe will work with.

I had this all working a few years ago with windows 7 but now with windows 10; we have issues.

Not sure how to solve the probelem.  There maybe a couple of things that have to be addressed

Wayne VE7ZNU


Johan Holstein
 

Hi Wayne,

That is not much information please make a screenshot or copy the errors you get so then I can easy see what wrong. The Sketch compiles without any errors with the most recent Arduino IDE and Teensduino.

Best,

Johan
73’ PD0lew

Verstuurd vanaf mijn iPhone

Op 27 mrt. 2022 om 21:17 heeft wgalaugher@... het volgende geschreven:

If I commented out HardwareSerial Uart =  HardwareSerial(); then the code compiles.  I'm using Arduino 1.8.5 which is the oldest the teensyarduino.exe will work with.

I had this all working a few years ago with windows 7 but now with windows 10; we have issues.

Not sure how to solve the probelem.  There maybe a couple of things that have to be addressed

Wayne VE7ZNU


wgalaugher@...
 

This is the error


VE7VXO
 
Edited

The newer versions of the Arduino IDE do not like direct references to the hardware serial constructor. 
So, for this error:

no matching function for call to 'HardwareSerial::HardwareSerial()'

 Do this instead at the location of the error in the main  .ino file:

// Define a "Uart" object to access the serial port
//HardwareSerial Uart = HardwareSerial();  (comment out or remove this line)
#define Uart  Serial1  (Add this line to replace the one above)


After correcting that, you may also get some compile errors due to the analog to digital converter library due to the way that ADC1 was referenced in the magloop code. 

call to 'ADC::setSamplingSpeed' declared with attribute error: Use adc->adcX->setSamplingSpeed instead

Replace the offending section with the version below in blue to reference ADC0 and ADC1:

  adc->setSamplingSpeed(ADC_SAMPLING_SPEED::LOW_SPEED);       // Sampling speed, ADC_VERY_LOW_SPEED, ADC_LOW_SPEED, ADC_MED_SPEED, ADC_HIGH_SPEED or ADC_VERY_HIGH_SPEED
  adc->setSamplingSpeed(ADC_SAMPLING_SPEED::LOW_SPEED, ADC_1);
  adc->setConversionSpeed(ADC_CONVERSION_SPEED::LOW_SPEED);   // Conversion speed
  adc->setConversionSpeed(ADC_CONVERSION_SPEED::LOW_SPEED, ADC_1);
  adc->setResolution(12);                        // AD resolution, 12 bits
  adc->setResolution(12, ADC_1);
  adc->setAveraging(16);                         // Averaging by taking multiple samples.
  adc->setAveraging(16, ADC_1);                  // 16 samples takes approx 80us per measurement and is just about
                                                // good enough for 12 bit resolution w/o too much noise on LSB




  // Set up the two separate ADCs for synchronous read at 12 bit resolution and lowest possible measurement speed (minimal noise)
 
  adc->adc0->setSamplingSpeed(ADC_SAMPLING_SPEED::LOW_SPEED);       // Sampling speed, ADC_VERY_LOW_SPEED, ADC_LOW_SPEED, ADC_MED_SPEED, ADC_HIGH_SPEED or ADC_VERY_HIGH_SPEED
  adc->adc0->setConversionSpeed(ADC_CONVERSION_SPEED::LOW_SPEED);   // Conversion speed
  adc->adc0->setResolution(12);                                     // AD resolution, 12 bits
  adc->adc0->setAveraging(16);                                      // Averaging by taking multiple samples.
                                                                    // 16 samples takes approx 80us per measurement and is just about
                                                                    // good enough for 12 bit resolution w/o too much noise on LSB

  adc->adc1->setSamplingSpeed(ADC_SAMPLING_SPEED::LOW_SPEED);       // Sampling speed, ADC_VERY_LOW_SPEED, ADC_LOW_SPEED, ADC_MED_SPEED, ADC_HIGH_SPEED or ADC_VERY_HIGH_SPEED
  adc->adc1->setConversionSpeed(ADC_CONVERSION_SPEED::LOW_SPEED);   // Conversion speed
  adc->adc1->setResolution(12);                                     // AD resolution, 12 bits
  adc->adc1->setAveraging(16);                                      // Averaging by taking multiple samples.
                                                                    // 16 samples takes approx 80us per measurement and is just about
                                                                    // good enough for 12 bit resolution w/o too much noise on LSB


(This post was edited to correct a previous error)
Best regards all...Joe ve7vxo