Weird repair of the day: u-blox LEA-5S I2C interface

I have a DF9NP 10MHz GPSDO that is based on a u-blox LEA-5S GPS receiver. Essentially, the LEA-5S outputs an 800Hz signal that is used to discipline a 10MHz VCTCXO with a PLL. The LEA-5S doesn’t have persistent storage, so an I2C EEPROM is use to store the settings across reboots.

Lately it seemed that the reading of the settings from the EEPROM had failed. The u-blox was always booting with the default settings. This prevents the GPSDO from working, since the default for the timepulse signal is 1Hz instead of 800Hz. Here is the summary of my troubleshooting session and the weird repair that I did.

Measuring a mains choke with Hermes-Lite VNA

I have made a mains choke for my HF station, following Ian GM3SEK’s design, which involves twisting the three mains wires together and passing as many turns as possible through a Fair-Rite 0431177081 snap-on ferrite core. I wanted to measure the choke’s impedance to get an idea of its performance, so I’ve used my Hermes-Lite 2.0 beta2 in VNA mode.

RS92-SGP: trying to change the frequency with an external reference

In a previous post, I talked about the possibility of changing the transmit frequency of a Vaisala RS92-SGP radiosonde by modifying the settings on its EEPROM. The lowest frequency you can achieve using this method is 400MHz and the highest probably depends on the particular unit, but it is somewhat between 410MHz and 423MHz. There are also reports of very low output power on the highest frequencies (I’ll explain why below). Clearly, this can’t be used to make the radiosonde transmit in 430MHz, inside the 70cm Amateur band. In fact, from what I’ve read online, the impression is that it’s not possible to modify the radiosonde to make it transmit in 430MHz. However, I wanted to try to feed an external reference to see what happened. Short story: it doesn’t work either. However, I discovered some interesting information about the RF section of the RS92-SGP along the way.

RS92-SGP: Interfacing the EEPROM to a 5V microcontoller

I’ve started to experiment with the RS92-SGP radiosonde that I recovered some days ago. The radiosonde has a M95256-W 32KB SPI EEPROM where all the code and settings are stored, since the onboard CPU/DSP doesn’t have any flash memory. Several parts of the firmware, including some of the settings have being reverse engineered. Thus, it is useful to interface the EEPROM to a microcontroller to rewrite some settings, perhaps to change the transmit frequency or the radiosonde’s ID (the serial number which is also printed on the radisonde’s box).

Arduino aquarium controller

Just a quick note that I’ve finally put the page for my Arduino aquarium controller. This is a project that I built several years ago to control a small aquarium at home. I built it with through-hole parts on a home etched single-side PCB. Now I’ve redesigned the project to use SMD parts and double-sided PCB.

Aquarium controller board (front)
Aquarium controller board (front)

Update on phase noise of 27MHz references

This is a follow up to a previous post where I investigated the phase noise of 27MHz references to be used for a 10GHz receiver. Dieter DF9NP has being kind enough to send me a 10MHz 0.25ppm TCXO to do some more tests.

I’ve connected the 10MHz TCXO to the DF9NP 27MHz PLL and used it to receive the beacon of BADR-5, as I did in the previous post. The phase noise of the 10MHz TCXO + 27MHz PLL can be seen in the following figure.

10MHz 0.25ppm TCXO and 27MHz PLL
10MHz 0.25ppm TCXO and 27MHz PLL

For comparison, see below the phase noise with the DF9NP 10MHz GPSDO and 27MHz PLL. There is not much difference between both. This seems to indicate that the culprit of the phase noise is the 27MHz PLL, as the 10MHz TCXO should be quite clean.

10MHz GPSDO and 27MHz PLL
10MHz GPSDO and 27MHz PLL

Phase noise of 27MHz references for a Ku-band LNBF

Today, I’ve being measuring the phase noise of the different 27MHz references that I have for my Ku-band LNBF. The LNBF is an Avenger PLL321S-2. I’ve modified it, removing the 27MHz crystal and including a connector for an external 27MHz reference signal. In my lab, I have the following equipment to generate a 27MHz signal:

  • OCXO/Si5351A kit. This kit includes a 27MHz OCXO and a Si5351A frequency synthesizer. The Si5351A can act as a buffer and output the OCXO signal directly or generate a 27MHz clock.
  • A DF9NP 27MHz PLL and a DF9NP GPSDO. The GPSDO generates a 10MHz signal which is locked to GPS. The PLL generates a 27MHz from the 10MHz signal.

I’ve used linrad to receive the beacon of BADR-5 at 11966.2MHz using different references for the 27MHz signal. The AFC in linrad tries to compensate for any drift in the reference or the satellite beacon. By averaging, one can get good plots of the sideband noise of the beacon. This is far from a proper lab test, but it gives a good idea of the performance of the references.

Outputting the crystal oscillator directly in the Si5351

I’m using a OCXO/Si5351A kit as an external 27MHz reference for my LNBF-based 10GHz receiver. At first, I intended to use a buffer amplifier to take out directly the 27MHz cyrstal oscillator in the kit. However, I finally configured the Si5351A to generate 27MHz, as that was simpler.

Taking a look today at the documentation for the Si5351, I’ve realised that it is possible to configure the Si5351 to connect some of its outputs directly to the crystal oscillator input, acting as a buffer and bypassing all the frequency synthesis stages. To do this, XO_FANOUT_EN, which is bit 6 in register 187 “Fanout enable”, must be set to 1. The selector CLKn_SRC, which is bits 3 and 2 of clock control register (registers 16-23), is set to 00 (XTAL source) on reset, so this is already set correctly. It is probably a good idea to set CLKn_IDRV to 11 to get the highest drive strength on the output pin.

Arduino LED driver: prototype finished

Today I’ve finished my prototype of the Arduino LED driver. I had already soldered and tested all the components quite a while ago, but I ran out of connectors for the LED strings, so I had to wait for more to arrive from China.

This project uses an Arduino-compatible ATmega328P and is able to drive up to 18 regular LED strings using the BCR420UW6 linear driver and 4 high-power LED strings using the AL8808 switching driver. The intended application is programmable lightning, such as Christmas or party lights.

PCB front
PCB front