Saturday, April 10, 2010

Testing a Radiometrix HX1 radio

I've got these 3 modules from Radiometrix. Look how nicely packed these came!

  • HX1: VHF transmitter, hard-tuned to 144.8 MHz, outputs 300mW. Consumes 120mA at full RF.
  • NRX1: VHF receiver, hard-tuned to 144.8 MHz
  • UHX1: VHF transceiver, can operate on any frequency in a 2 MHz range, outputs 500mW (adjustable).

I've tried the HX1. It outputs 200mW according to my power meter. The 100mW loss might be due to the dirty connection I made from the breadboard to the SO-239 connector, bad shielding or the meter itself but I still haven't figured it out completely.

I've got the HX1 partly inspired by VE6SBS Barry's page. He successfully tracked a balloon using an HX1 radio from 600 km away. Not bad for 300 mw! I have been able to reach digipeaters in the ~35 Km range with ~50% success rate using the HX1 and a DIY 6 elements yagi antenna. With my trash-dug omni antenna, though, the success rate goes down to ~0.01% (success rate with the SRB MX146 @500mW and the omni was ~4%) , even though I have direct line of sight with the remote digipeater. I fear losing the ballon after it goes a few kilometers high, but apparently altitude has a huge impact in VHF propagation, and Barry's experience is a good proof of it.

The other issue Barry was worried about is the high frequency drift this device experiences with temperature. I think there is little to do here except taking care of good thermal insulation. I'm actually thinking of using the HX1 as a heat sink for the voltage regulator...



  1. Hello there pal, thanks for the useful info you provide.
    I plan a similar project and now I'm designing the RF part. Among the MX146, HX1, NRX1 and UHX1 modules which one did you finally used?

    thanks, Kostas.

  2. Kostas,

    I am going to use the HX1 on the balloon. It's cheaper than the MX146, and many people have used it before with success (check out Barry's page above).

    On the receiving side, I am planning to chase the balloon from two cars, so I'll use the NRX1 in one car, and a regular ICOM VHF radio in the other. If another car adds up, I might throw in the UHX1 as a receiver, too.

    Note the UHX1 already has a 1200 baud modem built-in, but I believe it produces an FSK signal, not AFSK. If so, it can't be decoded with a regular radio+TNC.

    Hope it helps and good luck!

  3. Javi, thanks for your helpful answer.
    I really need to ask someone cause I don't have enough money to spend on trial-and-error methods.
    I'm mostly a software enginner rather than an electronic enginner so I don't understand much of the electro-stuff.

    I found out that we need the NBEK IC. Is this correct? Also, reading it's datasheet I understand that for the transmitter system we have write to the RSTXD PIN.

    And here lies my biggest obstacle.
    How and What to write on RSTXD PIN? I will use an arduino board like you. How to wire an ATmega328 PIN to the NBEK RSTXD PIN? Can you upload a photograph and/or a schematic with the actual electronic components I will need? Any other detail will be extremely helpful.

    Thanks again, Kostas.

  4. Hi Kostas,

    I'm not using an NBEK module. I do the AX.25 framing, FSK modulation and audio generation via software. I use two pins on the Arduino, pin 3 for audio out (0..5 volts) and pin 4 for PTT (TTL logic: high=on, low=off).

    The HX1 takes 0..5 volts audio in and the PTT is TTL with high=on/low=off, so driving the HX1 is very easy (that's another reason why I chose it over the MX146). You just wire the Arduino audio out directly into the HX1's TXD, and the PTT is wired to the HX1's EN pin. That's it. No extra components at all.

    The MX146 needs 0..500 mV audio input, so you need a voltage divider to convert the Arduino's 5 Vpp down to the required 0,5 Vpp. The PTT also behaves differently than that of the HX1: leave floating for "off", short to 0v for "on". So you need a transistor to drive it. Finally, I use I2C so that I can set the frequency freely from the Arduino. But the MX146 uses 3.3V TTL logic and the Arduino is 5V TTL, so the levels need to be converted, otherwise you'll burn the MX146. It's not complicated, but you need two mosfets and four resistors as explained in this article. Overall it's not complex, but it's messier than the HX1 setup.

    If you download the source code of my tracker (here), check out the "config.h" file. I tried to explain all the above with some ASCII schematics.

    I didn't use the NBEK IC because, as far as I know, it modulates the digital input using FSK. Instead, I wanted my tracker to use standard Packet Radio and Packet Radio uses AFSK, which means the digital signal is FSK-modulated into an audio signal of 1200/2200 Hz, which is then modulated using FM.

    The advantage of using standard Packet Radio is that you can use a simple walkie-talkie, a PC with a soundcard and AGWPE to decode the tracker's messages. But best of all, if you transmit on a standard APRS frequency (144.800 MHz in Europe), it's more than likely that your traffic will be iGated by someone and your balloon will magically show up on

  5. Javi, obviously I will take the simple case using HX1.
    I just took my Amateur radio license so I'll use 144.8Mhz.

    To sum up:
    Arduino pin3 out goes directly to HX1's TXD.
    Also arduino pin4 out goes directly to HX1's EN.
    TXD is for the data and EN is for disable/enable (0/1).

    You implement AX.25 framing, FSK modulation and audio generation in software. Does your source code contain these functions? Can your code be compiled to the popular arduino IDE ?

    Moreover, the links you have provided for HX1 and NRX1 take me to Radiometrix. Is this site-company trustful for orders? I'm from Europe.

    And last one, you said packet radio uses AFSK. But you implement FSK in your code. What's the difference?

    Thank you very much for helping me.

  6. Kostas,

    Yes, that's how you connect the HX1 to the Arduino. I'm working on a schematic. I haven't tested it yet, but it's almost complete so I'll post it and see if it helps you. My plan is to send it to a PCB house because I don't have much experience building PCBs.

    In AFSK, the 0/1s modulate an audio signal (the AX.25 standard is 1200/2200 Hz). Then, that audio signal modulates the RF carrier of the transceiver.

    In FSK, the digital 0/1s modulate the RF carrier directly by shifting around its center frequency.

    It's really AFSK what I'm doing. I just called it FSK...

    As far as I know, Radiometrix is UK-based. They don't have an order page on-line, you have to email/call them to get a quote and arrange the payment. They're very responsive anyway.

    As for the code, I split it in multiple .cpp and .h files to make it more readable. I wrote some Makefiles, but I've only tried on Linux and Mac OS X. In theory you can paste all the .h and .cpp files together in a single Arduino IDE project, but I shudder at that idea.

  7. Ok, Javi. I'll wait for your schematic. In the meantime I will try to arrange the order with radiometrix and then I'll start manipulating your code to meet my needs.

    If I have a problem understanding something I'll let you know.

    Cu friend.

  8. I cannot unterstand how, do you decode transited data... You use one usuall ham radio trasmiter, listen data and sent them to PC ?

  9. Hi Javi,
    I'm a newbie and I need your help. With the HX1 is it possible to transmit via APRS in order to track on the website without any personal receiver? Thank you in advance. Francesco