Ad oggi Souliss non prevede “Chibi + scheda ENC28J60” tra le configurazioni di base facilmente impostabili tramite il file di configurazione veloce “QuickCfg”.
Poco male, disabilitiamolo ed impostiamo manualmente tutti i file di configurazione di Souliss.
Prima di tutto assicuriamoci che la scheda ENC28J60 abbinata ad Arduino funzioni correttamente. Infatti, tolta la sua funzionalita wireless onboard, Chibi diventa tale e quale ad Arduino, quello classico
Per iniziare collego la scheda ethernet ENC28J60 a Chibi in questo modo (stessi collegamenti che faremmo sulla scheda Arduino originale):
<pre>—————————
Collegamenti modulo Ethernet HR911105A
basato su chip Microchip ENC28J60
SCK: pin 13 di Arduino
SO: pin 12 di Arduino
SI: pin 11 di Arduino
CS: pin 10 di Arduino
RESET: pin reset di Arduino
—————————</pre>
Test di Souliss con “Arduino + ENC28J60 Ethernet Shield”
Carico uno sketch tra quelli proposti tra gli esempi: “Souliss_ex01_HelloWorld_eth1” andrà benissimo.
Prima, però, è necessaria una piccola modifica al file Souliss/conf/QuickCfg.h
Selezioniamo la Board Type 0x05, così:
define QC_BOARDTYPE 0x05
Poi colleghiamo un led al pin 9 (anche senza resistenza), ed un pulsante al pin 2 (è necessaria la resistenza di pulldown)
A questo punto carichiamo lo sketch ed eseguiamo il test.
Ho già parlato di questo test e della configurazione dell’applicazione Android in questo articolo: https://www.xorse.it/2013/05/24/domotica-partiamo-con-souliss/
Test di Souliss con “Chibi + ENC28J60 Ethernet Shield”
Adesso, per testare il funzionamento di Souliss sulle schede Chibi, ho bisogno di caricare souliss su entrambe le mie Chibi board.
Una delle due schede, dovrà funzionare da supernodo, cioè il nodo collegato sia alla rete LAN che alla rete formata dai moduli radio 2.4 GHz (non wifi) di Chibi.
Per fare in modo che tutto funzioni sarà necessario, come detto in premessa, configurare manualmente il sistema, infatti la configurazione che mi accingo a provare non è prevista direttamente tramite il file “Quick Configuration”.
Ad uno ad uno apro i vari file di configurazione e modifico le impostazioni:
file “conf/QuickCfg.h”
#define QC_ENABLE 0x00
file “conf/ethUsrCfg.h”
# define ETH_ENC28J60 1
file “conf/hwBoards.h”
# define BOARD_MODEL 0x01
# define COMMS_MODEL 0x02
file “conf/vNetCfg.h”
# define VNET_SUPERNODE 1
# define VNET_MEDIA1_ENABLE 1 // probabilmente non serve modificare, è già il valore di default
# define VNET_MEDIA2_ENABLE 1 // probabilmente non serve modificare, è già il valore di default
le modifiche seguenti sono da prendere “con le pinze”, provare a fare piccole variazioni in caso di instabilità del supernodo:
file “conf/chibiUsrCfg.h”
#define CHB_RX_POLLING_MODE 1 (dalla vers. 4.4.5 non è possibile modificare, perchè l’IDE restituisce errore di compilazione)
#define CHB_MAX_PAYLOAD 100
#define CHB_MAX_FRAME_RETRIES 10
#define CHB_MAX_CSMA_RETRIES 8
Fatte queste piccole modifiche, siamo pronti per caricare lo sketch “Souliss_ex02_FiatLux_eth1” e verificare che tutto funzioni correttamente.
Prima di fare l’upload ricondiamoci di selezionare il tipo di arduino corretto per la Chibi: “Arduino Pro or Pro Mini, 3.3V, 8 MHz, ATMega328”.
Step 2:
Per verificare che anche l’interfaccia radio della Chibi funzioni a dovere carichiamo lo sketch “Souliss_ex02_FiatLux_eth2”, predisponiamo due pulsanti (istruzioni all’interno dello sketch) e, dopo aver letto le righe che seguono, eseguiamo l’upload.
ATTENZIONE:
- Gli indirizzi dei nodi devono essere assegnati rispettando dei prefissi, che dipendono dal tipo di comunicazione usata:
-da 0x0000 a 0x65FF se il nodo comunica via ethernet;
-da 0x6500 a 0xAAFF se il nodo comunica via radio 2.4GHz; - I nodi presenti nel sistema Souliss devono essere dichiarati all’interno del supernodo
Infatti i nomi e l’indirizzamento delle interfacce di comunicazione dei nodi, all’interno degli sketch, sono stati dichiarati in questo modo:
#define network_address_1 0x0011
#define network_chibi_address1 0x6511
#define network_chibi_address_2 0x6512
Sketch Supernodo: [Download not found]
Sketch Nodo: [Download not found]
Quanto scritto e proposto è stato accuratamente testato ma nonostante ciò non escludo la presenza di eventuali errori. Saranno graditi commenti e consigli.
Ciao Antonino,
in effetti non risulta tra le configurazioni disponibili e non è mai stata ufficialmente testata.
Però questo tuo articolo è di spunto per aggiungere nelle prossime versioni la configurazione diretta attraverso QuickCfg.h
Grazie mille!
Saluti,
Dario.