Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
radio95Feathertransmitcoode
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
thomas.unsworth
radio95Feathertransmitcoode
Commits
8493f115
Commit
8493f115
authored
May 03, 2021
by
thomas.unsworth
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Initial commit
parents
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
158 additions
and
0 deletions
+158
-0
transmit.ino
transmit.ino
+158
-0
No files found.
transmit.ino
0 → 100644
View file @
8493f115
// Feather9x_TX
// -*- mode: C++ -*-
// Example sketch showing how to create a simple messaging client (transmitter)
// with the RH_RF95 class. RH_RF95 class does not provide for addressing or
// reliability, so you should only use RH_RF95 if you do not need the higher
// level messaging abilities.
// It is designed to work with the other example Feather9x_RX
#include <SPI.h>
#include <RH_RF95.h>
// for feather32u4
#define RFM95_CS 8
#define RFM95_RST 4
#define RFM95_INT 7
/* for feather m0
#define RFM95_CS 8
#define RFM95_RST 4
#define RFM95_INT 3
*/
/* for shield
#define RFM95_CS 10
#define RFM95_RST 9
#define RFM95_INT 7
*/
/* Feather 32u4 w/wing
#define RFM95_RST 11 // "A"
#define RFM95_CS 10 // "B"
#define RFM95_INT 2 // "SDA" (only SDA/SCL/RX/TX have IRQ!)
*/
/* Feather m0 w/wing
#define RFM95_RST 11 // "A"
#define RFM95_CS 10 // "B"
#define RFM95_INT 6 // "D"
*/
#if defined(ESP8266)
/* for ESP w/featherwing */
#define RFM95_CS 2 // "E"
#define RFM95_RST 16 // "D"
#define RFM95_INT 15 // "B"
#elif defined(ESP32)
/* ESP32 feather w/wing */
#define RFM95_RST 27 // "A"
#define RFM95_CS 33 // "B"
#define RFM95_INT 12 // next to A
#elif defined(NRF52)
/* nRF52832 feather w/wing */
#define RFM95_RST 7 // "A"
#define RFM95_CS 11 // "B"
#define RFM95_INT 31 // "C"
#elif defined(TEENSYDUINO)
/* Teensy 3.x w/wing */
#define RFM95_RST 9 // "A"
#define RFM95_CS 10 // "B"
#define RFM95_INT 4 // "C"
#endif
// Change to 434.0 or other frequency, must match RX's freq!
#define RF95_FREQ 868.1
// Singleton instance of the radio driver
RH_RF95
rf95
(
RFM95_CS
,
RFM95_INT
);
void
setup
()
{
pinMode
(
RFM95_RST
,
OUTPUT
);
digitalWrite
(
RFM95_RST
,
HIGH
);
Serial
.
begin
(
115200
);
while
(
!
Serial
)
{
delay
(
1
);
}
delay
(
100
);
Serial
.
println
(
"Feather LoRa TX Test!"
);
// manual reset
digitalWrite
(
RFM95_RST
,
LOW
);
delay
(
10
);
digitalWrite
(
RFM95_RST
,
HIGH
);
delay
(
10
);
while
(
!
rf95
.
init
())
{
Serial
.
println
(
"LoRa radio init failed"
);
Serial
.
println
(
"Uncomment '#define SERIAL_DEBUG' in RH_RF95.cpp for detailed debug info"
);
while
(
1
);
}
Serial
.
println
(
"LoRa radio init OK!"
);
// Defaults after init are 434.0MHz, modulation GFSK_Rb250Fd250, +13dbM
if
(
!
rf95
.
setFrequency
(
RF95_FREQ
))
{
Serial
.
println
(
"setFrequency failed"
);
while
(
1
);
}
Serial
.
print
(
"Set Freq to: "
);
Serial
.
println
(
RF95_FREQ
);
// Defaults after init are 434.0MHz, 13dBm, Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on
// The default transmitter power is 13dBm, using PA_BOOST.
// If you are using RFM95/96/97/98 modules which uses the PA_BOOST transmitter pin, then
// you can set transmitter powers from 5 to 23 dBm:
rf95
.
setTxPower
(
23
,
false
);
}
int16_t
packetnum
=
0
;
// packet counter, we increment per xmission
void
loop
()
{
delay
(
1000
);
// Wait 1 second between transmits, could also 'sleep' here!
Serial
.
println
(
"Transmitting..."
);
// Send a message to rf95_server
char
radiopacket
[
20
]
=
"packet from feather"
;
Serial
.
print
(
"Sending "
);
Serial
.
println
(
radiopacket
);
radiopacket
[
19
]
=
0
;
Serial
.
println
(
"Sending..."
);
delay
(
10
);
rf95
.
send
((
uint8_t
*
)
radiopacket
,
20
);
Serial
.
println
(
"Waiting for packet to complete..."
);
delay
(
10
);
rf95
.
waitPacketSent
();
// Now wait for a reply
uint8_t
buf
[
RH_RF95_MAX_MESSAGE_LEN
];
uint8_t
len
=
sizeof
(
buf
);
Serial
.
println
(
"Waiting for reply..."
);
if
(
rf95
.
waitAvailableTimeout
(
1000
))
{
// Should be a reply message for us now
if
(
rf95
.
recv
(
buf
,
&
len
))
{
Serial
.
print
(
"Got reply: "
);
Serial
.
println
((
char
*
)
buf
);
Serial
.
print
(
"RSSI: "
);
Serial
.
println
(
rf95
.
lastRssi
(),
DEC
);
}
else
{
Serial
.
println
(
"Receive failed"
);
}
}
else
{
Serial
.
println
(
"No reply, is there a listener around?"
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment