Sunday, April 28, 2024

Wireless sound mixing

I don't go out to see bands very much but recently we attended a dinner and show by The Martini Set. It was an enjoyable evening but what caught my eye was the sound guy walked around the room adjusting the mix, equalisation, and reverb with an iPad tablet.

The brain box up on the stage creates a wifi network that the tablet joins. He said it was quite robust and if there was interference bad things didn't happen. There was a spare tablet ready to go in case the main one died for some reason. Perhaps this is common now but it was news to me.

Thursday, April 25, 2024

Trying a $15 70cm transceiver HK-188

Peter, VK3YE, recently posted a video of a pair of 2.4Ghz transceivers he bought at Aldi for $20. They worked OK but had a number of obvious annoying problems including a lack of a display. 

Browsing Amazon I noticed a pair of 446MHz transceivers for $30 and I wondered what you get for the extra $10.

As you'll see in the video, they work very well, and I'd have to say the extra $10 is well rewarded. (Of course you don't have to spend much more to get a Quansheng radio!)

The radios are on 446Mhz, which is in the Amateur 70cm band so Richard and I are licensed to use them but I'm not sure how legal they are for the general public.

The manual is on the FCC website here. The biggest chip on the board has no label and is presumably the CPU / SOC and drives the LCD display.

I can see some inductors in the output presumably for low pass or antenna matching - a good sign. Components I can read are:

  • WX050 D812 4 pins
  • 26.000MHz crystal
  • BEKEN BK4818 BS3432FB 32 pins 
  • 4VZU 5 pins
  • M4890S UDE399 8 pins
The BK4818 is a half-duplex TDD FM transceiver.

"The BK4818 is a half duplex TDD FM transceiver operating from 115 MHz to 537 MHz band for worldwide personal radio. Besides speech communication, the BK4815N on-chip FSK data modem supports F2D and F1W emission to be used in FRS band for text message and GPS information exchange.

The BK4818 is a complete, small form factor solution optimized for low-power, low-cost, and highly integrated mobile and portable consumer electronic devices, requiring only a few external decoupling capacitors and an external inductor for input matching.

- World wide band: 115 ~ 537 MHz
- 12.5/25 kHz channel spacing
- On chip 5 dBm RF PA
- 3.0 V to 3.6 V power supply
- CTCSS tone receiver with up to parallel eight frequency detector
- 23/24 bit programmable DCS code
- Standard DTMF and programmable in-band dual tone
- SELCALL and programmable in-band single tone
- 1.2/2.4 kbps FSK data modem with either F2D or F1W modulation type
- Frequency inversion scrambler
- Voice activated switch (VOX) and time-out timer
- RF Signal strength measurement and signal quality measurement
- TX Audio signal strength indication and RX audio signal strength indication
- 3-wires interface with MCU with maximum 8 Mbps clock rate
- QFN 4x4 32-Pin package"

Quite a capable device.

This seems like a more sophisticated device than the Aldi one that Peter, VK3YE, reviewed.

(Image taken from VK3YE's video). The HK-188 has an LCD display which would add some complexity but not as much as I see in there.

Monday, April 15, 2024

PSSST kit build - Pete's Super Simple Sideband Transceiver

I've been a fan of Pete, N6QW, since hearing him on the excellent Soldersmoke podcast and blog.  Pete has built many home brew transceivers over the years. He has written for many respected ham radio publications. (I'm a bit confused about the best web site to give for Pete, it could be this, or this, or this or even this).

Pete's original description of the radio is here.

When Todd of MostlyDIYRF announced that he was creating a modular kit version of Pete's design for a 20m transceiver I eagerly ordered.

The kit comprises a collection of well designed modules that can be used in other experimental transceivers. Each module typically has input and output pads, designed for edge soldered SMA sockets and 0.1 inch spaced pins on an edge for plugging in to a mainboard. Where required DC power is supplied via these pins. Here's the 4.915Mhz IF board:

The boards are very high quality and come with a set of components and a page with circuit and some tips on assembly and testing.

Being able to build and test each stage separately has been a great help.

Here's the motherboard populated with what's needed for receive:

The IF is at 4.915Mhz, so the VFO starts at 14Mhz - 4.915Mhz = 9.085Mhz. There is a BFO that should be just below the IF frequency to mix with IF out to produce audio from the upper sideband signal.

The VFO and BFO oscillators are provided by a board with an Si5351 clock generator being controlled by a PI2040 CPU programmed with the Arduino runtime. Todd has shared the source code here.

The kit is version 1 and Todd makes it clear that this is not a project for beginners. Making a kit as complex as this is a very difficult task and there are a few things that could be improved in the future. 

There is a discussion group for builders on here.

At the time of writing, I've got receive working pretty well. I took some notes of what I've experienced so far.

  • My kit was missing two of the 0.1” x 4 sockets and two of the 90 degree headers.
  • The I2C LCD connections are not in the same order as the supplied LCD - VCC and Ground are swapped - danger!.
  • Note the errata about 5V power being needed for the LCD - I plan to re-compile the software for another LCD (Waveshare) that I prefer to use and runs off 3.3V.
  • The Mixer and BFO mixer are two of the same board but I was a bit puzzled as they have different names.
  • Pin 1 on the ADE-1+ is the one with the white dot kind of near it - the text is upside down.
  • The modules have three pins for each input/output, although not mentioned these are great for attaching SMA sockets. I wish the coax connections on the motherboard also matched SMA sockets to jumpers could be used.
  • Steerable amp missing a 3k resistor 
  • Missing 4 more 90 degree headers
  • IF module missing 220pf cap
  • On the driver and final board the pins on the regulator U1 are very close together 
  • T1 on the driver and final board isn’t specified but on the discussion group Todd reveals that it should be 10 turns bifilliar 
  • I chose to fit SMA sockets to each module. In a few cases there isn’t quite enough space for the socket and plug for example between the IF model and Audio output board.
  • My Digital VFO board as it came outputs 21Mhz on CLK2 and something like 40Mhz on CLK0 - not correct.

I downloaded Todd's source code for the board and built and installed it but still the frequencies and even the waveform didn't look right. After having a look I first considered forking Todd's code but realised I wanted to do a major re-structure of the project and so, with his blessing, I started my own version which is here on GitHub.

My changes include:
  • Re-ordering the source code to make it easier for me to follow
  • Replacing "magic" numbers in the code with const definitions
  • Improving the detection of no stored values so that initialisation is more reliable (I think the crazy output frequencies I saw on the supplied CPU were because random memory was being read as stored settings)
  • Printing information to Serial so I know what's going on
  • Underline with a cursor the digit which will change when you tune
  • When adjusting the BFO I adjust the VFO the same amount in the other direction
I continue to update the code as I make other changes. Also I've included a binary uf2 file that others can use it to program the board without having to get a build going.

The RP2040 is a very powerful chip compared to the old Atmel Arduinos and this code only uses about 4% of the space. I'm inclined to try to make a version written in MicroPython in the future for easier maintenance - but that's for another day.

At this point it's receiving fairly well although I don't think I've got the VFO and BFO correctly calibrated yet - they interact. The audio is a bit narrow to my ear so I plan to widen the IF later.

I am learning a lot from this kit but have found some of the inconsistent labelling on the mainboard and cramped layout - particularly as I've used SMA cables - a bit frustrating at times. Using SMA jumper cables adds some cost but I think it's handy to be able to remove modules without desoldering. I made my own cables using crimp SMA plugs and they aren't too hard to make.

My thanks to Pete for the design and to Todd for all the hard work he's put in to creating this wonderful kit. The kit arrived with a Twix bar but I'll hold off tasting it until I've had my first two-way contact on the transceiver.

Update - now transmitting

After some further gnashing of teeth I have the transceiver transmitting. I see about 20V peak to peak across a dummy load. The waveform doesn't look quite right to me:

There is also some instability - sometimes when I start transmitting it takes off.

The trick was that the mainboard wiring diagram has several errors and the labels on the board are also incorrect. Mick Baldwin figured it out in this post and I've re-drawn it here for my own edification.

(Click to enlarge).

The receiver is working really well and is surprisingly good to listen to despite the lack of AGC. I've been calling CQ without luck so far but will report back when I have a contact.

Thursday, April 11, 2024

"Exception: [Errno 2] No such file or directory: 'udisksctl'" programming rp2040 on linux

A note to others. Just now I was trying to program an RP2040 board using Arduino IDE 2 on Linux and got this error:  "Exception: [Errno 2] No such file or directory: 'udisksctl'"

I was using an Arduino IDE installed via the software app. I had installed the Flatpack version.

Deleting the Flatpack version and downloading the Appimage from fixed the issue.

I think it's something to do with flatpack security. There's probably a better fix but this is a note for future me.