Purtroppo quel codice è pessimo, ma è gia una base su cui lavorare.
Io non posso occuparmene, o meglio se chiedi e spieghi nel dettaglio come deve gestire il pin SS lo possiamo fare modificabile e gestito meglio di come è adesso, qui le competenze non mancano, (manca il tempo) ma come vedi non bastano perchè è necessario capire il protocollo.
Io non ho indagato più di tanto sul protocollo, mi sono accorto per caso di quella #define non usata nel codice.
Però se ti metti a studiare il protocollo e vuoi una mano, dillo entro domani, perchè farò una altra settimana full-immersion tra IFace, IPlugin, IObserve ecc, ma nelle pause per riprendermi posso dedicarti tempo.
Ciao.