Hallo Spokky,

spiel mal ein bißchen mit den Werten in der Rf12_ready-Routine.

Das Problem hatte ich auch. Offensichtlich kommt da hin und wieder der Timeout zu früh :

Sub Rf12_ready
Reset Spi_cs
For I = 1 To 1500
If Spi_sdo = 1 Then Exit For
Next
End Sub

Im Extremfall einfach keinen Timeout programmieren :

Sub Rf12_ready
Reset Spi_cs
Do
Loop Until Spi_sdo = 1
End Sub

Thomas