Skip to content

Commit f1daf61

Browse files
committed
Fix byte strings, AFC reg access, buffer sizes, and verified interop with Arduino RadioHead raw library examples.
1 parent 85c61ae commit f1daf61

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

adafruit_rfm69.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -239,11 +239,11 @@ def __set__(self, obj, val):
239239

240240
rx_bw_exponent = _RegisterBits(_REG_RX_BW, offset=0, bits=3)
241241

242-
rx_afc_dcc_freq = _RegisterBits(_REG_AFC_BW, offset=5, bits=3)
242+
afc_bw_dcc_freq = _RegisterBits(_REG_AFC_BW, offset=5, bits=3)
243243

244-
rx_afc_mantissa = _RegisterBits(_REG_AFC_BW, offset=3, bits=2)
244+
afc_bw_mantissa = _RegisterBits(_REG_AFC_BW, offset=3, bits=2)
245245

246-
rx_afc_exponent = _RegisterBits(_REG_AFC_BW, offset=0, bits=3)
246+
afc_bw_exponent = _RegisterBits(_REG_AFC_BW, offset=0, bits=3)
247247

248248
packet_format = _RegisterBits(_REG_PACKET_CONFIG1, offset=7, bits=1)
249249

@@ -267,7 +267,7 @@ def __set__(self, obj, val):
267267

268268
payload_ready = _RegisterBits(_REG_IRQ_FLAGS2, offset=2)
269269

270-
def __init__(self, spi, cs, reset, frequency, *, sync_word='\x2d\xd4',
270+
def __init__(self, spi, cs, reset, frequency, *, sync_word=b'\x2D\xD4',
271271
preamble_length=4, encryption_key=None, high_power=True):
272272
self._tx_power = 13
273273
self.high_power = high_power
@@ -351,7 +351,7 @@ def _write_from(self, address, buf, length=None):
351351
with self._device as device:
352352
self._BUFFER[0] = (address | 0x80) & 0xFF # Set top bit to 1 to
353353
# indicate a write.
354-
device.write(self._BUFFER, end=2)
354+
device.write(self._BUFFER, end=1)
355355
device.write(buf, end=length)
356356

357357
def _write_u8(self, address, val):
@@ -511,7 +511,7 @@ def frequency_mhz(self):
511511
msb = self._read_u8(_REG_FRF_MSB)
512512
mid = self._read_u8(_REG_FRF_MID)
513513
lsb = self._read_u8(_REG_FRF_LSB)
514-
frf = (msb << 16) | (mid << 8) | lsb
514+
frf = ((msb << 16) | (mid << 8) | lsb) & 0xFFFFFF
515515
frequency = (frf * _FSTEP) / 1000000.0
516516
return frequency
517517

@@ -740,7 +740,7 @@ def receive(self, timeout_s=0.5, keep_listening=True):
740740
packet = None
741741
else:
742742
# Read the 4 bytes of the RadioHead header.
743-
device.readinto(self._BUFFER, end=5)
743+
device.readinto(self._BUFFER, end=4)
744744
# Ignore validating any of the header bytes.
745745
# Now read the remaining packet payload as the result.
746746
fifo_length -= 4

examples/simpletest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
# Optionally set an encryption key (16 byte AES key). MUST match both
2727
# on the transmitter and receiver (or be set to None to disable/the default).
28-
rfm69.encryption_key = '\x01\x02\x03\x04\x05\x06\x07\x08\x01\x02\x03\x04\x05\x06\x07\x08'
28+
rfm69.encryption_key = b'\x01\x02\x03\x04\x05\x06\x07\x08\x01\x02\x03\x04\x05\x06\x07\x08'
2929

3030
# Print out some chip state:
3131
print('Temperature: {0}C'.format(rfm69.temperature))

0 commit comments

Comments
 (0)