PSK31 is an amateur radio communications mode introduced by Peter Martinez, G3PLX, that uses phase modulation and special character coding. It allows robust narrow bandwidth keyboard "Chat" type communications between two or more stations.
A DLL(Dynamic Link Library) was developed that can be used for receiving and transmitting PSK31 signals using a Windows soundcard. The DLL is a 32 bit Regular DLL written using Visual C++ and MFC. The user sends and receives data and status via calls to various routines exposed by the DLL. Custom User Windows messages are sent from the DLL to the application for notification of events that require action by the application program.
The DLL is made available free of charge for amateur radio use only.
Key DLL Features:
Full Software/Technical Documentation is contained in this pdf file (778K):
The DLL File(and include and library files for linking) is here (124K): PSKCoreDLL121.zip
The LGPL DLL Source Code is here (111K): PSKCoreDLL121Src.zip
This new version starting with 1.19 runs the soundcard at 48KHz to get around the Windows driver resampling rate error problems many are seeing.(Windows decides to run the card at a slightly different rate than 8000Hz for some reason..the affect is a reduction in sensitivity in receiving PSK with the dll). Some older sound cards may not work at the new rate of 48KHz so the old version is still available.
The Old DLL File(if your sound card does not support 48KHz Sample rates) is here (88K): PSKCoreDLL117.zip
A c t i v e X P S K 3 1 C o n t r o l
Dave Cook, WA0TTN has brought his amazing programming talents to work and rolled the DLL code AND a new spectrum display together into an almost too easy to use ActiveX component. The documentation package is a thing of beauty. He is also working on a "Rig Control" component to make interfacing to all the various radios just as easy. Check out his work athttp://www.netdave.com/wa0ttn/PSK31.asp
Revision History( from latest back to first release):
ver. 1.21 Maintenance release 9-24-2008 ( Big Thanks to Dave,
AA6YQ for doing all this)
Added Quad speed mode for BPSK and QPSK (PSK125).
Added API entry fnStartRXTXSoundCard - a version of fnStartSoundCard that accepts independent input and output soundcard device identifiers
Corrected compilation errors and warnings from Visual Studio 2005
Changed Soundcard rate to 48KHz.
Fixed RX qpsk mode bug.
ver. 1.17 Maintenance release 6-05-03
Fixed problem with Tx mode changes
Forced squelch off after Tx to Rx transition.ver. 1.16 Maintenance release 5-23-03
Added double speed mode for BPSK and QPSK (PSK63).
Fixed problem with QPSK squelch when long string of various characters were received.
Fixed FFT bug with missing data point.ver. 1.15 Maintenance release 6-22-02
Fixed problem with receive bit sync where characters could get scrogged periodically.
Fixed problem with soundcard closing.
Ver. 1.14 Maintenance release 4-27-02
Fixed problem with exported name mangling of the new functions added in version 1.13.
Fixed problem with soundcard clock adjustment on transmit.
Ver. 1.13 Maintenance release 9-08-01
Added New functions to help manipulating multiple receive channels (See Interface document) for details.
Fixed possible serial port initialization problem.
Ver. 1.12 Maintenance release 8-04-01
Added RIFF wave file support.
Decreased CPU decoder load by 8%
Ver. 1.11 Maintenance release 6-01-01
Keeps serial port open during receive mode to correct a problem with some laptops.
Bumped TX buffer size to 32K
Ver. 1.10 Maintenance release 1-28-01
Clears RTS and DTR when fnSetComPort(..) is called.
Use different API call for serial port commands to try and get around some laptop issues.
Ver. 1.09 Maintenance release 12-24-00
Added Full Duplex capability(See fnStartTX() )
Added Fast Track AFC mode ( See fnSetAFCLimit() )
Ver. 1.08 Maintenance release 12-08-00
Fixed Soundcard initialization error message problem.
Increased maximum allowed receiver channels to 50.
Include files now available for implicit or explicit DLL linking
Ver. 1.07 Maintenance release 8-18-00
Fixed FFT bounds problem.
Reworked dll initialization scheme so settings can be set prior to starting the soundcard thread.
Fixed Vector data glitch on transmit start.
Fixed TX Finishing status problem.
Ver. 1.06 Maintenance release 8-03-00
Added some time delay between audio and PTT.
Added fnRewindInput() function to back-up in time up to 25 seconds and re-process the audio data.
Ver. 1.05 Maintenance release 7-02-00
Added some more error checking to com port routines.
Fixed Problem sending error message during initialization.
Fixed Com Port8 selection problem.
Ver. 1.04 Maintenance release 6-24-00
Limited PSK31 frequency range to 100-3500Hz to prevent distortion problems.
Added Low audio input disable to prevent garbage characters from soundcard background noise.
Updated Software Specification/Tech Guide.
Fixed FFT baseline clipping bug.
Ver. 1.00 Initial release 5-29-00
Back to Main