Giter Club home page Giter Club logo

morserino-32's People

Contributors

8ch9azbsfifz avatar alohr avatar asdil12 avatar atwebm avatar brock avatar dischoen avatar do1gdo avatar drewherron avatar joewittmer avatar martinmurphy avatar matthiasjordan avatar oe1wkl avatar simonachmueller avatar tigerclaw989 avatar ttomasini avatar yarda avatar zoglmannk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

morserino-32's Issues

Will not connect to wifi

Built a morserino, works great except can't connect to wifi, was told to upgrade to latest software V4.5.2 this was done. config M2 then connect to m2 on computer, enter wifi name and password...M2 resets then I check wifi and evry time it says "No Wifi"
My computer sees "Morserino" and M2 sees my router name, they just won't connect...any suggestions??
Thanks in advance DE John VE3JXX

File Player plays some strange html-headers ...

Hi,

whatever TXT file I upload (also the given example files from github) - once I start the File Player it always plays the same: Meta data of a html file. How can I get rid of that effect? I'm on latest SW version and did try out reset already as well.

Thx.

WiFi TRX mode

Especially due to the current circumstances it would be nice to have a WiFI TRX mode that works analog to the LoRa TRX.
This would allow distant users to connect their Morserinos directly via WiFi (using a VPN or Router port redirections).

The Morserino could send simple UDP packages using the same package header/format as it currently does for LoRa.
The existing WifFi settings could be used, but extended by a Peer entry for the IP address of the Peer Morserino.

This are my ideas how to begin:

--- ./morse_3_v2.4.ino	2020-04-26 20:44:04.662410857 +0200
+++ ./morse_3_v2.4.ino	2020-04-26 21:10:35.903208571 +0200
@@ -57,6 +57,7 @@
 #include <SPI.h>           // library for SPI interface
 #include <LoRa.h>          // library for LoRa transceiver
 #include <WiFi.h>          // basic WiFi functionality
+#include <WiFiUdp.h>       // UDP lib for WiFi TRX
 #include <WebServer.h>     // simple web sever
 #include <ESPmDNS.h>       // DNS functionality
 #include <WiFiClient.h>    //WiFi clinet library
@@ -533,6 +534,7 @@
   uint8_t p_menuPtr = 1;                      // current position of menu
   String  p_wlanSSID = "";                    // SSID for connecting to the Internet
   String  p_wlanPassword = "";                // password for connecting to WiFi router
+  String  p_wlanTRXPeer = "";                 // peer Morserino for WiFI TRX
   uint32_t p_fileWordPointer = 0;             // remember how far we have read the file in player mode / reset when loading new file         
   uint8_t p_promptPause = 2;                  // in echoTrainer mode, length of pause before we send next word; multiplied by interWordSpace
   uint8_t p_tLeft = 20;                       // threshold for left paddle
@@ -831,6 +833,8 @@
 
 WebServer server(80);    // Create a webserver object that listens for HTTP request on port 80
 
+WifiUDP udp;             // Create a udp socket for wifi trx
+
 File fsUploadFile;              // a File object to temporarily store the received file
 
 String getContentType(String filename); // convert the file extension to the MIME type
@@ -852,6 +856,7 @@
                 "<label for='ssid'>SSID of WiFi network?</label>"
                 "<input name='ssid' id='ssid' ></div> <div>"
                 "<label for='pw'>WiFi Password?</label> <input name='pw' id='pw'>"
+                "<label for='pw'>WiFi TRX Peer?</label> <input name='trxpeer' id='trxpeer'>"
                 "</div><div><button>Submit</button></div></form></body></html>";
 
 
@@ -5077,10 +5082,12 @@
     server.send(200, "text/html", "Wifi Info updated - now restarting Morserino-32...");
     p_wlanSSID = server.arg("ssid");
     p_wlanPassword = server.arg("pw");
+    p_wlanTRXPeer = server.arg("trxpeer");
     //DEBUG("SSID: " + String(p_wlanSSID) + " Password: " + String(p_wlanPassword));
     pref.begin("morserino", false);             // open the namespace as read/write
     pref.putString("wlanSSID", p_wlanSSID);
     pref.putString("wlanPassword", p_wlanPassword);
+    pref.putString("wlanTRXPeer", p_wlanTRXPeer);
     pref.end();
     
     ESP.restart();
@@ -5539,6 +5546,7 @@
 
     p_wlanSSID = pref.getString("wlanSSID");
     p_wlanPassword = pref.getString("wlanPassword");
+    p_wlanTRXPeer = pref.getString("wlanTRXPeer");
     p_lcwoKochSeq = pref.getBool("lcwoKochSeq");
     p_quickStart = pref.getBool("quickStart");

External paddle reversed

I was running v4.0 and my external paddle was working fine.
After upgrading to 4.2.1 its now reversed.
I see that there was a bug fix release of 4.0.1 that supposedly fixed this but it seems that it broke mine.

I am using a CWMorse brand double paddle.

Perhaps there could be an option added to the software to let the end user choose the setting?

pushbutton switch defective

Thank you for this wonderful kit. Everything works as expected except the red pushbutton switch is defective. Something is wrong with the mechanism or spring. How can I find a suitable replacement?

RFE: protected way for WiFi password set-up

Today, it's really easy and cheap to setup RF/WiFi sniffer, so it pose real security risk to send the WiFi password over the air in the plaintext. Even it's small window during which the password is sent it's still possible to catch it and compromise the host network. It's not much problem in rural areas, but in the city, especially in the height spot/building there can thousands of people in the radio range.

Could Morserino setup the WPA2 protected AP for the initial WiFi setup? The low security approach is to use hardcoded password like "morserino", high security approach is to generate random password and show it on the display. Or could the password be send over HTTPS? It would lower the risk of automated full-time 24/365 sniffers and possible offline analysis of the captured data - realtime man-in-the-middle attack is unlikely to happen in the small time window. Or could be there an option to set the password through the USB? For security concerned people like me? :)

Unexpected restarts in 'Adaptive Random' mode

Problem:

Morserino is restarting unexpectedly and randomly after some characters have been keyed in 'Adaptive Random' mode.

Reproduce:

Select the last koch lesson ":" and start adaptive random mode. Restart should happen within 100 keyed characters.
Please confirm.

Cause:

Unclear. Given that it only happened on my devices with the last koch lesson, i would suspect a out-of-bounds array access. But i did not find it until now.

One time, i received the following on USB-serial-output:

ia3 >ia3 OK
Guru Meditation Error: Core  1 panic'ed (Unhandled debug exception)
Debug exception reason: Stack canary watchpoint triggered (loopTask) 
Core 1 register dump:
PC      : 0x4010b36d  PS      : 0x00060336  A0      : 0x800eac01  A1      : 0x3ffb1e20  
A2      : 0x3ffb1e50  A3      : 0x3ffd21e0  A4      : 0x00000003  A5      : 0x0000002f  
A6      : 0x000000a5  A7      : 0x3ffb1fb0  A8      : 0x00000000  A9      : 0x3ffb1e00  
A10     : 0x3ffb0061  A11     : 0x3f402d79  A12     : 0x00000000  A13     : 0x00000003  
A14     : 0x3ffb1f0c  A15     : 0x0000000a  SAR     : 0x0000000a  EXCCAUSE: 0x00000001  
EXCVADDR: 0x00000000  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xffffffff  

Backtrace: 0x4010b36d:0x3ffb1e20 0x400eabfe:0x3ffb1e40 0x400eacb2:0x3ffb1e80 0x400f8a8f:0x3ffb1ec0
0x400fbfb6:0x3ffb1ef0 0x400fc1fb:0x3ffb1f40 0x400fc76f:0x3ffb1f80 0x4010b729:0x3ffb1fb0 0x40089ccd:0x3ffb1fd0

Possible Solution:

I did not find an out-out-bounds-array-access until now. However, reducing heap memory allocations and avoiding string reallocations, especially on the stack, seems to solve the problem.

I created a branch here and committed some enhancements:
https://github.com/DO1GDO/Morserino-32/tree/fix/adapt-rand-memory

@oe1wkl:
Still working on it to improve the behaviour. However, some refactoring is still to be done. Problem does not happen any more with the current commits in the fix-branch, so we could review and test those commits for a merge ... or i could try to do some further refactoring before merging ... let me know your preference please.

I am a bit confused about custom-chars handling ... is it a still active feature or was it removed at some point in the past? (sorry, didn't try all morserino options and features until now ...

Echo Trainer does not regognize correct input after <err> corrections.

This does not always happen, but quite often. Seems to happen when sending very long inputs (>8 Dits) and/or several <err>s, but i am not sure, what the exact trigger is to let this happen.

I have reproduced this in Koch Trainer with lesson 1 (m) activated and using the Echo Trainer.

What i get there as example:
mmm OK
e<err>s<err>mmm ERR

Can provide photos if this helps.

Additional words

If there are sufficient resources on the hardware for a larger binary, it would be great to increase the dictionary to include 1,000 words. I am willing to create a pull request that extends the english_words.h file and specifies the top 1,000 common words in the English language.

Koch lesson doesn't get saved

Moserino board revision: 3
Morserino SW version: 4.5.1
Relevant preferences: Koch Sequence: LCWO

Issue description: The current Koch lesson isn't being stored across restarts (HW switch).

Steps to reproduce:

  1. Switch on Morserino
  2. Navigate to Koch Trainer → Select Lesson
  3. Take note of current setting (lesson number/letter), let's call it n
  4. Change lesson number/setting to something else using the rotary encoder, let's call it m
  5. Click rotary encoder to confirm setting and to return to menu
  6. Switch off and on using the hardware switch
  7. Navigate back to Koch Trainer → Select Lesson

Expected result: Morserino remember the changed setting, lesson is set to m.

Actual result: Morserino reverts to the old setting, n.

Please let me know if I can be of any help with debugging! And as always, many thanks for this great project, Willi and team! 73!

Request

This is an awsome learning device. But could it be expanded also to a memory keyer. Nothing fancy just a couple of memories to store some data like call, cq, qrz and so one to use it on the air...
Would be great to implement this in this device..
73 de Tom HB9DOD

Allow connecting to wifi networks with no password

Allow the option of connecting to wifi networks with no password.
Some hotel and cafe wifi networks do not have passwords.
While it's not ideal from a security point of view, it would be useful to have the option of connecting.
The current version of the software, uses an empty password in the wifi config form to mean use the current password.
I suggest adding an option to allow an empty password to be set

support multiple wifi networks

I was thinking of adding support for multiple wifi networks
allow setting of up to 3 wifi settings in the config
and allowing choosing of the active config.

This would allow configuring of home network, phone hotspot, and another network, so Morserino-32 could be used at multiple locations easily.

Would you be interested in a PR?

Echo Trainer File Upload Stops when Echo Repeats are not Unlimited

While practicing with the echo trainer with an uploaded practice file, if echo repeats are not "unlimited" the echo trainer comes to a stop after the failed Nth repeat and does not continue unless you exit and start again. This does not occur in the other built in modes.

Setting to reproduce:

Max # of Words = Unlimited
Randomize File = Off
Each Word 2x = Off
Echo Repeats = 0 (or any number other than Unlimited)

To recreate set Echo Repeats to 1 and upload a file with just the letter "a" on one line. Let it fail twice (you have 1 repeat) and it will stop supplying words.

A funny side effect of this is partly what I wanted as a feature:
Track number of failures (or max them out) forcing the user to attempt to try and have a perfect run (or run with no more than N failures).

I am running Version 2.4

Start Echo Trainer with Straight Key

Currently the echo trainer will only start with either an iambic key or one of the PCB paddles, and not with the straight key alone. Once I have started either the koch or standard echo trainer with a paddle, it works fine with a straight key. This is with the current firmware m32_v4.1.ino.wifi_lora_32_V2.bin

Git Clone Fails on Windows: Invalid path 'Software/UDP Chat Server by SP9WPN /README.MD'

Cloning into 'Morserino-32'...
remote: Enumerating objects: 1181, done.
remote: Counting objects: 100% (63/63), done.
remote: Compressing objects: 100% (46/46), done.
remote: Total 1181 (delta 31), reused 35 (delta 17), pack-reused 1118 eceiving objects: 100% (1181/1181), 112.65 MiB | 22.21 MiB/s
Receiving objects: 100% (1181/1181), 119.31 MiB | 21.79 MiB/s, done.
Resolving deltas: 100% (710/710), done.
error: invalid path 'Software/UDP Chat Server by SP9WPN /README.MD'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'

CW Acadamy sequence has changed

In the latest CWA beginner guide (v4.2.7), the sequence has been altered. The sequence should now read:
"teanois14rhdl25ucmw36?fy,pgq79/bv+kj80=xzBK.-ASNE@:"

Output changes on scroll in KochTrainer->LearnNewChr

In the mode "Learn New Chr" under "Koch Trainer", the output changes when it's being scrolled up. Normally, the "OK" or "ERR" is bold and separated by a space. When scrolling up in this mode, it changes to a regular font and the space gets lost:

signal-2022-11-12-220507_002

MOPP incorrectly encodes dah's

I was playing with chatserver-mopp and identified that when you send a letter that consists only of dah's morserino is sending only one dah, never multiple.

Below some debug of packets (decoded) - I have sent S O S O S O:

13-12-2023, 21:05:56 -010111000010110101011100
['01', '01', '01', '11']
13-12-2023, 21:05:59 -0101110100101110
['10']
13-12-2023, 21:06:00 -010111100010110101011100
['01', '01', '01', '11']
13-12-2023, 21:06:03 -0101111100101110
['10']
13-12-2023, 21:06:04 -011000000010110101011100
['01', '01', '01', '11']
13-12-2023, 21:06:06 -0110000100101110
['10']

This does not work on morserino 5.1 - tested back to 4.3.1 - the problem is stil there.

https://github.com/Morse-Code-over-IP/chatserver-mopp-udp/issues/2

troubleshooting assistance request MORSERINO-32

troubleshooting assistance request - after assemblin MORSERINO 32 , genegal shortcut check result 3.2 MOhm. Energising screen for a second message "Morserino-32 43415 ver 2.4 EMPTY" . PLS help. 73

Igor

Any need of increased support for straight keys?

I've been fooling around the code today, and so far I've gotten the echo trainer to support straight keys without too many apparent problems. I've pushed the changes to my fork. If there is any interest in them, anyone is free to use the changes as they see fit.

The major changes I've made so far:

  • Added "Straight" keyer mode, works wherever echo trainer is used (koch trainer, echo trainer)
  • <err>s and whatever came before them in the echo trainer response get ignored (I noticed this made me less frightful of making mistakes (wrong amount of dits) when using paddles)

What doesn't work:

  • LoRa TX when in straight key mode
  • Really short dits don't always get registered
  • May have missed other stuff since there are so many features to test

If there is interest for increased straight key support, I'll gladly iron out the little problems that the fork currently has. Just curious to know if there is need for this.

Sound output disabled after altering settings

Version 2.3

  1. Go to:
  2. CW Generator
  3. Settings: change a setting (e.g. quickstart ON)
  4. Return to CW generator

Result:
No sound is heard anymore. Device needs to be restarted.

Expected results:
Settings are saved without the device needed to be restarted.

HID Keyboard Mode

Hello!

I noticed the Morserino-32 in "CW Keyer" mode enumerates as a com port device and outputs the same decoded string (sent by the user) as shown on the display. Would it be possible to make it enumerate as an HID Keyboard instead? I would like to practice typing and sending text messages with CW. Just an idea. Thanks!

Feature request: speed compatibility with CWops

I would like to use the Morserino for a course at CWops as a practice tool. However, the speed initially used there is 25WPM with a Farnsworth speed, i.e. an effective speed, of 4WPM. Unfortunately, this cannot be mapped on the Morserino at this time. I would therefore wish that such speeds are also supported. At best by simply entering speed and effective (Farnsworth) speed in the settings.

Possible improvements

I just built this box yesterday, and it's just what I wanted. I have a couple of suggestions for you:
1- Make the Long Range WiFi an option. I don't see any situation where I would use that and I'm not even sure the 433Mhz band can be used like that in the US. It might save you some money on antennas (mine is in the desk drawer).

2- Make the molex connector for the battery power connection a SIP module mounted to the circuit board. The connector and wire harness are bit hokey. A connector soldered directly to the board that one could connect the battery too would be much better.

All in all, I'm really impressed with this and I think it will help me become a better morse code operator. Thank you.

Additional characters

This is a great code set and product (m32). It is great to see German character support. I speak English, Spanish, German and Dutch. I saw how the characters, numbers, punctuation, and etc. are coded. Can other characters be added to support Spanish and French, etc.?

Incorrect CW Academy sequence

The CW Academy sequence in the current (5.0.3) Morserino Firmware is different to the sequence stated in the current CW Academy Beginner Curriculum (4.2.3).
No. 40 in Morserino is . and should be <BK>
No. 41 in Morserino is , and should be <SK>

Morserino 32 with heltec V2 board no display after updating to 4.4

Updated via the web interface, V4.4 successfully installed as guessed by seeing the quick flash of Lora init successful. I then attempted to update via the command line update utility and I get the same problem. Success reported by the utility, flash of the lora init, but no display. When I rotate the knob it makes noise, I can even start one of the trainers by selecting whatever is presented. Any troubleshooting tips, or is this a software bug?

Make Sound from Speaker less harsh

Creating an issue for discussion...

The speaker sound to me is very harsh. I assume this is because it is fed from a PWM square wave and has abrupt starts and stops causing harmonics at the end.

Could this instead be fed from the ESP32's cosine wave generator and use the attenuation options 1/2, 1/4, 1/8 at the ends for optional decay at the start and ends? This would be 8-bit DDS might be enough?

Has this been tried? I'm tempted to give it a go.

companion software using German psychologist Ludwig Koch's method.

Must be cross platform ( Linux, Mac and Windows).
Optional support for winkeyer device.

First the program sends a series of K's in CW for 30 seconds while the character K is displayed. Then it repeats the procedure with the character M. When that is complete it sends a four characters group using K and M in random places without displaying the signs.

It then waits for a four characters input using the keyboard or the morse device, shows the characters you have gotten correct in green, the wrong ones in red. That continues until the user has gotten 90 % correct of a number of groups, then a new letter is introduced ( for example X ), it is sent for 30 seconds while the character is displayed.

Then the lesson continues using the new character until 90% of groups is correct, a new character or prosign is introduced and the lessons continues until all characters are learned.

It may also be possible to display the character K and send the character in morse 5 times and wait for 4~10 around seconds for the answer using the morse key or keyboard.

Options and statistics:
It could also display statistics of a users progress and time used. The slowest permitted speed should be 13 WPM. Any speed below this is wasted time. Some of it may be posted to https://lcwo.net/ if an API is available.

Multiple users in the program, but only one at a time.

It could also be possible to adjust the mininum and maximum number of characters in the groups and if they are of random size. It could support Farnsworth timing, characters are sent at the same speed as at higher speeds, while extra spacing is inserted between characters and words to slow the transmission down.

The advantage of this is that you get used to recognising characters at a higher speed,the characters does not "blend together" as easily and thus it will be easier to increase the speed later on.

Morse alphabets that should be used : Primarly International, but the possibility to add regional extras like the Norwegian Æ Ø and Å. Those extras should be possible to add to the characters learned with a option in settings.

Compatibility with a Murmur client that can connect to a murmur server, that enables chatting in morse code with other users. The client is available at: https://www.mumble.info/ Similar low latency open source free software solutions could also be used.

A existing server already exists: http://internetcw.weebly.com/

Suggestion for a plugin for mumble:
Fading,QRM,QRN and white noise should be possible, as this issue seems to be resolved:
mumble-voip/mumble#3743.

Compatible with Hamsphere: http://hamsphere.com/
There is a API, but the developers of hamsphere may have to be contacted.

Wifi configuration is reset to very old setup on loading a snapshot

Steps

  • I setup 2 different wifis using two different SSIDs and using cq.morserino.info for both
  • everything works, with both wifis
  • a week later, the wifi configuration is reset to the first wifi configuration I ever did (weeks ago): only one wifi is configured and no cq.morserino.info

Strange thing is, that when I configure
SSID mobile as first wifi and SSID home as second wifi
after the wifi configuration resets itself, there is only wifi home left (which was the first wifi I ever configured weeks ago).

This behaviour was observed now 3 times in a row. Every week on my cw school day, the configuration is reset.

I do change the snapshots in between and use the serial communication - but I cannot say if this is the culprit!

I just made another test:

  • Configure Wifi Mobile and Wifi home
  • load a different snapshot
  • wifi configuration was reset to my initial setup from weeks ago

A suggestion for Koch training mode:

Training mode: First the program sends a series of K's in CW for 30 seconds while the character K is displayed. Then it repeats the procedure with the character M.

When that is complete it sends a four characters group using K and M in random places without displaying the signs. It then waits for a four characters input using the morse device, shows the characters you have gotten correct in green, the wrong ones in red.

That continues until the user has gotten 90 % correct of a number of groups, then a new letter is introduced ( for example X ), it is sent for 30 seconds while the character is displayed.

Then the lesson continues using the new character until 90% of groups is correct, a new character or prosign is introduced and the lessons continues until all characters are learned.

Reference link:
https://github.com/Supermagnum/SuperKoch

Heltec v3 - blank screen

Hi! I'm trying to get latest release (5.0.3) running on a Heltec Wifi Lora32 v3 board and was able to compile it out of the box with Heltec board definitions 0.0.9 and Heltec Esp32 library 1.1.5.

But after upload, the display will stay blank, no matter if I define BOARDVERSION 3 or 4 in morsedefs.h

Did anyone have success with a Heltec v3 board yet? I do not need all features, just want to use it as a simple CW trainer / keyer. No need for Wifi or Lora.

Lora Power mismatch?

Hello in documentation we can find an information that TX Power for LoRa is 100mW.

But this is only maximum available power that in reality is not set.

Lora library defaults to 14dBm, while in morserino code I could not find a place where it is overriden.
So in reality the power is 25mW not 100mW.

UDP Chat Server Stops Recognising Commands

I was having a QSO via cq.morserino.info and apparently I was disconnected half way through my over. It was mentioned by the other party that I suddenly stopped transmitting even though I was still keying.

I thought I'd try running the chat server on my own computer to see if the problem was local to me. I noticed that after a certain period of time the chat server would stop recognising HI and :BYE.

I've tracked the problem down to the 'mopp' function. Every time this function is called, the serial number is incremented by one. As soon as the serial number hits 64, the 'mopp' function no longer returns the correct encoded version of the text passed to it. This means that, no matter how many times you send HI or :BYE, the server won't recognise them. It also means that, if the client times out, the server sends a garbled mess at a random speed instead of :BYE at 30wpm.

I appeared to fix the problem by resetting the serial number to 1 whenever it reached 64 but I'm not sure whether this is sensible because I don't understand how the serial numbers are used by the morserino. Regardless. I'm not sure whether any of the above accounts for the disconnect that happened to me on cq.morserino.info. I guess it might've just been my WiFi dropping.

Koch sequence not memorized !

On version 3.02 the Koch sequence LCWO can't memorized on snapshoot, after recall a snapshot the Koch sequence go to M32/ JLMC. the code looks correct in Write and readPreferences !

Add option to auto-select Koch lesson

  • Add new menu selection to define number of times symbol is keyed correctly before moving automatically to the next lesson.
  • Select a new Koch lesson after symbol is keyed correctly multiple times without errors.

How to build V5

As far as I understand and read the documentation, V4 and V5 kind of want the binary files built from source code using Arduino IDE.
Once the development platform is installed, it asks to open the *.ino file to build the project. V5 source directory doesn't have a *.ino file like this was built using another IDE system and not the Arduino platform.
Also, the V5 bin file doesn't load using the binary load program as it gives an error about the binary file not being of the right type or having the proper signature.
Would like updated documentation that matches uploaded files if possible.
Thanks

Echo Trainer: Wait time for response too long (if long inter-word space set)

If you set the InterChar and InterWord spaces for the CW Academy beginner course (long pauses), the wait time on Echo Trainer is uncomfortably long.

If I see this correctly, this could be due to the variable responsePause, whose value is 5 by default.

For shorter InterWord spaces this is certainly useful, but in the given case probably a bit too long. Maybe the value should be adjustable via the morserino (or should probably adapt depending on the given interword space).

(Also, the time before the echo trainer starts with the first sequence is a bit long, which might have a different cause.)

Problem with „Length Abbrev“ setting

I noticed that the maximum length of the cw abbreviations does not correspond to the corresponding setting. For example, I have set „Length abbrev“ to 2 but all of the abbreviations in Koch Trainer - Echo Trainer - CW Abbrev have only the length of 1. But if I set „Length abbrev“ to 3, the echo trainer shows words with the max. length of 2. Is it possible that the corresponding setting is unintentionally exclusive the given number (i.e. < instead of ≤)?

Using firmware v5.0.

(I only skimmed the code, but in the context I noticed that the Arduino random function says: A random number between min and max-1. ;) )

WPM calculation incorrect?

I noticed the effective Wpm was always 1 less than the Wpm (when using the default of 3 for inter character spacing and 7 for interword spacing). I don't believe this is correct.

The documentation says the "interword space will always be at least 4 dit lengths longer that the character spacing", which makes sense. However, the code in updateTimings() adds 6 to the character spacing:

interWordSpace = _max(p_interWordSpace * ditLength, (p_interCharSpace+6)*ditLength);

This makes the calculation of "effWpm" be 1 less than what I think it should be. I think it should read "+4" not "+6". You can also remove 1 multiplication with:

interWordSpace = _max(p_interWordSpace, p_interCharSpace+4) * ditLength;

Hope that all makes sense.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.