-
Notifications
You must be signed in to change notification settings - Fork 189
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
Implementing PSK mode #1002
Comments
There are already provisions in the digital mode handling code for multiple digital modes. I am about to integrate RTTTY into that framework. That means I basically have the same questions you have.
|
what about a keyboard on the touchscreen??? that could be only switched on when needed and with a touch stick it should be possible to type some short texts (or select a marco text) ... (ok maybe a bit difficult with fat fingers) ... no need for having 26 buttons ... do it like on a phone keyboard ... then only 10 buttons needed (and the sms junkies already know how to use it ... grin) |
...or if CPU have one more free pair RXD/TXD, to add bluetooth module, and that be paired with one keyboard. PSK decoder will be SUPER if can be implemented!
73, ______________________ alexander - yo2ldk
From: DG9BFC <[email protected]>
To: df8oe/UHSDR <[email protected]>
Cc: Subscribed <[email protected]>
Sent: Thursday, August 17, 2017 9:17 PM
Subject: Re: [df8oe/UHSDR] Implementing PSK mode (#1002)
what about a keyboard on the touchscreen??? that could be only switched on when needed and with a touch stick it should be possible to type some short texts (or select a marco text) ... (ok maybe a bit difficult with fat fingers) ... no need for having 26 buttons ... do it like on a phone keyboard ... then only 10 buttons needed (and the sms junkies already know how to use it ... grin)—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Great to see progress in digimodes. For me is the best USB keyboard as input. For config memories we can use usb flash with txt file. Maybe this code https://github.com/rubund/gmfsk will be usefull, there is implementation of various digimodes. 73 Ondra OK1CDJ |
|
I may have misunderstood you: Did you mean Power or G3? see https://github.com/df8oe/UHSDR/wiki/Operating-Manual for the "official" mcHF button names. Now for the actual question:
|
Yes, I meant G3, sorry for vagueness. |
@ok1cdj thanks for the link. Current idea is to start with fldigi code. |
For PSK, you may want to have a look at https://github.com/STM32-SDR, they integrated a PSKCore derivate in C. It might also be worthwhile to look at Moe Wheatley's PSKCore DLL Sources (LGPL). 73 |
I will have a look. Thanks! |
Very nice that you are pushing forward the PSK decoding! |
@DD4WH I cannot answer that yet. More likely starting with audio path for the first attempt, but open for recommendations. |
Regarding Buttons: yes, with CW keyer input PTT is not your best choice :-( . Maybe the design should have separated PTT from keyer inputs. But I am not completely without hope: Why not "move" tune to long press of G3? Tune is not the most frequent operation. Then F5 is free to be used. What I don't like about this is, that we have "Tune" on different buttons. So if we go down this route, tune should eventually move to G3. This would free up F5 for various jobs such as a "User" button (with some user selectable commands mapped to it unless it is needed by the various modes such as digital modes). |
I used Tune quite often with my external tuner. Also, I use Long press of F5 to disable TX (to test some morse sequence sending temporarily). So, I would not be happy to permanently remove this possibility. But what do you think about M1 long press being like caps lock changing functionality of F1-F5 (giving way for possible 'keyer mode' implementation using F1-F3, F4 would probably go for deleting last character, with long press cancelling all buffer, F5 become rxtx)? Long press of M1 returns F1-F5 as they are now. I will be away for a vacation for 2 weeks without a computer. Not much progress expected during that time. |
Hi Eriks, |
One thing I would like to understand - how the mode switching will work for digital modes? Currently there is just FreeDV, but I have understood that it should be possible to switch when we have multiple. I have not investigated the code in this regard yet. |
That is why I said RTTY will be the template. This weekend I implemented RTTY as a second digital mode. Essentially there is a variable called ts.digital_mode which is used to discriminated the current digital mode. If you search for ts.digital_mode use (best done using Eclipse "References" menu but text search should work too), you'll see how it is being used. I currently limited the choice to None, FreeDV, and RTTY. There are about 2 places where we have to change the limit so that PSK is included. Then as a user you can select PSK and when the digital mode is activated, it will be in PSK mode. |
As discussed in df8oe#1002
As discussed in df8oe#1002
Fixing cw entry of space, now calling cw routines not only in CW/TX mode #1002
Hi Eriks, |
@db4ple long term storage is not in the priority list yet. EEPROM sounds more appropriate though. Any recommendations welcome. |
Hi Eriks, there is already good work (and code) for implementing PSK into STM32. It is in German but Google translate will do its job: https://www.mikrocontroller.net/topic/163505 The most interesting posts come from Bernd K. ( prof7bit ) ~ in the middle of the thread. vy 73 |
As of my last PR the keyer now actually does something useful in cw mode. Everybody interested, please, see Digimodes page of Wiki for description how to use it and current limitations (e.g. not saving to eeprom yet). |
@ dd4wh |
ok i tried it ... together with rit??? no way ... does not work |
So, is receiving BPSK possible yet? I know I can not get it to receive here, tried for hours. |
RX not possible yet - only TX. BPSK is highly experimental alpha stage and under progress. 73 |
Can’t wait to see it working.
Keep up the great work.
I just upgraded to the 429MCU, working great!
73, de WD8BXS
Chuck
|
Posting comment just to confirm I am still working on PSK receiving. |
Just submitted a PR with basic BPSK rx functionality. A star means that an unknown symbol is decoded. Mostly tested using PSK31 until now. PSK63 and PSK125 might need separate wider filter. |
it works !!!!! now for the filter programmers add a narrow filter around 1000hz |
Hi Sigi, |
Hi Eriks, if you want, I can add the existing snap button to the PSK mode, so we could test out how well that works for finetuning to the PSK carrier. Preliminary test show that the carrier can be snapped, however the precision could be better . . . |
Snap is now implemented in the newest version. Pull request has been submitted. |
there is an AFC in the code that can be found here: |
you need both .. snap for coarse tuning and the decoding has either to do the finetune ... or give the mistune additionally to the vfo (do the finetune over the last few hertz).... all psk soft that i know have some kind of afc (against slow drift) .. if we can add such a function then you do the coarse tune and let the decoding do the rest (send offset to vfo and finetune) |
I would prefer 500 (or 1000) to 700 Hz as 500 divides by 31.25, but 700 does not. |
ah ok .. it has a reason why you selected 1000 (or would take 500) ... i understand that i tested the peak filter and it lifts out a psk signal even from close to noise level to a much stronger signal just thinking how low signals could be improved ... stronger signals decoding fine here after you found frequency :-) about frequency ... would a 1000hz signal be easier to decode then a 500hz signal (cause you have 32 instead of 16 swings per 31 baud) |
Please, test the new commit. Feedback welcome. |
PSK WIP, experimenting with convergence coefficients #1002
Different filter widths depending on PSK rate #1002
Question for discussion - shall we mark this issue as closed? In a basic form it works. Improvements (AFC, improving decoding, more code optimization, different display, etc.) can be separated into issues of their own and thus better managed. |
The user guide for PSK under DigiModes needs updating to change the suggested filter to I would guess 300Hz/500Hz. it took me a while to realise something had changed. |
I have started the work on implementing PSK mode. The objective is to be able to fully communicate in PSK without using a computer. There is a multitude of design issues.
Should it be a separate PSK mode or a submode of existing Digital mode? If the latter, how to select it?
There is BPSK, QPSK, 8PSK with many variations (e.g. error correction option) and different speeds (BPSK31, BPSK63, etc.). How to select specific PSK submode? For the start I prioritize implementation of BPSK, and the speed to be selectable (and displayed) the same way as WPM in CW. Implementing other PSK modes should be more a UI issue as the rest should be easy.
Should it be separate display mode with text window, or an overlay over existing waterfall and scope? Showing received text and transmitted text in separate windows or in one with different colours? What variations/configuration options would be needed to cover different preferences (e.g. font size)?
I have already created a prototype paddle iambic mode input decoder. Probably, straight mode decoder would be needed for some. USB keyboard might be very convenient, but I understand that constantly polling keyboard could be a performance issue.
Also, it should be possible to switch between tx and rx modes. Likely using one of the physical buttons.
There should be a buffer of text, which is displayed and sent once switching to tx mode, and some very simple editing possibilities should exist (cancelling all text, deleting last character).
Using PSK without possibility to send a predefined block of text would not be convenient and wouldn't replace computer usage. One idea is to use long press power button to switch 5 buttons into 4 memory buttons (sending the recorded text when pushed) + 1 tx/rx button. Long press on power button again switches back to normal arrangement with Menu, Meter, etc.
Memory keyer buttons could be interesting for CW mode as well.
Ideally, it would be possible to select callname from conversation (probably using touchscreen), and simple macros could be supported. This is more for a later phase, and not for the start.
This is optional, but as we have frequency, time (if using RTC), band, mode, call, we can keep a simple list of QSOs . Not doing anything now, but returning to this idea in the future.
Feedback welcome.
The text was updated successfully, but these errors were encountered: