Sunday 4 December 2016

Noisy ESP8266

Having enjoyed a lot of success transmitting and having produced a usable VFO, I decided it was time to try using the new m0xpd / Kanga ESP8266 - DDS board in a receiving application. I soon discovered just how noisy the ESP8266 is.


Above, you see the new board sitting on top of my old Leslie 825. The Leslie is next to the bench, which is too full of work and other projects to host a little game like this - so the impromptu receiver has spilled out onto the nearest flat surface.

Next to the IoT processor and DDS is an early prototype of the Kanga / m0xpd HF receiver shield (it differs from the production versions sold as kits only in that the SA602 is a lovely old original DIL version, as opposed to the SOIC surface mount versions supplied on the PCBs of the kits).

The receiver shield is actually on top of the transmitter shield used in recent beacon exploits (which includes a buffer for the local oscillator signal for the receiver - an inheritance from the 'Occam's Micro' days - you can ignore that for the purposes of this story).

To the left of the receiver shield is a filter system, originally developed for the "Occam's Dirk" rig (that recently had a Dutch makeover), which provides switchable input and output filtering for 40 and 20m.

I fired up this little combo, with the ESP8266 - DDS board running the recently reported WiFi controlled VFO system.

The result was a working receiver, with tuning from my iPad, marred by a horrible clicking sound. 'Marred' is an understatement. I should say 'made un-usable'.

Here is a segment of the receiver shield schematic, including one point where I'm going to report a voltage...


I powered up the system with the antenna input connected to a dummy load and recorded the voltages at the point 'MEASURED HERE' in the schematic above (conveniently available on a header at the edge of the receiver shield). Here it is, (with apologies for the nasty oscilloscope screen photo), explaining the horrible clicking sound:


There are short clicks every 100ms, of amplitude reaching at least -300mV. Remembering that there is another active stage (at 0 dB gain) and then the final LM386 stage (at 46 dB gain) after this, you'll understand that the output is driven to saturation on its power rails every tenth of a second, making the 10Hz clicking, which dominates the output. The miracle is that it is possible to hear activity on the band at all against all this bad behaviour!

First of all, the origin: Remember that the ESP8266 is being asked to establish an access point in order to run my WiFi controlled VFO program. Well, every 100ms, the system comes to the end of its 'beacon interval' in servicing that access point and makes some wireless activity (such as broadcasting its SSID). It is that which is causing the noise - but how is it getting into my receiver?

I found (somewhat to my surprise) that the greater part of the noise wasn't being received via the SA602 (this discovery was made by removing the chip - the reason I was using the early prototype version of the shield with a DIL mixer - and grounding the input to the Op-Amp). Instead, the greater part of the noise is actually generated by the twin Op-Amp package, where it was being directly detected / demodulated to AF. Some little of this 'detection' is also happening in the LM386 - but the op-amp seems to be the greater culprit.

The receiver actually seems closer to usable (notice I say 'closer to usable' rather than 'usable') without the op-amp in circuit at all - just taking the output straight from the SA602 to the LM386 (just like the original Sudden). Some part of the clicking which remains is directly demodulated in the audio frequency circuitry (the LM386). In the shield (unlike some implementations of Sudden-inspired DC receivers) this is operated with an unbalanced input. This experience of a very hostile EM environment caused by the ESP8266 might occasion a re-think of the receiver shield design. The remaining part of the clicking appears to enter through the intended (i.e. tuned) RF input...

Either switching the input filter to the other band or (equivalently) switching the VFO to the other band causes a big drop (>20 dB) in the clicking amplitude.

All the above is pretty disappointing; the ESP8266 and a simple receiver are uncomfortable bedfellows. There needs to be some careful layout and some circuit re-design before a WiFi module and a simple DC receiver can sit next to each other easily. This isn't exactly news (noise problems have been reported before in trying to close-couple an ESP8266 and a 2m transceiver) but it sure puts the brakes on some plans I had for the next few weeks.

Finally, for something really wierd...

I re-programmed the ESP8266 with some code which just set the DDS frequency. No access point, no WiFi activity. Nothing. Just a quick set-up of the DDS on 40m and then just sit there in an endless loop, twiddling its thumbs.

The result?

You guessed it - exactly the same 10Hz noise!

The chip is still pumping out noise pollution, even when the code hasn't asked it to do anything fancy. I don't know if this is a failing of the IDE (I was using the Arduino IDE, and I don't know if the compiler doesn't turn off the WiFi resources if they've previously been turned on in an earlier program). I don't even know if it is POSSIBLE to turn off the WiFi resources (though I believe it is). All I know is that a piece of code written to evoke NO WiFi functionality at all is producing the massive noise fields around the device as are present due (presumably) to WiFi activity. Wierd.

So - I have a working, WiFi tuned HF receiver running. It is just ruined at present by some nasty 10Hz clicking, which makes it just about worthless. I don't know if it can be fixed.

It has certainly put a dent in my enthusiasm for the ESP8266.

...-.- de m0xpd

1 comment:

  1. really cool man,you should try to make robot next time

    ReplyDelete