¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

tinySA firmware


 

Hi,

I have finally received all major parts to try my hand at building this SA following Glenn's writeup.

On his site he mentions that the layest firmware for the ESP32 wrover is 2.7 but what is in the files section here is only 2.3. Does anyone know where I can get a copy of the layest firmware please?

73, Elia
M0ZHN


 

Hi Elia (and others in the group)

I have just updated the files section with a development version 2.7d.? There are almost certainly bugs in this and it is work in progress.? Please let me know of any you find.

You will need to adjust the values in my_SA.h to suit your WifI, if you want that feature, and for your hardware, which is probably a parallel PE4302 instead of my serial version.
To enable the web pages you will need to select Tools/ESP32 Sketch Data Upload from the Arduino IDE.

Changes since previous versions:
  • Various bug fixes
  • Probably some new bugs
  • Data is now pushed to the web page every 100 data points.? Note this is 100 actual readings, not 100 data points on the LCD so you get the full resolution possible on the web page chart for the selected RBW.? Some slower devices struggle with this.? A PC or iphone 5 is fine.? I will make this adjustable in a future release
  • Zooming into a portion of the chart is possible on the web page
  • Averaging is adjustable on the web page
  • Some restructuring to enable different modes in the future
  • Markers - still some improvements to be made here
Good luck and just ask if you have any queries or suggestions

73, Dave M0WID


 

David forgot to mention that you'll need an additional library which can be installed using the Arduino IDE's library manager by searching for "ArduinoJson" or from "arduinojson.org".

I haven't tested everything in detail, but after a?quick hit and a lick it seems to be basically working!

--
John P.
WA2FZW


 

John, Dave,

Thank you for the info, I will enjoy the build and hopefully the software will be easy ?

Will share my progress as it goes

73 Elia,?
M0ZHN


 

Hi Dave,

I loaded the sketch into the Arduino IDE and started looking at what libraries I need, there are a lot!

I believe I found all of them but seems either I got the wrong version of some or a completely different library with the same name.

Do you have a list of the libraries used and at what Rev?

example, for the TFT_eSPI library that I loaded the IDE gave the following error when compiling:
'class TFT_eSPI' has no member named 'getTouchRawZ'

Any advice is appreciated.

73 Elia
M0ZHN


 

Hi Elia,

I think we have had a QSO via GB3AL or GB3AU repeaters?? If you want to talk something through arrange a time and we can chat via the repeater if you can reach it (or GB3MH).

Sorry I should have listed the libraries I have:

ArduinoJson Version 6.15.2 (latest via library manager)
TFT_eSPI version 2.26 (latest via library manager)
WebSockets version 2.2.0 (latest via library manager)
AsyncTCP () - library files dated 30/09/2019
ESPAsyncWebServer (. My library files are dated 17/10/2019

73

Dave M0WID


 

Hi Elia,
Have you seen John Price's TinySA Operator's Manual in the files section, in particular, the process involved in customising the TFT_eSPI library? Although it's written for V2.3 it's still applicable to 2.7.
Good luck.
Rgds
Jim - G3ZQC


 

Thanks Dave, yes would be nice to chat some time. My antenna is down at the moment (house extension work) but will be ready soon.

73 Elia, M0ZHN


 

Hi Jim,

Thanks, actually John was kind enough to send me copy by email, I will go through his writeup as well!

73 Elia, M0ZHN


 

Hi,

So Jim was absolutely correct, I updated the TFT_eSPI library as per the instructions and that part of compiling seems to have gone well. Now the IDE compiles to the end (almost) and just before completing throws this error:

Arduino: 1.8.12 (Windows 10), Board: "ESP32 Wrover Module, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), QIO, 80MHz, 921600, None"
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:27: error: field 'call' has incomplete type 'tcpip_api_call'
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ? ? ? ? ? ? ? ?^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:12: note: forward declaration of 'struct tcpip_api_call'
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp: In function 'esp_err_t _tcp_output(tcp_pcb*)':
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:235:65: error: invalid conversion from 'err_t (*)(tcpip_api_call*) {aka signed char (*)(tcpip_api_call*)}' to 'tcpip_api_call_fn {aka signed char (*)(tcpip_api_call_data*)}' [-fpermissive]
?
? ? ?tcpip_api_call(_tcp_output_api, (struct tcpip_api_call*)&msg);
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:235:65: error: cannot convert 'tcpip_api_call*' to 'tcpip_api_call_data*' for argument '2' to 'err_t tcpip_api_call(tcpip_api_call_fn, tcpip_api_call_data*)'
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:12: note: class type 'tcpip_api_call' is incomplete
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp: In function 'esp_err_t _tcp_write(tcp_pcb*, const char*, size_t, uint8_t)':
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:251:64: error: invalid conversion from 'err_t (*)(tcpip_api_call*) {aka signed char (*)(tcpip_api_call*)}' to 'tcpip_api_call_fn {aka signed char (*)(tcpip_api_call_data*)}' [-fpermissive]
?
? ? ?tcpip_api_call(_tcp_write_api, (struct tcpip_api_call*)&msg);
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:251:64: error: cannot convert 'tcpip_api_call*' to 'tcpip_api_call_data*' for argument '2' to 'err_t tcpip_api_call(tcpip_api_call_fn, tcpip_api_call_data*)'
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:12: note: class type 'tcpip_api_call' is incomplete
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp: In function 'esp_err_t _tcp_recved(tcp_pcb*, size_t)':
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:266:65: error: invalid conversion from 'err_t (*)(tcpip_api_call*) {aka signed char (*)(tcpip_api_call*)}' to 'tcpip_api_call_fn {aka signed char (*)(tcpip_api_call_data*)}' [-fpermissive]
?
? ? ?tcpip_api_call(_tcp_recved_api, (struct tcpip_api_call*)&msg);
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:266:65: error: cannot convert 'tcpip_api_call*' to 'tcpip_api_call_data*' for argument '2' to 'err_t tcpip_api_call(tcpip_api_call_fn, tcpip_api_call_data*)'
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:12: note: class type 'tcpip_api_call' is incomplete
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp: In function 'esp_err_t _tcp_connect(tcp_pcb*, ip_addr_t*, uint16_t, tcp_connected_fn)':
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:282:66: error: invalid conversion from 'err_t (*)(tcpip_api_call*) {aka signed char (*)(tcpip_api_call*)}' to 'tcpip_api_call_fn {aka signed char (*)(tcpip_api_call_data*)}' [-fpermissive]
?
? ? ?tcpip_api_call(_tcp_connect_api, (struct tcpip_api_call*)&msg);
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:282:66: error: cannot convert 'tcpip_api_call*' to 'tcpip_api_call_data*' for argument '2' to 'err_t tcpip_api_call(tcpip_api_call_fn, tcpip_api_call_data*)'
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:12: note: class type 'tcpip_api_call' is incomplete
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp: In function 'esp_err_t _tcp_close(tcp_pcb*)':
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:295:64: error: invalid conversion from 'err_t (*)(tcpip_api_call*) {aka signed char (*)(tcpip_api_call*)}' to 'tcpip_api_call_fn {aka signed char (*)(tcpip_api_call_data*)}' [-fpermissive]
?
? ? ?tcpip_api_call(_tcp_close_api, (struct tcpip_api_call*)&msg);
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:295:64: error: cannot convert 'tcpip_api_call*' to 'tcpip_api_call_data*' for argument '2' to 'err_t tcpip_api_call(tcpip_api_call_fn, tcpip_api_call_data*)'
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:12: note: class type 'tcpip_api_call' is incomplete
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp: In function 'esp_err_t _tcp_abort(tcp_pcb*)':
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:309:64: error: invalid conversion from 'err_t (*)(tcpip_api_call*) {aka signed char (*)(tcpip_api_call*)}' to 'tcpip_api_call_fn {aka signed char (*)(tcpip_api_call_data*)}' [-fpermissive]
?
? ? ?tcpip_api_call(_tcp_abort_api, (struct tcpip_api_call*)&msg);
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:309:64: error: cannot convert 'tcpip_api_call*' to 'tcpip_api_call_data*' for argument '2' to 'err_t tcpip_api_call(tcpip_api_call_fn, tcpip_api_call_data*)'
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:12: note: class type 'tcpip_api_call' is incomplete
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp: In function 'esp_err_t _tcp_bind(tcp_pcb*, ip_addr_t*, uint16_t)':
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:324:63: error: invalid conversion from 'err_t (*)(tcpip_api_call*) {aka signed char (*)(tcpip_api_call*)}' to 'tcpip_api_call_fn {aka signed char (*)(tcpip_api_call_data*)}' [-fpermissive]
?
? ? ?tcpip_api_call(_tcp_bind_api, (struct tcpip_api_call*)&msg);
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:324:63: error: cannot convert 'tcpip_api_call*' to 'tcpip_api_call_data*' for argument '2' to 'err_t tcpip_api_call(tcpip_api_call_fn, tcpip_api_call_data*)'
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:12: note: class type 'tcpip_api_call' is incomplete
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp: In function 'tcp_pcb* _tcp_listen_with_backlog(tcp_pcb*, uint8_t)':
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:339:65: error: invalid conversion from 'err_t (*)(tcpip_api_call*) {aka signed char (*)(tcpip_api_call*)}' to 'tcpip_api_call_fn {aka signed char (*)(tcpip_api_call_data*)}' [-fpermissive]
?
? ? ?tcpip_api_call(_tcp_listen_api, (struct tcpip_api_call*)&msg);
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:339:65: error: cannot convert 'tcpip_api_call*' to 'tcpip_api_call_data*' for argument '2' to 'err_t tcpip_api_call(tcpip_api_call_fn, tcpip_api_call_data*)'
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:203:12: note: class type 'tcpip_api_call' is incomplete
?
? ? ?struct tcpip_api_call call;
?
? ? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp: At global scope:
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:574:6: error: prototype for 'void AsyncClient::_dns_found(ip_addr_t*)' does not match any in class 'AsyncClient'
?
?void AsyncClient::_dns_found(ip_addr_t *ipaddr){
?
? ? ? ^
?
In file included from C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:24:0:
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.h:88:10: error: candidate is: void AsyncClient::_dns_found(_ip_addr*)
?
? ? ?void _dns_found(struct _ip_addr *ipaddr);
?
? ? ? ? ? ^
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:894:6: error: prototype for 'void AsyncClient::_s_dns_found(const char*, ip_addr_t*, void*)' does not match any in class 'AsyncClient'
?
?void AsyncClient::_s_dns_found(const char * name, ip_addr_t * ipaddr, void * arg){
?
? ? ? ^
?
In file included from C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.cpp:24:0:
?
C:\Users\eliam\OneDrive\Documents\Arduino\libraries\AsyncTCP\src\AsyncTCP.h:168:17: error: candidate is: static void AsyncClient::_s_dns_found(const char*, _ip_addr*, void*)
?
? ? ?static void _s_dns_found(const char *name, struct _ip_addr *ipaddr, void *arg);
?
? ? ? ? ? ? ? ? ?^
?
exit status 1
Error compiling for board ESP32 Wrover Module.
?
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.


Not sure how to correct it. I have properly added the SSID and password and have added the libraries as per John's instructions but no luck.?

Anyone knows what it could mean and how to fix it please?

73 Elia, M0ZHN


 

Seems as though you have a different AsyncTCP library.? Try this one.

Dave


 

Success! The sketch compiled and managed to load it onto the board. Using the serial monitor it talks to the IDE and loads the configuration but fails on initialising the hardware as nothing is yet connected to it :D

So, on with the hardware build, I don't have a pcb so will be a manhattan style for now

Thanks for the help so far, will keep you posted on my progress.

73 Elia, M0ZHN


 
Edited

I uploaded a newer version of the documentation for the ESP32/ILI9341 software. It does not exactly match the Version 2.7d software that David uploaded the other day, but it is much closer than the older version (which I deleted). Hopefully I'll be able to upload a more exact version soon.
--
John P.
WA2FZW


 

So the build started, just completed the input LPF, measured with a nanoVNA it has a cutoff frequency of 230MHz.


 

Very neat!

If you are building the 434MHz saw filter section in a similar way (I did for iteration 1) then you will need lots of vias to the back ground plane.? Have a good read of the layout recommendations in the data sheet - I was amazed at the difference the vias made to performance, and not just in the region of the filter pads but also the matching components.?
I used the Nano VNA and did various measurements with/without matching and with/without vias.? Interestingly without the matching parts I got a very narrow (too narrow) response, be interesting to see if that is repeatable.

Dave M0WID


 

hi,
I managed to install the missing parts yesterday and turned it on today. I get a yellow alert when I log in:
"Failed to mount SPIFFS
Use ESP sketch Data Upload in the Arduino IDE
WiFi Disabled "
Where and what should I do?
Thanks for the help.
--
Gyula HA3HZ


 

Well done!? In the Arduino IDE, under tools there is a command to Upload Data to the ESp32.? Make sure you have your serial monitor closed first, then select.? The contents of the data subfolder in your arduino project wil lthen be uploaded to the ESP32.? Then you should be OK.
Most likely when there is a newer version distributed this will have to be repeated as the data in there could have also changed, eg the web pages.

73

Dave M0WID


 

Hi Dave,
Thanks for the information, I hope I won't forget about the newer firmware.
I think I found the reason the User_setup_select was missing the link. Maybe it's because of it. I'll try.
Where can I find the newer version?

--
Gyula HA3HZ


 

I posted a zip file for the TFT_eSPI user setup into the files section.? Sorry these files were missed from the last release.
However you have a display working, so you already have the TFT_ESPI library sorted out.? The error message you see should be fixed by doing the Data Upload from the Arduino IDE.
Later version is not released yet - still very much work in progress but suffering from lack of time on my part.? Stick with 2.8 for now and let us know how you get on and the bugs or improvements needed that you will no doubt find.

73 M0WID


 
Edited

Hi Dave,
I remembered setting up User_Setup_Select.h, checking it and missing the entry. I just replaced it, then I also set up WiFi and it works fine. I am very happy about it.
It can be built further.
Thanks for the help.

ps.:

Special thanks to Jim G3ZQC for making the Si4432 modules available to me along with the modification drawing.
When I started installing, Ashining¡¯s package also came along.



--
Gyula HA3HZ