Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
- HBTE
- Messages
Search
?
HBTE Group Topics
?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sweeperino (for Specan) not displaying frequency
Hi,? ?I am nearing the end of a journey, slaying a few dragons. I can run Sweeperino on my Arduino Uno,? but it doesn't display the Frequency numbers on the LCD line 1.
I can see a quick flash of "Sweeperino 2.0"? displayed on Line 1, when it starts up or is reset.? But then the symbols for frequency remain blank, where they should be numbers. I can read the digits and "dBm" on the 2nd line of the LCD, as well as the rightmost numbers on the 1st line of the LCD.? The frequency changes, as confirmed with a frequency counter, when I turn the pot control.? But still no numbers displayed on LCD line 1. In the code, I simply commented out the Si5351 related lines, since I am using the Si570 as the oscillator. While it took me a while to get all the libraries sorted out, and the data lines correctly linked to the LCD.? I know it is set up now since I verified with, a "Hello World" test (it worked), and then used the same display with the Radiono software, to compare, and it displays the frequency correctly on the LCD line 1.?? ?The LCD is on a DFRobot shield.? And I powered it from the Arduino 5 V and then a separate external 5 V DC supply..? ? What dragon is left to slay?? |
HB - GPS disciplined Signal Generator
Incredibly accurate. First picture shows .30Hz accuracy at 10,000,000 Hz. Second picture shows accuracy at 160,000,000 Hz. The sig gen had been in a cold garage and had only warmed up until a gps fix. Third picture shows number satellites being received, 10 and local time. Operates off 5 volt phone charger. Yours for $75 oro plus shipping. US money order or check (check must clear). Technical details and schematic at
Mitch W4OA |
Re: Active probe
Agree with those saying using a series diode instead of in parallel with the input. Why?sacrifice the diode D1 and most probably the coil L1 if you can put the diode in series which?offers the same protection without sacrificing D1 and L1 if you accidentally invert the supply polarity? Regards On Fri, May 12, 2023 at 9:35?AM Gerard <kabupos@...> wrote:
|
Re: Active probe
My opinion: The BF998 datasheet says typical transconductance (y21s) = 24ms. The output Z of a source follower is the inverse of that, that is 42 ohm, already lower than the Zo of the coax, so no need for a 47 ohm resistor, you can use a choke instead, or a higher value resistor + increasing G1 voltage. This way you will improve the Z seen by the coax, and get some more output. Daniel Perez LW1ECP |
Re: Active probe
L1 may or may not be necessary, but may be a good idea if you are running the probe from a switching power supply, which are quite common these days, and which are notoriously dirty.? If the power supply is dirty, some of what appears at the probe output may be coming from the power supply.? L1 will help with that.? The D1 protection diode works best with a series fuse or a current limited power supply.? If you hook it up backwards, the fuse blows, or the power supply limits the current.? The reverse diode and fuse is the ages old "brute force" protection method.? A series diode works fine, too!? The output impedance of the probe probably isn't all that critical, and is going to vary depending upon the transconductance of the FET, which will vary from FET to FET.? I'm not sure why the lowpass filter at the output of the probe was included, the output is going to roll off naturally anyway.? Other designs not including the filter claim -2.5 dB at 1.5 GHz, so probably no need for the 1.4 GHz lowpass filter.? I ordered the Transverters Store version of this probe several years ago but seem to have lost it somewhere along the line, I guess I'll have to order another or etch my own boards or something.? I've wished I'd had it many times!
|
Re: Active probe
I built that above active probe from a UK kit.
Two comments regarding the schematics. The reverse voltage supply protection "works" by shorting the supply if the polarity is not correct. Depending on how still the supply is, no good could come from this. I used an 1N914 diode in series with the supply instead. The output impedance of the circuit is not 50 Ohm. The output impedance of a source follower is the parallel of the source resistor and the reciprocal of the transconductance of the FET. I found the the correct value experimentally, when the output is loaded by 50 Ohm, the output voltage is half of the unloaded output when the output impedance is 50 Ohm. In my case the value of the source resistor was about 120 Ohm. Regards, Peter |
Re: Homebrew spectral analyzer
On Mon, Sep 25, 2023 at 01:28 AM, m0wid wrote:
No - way too complicated for me.? I meant the index.html file.? ?Towards the end is the stuff about connecting and handling the messages.? First part is mainly setting the controls and the chart.Ok, thanks for the idea that came up, ESP32 has two processors that are really promising to speed up processing, I will try, hope to solve it |
Re: Homebrew spectral analyzer
No - way too complicated for me.? I meant the index.html file.? ?Towards the end is the stuff about connecting and handling the messages.? First part is mainly setting the controls and the chart.
Essentially I think you would have a fast loop doing not very much and waiting for a message to be received.? When a message is received the data should be stored allowing the websockets handler to complete, acknowledge the message and allow the main ESP32 to continue its scan.? You should have a routine that then decodes the message and writes the data in the message to the display as quickly as possible.? It may be necessary to make use of the two processors in the ESP32, one processor handling the websockets/wifi stuff, the other handling the display.? Not tried anything like that myself so I cannot help much there.? I do seem to recall there was a way of having the wifi code running in the second processor. Dave |
Re: Homebrew spectral analyzer
An interesting idea.
As you say why bother when you can use a tablet or phone, but I fully agree its fun to play with these ideas! There should be no need to change the ESP32-RF code at all, at least for basic operation.? What is needed is to modify the code so the ESP32_DISPLAY becomes a websocket client.? I think you have tried to do that. What might be happening is that the performance of the ESP32_DISPLAY is too slow.? I do not know much about the websocket protocol, but it seems that the server code waits for an acknowledgement from the client, and if this is too slow then there will be a timeout error.? I this is shown as an error on the terminal if you have that open when testing. I think you need to have a separate function to connect to the server only and set some flag to indicate if connected or not.? in the loop then call another function to handle the messages if connected. Take a look at the javascript code in the webpages for the connection/disconnection and handling of the messages. Good luck, sounds fun and challenging. Dave M0WID |
Re: Homebrew spectral analyzer
I started tossing again,?I saw the TinySA project a long time ago, the interesting thing about the SimpleSA project is that it uses arduino, the Simple name is indeed very suitable, for me, it is easier to get started, and ESP32, it has wifi function, and already includes wifi remote to PC/Mobile display function, recently I had an idea, why not add an ESP32 instead of PC/Mobile, It is to divide the project into two parts, one part is responsible for signal processing, the other part is responsible for display, that is, two ESP32, transmitted through WIFI, "ESP32-RF" collects data and transmits it to "ESP32-DISPLAY" through WIFI, for me PC is too bulky, Mobile specializes in daily communication, of course, for most people this may not be a problem.
I also tried to modify the source code, but the result was not very successful, I simply transferred the following data to "ESP32-RF". The reality is that the data was transferred correctly past, maybe it was a system synchronization problem, the window display of "ESP32-DISPLAY" was not very synchronized with "ESP32-RF", and I even canceled the display on "ESP32-RF". I couldn't convince myself why I did it, but I actually wanted to. Do you have any suggestions for this aspect of WIFI transmission? #if defined (WIFI_MASTER)
void wedsever_handle()
{
? ? String json_code;
? ?
? ? StaticJsonDocument<48> doc;
? ? //doc["PreAmp"] = setting.PreampGain;
? ? //doc["mType"] = "chunkSweep";
? ? //doc["StartIndex"] = startIndex;
? ? //doc["sweepPoints"] = sweepPoints;
? ? //doc["sweepTime"] = (uint32_t)(sweepMicros/1000);
? ? //Points = doc.createNestedArray ( "Points" ); ?// Add Points array
? ? //doc["oldSweepFreq"] = oldSweepFreq; ? // ?/1000000.0;
? ? doc["RSSI"] = rcvr.GetRSSI (); ?// ?rxRSSI
? ? //doc["gainReading"] = GetPreampGain ( &AGC_On, &AGC_Reg );//gainReading;
? ?
? ? // store the information into json_code
? ? serializeJson(doc, json_code);
? ? // When a client request is sent, the json_code is given to the client accordingly
? ? server2.send(200, "application/json", json_code);
? ? // print
/* ?Serial.print("json_code : ");
? ? Serial.println(json_code); */
}
#elif defined (WIFI_SLAVE)
uint32_t my_actualFreq = 0;
//Used to send requests to the ESP32 server
void wifiClient_request()
{
? ? //ClearDisplay ();
? ? tft.setCursor(100, 150);
? ? //If you can connect port 80 to 192.168.4.1 (the IP address of ESP32).
? ? if (client.connect(host, 80))
? ? {
? ? ? ? tft.println("connection succesed!");
? ? ? ? tft.setCursor(100, 160);
? ? ? ? //A string that establishes the requested information
? ? ? ? String httpRequest = String("GET /") + " HTTP/1.1\r\n" +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "Host: " + host + "\r\n" +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "Connection: close\r\n\r\n";
? ? ? ? //Send a request to its home page "/"
? ? ? ? client.print(httpRequest);
? ? ? ? //If a blank row is found, the blank line is followed by the corresponding data that the server gives to the client and extracts it
? ? ? ? if (client.find("\r\n\r\n"))
? ? ? ? {
? ? ? ? ? ? tft.println("json code was found!");
? ? ? ? ? ? tft.setCursor(100, 170);
? ? ? ? ? ? //Parse the server's JSON data: ? ? ? ?
? ? ? ? ? ? StaticJsonDocument<96> doc_c;//DynamicJsonDocument doc_c(48);
? ? ? ? ? ? DeserializationError error = deserializeJson(doc_c, client);
? ? ? ? ? ? //If the JSON message fails to parse
? ? ? ? ? ? if (error)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? tft.println("deserializeJson() failed: ");
? ? ? ? ? ? ? ? tft.println(error.c_str());
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? ? ? //Receive data after JSON parsing ? ? ?
? ? ? ? ? ?
? ? ? ? ? ? //setting.PreampGain = doc_c["PreAmp"];
? ? ? ? ? ? //"chunkSweep" = doc["mType"];
? ? ? ? ? ? //sweepStep = doc_c["StartIndex"];
? ? ? ? ? ? //sweepPoints = doc_c["sweepPoints"];
? ? ? ? ? ? //sweepMicros = doc_c["sweepTime"];
? ? ? ? ? ? //sweepMicros *= 1000;
? ? ? ? ? ? //Points = doc.createNestedArray ( "Points" ); ?// Add Points array
? ? ? ? ? ? //oldSweepFreq = doc_c["Points"][0][0];
? ? ? ? ? ? //oldSweepFreq *= 1000000.0;
? ? ? ? ? ? rxRSSI = doc_c["RSSI"];//doc_c["Points"][0][1];
? ? ? ? ? ? //gainReading = doc_c["Points"][0][2];
? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? else
? ? ? ? ? ? tft.println("not found json code");
? ? }
? ? else
? ? {
? ? ? ? tft.println("connection failed!");
? ? }
? ? client.stop(); // Disconnect from the server
? ? //return;
}
#endif
|
Re: Homebrew spectral analyzer
Hi, I am away at the moment and cannot check what is present on my modules. I suggest leaving them on but if you have problems then remove one at a time. The capacitance will likely reduce noise but could also slow the rise/fall of the clock too much for reliable operation.? From memory I think my modules had the capacitor and I had to remove the caps from two of the modules, but it is a long time ago now.? if you have an oscilloscope you could look at the clock signal and decide.? |
Re: Homebrew spectral analyzer
re,
? When you talk about this data folder, I have one in:? ?documents/arduino/SimpleSA/SimpleSA
I renamed it and put yours
Is this the right manipulation?
Or the way? is? to do from the main menu of the arduino program to put these data in? the ESP?? Via OPTION: ESP steck data upload?? cdt |
to navigate to use esc to dismiss