Search This Blog

Radio Guy Tees

Radio Guy Tees
Radio Guy T-Shirts

Sunday, 12 January 2020

STM STM32F103RC8T6 - really?


On popular auction sites you can find these boards for less than 2 GBP delivered:

They contain (on the underside) a STM32F103RC8T6 processor from ST Microelectronics. Looking at my musings from here, these boards will support the necessary double precision maths and also have the SPI interface needed for frequency synthesyser interfacing - amazing!

These will work with the Arduino IDE with a very small amount of effort.

Assuming you already have the Arduino IDE installed (if not go get it), the steps are:

  1. Go to the Tools -> Boards -> Board Manager and install the Arduino SAM boards (Cortex-M3)
  2. Download the STM32 support package from here.
  3. Unzip the download to create the Arduino_STM32 folder
  4. Copy the Arduino_STM32 folder to My Documents/Arduino/hardware (Note: if the hardware folder doesn't exist you will need to create it).
  5. Navigate to My Documents/Arduino/hardware/drivers/win and run the install_drivers.bat file - right click and run as Administrator
  6. Restart (or start) the Arduino IDE and select "Maple Mini" as your board, "Original" as your bootloader
  7. Attach the board to the PC with a USB cable, you should see a "Maple DFU" device under "libusb-win32 devices"
You could then try this sketch and upload it to the device; please note that at this point you don't have a COM port for the board - it is using the bootloader via the DFU device instead.

Once the sketch is loaded you will then see a COM port "Mapel Serial" which you can now also select in the Arduino IDE tools -> Port.

I've connected my board to my SV1AFN ADF4351 board as follows:

STM32F103RC8T6 Pin 7 -> SPILEA (pin 3)
STM32F103RC8T6  Pin 6 -> SPICLK (pin 1)
STM32F103RC8T6  Pin 4 -> MOSI (pin 4)
STM32F103RC8T6 VCC -> 3V3 (pin 7)
STM32F103RC8T6  GND -> GND (pin 5)

and have run this sketch - seems to work just fine.

I then ran this sketch - and followed the instructions in the Serial Monitor to upgrade the bootloader - once I'd done that I then needed to select Tools -> Bootloader Version -> 2.0 for any future comms with the board.

Thursday, 2 January 2020

More ADF5355


Following on from my great invention last time, I've been fiddling some more with the ADF5355 that we used here. This will generate RF from 54MHz all the way up to 13.6 GHz (which is simply amazing).

I've done something that feels a little silly, but is working:
  • I have developed some code for the MicroMite to do touch screen control
  • That communicates over a serial connection with a SAMD21 ARM Cortex M0 which does the complex double precision maths needed for the ADF5355
It feels a little silly to be using two processors, but:

  • The MicroMite doesnt support the double precision maths needed for the ADF5355
  • I can't find an easy-to-use library to do the graphics and touch screen gubbins on the SAMD21
So we have two pieces of software.

The ADF5355 board is from Amazon and looks like this:

You can get one here.

If you want to play along at home, I have also developed a macro based excel sheet using VBA to do the maths here; that will calculate the register values for a given target frequency. Once you have those, you could use my simple code to send the register values to the board over SPI. I've used a Arduino Zero clone, which you can get here. We need double precision floating point maths for this job.

This board is supported by the Arduino IDE as-is and looks like this:

The connector labeled ICSP is used for the SPI comms.

Once you understand all that gubbins, you could start to play further. Here's how I've got the bits and bobs hooked up:

The touch screen in the LCD BackPack provides the facility to view the current selected frequency:

and enter a new one:

Once you have entered the required frequency the MicroMite sends the selected frequency as a string to the SAMD21 processor which then does the necessary maths to generate the 13 register values used by the ADF5355 and squirts them over the SPI interface.

The ADF5355 uses a 100 MHz clock which is generated using the ADF4351 from last time which in turn is clocked by the shack 10MHz frequency reference.

The initialisation of the ADF4351 is done by the MicroMite over SPI, the SPI to the ADF5355 is from the SAMD21 processor.

Here is an example of the 13 register values being sent:

and a close up of one of them:

This will need boxing and turning into bench test gear.

I did quite a bit of reading up on the Arduino SPI library during this project; if you are interested in programming the ADF5355, please pay attention to the SPI library calls in this code as good practise.

The Basic code that runs on the MicroMite is here and the code for the SAMD21 (using the Arduino IDE) is here.

I've done a video of all this:

Here is the very lovely Miss Luna Cat who has assisted throughout:

Saturday, 7 December 2019

More ADF4351 - really?


You may recal my dissapointment back here with the Practical Electronics GPS-synced Frequency Reference.

It turned out to be a load of Dingo's Kidneys.

You may also recal the most excellent work of Brian, GM8BJF back here using the ADF4351.

Well, I have been playing with the Micromite that was used in the Practical Electronics project, and have created a touch screen signal generator using the ADF4351.

The ADF4351 modules I have are here and this one by SV1AFN.

It's very much stolen from a project here.

I've modified the code a bit to have an additional digital output to show the PLL locked state, and also changed the code to use a 10MHz clock rather than the default 25MHz clock.

It's quite neat!

Albeit upside down:

I'm 3D printing a case for the front, then we can decide what to do with it:

The output is as I expected:

I've uploaded my bodged version of the code here.

After I finished the software mods and fiddled some more, I stuck this all in a box:

You use the touch screen to set the frequency:

and there's an LED for power and another to show the PLL is locked.

I've learnt loads building this and I'm rather pleased with it!

I've done a video on the detail here:

Here is our very beautiful and rather special Miss Florrie Cat:

Monday, 2 December 2019

Practical Electronics - Really?


I recently built myself a project that had featured in the Oct/Nov 2019 issues of Practical Electronics (previously Everyday Practical Electronics). It is a new fangeld GPS-synced Frequency Reference.

It uses a CDCE906PWG4 from Texas Instruments as its core component which allows three independent outputs to be set over a wide frequency range.

It also uses a thingamabob called the Micromite Backpack - which is basically a microprocessor with a nice colour touch screen integrated that is designed to use MMBasic as its programming language.

The theory of operation is very simple, there is a 40MHz ovened variable oscillator and also an external GPS 1pps signal. The microprocessor counts the 40MHz signal between 1 second pulses from the GPS and adjusts the voltage control on the oscillator appropriately. Once we have an accurate 40MHz signal, this is then used by the PLL to create the reference outputs at the user selected frequency.

Unfortunately I can't get this thing to work (properly) and I **think** my fundamental problem is one of power filtering/decoupling.

Here are the basic components, the green board is the frequency reference and the red one the Micromite.

The white wires on the board you can see are a suggestion from the author "the stability of the reference may be improved by reducing the impedance of ground tracks on the PCB" which smells rather fishy to me.

Anyhow, the output of the oscillator from the PLL looks like this:

and the output, when set to 10MHz looks like this:

All looking rather nasty - wouldn't you agree? The bursts of apparent crap on the signal are when the GPS is sending data to the processor.

I've tried to get some support for this project; but failed rather dismally. There used to be a chat room for EPE projects, but that has been closed. There is a dedicated forum now, here:

but I posted there over a week ago, was notified that my post is subject to moderation, but it still hasn't appeared. I also note the last post there is over a month ago.

All of the self tests in the software appear to pass; that suggests all is well, but I can assure you that all is not well at all! The output frequency is a mile from being accurate, the "approx freq" in the screen above swings wildly around the 40MHz target suggesting the processor is having issues counting the clock, and generally it's all a bit pants.

Not sure what to try next.

This makes me sad.

I even ended up digging out a CD4046 to remind myself how PLLs work,

In the image above, we have the source oscillator from my desk function generator in yellow, the light blue is the output from the on-chip VCO, the purple is the basic comparator (type 1) output and the darker blue the type 2 comparator output. When I change the frequency of the bench generator the on-chip VCO follows in frequency and locks - just as it should - I remember now!

Alan Wolke, W2AEW, has a superb video explaining this stuff on YouTube here.

This, however, makes me very happy as it is our very beautiful Pepper Cat enjoying a bit of late winter sun:

Local conditions.

Saturday, 19 October 2019

JARTS - doesn't time fly


It's the JARTS RTTY test once again and the bands are full of RTTY signals.

Propagation contitions are very poor, but there are plenty of signals about.

I've been using the IC-7610 today and it's a superb RTTY radio:

The internal decoding capability is also excellent:

Here is the 40M band early on the Saturday evening - CW and RTTY everywhere!

Here's a map of my log:

Local conditions.

Saturday, 24 August 2019

DVB-S2 - really?

A very quick special message broadcast on the QO-100 Digital Amateur Television:

Local conditions.

Saturday, 17 August 2019

Radio Analog PTRX-7300 - Really?


You may well have seen adverts for the PTRX-7300 from Radio Analog. This is some kind of new fangled adaptormabob for the Icom IC-7300 that gives you an RF output that you can hook up to an external SDR for a panadapter display.

Well, I ordered one.

Here are the bits that you get (but not the screwdriver):

You start by taking the radio top cover off:

Then we disconnect the cable that attaches to the rear external tuner connector and remove it:

Then the new gubbins clips into the space where the external tuner connector was:

Hook up the cable into the now vacated socket for the external tuner connector:

and then pull a plug out of the radio PCB and insert into the new gubbins:

Then we have a supplied cable from the new gubbins to the PCB socket we just disconnected:

And thats it! Now externally the tuner connector is re-connected and also a flying lead with an SMA connector to feed to the SDR. This is extremely neat!

So once we have all that done, I have set up SDR Console:

and it just works.