[HOWTO] Guida (più o meno) completa all'utilizzo di Moduli Bluetooth

OOOPSS!!!
...scusate, come non detto...
non avevo collegato le terre insieme..... :disappointed_relieved: :blush: :grin: :grin:

Funonzia!
ancora grazie!

Ciao

Funonzia!

ottimo!

Grazie per aver condiviso la breakout, casualmente (non sto scherzando :D) stavo lavorando pure io su una versione analoga (da un pezzo, a dire il vero), che allego intanto in pdf.
Anche qui si accettano consiglie osservazioni per migliorare il tutto.
Quando aggiorno la guida ci metto pure link github a schema e board.

v05.pdf (10.8 KB)

Bè, la tua è senza dubbio più bella e ordinata!
Però, se allarghi un pò a destra c'entra anche una strip femmina, hai visto mai che un giorno ti servono i pin.. io per esempio ci ho giocato un secondo, e i pin dal 2 al 10 si possono accendere e spegnere (LOW/HIGH) a piacimento con i comandi: AT+PIO=pin,state.
Una differenza con la tua guida, i miei modulini non accettano AT+BAUD, devo invece usare AT+UART, e se non ho capito male modifica solo la velocità del bluetooth, mentre la velocità di uscita della seriale rimane quella di fabbrica, che nel mio caso è 38400. Sbaglio?

Altra cosa della tua scheda, è che se metti il pin invece del tastino per l'AT, lo puoi solo programmare tramite Arduino, mentre col tastino lo fai da qualsiasi seriale. Però ovviamente dipende come lo usi..

Ultima cosa: sto provando dei terminali bluetooth da android, ma nessuno dialoga bene. (i caratteri arrivano strani..) sai mica perchè?

Ciao Davide.

Belle entrambe, ma il componente in Eagle dove lo posso trovare? Purtroppo sulla guida è scritto il componente HC_05 per
Eagle si può trovare qui [3]...però non ho capito bene dove :grin:

@Devon

Purtroppo sulla guida è scritto il componente HC_05 per Eagle si può trovare qui [3]

non c'è collegamento ipertestuale, ma nella webografia a fine guida, ci son tutti i link con relativo riferimento.

@dab77

Però, se allarghi un pò a destra c'entra anche una strip femmina, hai visto mai che un giorno ti servono i pin.. io per esempio ci ho giocato un secondo, e i pin dal 2 al 10 si possono accendere e spegnere (LOW/HIGH) a piacimento con i comandi: AT+PIO=pin,state.

sì, questi moduli son portentosi, hanno pure un sensore di temperatura on board...
Avevo già linkato il fw opensource, dove ci sono anche tutte le caratteristiche tecniche:

Sinceramente ho voglia di fare più breakout, dalla più basica (pure senza led e pin AT), a cose più complete, tipo quella che hai fatto tu.
Quella che ho postato vorrebbe essere una breakout base da montare poi su eventuale shield arduino o su sistemi embedded.

Altra cosa della tua scheda, è che se metti il pin invece del tastino per l'AT, lo puoi solo programmare tramite Arduino, mentre col tastino lo fai da qualsiasi seriale.

:smiley: è vero, ci ho pure pensato molto.
Ho guardato quel che proponeva il mercato, e il pin AT era a volte portato sul pin header (come ho fatto io), altre volte gestito con un pulsante (come hai fatto tu).
Il bottone però mi portava via troppo spazio ]:slight_smile:
Quando è sulla breadboard, lo connetto semplicemente alla 3.3v , se devo programmarla.

Ma questo confronto mi ha fatto pensare che la cosa più semplice sarebbe una coppia di pin header da ponticellare per la programmazione.
Quindi si risparmierebbe pure lo spazio dell'interruttore :stuck_out_tongue:
Che ne pensi?

Una differenza con la tua guida, i miei modulini non accettano AT+BAUD, devo invece usare AT+UART, e se non ho capito male modifica solo la velocità del bluetooth, mentre la velocità di uscita della seriale rimane quella di fabbrica, che nel mio caso è 38400. Sbaglio?

bravo, un'altra cosa da chiarire!
Sui moduli HC06, i linvor, i comandi son tutti pubblicati perchè son 4 in croce - e lì si usa AT+BAUD per settare il baudrate.
Nei modulo HC05 i comandi son molti di più, e non li ho riportati tutti; con questi si utilizza AT+UART per lo stesso scopo.
Riguardo alla velocità, da quel che ne so e che ho provato, la velocità dela seriale cambia.

Ultima cosa: sto provando dei terminali bluetooth da android, ma nessuno dialoga bene. (i caratteri arrivano strani..) sai mica perchè?

come hai programmato android?
Hai provato prima la comunicazione pc <-> pc?

pitusso:
non c'è collegamento ipertestuale, ma nella webografia a fine guida, ci son tutti i link con relativo riferimento.

oops che scemo che sono :roll_eyes:, grazie!

@devon
non preoccuparti, non è molto chiaro il riferimento - provvederò pure a quello :slight_smile:
Se fai qualcosa di interessante, non fare il timido e condividi :stuck_out_tongue:

Certamente! 8) Per ora sto cercando di prendere un pò di confidenza con Eagle.

Per il FW open source sto aspettando.. prima mi imparo ad usare quello base, però si, l'avevo già segnato il link che hai postato.

per il pin AT, in effetti io il tastino l'ho saldato sopra un pin-header maschio, cosicchè lo posso poi togliere e usare un jumperino per cortocircuitare all'occorrenza e risparmiare spazio.

Il minimal secondo me dovrebbe avere solo i pad per saldare il modulino, tutti ri-portati su pin header maschio, con passo stansard. cosi da poterlo poi montare su qualsiasi altro circuito stampato home-made.
In questo modo si può sfilare il modulino e cambiarlo o usarlo altrove, senza doverlo dissaldare. Anzi a ripensarci avrei dovuto farlo così...

Per la comunicazione pc-pc mi manca un pc con BT... quindi volevo provare col telefono. ci sono ben 4 app gratuite tipo gtkterm (ma senza tante impostazioni..), e però vanno e tornano caratteri sbagliati.. ora provo con quest'altro: http://it.androidzoom.com/android_applications/tools/bluetooth-spp_blkqz.html vediamo come va.

Io ho in mente una cosa... ma visto che il bluetooth si usa anche per far andare audio in wifi, cosa gli mancherebbe a questi moduletti per adempiere alla trasmissione? ..Immagino un convertitore DAC e un ampli.
Si potrebbe fare secondo voi?

ma visto che il bluetooth si usa anche per far andare audio in wifi, cosa gli mancherebbe a questi moduletti per adempiere alla trasmissione? ..Immagino un convertitore DAC e un ampli.
Si potrebbe fare secondo voi?

sul datasheet proprio di questi moduli, è segnato anche audio in/out.
Inoltre su web si trovano auriolari BT basati su modulo BC4 - lo stesso integrato presente nel ns. modulo.
Quindi a mio avviso si può fare!

Ho inoltre letto che:

with on board RF power amplifier which can provide maximum output power up to 17dBm.

ovvero può diventare di classe 1!

Gran bel lavoro e grazie della citazione :slight_smile:
Mi sono arrivati i tipi nuovi ad un chip, gli hc07. Se trovo differenze importanti riporterò qui

pitusso:

ma visto che il bluetooth si usa anche per far andare audio in wifi, cosa gli mancherebbe a questi moduletti per adempiere alla trasmissione? ..Immagino un convertitore DAC e un ampli.
Si potrebbe fare secondo voi?

sul datasheet proprio di questi moduli, è segnato anche audio in/out.
Inoltre su web si trovano auriolari BT basati su modulo BC4 - lo stesso integrato presente nel ns. modulo.
Quindi a mio avviso si può fare!

Ho inoltre letto che:

with on board RF power amplifier which can provide maximum output power up to 17dBm.

ovvero può diventare di classe 1!

Fantastico! ok studieremo anche queste vie..

nel frattempo sono riuscito a trovare un netbook col BT e ubuntu.
Purtroppo stesso problema, quindi non dipende dalle app android troppo semplici.
sia comunicando con gtkterm che con putty ho lo stesso problema. caratteri sballati.

ALTT!!! mentre scrivevo ho riprovato a reimpostare la velocità e a 38400 baud ora va!!!
TUTTAPPOSTO!! (chissà che avevo combinato...la stanchezza...)

ok! mo me sa che ho sonno.. Grazie ancora. a presto!

Davide.

Allora, ora che li ho provati posso mettere i nomi dei terminali bluetooth da usare su android:
-SENA BTerm
-Uconnect BT
-TerminalBT
-BluetoothSPP

Premesso che funzionano tutti, SENA è il più completo di impostazioni, poi BluetoothSPP. Gli altri due invece sono semplici semplici.
Tutti gratuiti sull'app store.

Ciao!

@dab77

TUTTAPPOSTO!!

]:slight_smile: è il secondo falso allarme nello stesso thread !

nomi dei terminali bluetooth da usare su android

i test li ho sempre fatti da pc, e da smartphone l'unico terminale seriale bt usato è stato BlueTerm, segnalato da ratto93.
Non mancherò di installarmi almeno i due consigliati!

@Testato

Gran bel lavoro e grazie della citazione

grazie a te che sei stato di stimolo!

Mi sono arrivati i tipi nuovi ad un chip, gli hc07. Se trovo differenze importanti riporterò qui

approfitto e ti chiedo subito la sigla dell'integrato: è sempre un BC417?

Spettacolo! Gran bel lavoro, chiaro e diretto al punto. Grazie e complimenti! :slight_smile:

pitusso:
approfitto e ti chiedo subito la sigla dell'integrato: è sempre un BC417?

No, ti scrivo tutto cio' che c'e' scritto sul chip (non ho ancora avuto tempo per decifrare tali info e cercare un datasheet)

CSR
41C6
71AU
K805RB

appunto qui i miei appunti :slight_smile:

  • perche' non fai un unico PDF con i vari capitoli, invece di tanti pdf separati ?
  • lo schema in nero nella prima pagina e' fastidioso, puoi invertirlo con un programma di grafica se non hai il file eagle
  • quando scrivi: inviare LF e CR (\r\n), lo cambierei in "inviare CR e LF (\r\n)"
  • errore a pagina8 programmazione: per ottenerne la versione di fw (comando: AT+NAME?\r\n) mettere VERSION al posto di NAME
  • e' da chiarire quando dici che la velocita' standard degli HC05 e' 38400, in realta' la velocita' di comunicazione settata di fabbrica e' uguale per tutti i moduli e cioe' 9600, e' la velocita' da usare per la programmazione AT che e' 38400. Per spiegarmi meglio, se tu prendessi un modulo HC05 e lo lasciassi cosi' come da fabbrica, per collegarti dovresti usare 9600.

Ci manca una piccola descrizione di come funziona il bluetooth, qualche test di distanza, qualche esempio applicativo e poi la puoi andare a far stampare e mandare alle librerie :slight_smile:

TESTATO :slight_smile:

Non ho trovato per ora nessuna differenza tra HC-06 ed il mio HC-07, se non il fatto che il chip e' unico, ed e' un diverso modello.
Il tutto e' sottolineato dalla versione che risulta essere "Linvor V1.6", probabilmente un'aggiornamento soltanto tecnico, per supportare il nuovo chip.

Cosa aggiungerei quindi alla guida per quanto riguarda HC06/07 :

  • Bluetooth name standard: linvor
  • Possibilita' di settaggio della Parita'
    AT+PN -> None
    AT+PE -> Even
    AT+PO -> Odd
  • nelle versioni Master c'e' una funzione KEY (su pin 26) per cancellare il pairing, perche' questi moduli una volta che si sono accoppiati non si lasciano piu'. Solo mettendo ad High (+3,3V) questo pin il modulo inizia una nuova ricerca, altrimenti cerca solo e soltanto il modulo accoppiato.

in generale per tutti i moduli aggiungerei questo:

  • Il Reset pin 11 puo' essere lasciato float senza problemi, perche' ha una pullup interna

Spero che sia questi miei test, che le note precedenti, possano essere utili alla causa.
tanto era dovuto, porgo distinti saluti :slight_smile:

Ciao,
grazie dei feedback.

@Testato:
il chipset è diverso, e anche se dovrebbe rientrare nella serie BC4, vorrei approfondire similitudini e differenze rispetto agli HC05 e HC06.
Quindi sto rimuovendo il modulo HC07 dalla guida, fino alla raccolta di maggiori informazioni.

EDIT: leggo nel mentre la tua risposta

Cosa aggiungerei quindi alla guida per quanto riguarda HC06/07 :

  • Bluetooth name standard: linvor

pure pr HC07? :stuck_out_tongue:

  • Possibilita' di settaggio della Parita'
    AT+PN -> None
    AT+PE -> Even
    AT+PO -> Odd

questo non c'è su HC06

  • nelle versioni Master c'e' una funzione KEY (su pin 26) per cancellare il pairing, perche' questi moduli una volta che si sono accoppiati non si lasciano piu'.

ma la modalità di HC07 non è aggiornabile via AT?

Solo mettendo ad High (+3,3V) questo pin il modulo inizia una nuova ricerca, altrimenti cerca solo e soltanto il modulo accoppiato.

relativamente agli HC06 non ho esperienza, avendo solo slave.
Per quel che riguarda HC05, non ci son questi problemi :grin:

in generale per tutti i moduli aggiungerei questo:

  • Il Reset pin 11 puo' essere lasciato float senza problemi, perche' ha una pullup interna

certo, qualche post fa ho ammesso di aver trascurato una descrizione approdondita dei moduli, che ho cmq pronta - si parla di consumi, classe (e quindi portata), etc

Poi:

  • perche' non fai un unico PDF con i vari capitoli, invece di tanti pdf separati ?

li ho lavorati separatamente, e così li ho tenuti per comodità prima di tutto mia, poi per permettere di scaricare solo la parte di interesse.
In realtà sto spostando le guide su blog, in modo da gestire aggiornamenti più velocemente, e lì manterranno tale divisione.

  • lo schema in nero nella pirma pagina e' inguardabile, puoi invertirlo con un programma di grafica se non hai il file eagle

l'ho rimpicciolito, è uno degli schemi distribuiti dai vendor.
Posso invertire nero con bianco, anche se la resa dubito sarà buona , ma provo a breve.

  • quando scrivi: inviare LF e CR (\r\n), lo cambierei in "inviare CR e LF (\r\n)"

hai pienamente ragione, me lo son perso nella rilettura (almeno, ne ho trovato solo 1)!

  • errore a pagina8 programmazione: per ottenerne la versione di fw (comando: AT+NAME?\r\n) mettere VERSION al posto di NAME

altra cosa persa! Segnato e pronto all'aggiornamento!

  • e' da chiarire quando dici che la velocita' standard degli HC05 e' 38400, in realta' la velocita' di comunicazione settata di fabbrica e' uguale per tutti i moduli e cioe' 9600, e' la velocita' da usare per la programmazione AT che e' 38400. Per spiegarmi meglio, se tu prendessi un modulo HC05 e lo lasciassi cosi' come da fabbrica, per collegarti dovresti usare 9600.

uhm questa è da approfondire. La velocità di default è quasi per tutti 9600 - quella dell' HC05, avendoci fatto parecchie modifiche, non me la ricordavo e avevo ritrovato il datasheet del venditore, in cui era segnato appunto 38400.

In realtà, cambiando baudrate, se reimpostavo la seriale a cui era connesso il modulo (es. con adattatore usb2serial), mettendo la nuova velocità la comunicazione avveniva senza problemi. Viceversa no.
Quindi quel che ne deduco è che esiste una sola velocità, che vale sia per la seriale via bt che quella "fisica".

Infine, in risposta alle considerazioni condivise con dab77, ho aggiornato la breakout base, che allego in pdf.
Sostanzialmente ho eliminato dal connettore il pin AT; la programmazione viene gestita con un jumper sulla board stessa.
Inoltre, ipotizzando di usare la board indistintamente con HC05 e HC06, ho messo un solder jumper per gestire il diverso pin del led pairing.

Metto qui pure il link del repository di queste board:

la v06 è quella di cui parlo sopra, e che è allegata come pdf.
Ce ne sono poi altre spiegate nel readme, in particolare la v01 è una breakout completa (ovvero, tutti i pin del modulo vanno all' header).

Altra eventuale modifica è gestire anche i pin CTS e RTS, in modo che il modulo possa essere utilizzato anche per l'upload di sketch su Arduino :wink:

v06.pdf (11.9 KB)