What is wrong with using WiFi? That's a good go-to for non-trivial payloads, and because of the huge volume, a WiFi adapter you can use with arduino costs less than a cup of coffee (I'm thinking of the ESP8266 modules).
Im trying to build an HID device with wireless capabilities. Both BlueTooth and Wifi are fine in all terms except I want to skip the pairing process and have the Tx and Rx sides generic for each other.
Thanks for the suggestion. Dow you happen to know of other RF hobbyist friendly technology?
Thank you all for your responses.
My main issue was adding a delay on Tx side between each package, otherwise Rx side would fail to acknowledge package reception. I though it would be an issue when numerous packages sent so I was looking for a workaround. But after refactoring it seems neglectable.
srnet: I was had something continuous in mind: like serial comm or HC-12 as Geek Emeritus suggested
BJHenry: Sending multiple packets was a problem for me, as I was using screen's memory card as storage for received data. Screen expects single SPI transaction to receive data for reason I don't fully understand (otherwise it would not work).
I worked around that and now it works.
Robin2: Thanks, I am already relaying on your tutorial in my code.
misha782:
srnet: I was had something continuous in mind: like serial comm or HC-12 as Geek Emeritus suggested
I think you will find that the HC-12 is packet based, it only gives the appearance of being continuous.
Also the HC-12 receive is not error checked, so its not a good choice if your 'large data transactions' cannot tolerate an unknown number of data errors.
From what I've seen in the library of HC-12 it's using HardawerSerial to transmit data so it utilizes Serial.Read() to read data from buffer. It answers the condition of reading bytes one by one but it has no 'protocol' nor does it have data validation.
I never used this technology nor did I read about it, but from the library code I guess it transfers single-byte at a time. And that's exactly what I meant by continuous.
I've refactored my code to handle Rx by chunks instead of byte by byte, as was suggested, and it now works great.
I was surprised to find out that RF24 protocol ONLY supports package transactions and NOT single byte transactions
misha782:
[......]
. It answers the condition of reading bytes one by one
[......]
I was surprised to find out that RF24 protocol ONLY supports package transactions and NOT single byte transactions
You are confusing the interface between the Arduino and the module with the way that the module actually transfers data to its sibling.
You can easily get an nRF24 to send messages that only contain a single byte - but why would you when it is much more efficient to send up to 32 bytes in a message.
misha782:
I was had something continuous in mind: like serial comm or HC-12 as Geek Emeritus suggested
There are a number of modern RF chipsets able to work as RF modem: many members of Semtech LoRa family, STM S2-LP, Silabs Si4455/Si4460, etc. This days chinese manufactures offer RF LoRa modules cheaper than naked Semtech LoRa chips in Digi-Key.
What do you mean by large transactions?
Most of the common radio transceivers use a half duplex radio link, ie they cant send and receive at the same time .
If you are trying to send large amounts of bidirectional data, then you will need a full duplex radio link , and they are pricey and in most countries need licensing.