SPE EXPERT remote control console with ESP32 'CYD'

Project presentation

SPE Expert linear amplifiers front panel membrane keyboards do not have an infinite lifetime, as the plastic foil of keys can become worn out or their contacts can be 'sticking' after some time.... so it's best to avoid using them too frequently. 

Therefore I have been using the SPE  remote control software running on PC for some years. There are some software alternatives published on the web, with even more 'compact' interface, but still this requests  an extra window on your crowded desktop.   As alternative I was looking for some simple and convenient control possibility on the desk, at the touch of fingers ... very handy for example to check signal while swapping antenna's. No need to readout the data like power, voltage, current, SWR, etc ... these can be scrutinized from the LCD display - it was never the intention to provide a full function remote function.

First wanted to try with ELGATO Streamdeck miniconsole, a nice toy where you can program buttons and assign functions, maybe from there something could be developed towards the Expert. Unfortunately, my Windows 7 'shack PC' was not compliant to run the Streamdeck drivers ... so had to think of another solution.

 

ESP32 Cheap Yellow Display (CYD) development

A very interesting µcontroller board is the ESP32 CYD. It is based on ESP32WROOM, has a TFT display 2,8" 320x240 pixels, a tactile touch pad, on board audio amplifier, WiFi, LDR, ... all in one assembly, at very reasonable cost (less than 15,-EUR !). And it can be integrated in a small 3D printed console, there are several projects freely downloadable on the Web.


FRONT VIEW


BACK SIDE VIEW

In the end, the project resulted in a small remote control console :

Following functions have been provided:

Some screenshots


Startup screen


SET and OTA buttons during boot-up

   


Settings page


OTA page




Demo of VOICE messaging version

 

 

Firmware upload & updating

ATTENTION : the firmware has been written for following board , here are the important parameters, as several versions exist: on the market:

Check documentation of your candidate board !

As all the 'bits and bytes' on board of the CYD must collaborate in the proper manner, and in order to avoid any issues during the upload of the firmware into a blank ESP32 board, I have made a 'package' of all files, which can be uploaded very easily - without any knowledge about microcontrollers, without any software to install - as a simple batch job, which will even smoothly run from a Win7 32bit PC. This is done by connecting the CYD to your PC via a USB cable, identifying which (virtual) COM port is created, entering the port number in the batch routine when asked for it, and that's all !

Once the CYD has been loaded with the required console system files, the software updates can be conveniently performed by OTA ('Over The Air').

Upon startup of the console, you can enable OTA by depressing the OTA button. When the function is active, the console switches on it's WiFi, configured as access point.  You connect with your laptop to SSID 'SPE-console' (no need for a WEP key), you browse to the indicated webpage (console will deliver you an ip-address automatically) and from there you select the new firmware '.bin' file and start the upload - done in 10 seconds ! No need to open the console case, no need for cables ...

As the sketch/firmware is very dependant on some libraries which had to be custom trimmed for this project, it would be of little value to publish the sketch code without all underlying specific mods, and thereby not offering any guarantee that it will still be functional with possible future evolutions of  these libraries and/or development tools. Therefore I have decided not to release the coding, but instead take a complete 'snapshot' of a working system, which will work 100% for sure if installed on same flavor of hardware.

DOWNLOAD the file package (V1.14) as a zip file (about 4MB).

Unzip in some folder you created, and double click on the file "=spe-console-loader.bat" ,  then follow instructions to start the initial upload procedure. Don't forget to depress the BOOT button on the CYD to initiate this upload process, once running, it can be released. Download updates from the table below by clicking on version number required, these can be conveniently uploaded by the OTA procedure. Actual version, with standard hardware, is V1.16.

Note regarding the Red and Blue inversion : some CYD boards seem to have their hardware wired as 'RGB', other as 'BGR'. As it is impossible to swap between both possibilities during code execution, it is imperative to compile 2 different binaries. You can test which one gives you best rendering of colors, especially on the SPE logo (see pictures above). 

Firmware version Revision / comments
V1.21 Same as v1.16, but with VOICE feedback of key pressed / status. Red and blue NOT inverted ('Amazon' display)

v1.20

Same as v1.16, but with VOICE feedback of key pressed / status. Red and blue inverted ('Jincai' display)
v1.18 Same as v1.16, but CW feedback of key pressed / status (on buzzer). E.g. 'O' for 'Operate', 'S' for Standby, 'H' for High power, ...
v1.17 Same as v1.16, but red and blue are NOT inverted, might be required for some displays ('Amazon' type, ...)
v1.16 Extended possibility to set colors correctly according to hardware. Red and blue are inverted. (default for the 'Jingcai' display)
v1.15 Better handling of SLEEP and STBY screens sequences

V1.14

This version is included in the file package, you can upgrade from this.

Another (more complex) method for the initial upload - or should you have no laptop on hand - is by using a web facility like https://esptool.spacehuhn.com/

The 4 files below can be uploaded in one run, after selecting the right COM port and depressing the BOOT button. Attention: not all browsers will support serial transfer, see the docs of the webtool (Hint: Chrome will do)

FILE

To be loaded in:

bootloader_qio_80m.bin 0x1000
SPE_console.partitions.bin 0x8000
boot_app0.bin 0xe000
SPE_console_Vx.xx.ino.esp32.bin 0x10000

If you want to update the firmware without OTA / laptop, you can use the web tool + USB cable as well. In this case, it should only be required to upload  the  'SPE_console_Vx.xx.ino.esp32.bin' file in location 0x10000.

3D printed case

A suitable extremely compact case can be found on Thingiverse https://www.thingiverse.com/thing:6918515.

It was designed for a touchscreen with about same dimensions as the CYD, but the front frame will need some adjustments (milling out somewhat with DREMEL took) to allow passage of connectors. The CYD mounting holes will as well have to be filed out to allow mounting with small self tapping screws. Furthermore, in the frront panel a 3mm hole must be drilled above the LDR to allow light to shine on it, once drilled it can be neatly finished with the front part of a 3mm LED (clear translucent type, for example white color) kept  in place by a droplet of super glue. 

Download STL files here, should it be off-line on Thingiverse.(zipped, about 11 MB).. An adapted version, without need for adjustments, is presently under design ...

Despite being extremely compact, this case offers enough space to integrate the 5V voltage regulator, beeper and RS-232 to TTL converter.

Another design, however less compact is https://www.thingiverse.com/thing:6910220 . There is a file version with no hole on top of main cabinet. I have adapted the front frame to delete the slot on the side you can download it here.  

Steve G1YBB has meanwhile done an admirable job by making a custom design for the project, you will find it on  https://www.thingiverse.com/thing:7247780/files      Thank you very much Steve for the efforts and sharing this !

 

Schematic diagram

The schematic diagram has been hand-drawn, as it is extremely simple ...


Click to download full size PDF

Other bits and pieces required / Wiring to SPE

Some information about other parts/components required :

For the wiring to SPE EXPERT, I used a (globally) shielded flexible cable with 4 cores. The shield will conduct the -12V (GND), one core the +12V supply,  two cores the RS-232 in/out, one core the +12V to power up SPE.  This cable runs into the DB9 going into the PORT socket of SPE, inside the DB9 it splits into a power supply cable an a small cable running towards the DB15 plugged into the second CAT socket (I only use one TRX). Should you run 2 TRX, you can arrange wiring to one of the two CAT ports.  Note : as some ports of SPE Expert are delivering +12V when the SPE is powered up, it is possible to power the console from there ... but in this case you will not be able to power up the SPE from the console.

For the availability of components, should you be in doubt  I will gladly advise you where to source them - but I am certainly not in position to propose assembled 'plug and play' units, sorry !

RFI interference

On the cable between console and SPE, at the SPE end close to the DB9 connector, I put a ferrite clamp-on core. On all bands, and at all power levels, I have never observed any erratic behavior of console or SPE during transmissions. 

 

IMPORTANT: Please note that the software & device concept is presented 'as is' with no guarantees whatsoever and can be used free of license cost by individual  HAMs, but not  used for any commercial purpose, as the intellectual property remains entirely by the author.