SIM7600X 4G HAT AT+CREG? loop

Buongiorno sto cercando di utilizzare questo hat (SIM7600CE-T/E-H/A-H/SA-H/G-H 4G Modules - Waveshare Wiki) ma incontro seri problemi (sono fermo da tre giorni su questo loop). Posseggo la versione che è stata distribuita nella seconda metà del 2021, verso la fine del documento linkato in precedenza, capitolo The hardware configuration of the New Version, il punto 3 parla di: 3) Add solderable pads for VCCIO.(when used with Raspberry Pi, the SIM7600X 4G HAT is soldered at 3.3V working level by default; if you need to use 5V working-level MCU, you can change it to 5V by yourself). Questo è un ponticello saldato quindi non removibile, non so se sia uno dei problemi ma ho le idee un po' confuse a riguardo. Ho scaricato le librerie ed esempi dal sito waveshare (https://www.waveshare.com/w/upload/2/29/SIM7600X-4G-HAT-Demo.7z) , ho effettuato i collegamenti come dettato dal manuale a pagina 24 (SIM7600E-H-4G-HAT-Manual-EN.pdf), tx su rx, rx su tx, 5v e gnd. Il led network lampeggia una volta al secondo, con i comandi AT alla richiesta AT+CREG? ottengo "0,1" e con AT+COPS? ottengo "0,0,Iliad,Iliad,7"quindi parrebbe registrato sul network (scheda iliad): quando collego l' hat con la cavo usb (USB TO UART) i comandi AT vanno a buon fine anche se il led (come ho letto da alcune parti) dovrebbe accendersi e spegnersi una volta ogni 3 secondi una volta registrato sul network. Quando faccio l'upload di qualsiasi esempio (sono nel pacchetto con le librerie) rimango bloccato sulla funzione poweron() sulla richiesta AP+CREG? che non da risposta. Grazie per l'attenzione e la pazienza, scusate la confusione.

Difatti, per usarlo con Arduino a 5V senza danneggiarlo (... perché, altrimenti, di sicuro, prima o poi lo danneggi), DEVI dissaldare quel ponticello che va verso il 3.3V e saldarlo sull'altro lato dove va verso i 5V ...

Add solderable pads for VCCIO.(when used with Raspberry Pi, the SIM7600X 4G HAT is soldered at 3.3V working level by default; if you need to use 5V working-level MCU, you can change it to 5V by yourself)

Ripeto che far lavorare una scheda impostata per i 3.3V a 5V può, quasi certamente, causare danni.

Guglielmo

1 Like

Salve Guglielmo e grazie della celere risposta, proverò a saldarlo in quella posizione. Ho ancora un dubbio: con il vecchio modello per impartire i comandi AT tramite USB to UART (usando il monitor di Arduino IDE) si impostava il ponticello tra 3.3V e VCCIO. Con il ponte saldato tra 5V e VCCIO potrò ancora avvalermi di quella funzionalità? In ogni caso non mi rimane che provare, grazie ancora!

Se trovi difficoltoso dissaldare e risaldare quel piccolo ponticello, potresti usare un adattatore di livello per portare i segnali a 5V a 3.3V e viceversa, una cosa tipo QUESTA ... :roll_eyes:

Guglielmo

Ciao Guglielmo e grazie per la pazienza, ho risaldato il ponticello nella posizione corretta, purtroppo il problema persiste. Quando provo a fare up (succedeva anche prima del ponte tra 5V e VCCIO) dello sketch con il modulo collegato (pwr->2 rxd->tx txd->rx 5v gnd-> 5v gnd) mi da questo errore:
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
An error occurred while uploading the sketch

Per fare up correttamente dello sketch devo scollegare il modulo e ricollegarlo per farlo girare. Ho notato che sia che io inserisca la sim (led lampeggiante ogni secondo) sia che io non la inserisca (led fisso acceso) l'output sul monitor rimane lo stesso: durante la funzione powerOn() si blocca e continua a stampare su video AT+CREG?

Io NON credo che Arduino possa alimentare quel modulo, i moduli GSM assorbono dei picchi di corrente molto elevati, specie quando la SIM cerca di connettersi alla rete, ho idea che lo devi alimetare con alimentazione separata in grado di dare almeno un paio di A.

Verifica anche di NON occupare i pin della porta seriale di Arduino perché sono gli stessi che sono collegati al convertitore Seriale <--> USB e con i quali avviene il caricamento del codice.

Normalmente, sugli Arduino AVR, si usa creare una seriale "virtuale" da dedicare a questi oggetti, così da lasciare libera la vera seriale per il caricamneto ed il debug.

Di che modello di Arduino parliamo?

Guglielmo

1 Like

I pin occupati sono 0 e 1 rispettivamente rx e tx che vanno sul modulo (txd e rxd). Il pin 2 si collega a PWR sul modulo. Non capisco come mai prendendo librerie e esempi dal sito del produttore incontri questi problemi. L'Arduino è UNO R3. Lo sto alimentando da USB, proverò con un alimentatore esterno e ti aggiornerò. Grazie per la tua attenzione e gentilezza.

Ecco, questo è proprio quello che NON si deve fare ...
... su Arduino UNO (ma in generale su quasi tutti gli Arduino AVR), i pin 0 ed 1, che corrispondono alla seriale, sono collegati all'adattatore USB e quindi, se li occupi, NON puoi più caricare i programmi né fare debug.

I pin 0 e 1 VANNO lasciati liberi, come detto sia per il caricamento del codice che per avere la possibilità di fare debug via seriale, quindi occorre creare una seconda seriale (dato ch sulla UNO ce ne è una sola).

Hai due possibilità ....

  1. la SoftwareSerial che è tra le più usate, ma NON è certamente la migliore

  2. la AltSoftSerial che è molto più efficiente, ma che impone dei pin fissi.

Chiaramente poi dovrai dire alle varie librerie quale porta seriale usare.

Guglielmo

Ciao Guglielmo, ho restituito la 7600x e optato per arduino mkr gsm 1400, non so se ho fatto la cosa giusta, mi accorgo che opera a 3.3v e ora vorrei chiederti se posso collegare allo stesso dei sensori tipo il grove dust sensor (Grove - Dust Sensor - Seeed Wiki) che opera a 5v. E' inoltre possibile caricare e salvare (cioè che restino in memoria anche dopo il riavvio) direttamente sul mkr degli sketch? E' possibile collegare l'MKR all' UNO ed usare l'arduino GSM solo per la parte di networking o a questo punto mi conviene usare solo l'mkr? Grazie per la tua attenzione, cordiali saluti

Le schede della serie MKR lavorano a 3.3V e NON tollerano segnali a 5V per cui, qualisasi cosa che ci devi collegare, la devi rendere compatibile con tali valori.

Se si tratta di un semplice livello LOW/HIGH, senza tante complicazioni, ti basta un partitore di tensione con due resistenze, se sono invece più segnali digitali, magari anche nei due sensi, ti occorre un traslatore di livello tipo QUESTO (già indicato al mio post #4).

Sono dei normali Arduino, solo basati su una differente MCU ed operanti ad una diversa tensione, ma ... ovviamente, come su tutti gli Arduino, ci carichi i programmi e quelli restano sino a quando non li sovrascrivi.

Guglielmo