-
-
Notifications
You must be signed in to change notification settings - Fork 652
Fix Random function #395
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
sabas1080
wants to merge
14
commits into
sandeepmistry:master
Choose a base branch
from
sabas1080:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Fix Random function #395
Changes from 4 commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
6f5ab06
fix lora random added LoRandomSeed
sabas1080 4d8f700
Add example LoRandom
sabas1080 ebe3bfd
numbers to hex
sabas1080 318627b
define for SAMR34
sabas1080 4d72620
fix typo
sabas1080 b51bf9f
fix name
sabas1080 4753838
Added function beginRandom
sabas1080 28c5431
Fix example
sabas1080 507cf03
Added travis example LoRandom
sabas1080 3ce7be1
remove define pins
sabas1080 449e0e1
re-use existing API's added continuosMode();
sabas1080 cc721bf
Fix types variables
sabas1080 26ee294
fix typo in method name
sabas1080 522fbb8
renaming continuousRxMode
sabas1080 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
/* | ||
LoRandomSeed | ||
|
||
Example demonstrating how to generate random numbers using LoRa. | ||
|
||
created 7 Sep 2020 | ||
by Konduino | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
adapted by Andres Sabas | ||
|
||
SX1276 Register (address) Register bit field (bit #) Values Note | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
RegOpMode (0x01) LongRangeMode[7] ‘1’ LoRa mode enable | ||
Mode[2:0] ‘101’ Receive Continuous mode | ||
------------------------------------------------------------------------------------------------------------------ | ||
RegModemConfig1 (0x1D) Bw[7:4] ‘0111’ ‘0111’ for 125kHz modulation Bandwidth | ||
CodingRate[3:1] ‘001’ 4/5 error coding rate | ||
ImplicitHeaderModeOn[0] ‘0’ Packets have up-front header | ||
------------------------------------------------------------------------------------------------------------------ | ||
RegModemConfig2 (0x1E) SpreadingFactor[7:4] ‘0111’ ‘0111’ (SF7) = 6kbit/s | ||
|
||
To generate an N bit random number, perform N read operation of the register RegRssiWideband (address 0x2c) | ||
and use the LSB of the fetched value. The value from RegRssiWideband is derived from a wideband (4MHz) signal strength | ||
at the receiver input and the LSB of this value constantly and randomly changes. | ||
*/ | ||
|
||
#include <SPI.h> | ||
#include <LoRa.h> | ||
|
||
void hexDump(unsigned char *buf, uint16_t len) { | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
String s = "|", t = "| |"; | ||
Serial.println(F(" |.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .a .b .c .d .e .f |")); | ||
Serial.println(F(" +------------------------------------------------+ +----------------+")); | ||
for (uint16_t i = 0; i < len; i += 16) { | ||
for (uint8_t j = 0; j < 16; j++) { | ||
if (i + j >= len) { | ||
s = s + " "; t = t + " "; | ||
} else { | ||
char c = buf[i + j]; | ||
if (c < 16) s = s + "0"; | ||
s = s + String(c, HEX) + " "; | ||
if (c < 32 || c > 127) t = t + "."; | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
else t = t + (char)c; | ||
} | ||
} | ||
uint8_t index = i / 16; | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Serial.print(index, HEX); Serial.write('.'); | ||
Serial.println(s + t + "|"); | ||
s = "|"; t = "| |"; | ||
} | ||
Serial.println(F(" +------------------------------------------------+ +----------------+")); | ||
} | ||
|
||
void setup() { | ||
Serial.begin(115200); | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
while(!Serial); | ||
Serial.print(F("\n\n\n[SX1276] Initializing ... ")); | ||
LoRa.setPins(SS, RFM_RST, RFM_DIO0); | ||
Serial.println("SS: " + String(SS)); | ||
Serial.println("RFM_RST: " + String(RFM_RST)); | ||
Serial.println("RFM_DIO0: " + String(RFM_DIO0)); | ||
Serial.println("RFM_SWITCH: " + String(RFM_SWITCH)); | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
if (!LoRa.begin(868E6)) { | ||
Serial.println("Starting LoRa failed!"); | ||
while (1); | ||
} | ||
Serial.print("Setting up LoRa "); | ||
|
||
ifdef SAMR34 | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
pinMode(RFM_SWITCH, OUTPUT); | ||
digitalWrite(RFM_SWITCH, 1); | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
#endif | ||
|
||
LoRa.setTxPower(20, PA_OUTPUT_PA_BOOST_PIN); | ||
LoRa.setPreambleLength(8); | ||
LoRa.LoRandomSeed(); | ||
Serial.println("[o]"); | ||
delay(1000); | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Serial.println("End of setup\n\n"); | ||
} | ||
|
||
void loop() { | ||
unsigned char randomStock[256]; | ||
sabas1080 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
// We'll build a stock of random bytes for use in code | ||
uint8_t randomIndex = 0; | ||
uint16_t i; | ||
for (i = 0; i < 256; i++) { | ||
uint8_t x = LoRa.random(); | ||
randomStock[i] = x; | ||
} | ||
randomIndex = 0; | ||
hexDump(randomStock, 256); | ||
delay(2000); | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.