The board I have is H/W 1048-002-037 with S/W 002.018. This page is about experimenting with the WSPR TX XP Plus boards to develop the ability to communicate and configure the board with character based application. I have been reading Phil -VK7JJ's Javascript and some Python code on github from Kendell Chilton (not fully functional) as examples. I have been using Python 3 as the main development language. The application makes expensive use of the class Serial.Serialposix.Serial.
The Objective
I and The Brisbane Amateur Radio Club, have been using the Zachtek Desktop as part of the
Intl. WSPR Project for some time now. We and others have an ongoing issue with the Desktop transmitter
causing interference (desensing) on the whole HF bands. Do not underestimating the distance the
transmitter should be from the HF radio installation.
RemoteHF
Recently, we have built a remote HF controller. See
Remote-Radio-Controller and has all the software required to remotely switch bands.
to overcome the desensing I have considered remotely allowing the operator to switch off the Desktop for one band for one of 20 minute cycle
via an Node red button on the remote control's web page interface.
Not ideal but better than switching off the desktop completely and forgetting to re-enable it.
The idea is to locate the Desktop transmitter a long way form the receiver, however, that is not always practical.
Inline Rpi
I have inserted a Rpi running a PiOS in character mode into the usb port that powers the unit and
provides serial access to the Zachtek API.
This RPi front end allows reading and writing non-blocking serial data to the Desktop. The Raspberry
Pi is wifi enables and therefore allows remote access.
Fortunatly, the protocol used to communicate and manipulate the Zachtek Desktop transmitter is open and
both the firmware and API protocol is available on Harry's Zachtek site by product number:
https://github.com/HarrydeBug/WSPR-transmitters/
The Desktop procuct number is 1012. The lastest API is here:
1012 WSPR-TX_Desktop Serial API 202.17.pdf
A big thanks to Harry for allowing open systems to prevail.
Zachtek API
To connect to the device use a serial setting of 9600N81. The RTS and DTR line controls Reset and
Firmware upload mode, usually you don't have to bother setting them as they will be fine in the
default settings. The commands are three letters enclosed in brackets and use a Get/Set structure.
The reply is also three letters but included in curly brackets. After this there follows a number
of characters that is data, the numbers of characters depends on the command/option sent and is
documented in the API document below.
Reference Applications
A tip when you first start to explore the API is to either use the WSPR.rocks page or the Zachtek
config software.
The advantage of sending your first API calls using either Phil's (VK7JJ) webpage or my config software
(compared to doing it in a terminal software) is that you will see how the replies change the GUI
settings and get validation that you are doing it correctly.
VK7JJ Javascript
The WSPR.rocks by Phil -VK7JJ uses this API for his webpage that can control my WSPR transmitters
here: http://wspr.rocks/zach/
Once the page is loaded simply click the "show advanced" link to expose the API interface.
Zachtek Configurator
In the Zachtek configuration software click the "debug option" option to expose a method to send
API Get/Set request.
EPROM
A quick note about the Save option - If you don't use the save option the current setting will be used
until the next restart. So if per your example you disable one band then that band will not be used as
long as it has power but power cycling the device (or reseting with RTS line) will restart the device
and it will revert to the previous config so you can use that to good effect to "flush" temporary settings
that are not saved in to EEPROM.
A Stop/Start Example
If you want to temporarily halt the beacon simply send [CCM] S N
When you want to start the beacon again you can either send [CCM] S W, or alternatively you can
restart the device by forcing the RTS line low briefly.
Firmware
The firmware is here:
https://github.com/HarrydeBug/WSPR-transmitters/tree/master/Standard%20Firmware/Release/Hardware_Version_2_ESP8285/WSPR-TX2.18
There is a constant that needs to be set in the code that determines what product it compiles for, you find it at line 125
set it to 1048 for the WSPR TX XP Plus board.
WIFI Stack
There is no specific documentation on accessing the wifi stack on the TX XP Plus, however
there are code examples and documentationmfor the ESP8285 WiFi under the Arduino SUpport pages.
To get the available libraries for your Arduino IDE install you need to add the following line
in the "Arduino Boards manager URLs:" Setting in the "File, Configuration" dialog.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Set the board to "Generic ESP8285 module" the "File, Examples" menu will have lots of examples
for WiFi that should compile and run on the WSPR-TX XP Plus board.
1048 Board Schematic
The schematic is here:
https://github.com/HarrydeBug/WSPR-transmitters/blob/master/Documentation/1048%20Schema/%231048%20Schema%20V2R38.pdf
The documentation for the WSPR TX XP Plus is the same as for the XP so use that for now, https://www.zachtek.com/1011
There are no docs on the WiFi and external reference ports for the XP Plus as yet, but looking at the Schematic gives a good idea how it works.
[Top][Home]