IBUSBM arduino nano EVERY

Sto provando la libreria IBUSBM su arduino nano every lo sketch di setup è il seguente:
#include <IBusBM.h>

IBusBM ibusRc;

void setup() {

Serial.begin(115200); // Start Serial usb connection

ibusRc.begin(Serial1, IBUSBM_NOTIMER);

}

Ma quando compilo su arduino nano mi da il seguente errore
error: 'HardwareSerial' has not been declared
void begin(HardwareSerial &serial, int8_t timerid=0, int8_t rxPin=-1, int8_t txPin=-1);

SU arduino uno invece tutto funziona perfettamente.
Sapreste aiutarmi?
Andrea

Guarda, Arduino Nano Every, è una scheda completamente diversa dalle classiche Arduino AVR, è di nuova generazione e monta una MCU diversa per cui ... le librerie che sono fatte legandosi all'hardware delle vecchie MCU (come, sembra, quella che stai usando), NON sono compatibili con le nuove/differenti MCU.

Devi provare a guardare se dentro il .h della libreria ci sono delle opzioni per poter usare qualche altra cosa o devi provare a contattare l'autore per vedere se la modifica o ... devi modificartela da solo ... :roll_eyes:

Un'altra cosa, fosse anche per una sola riga, ma ... in conformità al REGOLAMENTO, punto 7, cortesemente edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice.

Inoltre, così com'è non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE). Grazie.

Guglielmo

Sono andato a dare un'occhiata alla libreria che dovrebbe essere QUESTA ...
... è chiaramente indicato che la famiglia megaAVR è attualmente in fase iniziale (commento al .h in GitHub: Inital support MegaAVR) per cui, magari, ci potrebbe ancora essere qualche piccolo problema con il ATmega4809 che è la MCU montata sulla Every ... :roll_eyes:

Comunque, la libreria verifica ...

#if !defined(ARDUINO_ARCH_MEGAAVR)
   class HardwareSerial;
#endif

... quindi, se per la Every viene definita l'achitettura ARDUINO_ARCH_MEGAAVR dovrebbe cercare di gestirla correttamente.

Mi viene però un dubbio ...
... quando si seleziona la Arduino Nano Every nell'IDE appare un'ulteriore opzione:

Registers Emulation

... che può valere ATMEGA328 oppure NONE (ATMEGA4809) ... hai selezionato questa seconda opzione? Perché magari quella libreria, vedendo che la scheda è definita MegaAVR (perché ho verificato ed, in compilazione, usa ARDUINO_ARCH_MEGAAVR) non vuole che simuli un ATMEGA328, ma vuole i veri registri del ATMEGA4809.

Fai un po' di prove e facci sapere ... :wink:

Guglielmo

Effettivamente con la libreria che mi hai linkato, funziona sul nano.
Io usavo la IBUSBM-1.4 scaricata dal link delle librerie ufficiali di arduino.
In ogni caso ti ringrazio. L'architettura usata da me è la ATMEGA4809
Andrea

Bene, grazie :slight_smile:

Guglielmo