Comments (10)
And do you knnow what else needs to be done to enable it? The SX127x datasheet doesn't really tell:
RadioLib has god mode which you can use to directly access SPI registers. Feel free to experiment using that, but I think this is going to be slightly more complicated than just setting a single bit.
from radiolib.
Thanks for the additional info @Velocet!
I still don't think it's worth it to have additional methods to enable/disable io-homecontrol, especially since it's still unclear to me what other steps are needed apart from setting the regiter bit.
Since a workaround using low-level/godmode access exists, I will close this issue now. However, I also don't want any future libraries to rely on this workaround. So @leobel96 if in you get past the inital testing into some future library, I will be happy to accept PRs addressing this.
from radiolib.
@Velocet If the ioHome mode is not needed, I would rather not set it and try with the configuration you sent me (also considering that the ioHome mode is not documented at all). I had a look at the Telegram channel and I saw some working configurations there as well. Thank you a lot for your help!
from radiolib.
It's disabled on purpose, there was never any reason to include io-homecontrol support in RadioLib. Do you see a need for it?
from radiolib.
Yes, I'm trying to emulate an io-homecontrol remote and enabling the io-homecontrol mode seems like an obvious choice for my application π
from radiolib.
If you enable this bit then the following things happen:
- io-homecontrol UART encoded SyncWord can be used directly: 0xFF33. So there's some decoding going on...
- Automatic CRC Check incl. removal/insertion
- Now Variable Length Paket Mode can be used
- Correct Parsing/Insertion of PacketSize: only 5 bits from first payload byte are used to define size of paket
- SyncSize (Size of Sync word) = (SyncSize + 1 bytes) becomes (SyncSize bytes) if ioHomeOn=1
IoHomePowerFrame:1; // CRC LFSR init: 0=0x1d0f, 1=0x0000=powerlink
This mode is (at least) available in the following model ranges:
- SX127x
- SX123x
- derivatives (which use the same registers): RFM66W, RFM95/96/97/98(W), etc.
- ADF7022
@leobel96
IMHO: Since newer LoRa32 boards all use a SX126x you should not invest any time into this mode. But for testing it is great. As jgromes suggested you can always use the light variant of the god mode and set the bit yourself. If you have any questions feel free to join our chat.
from radiolib.
@Velocet I'm actually glad that you joined the chat: my idea was to use the great investigation you did (https://github.com/Velocet/iown-homecontrol) to come up with a library similar to https://github.com/cridp/IOwnHC_ESP8266_ESP32-SX1276_CC1101but more flexible (thanks to Radiolib) and with more features. I noticed that they were setting the io-homecontrol register, so I thought that it was something mandatory for this application. Reading the datasheet of the SX1276, it just says:
Please contact your local Semtech representative
for details on its implementation.
from radiolib.
@leobel96 We can fork RadioLib and build upon the new LoraWan implementation. Just implement it like RadioLib did with LoraWan as a module/protocol. This way we could use upstream RadioLib with just some additions.
from radiolib.
@Velocet sure. Is enabling the io-homecontrol mode mandatory though? Isn't it feasible just setting the right parameters (bw, freq, sync word, ...) that are currently accessible?
from radiolib.
Nope, the ioHome mode is not needed but makes things easier for testing. You can just rely on this mode and build your iohc lib around it but from my point of view this would be sad as this could only be used from folks who happen to own a SX127x based LoRa32.
I forked RadioLib and will add you as a contributor? Sadly i wonβt have much time till the end of next week (got a lot of work to do). The plan is to write an abstraction for the RadioLib supported modules which sets the same Rx/Tx values for every module.
If you just want the raw values for iohc Rx/Tx:
Frequency: 868,95 MHz
Deviation: 19,2 kHz
BaudRate: 38400 bps
Encoding: NRZ
Preamble: 0x55 (at least three byte)
SyncWord: 0xFF33 (encode as UART with LSB first!)
Rx Bandwith: 25 - 50 kHz
Please join the Discord or Telegram if you have more questions as i donβt want to abuse this RadioLib issue for iohc related stuff.
from radiolib.
Related Issues (20)
- Sending more than one message in POCSAG HOT 1
- 'virtual float PhysicalLayer::getRSSI()' was hidden ESP-IDF HOT 10
- Feature request: AX.25 parser HOT 4
- Think I introduced a bug with Promiscuous (requireCarrierSense) when used with directMode HOT 2
- Move Raspberry Pi example to another GPIO library HOT 11
- Better error handling in the HAL HOT 3
- CC1101 Direct Mode getRSSI() only ever returns -74.0 HOT 2
- importing Radiolib into VSCODE + Platformio with NRF52840 board does not compile HOT 13
- SX1280 startTransmit after CAD not working HOT 4
- Move examples to a separate repository HOT 14
- Invalid calibrateImage parameters prevent initializing with 915MHz frequency on SX126x-based STM32WLx HOT 2
- #include <Radiolib/SX1262.h> is available to use less space than the hole library? HOT 1
- Minor issue in startReceiveDutyCycleAuto HOT 3
- GFSK support for SX1231/RFM69 and SX127x/RFM9x HOT 2
- Support for MSPM0 Microcontroller HOT 1
- STM8 Arduino HOT 2
- This line cause errors when build HOT 1
- AFSK not working on LILYGO T3_V1.6.1 HOT 2
- Examples not running on seed studio XIAO esp32C3 HOT 7
- Extra bits after the message using RFM69HCW module on feather 32u4 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from radiolib.