Super, danke fürs Posten des Codes.
Jetzt muss ich mich selber zitieren:
Die Python Implementierung kannte ich bisher nicht, finde sie aber echt klasse.
Naja.
Ich habe sofort einen RFM69CW (ohne H) an meinen Raspi 1 Model B angeschlossen und bin auch sofort auf Probleme Gestossen:
1. Den Port 29 für den Reset gibts am Raspi 1 nicht. Ist trivial, man muss halt beim Deklarieren der Instanz noch ein resetPin=15 hinzufügen (Port ist egal solange er auf dem Raspi 1 existiert).
2. Den reset Pin brauchts nicht, man kann den dafür vorgesehenen Code ohne Weiteres rausloeschen.
3. set_power_level(self, percent) in radio.py: Die Angabe in Prozent ist voelliger Schwachsinn, das kann sich nur jemand ausgedacht haben der von HF keine Ahnung hat. Die Skala ist nämlich logarithmisch, nicht linear. Wenn man "70" Prozent angibt, kommt man auf Power Level 22. Das ist 9 dB unter dem maximalen Pegel, also 1/4 der Leistung, nicht 70%
4. Ein echter und folgenreicher Fehler ist diese Zeile:
self.powerLevel = int( round(31 * (percent / 100))) in Zeile 158 in radio.py. Da die Variable percent ausdrücklich als Integer Wert deklariert wird (warum eigentlich?), wird aus der Division percent/100 eine Integer Division also 70/100 = 0. Tippe mal im interaktiven Python Modus "70/100" ein, dann weisst du was ich meine. Das heisst am Ende sendest du IMMER mit Power Level 0, was etwa -18 dBm entspricht und deine Reichweite ziemlich einschränkt. Man sollte (MUSS!!!) die Zeile so abändern:
self.powerLevel = int( round(31 * (percent / 100.0))). Jetzt wird eine Floating Point Division draus, und gut ist's. Das mit den Prozent würde ich aber auch am liebsten sofort ändern, siehe Punkt 3.)
Wenn du natürlich 100 Prozent eingibst, bekommst du maximale Leistung, weil die Integerdivision 100/100= 1 ergibt.
Python 2.7.3 (default, Nov 24 2017, 21:13:24)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 70/100
0
>>> 70/100.0
0.7
>>>
So, jetzt bin ich aber leider überfragt wie es von hier aus weitergeht. In der Bibliothek ist ein heftiger Bug, den muss man korrigieren. Als "quick and dirty"
Loesung ist mir bisher nur eingefallen, die Bibliothek an Ort und Stelle zu modifizieren. Sie steht bei mir hier:
/usr/local/lib/python2.7/dist-packages/RFM69
Mit dem Editor nano hab ich aus 100 100.0 gemacht und schon habe ich die gewünschte Leistung am Spektrum Analyzer.
Die High-Power Modi sind aber auch in diesem Treiber nicht richtig umgesetzt, siehe hier: