Compare commits

...

16 Commits

Author SHA1 Message Date
Jm Casler
c88ba583c6 Bump to .27 2022-07-25 11:07:16 -07:00
Thomas Göttgens
b36cd32c03 Merge pull request #1563 from meshtastic/patch1
Fix formula to consider Bandwidth in kHz
2022-07-21 10:20:41 +02:00
Thomas Göttgens
43733ce150 Fix formula to consider Bandwidth in kHz 2022-07-21 10:07:08 +02:00
Jm Casler
0010231172 Update to .26 2022-07-19 09:43:08 -07:00
Jm Casler
50300957db Merge pull request #1561 from mc-hamster/master
Updated the frequency selection formula
2022-07-19 09:38:11 -07:00
Jm Casler
07d4773722 Merge branch 'meshtastic:master' into master 2022-07-19 07:37:12 -07:00
Jm Casler
62aa740c93 Updated channel selection formula 2022-07-19 07:36:55 -07:00
Jm Casler
4de6d5bdb0 Merge pull request #1560 from mc-hamster/master
Allow range test module to loop back messages
2022-07-16 11:56:17 -07:00
Jm
cf4c814b59 Allow range test module to loop back messages 2022-07-16 08:08:10 -07:00
Jm Casler
ca8e307976 Merge pull request #1559 from mc-hamster/master
fix comments in smart position
2022-07-16 07:58:21 -07:00
Jm Casler
b51b7d3eb7 Merge branch 'meshtastic:master' into master 2022-07-16 07:57:51 -07:00
Jm
ea7da3178b Fixed comment 2022-07-16 07:57:35 -07:00
Jm Casler
3011d09c8c Merge pull request #1557 from kokroo/master
Allow up to 500mW transmission power for EU868 region
2022-07-15 08:40:36 -07:00
Shiv Kokroo
d179f02519 Removed comment about frequency hopping
Removed comment about frequency hopping due to lack of universal hardware support
2022-07-15 16:37:53 +02:00
Shiv Kokroo
67a7056025 Change page number to section for reference document 2022-07-15 16:37:01 +02:00
Shiv Kokroo
930b023d10 Allow up to 500mW transmission power for EU868 region
The European Union regulations clearly state that the power limit for this frequency range is 500 mW, or 27 dBm. goTenna Mesh uses the same frequency range and power limit too.

It also states that we can use interference avoidance and spectrum access techniques to avoid a duty cycle.

It might be worthwhile in the future to implement frequency hopping to avoid duty cycling.

(Please refer to page 69 in the following document)
        https://ec.europa.eu/growth/tools-databases/tris/index.cfm/ro/search/?trisaction=search.detail&year=2021&num=528&dLang=EN
2022-07-15 16:06:41 +02:00
4 changed files with 23 additions and 7 deletions

View File

@@ -35,8 +35,15 @@ const RegionInfo regions[] = {
https://www.legislation.gov.uk/uksi/1999/930/schedule/6/part/III/made/data.xht?view=snippet&wrap=true
audio_permitted = false per regulation
Special Note:
The link above describes LoRaWAN's band plan, stating a power limit of 16 dBm. This is their own suggested specification,
we do not need to follow it. The European Union regulations clearly state that the power limit for this frequency range is 500 mW, or 27 dBm.
It also states that we can use interference avoidance and spectrum access techniques to avoid a duty cycle.
(Please refer to section 4.21 in the following document)
https://ec.europa.eu/growth/tools-databases/tris/index.cfm/ro/search/?trisaction=search.detail&year=2021&num=528&dLang=EN
*/
RDEF(EU868, 869.4f, 869.65f, 10, 0, 16, false, false),
RDEF(EU868, 869.4f, 869.65f, 10, 0, 27, false, false),
/*
https://lora-alliance.org/wp-content/uploads/2020/11/lorawan_regional_parameters_v1.0.3reva_0.pdf
@@ -414,7 +421,12 @@ void RadioInterface::applyModemConfig()
// If user has manually specified a channel num, then use that, otherwise generate one by hashing the name
const char *channelName = channels.getName(channels.getPrimaryIndex());
int channel_num = channelSettings.channel_num ? channelSettings.channel_num - 1 : hash(channelName) % numChannels;
float freq = myRegion->freqStart + ((((myRegion->freqEnd - myRegion->freqStart) / numChannels) / 2) * channel_num);
// Old frequency selection formula
// float freq = myRegion->freqStart + ((((myRegion->freqEnd - myRegion->freqStart) / numChannels) / 2) * channel_num);
// New frequency selection formula
float freq = myRegion->freqStart + (bw / 2000) + ( channel_num * (bw / 1000));
saveChannelNum(channel_num);
saveFreq(freq + config.lora.frequency_offset);

View File

@@ -177,8 +177,8 @@ int32_t PositionModule::runOnce()
// Yes, this has a bunch of magic numbers. Sorry.
uint32_t timeTravel =
((1500 / myNodeInfo.bitrate) >= timeTravelMinimum) ? (1500 / myNodeInfo.bitrate) : timeTravelMinimum;
// If the distance traveled since the last update is greater than 100 meters
// and it's been at least 60 seconds since the last update
// If the distance traveled since the last update is greater than distanceTravelMinimum meters
// and it's been at least timeTravelMinimum seconds since the last update
if ((abs(distance) >= distanceTravelThreshold) && (now - lastGpsSend) >= (timeTravel * 1000)) {
bool requestReplies = currentGeneration != radioGeneration;
currentGeneration = radioGeneration;

View File

@@ -28,7 +28,10 @@ class RangeTestModuleRadio : public SinglePortModule
uint32_t lastRxID = 0;
public:
RangeTestModuleRadio() : SinglePortModule("RangeTestModuleRadio", PortNum_TEXT_MESSAGE_APP) {}
RangeTestModuleRadio() : SinglePortModule("RangeTestModuleRadio", PortNum_TEXT_MESSAGE_APP)
{
loopbackOk = true; // Allow locally generated messages to loop back to the client
}
/**
* Send our payload into the mesh
@@ -50,7 +53,8 @@ class RangeTestModuleRadio : public SinglePortModule
/** Called to handle a particular incoming message
@return ProcessMessage::STOP if you've guaranteed you've handled this message and no other handlers should be considered for it
@return ProcessMessage::STOP if you've guaranteed you've handled this message and no other handlers should be considered for
it
*/
virtual ProcessMessage handleReceived(const MeshPacket &mp) override;
};

View File

@@ -1,4 +1,4 @@
[VERSION]
major = 1
minor = 3
build = 25
build = 27