Skip to content

Commit

Permalink
Bug Fix Release 5.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
oe1wkl committed Aug 20, 2023
1 parent 3a5d9e3 commit 74338ee
Show file tree
Hide file tree
Showing 12 changed files with 31 additions and 12 deletions.
4 changes: 2 additions & 2 deletions Documentation/User Manual/Version 5.x/m32_user-Manual_v5.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -940,9 +940,9 @@ The following parameters control how characters are generated and played randoml
|Description
|Values

| Interchar Spc | The time (in lengths of a dit) that is inserted between characters (see section <<generator>> ) | 3 -- 15 [**3**]
| Interchar Spc | The time (in lengths of a dit) that is inserted between characters (see section <<generator>> ) | 3 -- 45 [**3**]

| Interword Spc | The time (in lengths of a dit) that is inserted between words (see section <<generator>> ) | 6 -- 45 [**7**]
| Interword Spc | The time (in lengths of a dit) that is inserted between words (see section <<generator>> ) | 6 -- 105 [**7**]

| Random Groups | For the output of groups of random characters, determine which character subsets should be included | Alpha / Numerals / Interpunct. / Pro Signs / Alpha + Num / Num+Interp. / Interp+ProSn / Alpha+Num+Int / Num+Int+ProS / All Chars

Expand Down
Binary file modified Documentation/User Manual/Version 5.x/m32_user-Manual_v5.pdf
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -939,9 +939,9 @@ Die folgenden Parameter steuern, wie Zeichen zufällig generiert und abgespielt
|Description
|Values

| Interchar Spc | Der zeitliche Abstand (als Anzahl von Dits) der zwischen Zeichen eingefügt wird (siehe den Abschnitt <<generator>>) | 3 -- 15 [**3**]
| Interchar Spc | Der zeitliche Abstand (als Anzahl von Dits) der zwischen Zeichen eingefügt wird (siehe den Abschnitt <<generator>>) | 3 -- 45 [**3**]

| Interword Spc | Der zeitliche Abstand (als Anzahl von Dits) der zwischen Wörtern eingefügt wird (siehe den Abschnitt <<generator>>) | 6 -- 45 [**7**]
| Interword Spc | Der zeitliche Abstand (als Anzahl von Dits) der zwischen Wörtern eingefügt wird (siehe den Abschnitt <<generator>>) | 6 -- 105 [**7**]

| Random Groups | Für die Ausgabe von Gruppen von zufälligen Zeichen legt man hier fest, welche Zeichenuntermengen inkludiert sein sollen. | Alpha (Buchstaben)/ Numerals (Ziffern) / Interpunct. (Satzzeichen) / Pro Signs (Betriebsabk.)/ Alpha + Num / Num+Interp. / Interp+ProSn / Alpha+Num+Int / Num+Int+ProS / All Chars (Alle)

Expand Down
Binary file modified Documentation/User Manual/Version 5.x/m32_user-Manual_v5_de.pdf
Binary file not shown.
15 changes: 12 additions & 3 deletions Software/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,29 @@

It is now quite straightforward to set up an environment to build the Morserino-32 binary code from the source. As we are using now the latest ESP32 libraries from Heltec, and the source of the Clivkbutton library has been included into the source, there is no need to hunt for libraries.

**NOTICE: As Heltec changed their development environment libraries to accomodate newer products, you might need to set up an environment with their older library versions!**
**NOTICE: As Heltec changed their development environment libraries to accomodate newer products, these instructions do not work anymore, and you might need to set up an environment with their older library versions!**

1. Set up the Arduino IDE from <https://www.arduino.cc/en/Main/Software>.

2. Install on your computer the USB driver for the SiLabs CP2104 chip, used in the Heltec board for USB communication. Follow these instructions: <https://heltec-automation-docs.readthedocs.io/en/latest/general/establish_serial_connection.html>.
2. Install on your computer the USB driver for the SiLabs CP2104 chip, used in the Heltec board for USB communication. Follow these instructions: <https://heltecdocs-fock.readthedocs.io/general/establish_serial_connection.html>.

3. Install the development framework through the Arduino IDE; follow these instructions: <https://heltec-automation-docs.readthedocs.io/en/latest/esp32+arduino/quick_start.html>.
3. Install the development framework through the Arduino IDE; follow these instructions: <https://docs.heltec.org/en/node/esp32/quick_start.html>. **NOTICE: As Heltec changed their development environment libraries to accomodate newer products, this might not work flawlessly anymore!**

4. Get the source for the latest Morserino-32 firmware from GitHub (<https://github.com/oe1wkl/Morserino-32/releases>).

5. Load the .ino file into the IDE (the other source files will be loaded automatically as well), and compile (and upload).

## Change History

### Changes V.5.0.1

#### Bug fixes:
* A change of values for inter character space and inter word space was registered and shown on display, but only became effective after a restart. Fixed.
* In Koch trainer, the length of words and abbreviations was not handled correctly (generated things were always max l-1 long, not l). Fixed.

#### Feature Modification
* The max value for inter character space was changed from 24 to 45, and the max value for inter word space from 45 to 105, to accommodate the initial settings used by CW Academy.

### Changes V.5.0

#### Bug fixes:
Expand Down
Binary file not shown.
1 change: 1 addition & 0 deletions Software/binary/m32_v5.0.1.ino.wifi_lora_32_V2.md5
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d3d05776f767a4627acc6d96572d9cdc
13 changes: 11 additions & 2 deletions Software/src/Version 5/MorsePreferences.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,14 @@ parameter MorsePreferences::pliste[] = {
{"No Tone Shift", "Up 1 Half", "Down 1 Half"}
},
{
7, 6, 45, 1, // Generator: normal interword spacing in lengths of dit, 6 - 45 ; default = norm = 7
7, 6, 105, 1, // Generator: normal interword spacing in lengths of dit, 6 - 45 ; default = norm = 7
"InterWord Spc",
"The time (in dits) that is inserted between generated words",
false,
{}
},
{
3, 3, 24, 1, // for generators: intercharacter space, in dit dit lengths
3, 3, 45, 1, // for generators: intercharacter space, in dit dit lengths; default = 3
"Interchar Spc",
"Space between generated characters, in dits",
false,
Expand Down Expand Up @@ -873,6 +873,7 @@ void MorsePreferences::handleKochSequence() {
MorsePreferences::kochCharsLength = MorsePreferences::kochMaximum = 51;
MorsePreferences::kochMinimum = 1;
MorsePreferences::kochFilter = constrain(MorsePreferences::kochFilter, MorsePreferences::kochMinimum, MorsePreferences::kochMaximum);
koch.setup();
}
}

Expand All @@ -881,6 +882,7 @@ void MorsePreferences::handleCarouselChange() {
MorsePreferences::kochMinimum = kochCharsLength > 18 ? 19 : 1;
//DEBUG("@ 842: kMin: " + String(MorsePreferences::kochMinimum) + " kMax: " + String(MorsePreferences::kochMaximum));
MorsePreferences::kochFilter = constrain(MorsePreferences::kochFilter, MorsePreferences::kochMinimum, MorsePreferences::kochMaximum);
koch.setup();
}


Expand Down Expand Up @@ -1139,6 +1141,8 @@ void MorsePreferences::writePreferences(String repository) {
} // end of "special cases"
} // end of "stored value is different"
} // end of "for all these preferences"
updateTimings();

pref.end();
// DEBUG("end l. 1087");
}
Expand Down Expand Up @@ -1446,7 +1450,9 @@ Koch::Koch() {

void Koch::createWords(uint8_t maxl, uint8_t koch) { // this function creates an array of words that are compliant to Koch filter and max word length
numberOfWords = 0;
//DEBUG("ptr: " + String(maxl));
//DEBUG("koch: " + String(koch));
maxl = (maxl == 0 ? 0 : maxl+1);
for (int i = EnglishWords::WORDS_POINTER[maxl]; i< EnglishWords::WORDS_NUMBER_OF_ELEMENTS; ++i) { // do this for all words with max length maxl
if (wordIsKoch(EnglishWords::words[i]) <= koch) {
wordIndices[numberOfWords++] = i;
Expand All @@ -1456,8 +1462,11 @@ void Koch::createWords(uint8_t maxl, uint8_t koch) { // this fu

void Koch::createAbbr(uint8_t maxl, uint8_t koch) { // this function creates an array of abbrevs that are compliant to Koch filter and max word length
numberOfAbbr = 0;
maxl = (maxl == 0 ? 0 : maxl+1);

//DEBUG("ptr: " + String(maxl));
for (int i = Abbrev::ABBREV_POINTER[maxl]; i< Abbrev::ABBREV_NUMBER_OF_ELEMENTS; ++i) { // do this for all words with max length maxl
DEBUG(Abbrev::abbreviations[i]);
if (wordIsKoch(Abbrev::abbreviations[i]) <= koch)
abbrIndices[numberOfAbbr++] = i;
}
Expand Down
2 changes: 1 addition & 1 deletion Software/src/Version 5/MorsePreferences.h
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ namespace MorsePreferences
void handleKochSequence();
void handleCarouselChange();
void setCustomChars(String);
void kochSetup();
//void kochSetup();
void loraSystemSetup();
void determineBoardVersion();
void calibrateVoltageMeasurement();
Expand Down
4 changes: 2 additions & 2 deletions Software/src/Version 5/morsedefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ const String PROJECTNAME = "Morserino-32";

#define VERSION_MAJOR 5
#define VERSION_MINOR 0
#define VERSION_PATCH 0
#define VERSION_PATCH 1

#define BETA false

// using the M32 serial protocol

//define M32Protocol version
//define M32Protocol version updateTimings()
#define M32P_VERSION "1.0"

/////// protocol version for Lora - for the time being this is B01
Expand Down

0 comments on commit 74338ee

Please # to comment.