December 2022

Earmuff headset reverse engineering

So, previously I’ve tried looking for a suitable earmuff headset, and drew blanks: they wanted $400+ for them and I wasn’t willing to spend that much. That said, there are times when such a headset is useful: if it’s raining heavily on the roof of the annex, hearing the radio is bloody difficult!

Now, my tactical headset should fulfil that, but really it was intended for less noisy environments. What if that’s not enough? Years ago, Brisbane WICEN used to help out with the car rallies, and there you really do need something that will muffle outside noise. I had tried to make my own, with limited success, but one wondered how the commercial options compared.

The other day, I spotted this earmuff headset. One thing I note, the seller seems unaware of how these things are worn — that’s a neck band fellas, not a head band. (Or maybe their ears are wider than they are tall? Mine are taller than they are wide.)

This is up the upper limit of what I was willing to spend, but what the hell… we’ll try it. They arrived today (about 6 days ahead of schedule). They’re comfortable enough — sound dampening is reasonable. I like the fact the microphone is on the right side. There’s a PTT button on the left ear-cup and a volume control on the right.

Being a behind-the-head design, it plays nice with my hard hat too. The head strap is a little tricky in my case, since my hard hat has a chin strap — I figured out I had to undo the head strap, thread the headset through the chin strap, then put hard hat and headset on together. I should be able to wear it with the coolie hat as well.

A downside is basically when I do this, I can’t take the headset off without taking the hard hat off too, but the intent of this was something that I was going to leave on anyway, and the same criticism is true of the tactical headset too.

The headset, with its packaging and cables.

One wrinkle is that this headset you can see, uses a Kenwood-style pin-out — my Kenwood TH-D72A died recently, so great timing there. Luckily for us though, it’s just a small pigtail: we can make our own up to suit this pin-out. The pig-tail actually is a 6-pin Mini-DIN: Jaycar part number PP0366. I was thinking of chopping cables, but this is even simpler, we’ll just make our own pigtail.

At the other end, it appears to be a 5-pin mini-XLR, but I haven’t tried buzzing that out at this stage. As is typical with comms headsets, this one is mono. There’s a 3.5mm jack (left earcup) for plugging in a comms receiver or media player, and it works — in mono. The microphone appears to be an electret.

For now, I’ve decided to have a look at reverse-engineering the pin-out to use the headset as-is. I rummaged around and found the aforementioned connector in my junk box, still sealed in its packet, so I opened that up, and used the little insert inside to plug into the socket, put the headset on, and went buzzing with the multimeter. Using the Kenwood pigtail for clues (since I know the Kenwood pin-out), I located the PTT, speaker and microphone connections on the headset cable.

One pin appears to be a no-connect; the PTT and microphone are commoned.

Reverse-engineered Mini-DIN 6 pin-out

Set up a Mastodon instance

So yep, following my recent post about Twitter, I bit the bullet after some thought… I’m now reachable over Mastodon. I decided I’d start small, deploy my own instance where I could play around and get to know it.

In particular, as I’ve started doing a few small websites for people based on WordPress — social media integration has come up in these discussions — I figure it’s better to test against my own instance rather than me throwing pre-alpha grade code at someone else’s production server. I can’t do this with Facebook, I can’t do this with Twitter, but I can do this with Mastodon. If either of those two decide to implement ActivityPub protocols, sure, I’ll let them connect.

There’s also the practice I’ve been engaging in for some years, of just emailing links to sites I stumble across to people who I think may be interested — some of those could be posted on Mastodon since this is a format that would suit that use case well. Maybe cartoons, images — although I need to watch copyright!

The fact that I was able to deploy it on my own hardware, means I can be 100% responsible for what I post there, and post there 100% on my own terms. While I’m unlikely to intentionally post something inflammatory, when someone else owns the house, they make the rules, and they can change the rules when they like. Some journalists found this out the hard way, when Twitter banned them for discussing the ElonJet Twitter account. Then scores of people got hit by the ban-hammer for simply mentioning rival social networks. A month ago, there was nothing wrong with doing this, now it’s taboo on that social network. Seems ironic that a “social” network must be so anti-social.

Individual server admins might block my server, and that’s fine, that’s their right. Big deal. As stated, this is more for me to learn in a controlled environment. By me posting here, I cost them nothing unless one of their users decides my content is interesting, and me subscribing to a few posts can be done with minimal impact. I think the risk of this is low.

Right now, I’ve just “followed” a few IT and general journalists… to get a rough “feel” for how this stuff works. Following someone “cross servers” like this is a little clunky, but I can understand why it is that way: when you visit the remote server’s page, to them you’re an anonymous user — I don’t think there is a way yet to safely “identify” yourself to a Mastodon server without identifying yourself to every Internet web page. Maybe that’ll be worked on as time progresses, who knows? Time will tell.

I don’t expect to “toot my own horn” on Mastodon much. Those who are interested in what I’m doing can look up what I’m up to directly. I think most of the Mastodon content I post will be articles others have written. Then again, this whole blog started in 2006 as a way of publicising my activities in Gentoo, and look where it is today? It has evolved, and so might this. Once again, only time will tell.

Yaesu FTM-350AR audio interface: part two

Today I rummaged through my junk box and pulled out:

  • a screw-terminal type RJ-45 jack
  • a 3.5mm stereo panel-mount socket

Sadly, the socket is too big to fit inside the RJ-45 jack housing, but I was able to cobble together a test using the jack as a break-out.

As it happens, there’s some repeater traffic that I’m hearing through the tablet beautifully. I set up Mumble to just transmit on VOX activity — this seems good enough. The signal out of the radio is quiet, so VOX works well enough for detecting the incoming signal with no false detection.

There’s a fraction-second delay, which is to be expected for a cobbled together Radio-over-IP solution such as this. It’ll be annoying if you happen to be next to the radio, but probably fine if you’re away from the radio (or you use a headset so you hear the delayed signal through the headset louder than the real-time signal out of the radio).

Things I need to look into from here:

  • Computer transmit audio interface
  • Computer PTT interface
  • Mumble integration into the above

Yaesu FTM-350AR audio interface: part one

I do a lot of support for horse endurance rides up at Imbil, and that means running a base for about 3 or 4 check-points. My go-to radio for this has been the Yaesu FTM-350AR, which is a good rig, but the head unit has woefully pathetic audio output.

The mono speaker is better, and you can get pretty good results plugging an un-amplified pair of speakers into the back — I use some old “SoundBLASTER” speakers from a SoundBLASTER 16 sound card. Works great if you’re in earshot of the radio, and much better than the built-in speaker in the radio body or the pathetic excuse for speakers in the head unit.

The radio can do cross-band, and this works pretty well, assuming you can find a pair of frequencies that don’t have interference. However, cross-band means you can’t use the radio directly as a standard radio, you must use a second radio to communicate on the cross-band link. In addition, it also means you can’t monitor more than one frequency at a time in base, or run packet from the same radio.

I’ve considered whether I make an audio interface that would link the radio to Mumble. Mumble is a VoIP solution for online gaming, and amongst other things, behaves much like a PTT-style radio in operation. The thinking was to interface the audio and PTT signals between the radio and the Mumble client, so that any transmit audio on the Mumble channel is fed to the radio, and vice versa.

Computer to radio is easy enough. Some years ago when I was doing the Brisbane to Gold Coast bicycle ride (net controller, in the back seat of the control vehicle), I had made an adaptor that let me plug in my DIN-5 headsets into the microphone port. I basically ignored most of the contacts, just paying attention to 0V (GND), EXTMIC and PTT.

Microphone pin-out for the FTM-350AR

An annoyance at the time is there was nowhere to plug headphones except the external speaker port, which is a little over-powered for headphones, so still had to rely on the radio’s speaker with my headset.

For a two-way radio interface, I’ll need to tap into that speaker audio. Now, an attenuator pad for the external speaker connector is a viable option, however it has the downside that it disables the internal speakers, meaning you need either a double-adaptor break-out, or you rely on the computer forwarding the audio somehow.

I contemplated opening up the head unit and adding a headphone jack, but then came to the conclusion that the audio is unlikely to be a digital signal being sent to the head unit — it must exist in analogue form on the 8-wire link between the head-unit and main-unit. Sure enough, I found some schematics, and there it is:

FTM-350AR head unit connector, showing left and right speaker connections

This goes off to a (rather anaemic) audio amplifier, so likely are line-level signals. Looks like I should be able to make a cable that taps off pins 2, 3 and 4 bringing those out to a 3.5mm jack which I can plug into an audio interface of my choosing. I have a Behringer U202 USB audio interface, seems like a good candidate for this experiment.

I lack the PTT signal on this connector, it is likely multiplexed in the TXD line, so unless I feel like reverse-engineering Yaesu’s protocols, the easiest bet is that I only tap received audio from here, and use the microphone socket for transmit audio (which I already know how to drive).

As for the software side, talKKonnect is one such option I could employ here.

Time to rummage through the junk box and see what I have on hand.

A stereo/binaural tactical headset: part three

So, last time I 90% finished the headset I’m likely to use at horse endurance ride and other “quiet” emergency comms events in the near future. The audio quality (at least on receive) sounds great. From what I can tell between hand-helds, the transmit audio sounds good. It’s quite comfortable to wear for extended periods, and while my modifications do muffle sound slightly, it’s perfectly workable.

There are just a couple of niggles:

  1. the headset uses a dynamic microphone, thus is not compatible (microphone-wise) with the other radio interfaces I have
  2. I used solid-core CAT5 which is sure to develop a fault at some inconvenient moment
  3. the cable to the connector is way too short

CAT5 was fine for a proof-of-concept, but really, I want a stranded cable for this. Being a dynamic microphone, it’s not necessary for it to be screened, and in fact, we should not be using unbalanced coaxial-type cable like we’d use on an electret microphone. That brings up another problem: interfaces designed for an electret will not work with this microphone — the impedance is too low and they’ll supply a bias current which needs to be blocked for dynamic microphones.

Right now I use a DIN-5 connector, but this is misleading — it implies it’ll connect to any radio interface with a DIN-5, and that my electret headsets will plug into its interfaces. At most I can listen with such a set-up, but not talk. The real answer is to use a completely different connector to avoid getting them mixed up. I decided whatever I used, it should be relatively common: exotic connectors are a pain to replace when they break. My criteria is as follows:

  • As discussed, common, readily available.
  • Cheap
  • Able to carry both speaker and microphone audio in a single connector so we don’t get speaker and microphone mixed up
  • Polarised, so we can’t get a connector around the wrong way
  • Ruggedised
  • Panel and cable mount versions available

Contenders I was considering were the 240° DIN-5 (I bought some by mistake once), 5-pin XLR and mini-XLRs, and the humble “CB microphone” connector. Other options I’ve used in the past include the DIN-7/DIN-8 and DE15HD (aka “VGA” connectors). DIN-7/DIN-8s can be fiddly to solder, and are overkill for the number of contacts. Same with DE15HDs — and the DE15HDs do not like moisture!

In the end, I decided the CB microphone connector seemed like my best bet. Altronics and Jaycar both sell these. I don’t know what the official name of these things is. They were common on radio equipment made between the mid-70s through to the late 80s — my Yaesu FT-290R-II uses an 8-pin connector, my Kenwood TS-120S uses a 4-pin. They’re pretty rugged, feature a screwing locking ring, and have beefy contacts for passing current. Usually the socket is available as a panel-mount only, but I found Altronics sell a cable-mount version (and today I notice Jaycar do too). If someone knows a RS/Mouser/Element14/Digikey link for these, I’ll put it here.

The big decision was to also consider how to wire the connector up. As this is “my own” standard, I can use whatever I like, but for the sake of future-me, I’ll document what I decided as I’ve forgotten how I wired up DIN-5’s before. I did have it written down, but misplaced that scrap of paper. I ended up quickly opening up a connector and taking this photo to refresh my memory.

A photo of an actual headset connector, showing the connections.

To wit, I therefore shall commit to public record, exactly how I wired this thing, and propose a standard for dynamic microphone headsets.

The current (left) DIN-5 pin-out, and my proposed “CB microphone” pin-out — both looking into socket

Some will point out that yes, I’m creating yet another standard. In my defence, mine is aimed at stereo headsets, which traditionally have been two separate 3.5mm phone jacks. Very easy to mix up. Some might argue that there exists a new standard in the form of the 4-pole TRRS connector, however not all interfaces are compatible — at the time when I devised the DIN-5 connector, I was using a Nokia 3310 which did not like having the microphone and speaker connected to a common pin.

Keeping them separate also allows me to do balanced audio tricks for interfacing electret microphones with radios like the Yaesu FT-857D which expect a dynamic microphone. For this; I need 5 contacts — left/right speaker, speaker common, and two for the microphone. There are 5-pole TRRRS connectors, the TP-105 is one such example — but they’re not common outside of the aviation industry where they are used.

For the cabling, I’ve cut the CAT5 cabling shorter, and spliced onto the end some 4-wire telephone ribbon onto each side. That makes the headset cable a comfortable length. I began by first soldering the “CB microphone” connector, choosing colours for the speaker and microphone connections and wiring it up in a “loop”, before cutting the far end of the loop, stripping back insulation and tinning the wires. I used a multimeter to decide which was the “left” and “right” connections — then these were spliced with some heat shrink.

After a quick test on the radio, I sealed it up using some hot-melt glue. This should prevent the solder joints from flexing and thus prolong the life of the connection.

I might look at a small J-FET or BJT adaptor cable that will allow me to use this headset in place of an electret microphone headset — as it’d be nice to be able to just plug this into the tablet to listen to music or use with VoIP. I’ve got extra line-mounted sockets for that. Not sure if it’s viable to go the other direction — I’d need a small battery to power the electret I think, that or a bypass switch on the PTT cable to allow me to power an electret microphone.

That though, is a project for another day.

A stereo/binaural tactical headset: part two

So a few weeks back, a couple of tactical headsets turned up ordered from Amazon. When I tested them out, the first thing I found was the speaker audio, whilst okay for speech, was very tinny. I wanted a headset that I could tolerate wearing for horse endurance ride events where I often need to juggle a notepad, radio and maybe a tablet or keyboard. A headset works well for this. Also, if there’s a rain event and you’re under a canvas roof, hearing the radio can be a real challenge!

At the same time I wanted to be able to hear ambient noises, so I needed something that didn’t completely enclose me off. If IRoQ ever starts up again, I might be re-thinking this but for now, this is what I’m doing.

The two I bought are “bowman”-style headsets, which are normally mono. I wanted a stereo headset, so bought two, figuring they’re modular enough that I should be able to cobble them into one. I didn’t expect to have to do surgery on them, but there you go. I dug through my junk box, and found an old computer headset that was minus its microphone with 30mm drivers in it and foam ear pads. Pretty cheap set that you can probably buy at a corner-store computer shop for no more than about $15.

As a test, I grabbed the dissected headset from the previous post, and heated up the soldering iron. I de-soldered the original speaker, grabbed a speaker from this computer headset, de-soldered it from its original cabling and tacked the two wires from the bowman headset to it. I then grabbed my Alinco set and tried a little listening. BIG improvement! No, not audiophile-grade, but not crappy telephone grade either!

The speaker out of the computer headset was glued to a piece of plastic that clipped to the earcup and provided a surface for the foam padding to stretch over. As such, it didn’t quite “fit” in the space of the old one — so I trimmed the plastic back a bit and found I could jam it in there quite snugly. I then just needed something to “hold” it there. Anyway, proof of concept done, time to attack the second victim.

I tore open the second bowman headset I had, and fired up the soldering iron to liberate its speaker. It’s a similar (but not identical) one to the other headset. Also, the foam spacer is a different shape — I guess they just grab whatever is laying around the workshop. (sounds familiar!)

The one on the left was pulled out of the second headset this morning. The one on the right is from the previous teardown.

I grabbed the other speaker from the computer headset, tacked it onto the wires and tested — it too sounded a lot better. A little trimming, and it was ready for permanent installation.

Now, if I just wanted mono headsets, I could have left it there, but I wanted one stereo one. The U94 connector does have enough conductors to support this if I common the microphone and speakers, but there’s already civilian and military “standards” for these things, I don’t need to muddy the waters further with a custom one! For now I thought I’ll use my DIN-5 connector standard for this. So rummaged through the junk box, found a DIN-5 plug and socket. I also grabbed a length of CAT5 cable (solid-core, although stranded would have been better).

I de-soldered the U94 cables from both headsets, stripped the jacket off the CAT5, and separated two pairs for each side. To each headset, I soldered two of the four pairs: left side – blue/white blue to speaker, brown/white brown to microphone; right side – orange/white orange to speaker, green/white green to microphone. I then soldered the other ends to my DIN-5 plug — paralleling the two microphone connections so that I could choose which side I used the microphone on. (Or even put one microphone on each side — this does work although it looks damn silly!)

I wired up the DIN-5 socket to one of the U94 cables, bridging left/right channels. My standard actually uses electret microphones, and I suspect these headsets use dynamic microphones. When I plugged in the headset into my tablet — the microphone was not detected, so I’d say the tablet was expecting a 2kOhm electret not a 900ohm dynamic. But, plugging everything into the PTT cable for the Alinco, it all works — and sounds a lot better.

I finished up by fabricating new pieces of plastic to hold the speakers in — an old 2L milk bottle gave up some PET plastic for the job. I cut an oval-shaped piece with a hole in the centre for the speaker’s sound, and glued that over the speaker. I note the plastic now covers the openings that I was supposed to hear through, but the impact is minimal.

I still need to do something better for cable retention, but I’ll think of something. Maybe hot glue…

The two new speakers installed.

For the headband, I ditched the top-band and just used the two elastic straps — one across the front, one around the back. I find this works well — although the headsets are designed to use a single elastic strap, I suspect the strap was designed with smaller heads in mind (often the way with Made-in-China stuff) — I found it got a tad uncomfortable after a couple of hours.

Mostly Finished headset.

With the two straps on this “stereo” set, it’s a lot more balanced and comfortable. Plus, the speakers being of higher quality, listening comfort is improved — a big plus given horse ride events can go 24 hours, and I’ll likely be there operating for that entire period.

I’ll have to source an alternate 5-pin connector for these — being dynamic microphones, compatibility with devices that expect electret microphones is not a given. Maybe I need to use 120° 5-pin DINs or something. Something other than a U94 or a standard DIN-5, because this is stereo (unlike normal U94 headsets) and uses a dynamic microphone (unlike my other headsets).

FT5DR repeater database for Australia

I’ve just finished inserting all of the country’s repeaters into my FT5DR and have taken a dump of the memory to save others the trouble should they need it. This is based on the WIA’s Repeater Directory, dated 2022-08-07, and includes all 2m and 70cm FM and C4FM repeaters.

How was this organised

The WIA publish their repeater directory on a regular basis from their website in both CSV and PDF formats. Using this information, I coded up a Python script that re-organised the CSV version of the repeater directory into a linear string of repeaters to be loaded into the radio.

You can find the script on Github. In this case, I tweaked the script settings to exclude all repeaters other than 2m/70cm repeaters using FM or C4FM, as these are the only repeaters useful to FT5DR users. The script uses the GPS co-ordinates (or failing that, the nearest town) to group the repeaters into “sectors”. The sectors are divided by the heading from Alice Springs, and the distance.

The script then orders these “sectors”: iterating first by distance, then heading. The result is a list of repeaters where the repeaters are roughly “grouped” by their geographical position.

Here’s hoping this will work out. It’s an experiment on my part, in the past I’ve ordered repeaters by frequency (mostly on channel-constrained radios like the Wouxun KG-UVD1P), and by call-sign. This is the first time I’ve tried using positional information to group repeaters. I suspect it’ll need fine-tuning long-term, but let’s see how this goes.

How was the file created

By hand, through the radio keypad. I then told it to save the memory to the MicroSDHC card. Yes, Yaesu make a piece of software to let you edit this on your computer, if your computer runs Microsoft Windows. I don’t, so I did it the hard and slow way.

I am working on getting CHIRP to support the FT5DR, to save ourselves some trouble in the future.

Errata from the repeater database

There are some notes about this repeater database which are potential gotchas:

  • VK3RNB “CBD Melbourne” repeater at 438 550kHz is shown with a repeater input of 431 555 kHz which equates to an offset of -6995kHz, this is recorded as -7000kHz since the FT5DR does not support -6995kHz offsets.
  • VK5RSC “Mt. Terrible” repeater on input frequency 147 675kHz actually outputs on the 10m band at 29 620 kHz — as the FT5DR cannot receive 10m FM, this is recorded as a simplex frequency.

How to load

NOTICE: You do this at your own risk. I accept no responsibility for any damage that may occur to the radio loading files from this site, nor any legal action that may arise as a result of using the repeater data supplied from this site.

  1. Download and unpack the ZIP file.
  2. Insert a FAT32-formatted MicroSDHC card, 32GiB or smaller into your computer’s SD card slot and mount it.
  3. Create a directory named FT5D_MEMORY-CH in the root of the SD card
  4. Copy MEMORY.dat to this newly created directory
  5. Unmount the MicroSDHC card
  6. Power your radio off if it’s turned on, then insert the MicroSDHC card into the radio’s MicroSDHC slot (right-hand side — contacts face the front)
  7. Power on the radio
  8. Hold F Menu for 3 seconds
  9. Tap SD Card on the touchscreen
  10. Use the channel knob up the top of the radio to highlight 2 MEMORY CH
  11. Press F Menu
  12. Use the channel knob up the top of the radio to highlight 2 Read from SD
  13. Press F-Menu
  14. The radio will ask “READ?“, tap OK on the screen twice.
  15. The radio should read the file, then do a reset. When it boots back up, you should find the repeater database is loaded.