WAVGAT CH340G communication problem

Hello there!

Arduino IDE v1.8.8
on linux Kubuntu 18.04
(context: 2 arduinos communicating via 433MHz, writing to serial monitor for control)

I recently received my 2 “arduino uno r3 clones” WAVGAT (CH340G), so I wanted to try one of them (both behave the same way).

I already tried a lot of so said tips found on forums about the subject.
my program is working with other arduino compatible boards (chinese UNO and Nano) so the problem isn’t here.
last tip was to declare the board in IDE as an “Arduino Duemilanove or Diecemila (ATmega328p)” what surprisingly worked to download the program to it, but it does not respond at all as expected (writing “⸮⸮⸮⸮xx⸮⸮⸮⸮⸮” etc. on serial monitor and sending nothing).

my question is:
how to get those WAVGAT (CH340G) boards to be recognized as UNO in the IDE? (or how to make it work?)
if someone has encountered the same problem and solved it, answers are welcome! :slight_smile:

Please post a link to the product listing for the WAVGAT Unos you bought.

https://fr.aliexpress.com/item/WAVGAT-haute-qualit-Un-ensemble-UNO-R3-CH340G-MEGA328P-pour-Arduino-UNO-R3-USB-C-BLE/32877460592.html?spm=a2g0s.9042311.0.0.27426c37aUyFdQ

It appears that WAVGAT is pulling a scam where they sell these boards with the claim that they use the standard ATmega328P microcontroller, when really they are using the LGT8F328P, which is a chip made by another company which is supposed to work much like the ATmega328P (actually with some added features). Due to having the different microcontroller, it seems that a special hardware package is required. There is a Google Drive link where you can download this hardware package and installation instructions in the product listing.

If you install that hardware package and then select Tools > Board > WAVGAT UNO R3, does it work as expected?

thank you for this (I missed the link!)
but:
the link mentionned above point to a file
update.rar 872Ko
which is attended to be used with Microsoft Windows... no explaination to be used with Linux! (so, there is not a so said 'Installation' procedure)
???
should I simply copy the content of the folders 'libraries' and 'hardware' (from the file 'update.rar') to the installation's folder of the Arduino IDE?.. and abracadabra?

(I just copied as said above)
it's somehow an Abracadabra thing, I got now a "WAVGAT UNO R3" in my boards list! :smiley:
BUT:
now my -unmodified- program is no more compiling well:

Arduino : 1.8.8 (Linux), Carte : "WAVGAT UNO R3"

Attention: platform.txt du cœur 'Arduino AVR Boards' contiens recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}" dépassé, converti automatiquement en recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}". La mise a niveau de ce cœur est conseillée.
/home/adrenalinos/Arduino/ask_transmitter_my01/ask_transmitter_my01.ino: In function 'void loop()':
/home/adrenalinos/Arduino/ask_transmitter_my01/ask_transmitter_my01.ino:42:15: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
   char *msg = " iNitSensorVzl";    // = "HIGH";
               ^
ask_transmitter_my01:46:10: error: invalid conversion from 'const char*' to 'char' [-fpermissive]
     *msg = "HIGH";
          ^
ask_transmitter_my01:52:9: error: invalid conversion from 'const char*' to 'char' [-fpermissive]
    *msg = "low";
         ^
ask_transmitter_my01:60:42: error: invalid conversion from 'char*' to 'const uint8_t* {aka const unsigned char*}' [-fpermissive]
   driver.printBuffer("Sent:", msg, msglen);
                                          ^
In file included from /home/adrenalinos/Arduino/libraries/RadioHead/RH_ASK.h:9:0,
                 from /home/adrenalinos/Arduino/ask_transmitter_my01/ask_transmitter_my01.ino:8:
/home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.h:231:20: note:   initializing argument 2 of 'static void RHGenericDriver::printBuffer(const char*, const uint8_t*, uint8_t)'
     static void    printBuffer(const char* prompt, const uint8_t* buf, uint8_t len);
                    ^
exit status 1
invalid conversion from 'const char*' to 'char' [-fpermissive]

for now, I really don't understand: why/how and what to do ?

The reason for this error is that the Arduino AVR Boards hardware you were using previously uses the -fpermissive compiler option, but the WAVGAT hardware package does not. -fpermissive downgrades some moderately bad code from an error to a warning.

We can help you to fix the bad code in your sketch so that it no longer causes the error, but first we need you to post your sketch.

woah! you seems to be a real expert! ("-fpermissive compiler option" ← how do I manage it?)
my code is simply a modified exemple, it’s a draft … I already changed “msg” into “message” in case of ‘msg’ could be a reserved word somewhere/somehow (the error is the same!)…??
there it is:

#include <RH_ASK.h>
// #include <usbdrv.h>
#ifdef RH_HAVE_HARDWARE_SPI
#include <SPI.h> // Not actually used but needed to compile
#endif

RH_ASK driver;
// RH_ASK driver(2000, 4, 5, 0); // ESP8266 or ESP32: do not use pin 11 or 2
// RH_ASK driver(2000, 3, 4, 0); // ATTiny, RX on D3 (pin 2 on attiny85) TX on D4 (pin 3 on attiny85),

    int compteur = 0;
    
void setup()
{
#ifdef RH_HAVE_SERIAL
  Serial.begin(9600);	  // Debugging only
#endif
  if (!driver.init())
#ifdef RH_HAVE_SERIAL
    Serial.println("transmitter init failed");
#else
    ;
#endif
  //configure pin 2 as an input
  pinMode(2, INPUT);

}

void loop()
{

  //read the pin 2
  int sensorVal = digitalRead(2);
  // const char *message = "abcdef ABCDEF";
  char *message = " iNitSensorVzl";    // = "HIGH";
      uint8_t msglen; // = sizeof(message);
  if (sensorVal == HIGH)
  {
    *message = "HIGH";
     strcpy(message , "HIGH");
    Serial.println(" HaÏÏÏ");
  }
  else
  {
   *message = "low";
    strcpy(message , "low");
     Serial.println(" loooW");
     compteur = 0;
  }
msglen = strlen(message);
Serial.print(compteur++);// 
Serial.println(" ");
  driver.printBuffer("Sent:", message, msglen);
driver.send((uint8_t *)message, strlen(message));
driver.waitPacketSent();
Serial.println("transmitter ");
Serial.write(message);
delay(2000);
}

Let's work through the errors from the top of the compiler output to the bottom:

sketch_mar27b:39:16: error: invalid conversion from 'const char*' to 'char' [-fpermissive]

     *message = "HIGH";

                ^~~~~~

sketch_mar27b:45:15: error: invalid conversion from 'const char*' to 'char' [-fpermissive]

    *message = "low";

               ^~~~~

You have this odd code:

   *message = "HIGH";
     strcpy(message , "HIGH");

You can change it to this:

   message = "HIGH";

That sets the message pointer to the memory location where the "HIGH" string is stored.

Make the same fix for the other code that causes that error.

sketch_mar27b:53:46: error: invalid conversion from 'char*' to 'const uint8_t* {aka const unsigned char*}' [-fpermissive]

   driver.printBuffer("Sent:", message, msglen);

                                              ^

In file included from E:\electronics\arduino\libraries\RadioHead-master/RH_ASK.h:9:0,

                 from C:\Users\per\AppData\Local\Temp\arduino_modified_sketch_284706\sketch_mar27b.ino:1:

E:\electronics\arduino\libraries\RadioHead-master/RHGenericDriver.h:194:20: note:   initializing argument 2 of 'static void RHGenericDriver::printBuffer(const char*, const uint8_t*, uint8_t)'

     static void    printBuffer(const char* prompt, const uint8_t* buf, uint8_t len);

                    ^~~~~~~~~~~

The type of message is char* but the type of the buf parameter of printBuffer is uint8_t*. To resolve this, you can cast message to the correct type, as you had already done for driver.sent() on the next line:

driver.printBuffer("Sent:", (uint8_t *)message, msglen);

Now your code is fixed, but you'll probably get another error:

In file included from E:\electronics\arduino\libraries\RadioHead-master/RHGenericSPI.h:10:0,

                 from E:\electronics\arduino\libraries\RadioHead-master/RH_NRF24.h:10,

                 from E:\electronics\arduino\libraries\RadioHead-master\RH_NRF24.cpp:6:

E:\electronics\arduino\libraries\RadioHead-master\RH_NRF24.cpp: In member function 'virtual bool RH_NRF24::waitPacketSent()':

E:\electronics\arduino\libraries\RadioHead-master/RadioHead.h:875:16: error: 'yield' was not declared in this scope

  #define YIELD yield();

                ^

This is caused by the WAVGAT hardware package on the Google Drive link you find in their listings being extremely outdated. It seems they have actually updated the package, but didn't bother to update their product listings to point to the location of the updated file. You'll need to uninstall the outdated hardware package you have on your computer and replace it with the updated one. Due to WAVGAT not bothering to learn the most fundamental concepts of how the Arduino IDE works, this process will be much more complicated than it should be:

  • Delete {Arduino IDE installation folder}/hardware/WAV
  • Delete {Arduino IDE installation folder}/hardware/WAV8F
  • Delete {Arduino IDE installation folder}/libraries/E2PROM
  • Delete {Arduino IDE installation folder}/libraries/PMU
  • Delete {Arduino IDE installation folder}/libraries/SoftwareSerial
  • Delete {Arduino IDE installation folder}/libraries/SPI
  • Delete {Arduino IDE installation folder}/libraries/usbdrv
  • Delete {Arduino IDE installation folder}/libraries/VUsbDevice
  • Delete {Arduino IDE installation folder}/libraries/VUsbKeyboard
  • Delete {Arduino IDE installation folder}/libraries/WDT
  • Delete {Arduino IDE installation folder}/libraries/Wire
  • Download https://github.com/WAVGAT-SZ/WAVGAT/raw/master/发给客户.zip
  • Unzip the downloaded folder
  • In the unzipped folder, move ╖ó╕°┐═╗º/update/libraries to ╖ó╕°┐═╗º/update/hardware/WAV8F/AVR
  • Rename ╖ó╕°┐═╗º/update/hardware/WAV8F/AVR to ╖ó╕°┐═╗º/update/hardware/WAV8F/avr
  • If it doesn't already exist, create the folder {sketchbook folder}/hardware. You can find the location of {sketchbook folder} in the Arduino IDE at File > Preferences > Sketchbook location.
  • Copy ╖ó╕°┐═╗º/update/hardware/WAV8F to {sketchbook folder}/hardware.
  • Restart the Arduino IDE if it's running.
  • Tools > Board > WAVGAT UNO R3

Installing the hardware package to the hardware subfolder is the correct way to do this, as is bundling the hardware-specific libraries with the hardware package instead of polluting the global libraries. If the people at WAVGAT had any respect for their customers (or even just a desire to have a profitable business), they would have taken an hour or two to learn these fundamentals of how to properly use the Arduino IDE. Better yet, they could make a little extra effort to provide super easy installation and updates via the Arduino IDE's Boards Manager feature. It's just inexplicable to me that they would run their business this way. There have to be some fairly intelligent people working at the company to be able to design and produce the hardware, but the Arduino IDE support effort is absolutely pitiful. I strongly the Arduino community to not support this company. I recommend that you leave negative feedback for your purchase on Aliexpress.

You might also take a look at the contents of ╖ó╕°┐═╗º/update/sketches. It looks like this folder contains example sketches that demonstrate the special features of the LGT8F328P.

thank you very much!
I did as said

but it still doesn’t compile, and I can’t understand the error so I don’t know what to do now?

Arduino : 1.8.8 (Linux), Carte : "WAVGAT UNO R3"

Attention: platform.txt du cœur 'Arduino AVR Boards' contiens recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}" dépassé, converti automatiquement en recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}". La mise a niveau de ce cœur est conseillée.
In file included from /home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.h:9:0,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHDatagram.h:9,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHReliableDatagram.h:10,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHRouter.h:10,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHMesh.h:10,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHMesh.cpp:14:
/home/adrenalinos/Arduino/libraries/RadioHead/RHMesh.cpp: In member function 'virtual bool RHMesh::doArp(uint8_t)':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHMesh.cpp:85:2: note: in expansion of macro 'YIELD'
  YIELD;
  ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHMesh.cpp: In member function 'bool RHMesh::recvfromAckTimeout(uint8_t*, uint8_t*, uint16_t, uint8_t*, uint8_t*, uint8_t*, uint8_t*)':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHMesh.cpp:237:6: note: in expansion of macro 'YIELD'
      YIELD;
      ^
In file included from /home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.h:9:0,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHNRFSPIDriver.h:9,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RH_CC110.h:17,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RH_CC110.cpp:8:
/home/adrenalinos/Arduino/libraries/RadioHead/RH_CC110.cpp: In member function 'virtual bool RH_CC110::waitPacketSent()':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RH_CC110.cpp:389:2: note: in expansion of macro 'YIELD'
  YIELD;
  ^
In file included from /home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.h:9:0,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.cpp:6:
/home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.cpp: In member function 'virtual void RHGenericDriver::waitAvailable()':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.cpp:32:2: note: in expansion of macro 'YIELD'
  YIELD;
  ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.cpp: In member function 'virtual bool RHGenericDriver::waitAvailableTimeout(uint16_t)':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.cpp:47:2: note: in expansion of macro 'YIELD'
  YIELD;
  ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.cpp: In member function 'virtual bool RHGenericDriver::waitPacketSent()':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.cpp:55:2: note: in expansion of macro 'YIELD'
  YIELD; // Wait for any previous transmit to finish
  ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.cpp: In member function 'virtual bool RHGenericDriver::waitPacketSent(uint16_t)':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.cpp:66:2: note: in expansion of macro 'YIELD'
  YIELD;
  ^
In file included from /home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.h:9:0,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHDatagram.h:9,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHReliableDatagram.h:10,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHRouter.h:10,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHRouter.cpp:14:
/home/adrenalinos/Arduino/libraries/RadioHead/RHRouter.cpp: In member function 'bool RHRouter::recvfromAckTimeout(uint8_t*, uint8_t*, uint16_t, uint8_t*, uint8_t*, uint8_t*, uint8_t*)':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHRouter.cpp:304:2: note: in expansion of macro 'YIELD'
  YIELD;
  ^
In file included from /home/adrenalinos/Arduino/libraries/RadioHead/RHGenericSPI.h:10:0,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RH_NRF24.h:10,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RH_NRF24.cpp:6:
/home/adrenalinos/Arduino/libraries/RadioHead/RH_NRF24.cpp: In member function 'virtual bool RH_NRF24::waitPacketSent()':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RH_NRF24.cpp:224:2: note: in expansion of macro 'YIELD'
  YIELD;
  ^
In file included from /home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.h:9:0,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHDatagram.h:9,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHReliableDatagram.h:10,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHReliableDatagram.cpp:14:
/home/adrenalinos/Arduino/libraries/RadioHead/RHReliableDatagram.cpp: In member function 'bool RHReliableDatagram::sendtoWait(uint8_t*, uint8_t, uint8_t)':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHReliableDatagram.cpp:118:6: note: in expansion of macro 'YIELD'
      YIELD;
      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHReliableDatagram.cpp:121:2: note: in expansion of macro 'YIELD'
  YIELD;
  ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHReliableDatagram.cpp: In member function 'bool RHReliableDatagram::recvfromAckTimeout(uint8_t*, uint8_t*, uint16_t, uint8_t*, uint8_t*, uint8_t*, uint8_t*)':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RHReliableDatagram.cpp:181:2: note: in expansion of macro 'YIELD'
  YIELD;
  ^
In file included from /home/adrenalinos/Arduino/libraries/RadioHead/RHGenericDriver.h:9:0,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RHSPIDriver.h:9,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RH_RF95.h:15,
                 from /home/adrenalinos/Arduino/libraries/RadioHead/RH_RF95.cpp:6:
/home/adrenalinos/Arduino/libraries/RadioHead/RH_RF95.cpp: In member function 'virtual bool RH_RF95::isChannelActive()':
/home/adrenalinos/Arduino/libraries/RadioHead/RadioHead.h:1370:22: error: 'yield' was not declared in this scope
  #define YIELD yield();
                      ^
/home/adrenalinos/Arduino/libraries/RadioHead/RH_RF95.cpp:440:9: note: in expansion of macro 'YIELD'
         YIELD;
         ^

exit status 1
Erreur de compilation pour la carte WAVGAT UNO R3
  • I tested the WAVGAT with other program (controlling a servomotor) and it works well.
    so the problem is somehow with the RadioHead libraries... I checked google but found nothing relevant.

Honestly, unless time is a major concern I would just buy another board that wasn't made by WAVGAT. You'll forever be fighting to get it working properly.

adrenalinos:
but it still doesn’t compile

Please do this:

  • (In the Arduino IDE) click File > Preferences
  • Check the box next to "Show verbose output during: > compilation
  • Click “OK”
  • Sketch > Verify/Compile
  • After the compilation fails you’ll see a button on the right side of the orange bar “Copy error messages”. Click that button.
  • In a forum reply here, click on the reply field.
  • Click the </> button on the forum toolbar. This will add the forum’s code tags markup to your reply.
  • Press “Ctrl + V”. This will paste the compilation output between the code tags.
  • Move the cursor outside of the code tags before you add any additional text to your reply.

If the length of the output exceeds the forum’s 9000 character limit, save it in a .txt file and post it here as an attachment. If you click the “Reply” button you’ll see the “Attachments and other options” link.

I do think BJHenry’s advice is reasonable. I don’t think the LGT8F328P boards are a good choice for beginners. The Chinese boards with the ATmega328P chips are only slightly more expensive and you’ll have such a better experience. Or just go for an official Arduino board if you are tired of playing games with sketchy Aliexpress sellers.

The only valid reasons to use the LGT8F328P boards would be if you already have one and can’t afford a replacement (or can’t wait for the shipping as BJHenry suggested) or if you are an advanced user interested in exploring this new chip, and don’t mind a bit of struggling with the lack of community, official, and software support. I just bought a couple of the Nano style LGT8F328P boards from Aliexpress a couple days ago to play around with and to allow me to do a better job helping out all the people who got scammed by WAVGAT. I made sure to buy them from a seller who is honest about which chips their boards have.

ok, here is the verbose compilation result as attached txt file

Thank you for the time you spend answering me.

about ordering WAVGAT:
2 monthes ago, at the end of a one year electromecanics learning I discovered the Arduino (I heard about it a few years ago).
I then ordered materials at low cost (as a workless, saving a few bucks is a must, and I just couldn’t afford elsewhere all what I get from China). Regarding the long delivery time (and there was the 2 weeks more delay with the chinese new year), I ordered a lot without looking details such as those “WAVGAT” boards (I just seen “UNO R3” and “CH340G + MEGA328P” like the others), because I just didn’t know about those considerations and I wasn’t really guided nor advised.

20190329_compil_WAVGAT-RH.txt (43.4 KB)

OK, I'm embarrassed. When I was looking at that updated WAVGAT hardware package, I got distracted by also finding a 3rd party modified version of the original package. I think I accidentally installed that package for my tests instead of the one I told you to install in my instructions. Here are the updated instructions:

  • Delete {sketchbook folder}/hardware/WAV8F
  • Download https://github.com/ericvb/Arduino-WavGat-Drivers/archive/master.zip
  • Unzip the downloaded folder
  • In the unzipped folder, move Arduino-WavGat-Drivers-master/update/libraries to Arduino-WavGat-Drivers-master/update/hardware/WAV/avr
  • Copy Arduino-WavGat-Drivers-master/update/hardware/WAV to {sketchbook folder}/hardware.
  • Restart the Arduino IDE if it's running.
  • Tools > Board > WAVGAT UNO R3

After that, the code should compile.

Sorry for the confusion.

I'm planning to do some work to make that 3rd party hardware package a little easier to install and use (actually I already started on that). I could do that for the official WAVGAT package, but I don't want to contribute to them since they are not acting ethically. I'm actually questioning how much I want to do on the 3rd party project, since that will still indirectly benefit WAVGAT, but it will also benefit the Arduino community members stuck with their boards so I think it's worth a little bit of effort on my part.

ok... it's just Woah! :astonished: :slight_smile:
(compiling and running is well working now with the RH libraries)
I think with enthusiasm about the one who by its search on "WAVGAT problem" will come to this topic and find a resolution.
be greatfully thanked for your time and your zealousness at answering. :slight_smile:
...
I'll test a little further before closing this topic as solved.

You're welcome. I'm glad to hear it's working now. Enjoy!
Per