Conference, DSP, Electronics, RF, SDR

Tayloe Mixer Frontend for the Supercon 2023 Vector Scope Badge

The Hackaday Supercon conference is an amazing convergence of electronics, makers, engineers, designers, educators, and anyone else interested in making cool projects. Each year we descend on the town of Old Pasadena to Hack on things over the weekend in early November. The amazing thing about the conference is that every year they build a complex electronics badge that every attendee gets and they do a presentation at the end where people can show off the cool things they made!

Check out my Post on the first one I went to back in 2019!

This year the badge emulates an old-school Vector Scope! It uses the Raspberry Pi Pico, an ADC and DAC chip, and a fancy circular screen to produce some mesmerizing green waveforms. Essentially it uses 2 DAC channels to generate arbitrary waveforms on the x and y axis, those outputs can then be looped back into the 2 ADC channels for x and y to plot on the screen! You can learn more on the Hackaday article below!

Badge Idea or Bad Idea?

The previous two times I went to Supercon I didn’t have a clear idea of what I wanted to do with the badge. This year though something crystalized fairly quickly, the badge has 2 ADC and DAC channels, one for I and one for Q, what if we use those to create a little software-defined radio?

The IQ that I am referencing here is the in-phase and quadrature components of a complex signal. you can think of it as a complex number with a real and imaginary value, this representation is useful in doing digital signal processing or DSP and creating digital communication signals.

PySDR Sampling has a wonderful tutorial on digital sampling and IQ signal composition.

Image from pysdr.org

But the ADC and DAC are just one part of an SDR the other major part that the badge is missing is an RF mixer. A mixer is used to up-convert or down-convert a signal to the baseband where the signal can be processed by our low-speed ADC and DACs. because the ADC and DACs on the badge run relatively slow (10s of kHz) that’s not fast enough to get into the RF spectrum.

Images from https://en.wikipedia.org/wiki/Superheterodyne_receiver

The idea of using a low-speed ADC and DAC with an external mixer isn’t new, it’s actually how a lot of early SDRs worked. People would use their PC sound cards to do the digital sampling and waveform generation (up to 10s of kHz) then output those analog signals into an RF mixer to transmit or receive.

In our case, the Supercon badge acts like and high-precision sound card, we need a Mixer! There are tons of different mixer designs out there but I wanted to do something cheap, simple, and easy to implement in the time I had. This led me to the Tayloe Mixer design

Tayloe Mixer or Quadrature Sampling Detector

Here is a very good introduction to this technique.

QSD Reference Material

http://www.norcalqrp.org/files/Tayloe_mixer_x3a.pdf

Other Designs that use a Tayloe Mixer circuit to transmit and receiver signals

I used these as references to make a simple circuit that could transmit and receive using fast multiplexers and an advanced clock chip to sequence the inputs to outputs.

Basic Circuit

The simple circuit is an RF multiplexer combined with a couple of op-amps that are used to create different I and Q phases. My portly drawn image shows the receiver at the top and the transmitter at the bottom.

The receiver uses a double-balanced architecture where the multiplexer consists of two separate mux that combine into the I and Q. The transmitter in this diagram only uses a single mux input but I switched it to a double-balanced in the final schematic.

I referenced the schematics from the open-source designs but tried to simplify them, opting for a combined receiver and transmitter board without a complicated filter on the RF IO. This made the board simpler to design but would require external modules in a real system. I quickly selected parts from Digikey, plus spares, and pressed order!

I decided to use Kicad to create the board, but have only designed 1 other PCB, can I do this in a week…?

Schematic

Putting together the schematic once I knew the parts and their pinouts was pretty simple. I even imported the schematic symbols and footprints right from Digikey so I was fairly confident that I could connect everything up. I did separate the digital and analog domains on the circuit. This was for the I2C control and configuration of the clock generator chip.

The receiver consists of a biased voltage RF input to the multiplexer’s 2 input ports. The output of the multiplexer is two separate 4 port outputs, these are combined to create the 4 phases that are used by the dual op-amp to create the I and Q baseband signals.

The transmitter is similar to the receiver but is now driven in reverse. This is done by first creating the different phase signals with 2 biased dual op-amps. Those create the 0deg, 90deg, 270deg, and 180deg values to feed into the 2 by 4 port multiplexer.

The clocking section of the schematic is set up to be in its own power and signaling domain. I separated this out, just in case, but since it was a digital signal I wanted some separation from the analog parts, not sure it did anything in the context of the badge.

Board Layout

The board is only 2 layers because I needed to get it fast but would have liked to do 4 layers for better RF design (this was quick don’t hate me). I used the schematic to lay out the components based on their function (rx, tx, and clocking).

Once I had them parsed out I positioned them as logically as I could and started connecting things. I tried to limit the number of vias but still needed a few to make all of the connections. I then added a ground fill on the top layer and a 3.3v fill on the bottom layer for power.

Since I am using KiCAD I can also create these amazing 3d views. All it takes is a few clicks in the menu!

Generate board files for PCB manufacturing

I went with Oshpark PCB manufacturing service, PCBWay or JLC PCB were not going to have the turnaround times I needed to make it to Supercon.

In KICAD there are just a few buttons you need to click to plot the gerbers and generate the drill file needed for the manufacturing service. Submit to Oshpark a zipped file and a big Thank you to Drew for reaching out on Twitter and for your speedy service!

Wait patiently (or silently freak out) for stuff to get delivered…

Assembly

Once everything was in I needed to assemble the board. I printed out large copies of the schematic and silkscreen so I could reference them during assembly. The one time a printer comes in handy!

Right away I realized I used the wrong SMA connector whoops! I just carefully bent them to get them to solder on…

I didn’t have any paste or a mask so I just hand-soldered everything! The only thing that gave me trouble was the 25MHz oscillator for the clock chip. For that one, I needed to tin the pads and use hot air to carefully solder it down.

It’s all assembled now what? check the continuity of grounds and power rails along with the connections. I found that I had a ground island on the bottom edge that wasn’t connected to the other ground plane. Thankfully this is easily solved by adding the SMA connector on that path and the grounds will connect there. not ideal in another version I will likely go to 4 layers so that won’t be an issue. I also left a connecting line very close to the edge cut whoops! thankfully it made it out okay.

Hacking and Debugging at Supercon!

Power up and fingers crossed! thankfully nothing blew up but a world of problems was just ahead of me…

I2C Pull Ups

When using I2C signaling you need resistor pull-ups to pull the voltage up on the I2C line. Without them, it is difficult for the processor to talk to the chip effectively. Read more about them on the Adafruit website.

https://learn.adafruit.com/working-with-i2c-devices/pull-up-resistors

I forgot to add them to my board because I thought the ones on the badge would be sufficient but it was not to be.

Here is my solution. I added 2 resistors to the bottom of the I2C lines connecting them to the 3.3v source, overlapping the resistors so as not to short the lines together.

I also found out that I was having trouble talking to the clock chip. since it was giving me an incorrect address. At supercon I just used an external board that I could talk to and jumpered the clock lines in.

As it turns out all I needed to do was reconfigure the software hard coded address to the new one and add the I2C pull-ups.

As I continued down the debugging path I realized I forgot to connect the bias power for the up-converter amplifiers! this means the positive side was just floating and never getting the correct value to invert the signal for the various phases.

I added some magnet wire to connect it to the other supply on the other side of the dual op-amp.

After fixing the biasing I was still not getting anything out of the transmit path. so I bypassed the TX balun for now to see if any signal was getting through.

This allowed me to see some modulated signal that I fed into the board get converted up to the frequency I expected in the frequency domain. I am also realizing now I may have been looking at a harmonic oops.

Throughout this process my Analog Discovery 2 was a debugging machine! It helped me diagnose so many issues. It’s a portable powerhouse and I am so thankful to Digalent for sending me this upgraded version a few years back!

Here I am using the spectrogram function in Waveforms software to see when the signal comes on and gets up-converted to the mixer harmonic.

If you haven’t checked out the Digilent Analog Discovery now is the time! They just released the version 3 with expanded functionality.

https://digilent.com/shop/analog-discovery-3/

What’s Next?

Well, that is as far as I got at Supercon 2023, I will be adding this design to my GitHub soon since I need to fix a few things before I release this design. So you may need to wait a while if you want to make your own. This project was done in a compressed timeline so it was more of a learning project and just something to do at Supercon that I hadn’t done before. It was amazing to get to talk to everyone there and the project helped me connect to others and became a fun icebreaker.

I am not an RF or hardware designer but this got me out of my shell and I am hoping to learn more in the future. If you have any suggestions or questions feel free to reach out especially if we met at supercon 2023 and want to chat more.

Thanks, everyone!