Chirp – programming a HAM radio

While this tool isn’t new for most HAM’s, it was new for me. It’s called CHIRP, and it is a programmer for your radio. More or less, it allows you to input channels, change settings, and download/upload content to your radio. All of these functions can be done from the radio head itself, but this allows you to do it in a nice python scripted interface.

Of note, however, is that the Ubuntu and Debian repositories have incredibly old versions of the program. So old, in fact, that it could not read the downloaded information from the RepeaterBook query that I ran.

If you run into the same issue, be sure to check out chirp’s website: https://chirp.danplanet.com/projects/chirp/wiki/Home with this great explanation of how you can add the PPA to your sources list and get the latest version, like so:

sudo apt-add-repository ppa:dansmith/chirp-snapshots
sudo apt-get update
sudo apt-get install chirp-daily

I will mention, if you already installed chirp from the main repository, you will need to remove it first before installing this chirp-daily package. Once I did that, it was smooth sailing!

As for how to use chirp, I learned it all from a Youtube video by David Casler. It’s a great video and very thorough.

Linux – keep it simple.

Radio check sat! Using 433MHz transmitter and receiver with Uno board….

transmitAndReceive

Now that picoEngine has reached version 1.0, I’m ready to work on a few other projects. Namely some electronic ones. Since Christmas, I’ve been holding on to a few Arduino Uno boards, and a pile of stuff for them. So, I broke out a few parts.

IMG_20190326_132946

I decided to start with the 433MHz transmitter and receiver.

There were several guides online, and I stole some code from them. I like starting any project with a known good source before stepping out into something I made, to make sure the hardware/software is set up properly. It was a great tutorial, and it worked.

However, there was one unexpected drawback: range. I knew these little transmitters and receivers were weak, but I didn’t realize that they literally only transmit an inch! As you can see in the picture, the Uno boards are almost touching just to transmit the data back and forth. I had purchased a few of these (three sets for myself, and two for my brother) with the intention of doing a few fun projects. Unfortunately, these wont transmit across my desk, let alone the parking lot, so I’ll need something else to work with.

But, these are still a fun learning tool, just a little lacking in the range department! Here are the sketches I used, keep in mind, you need the “radiohead library” installed in your IDE to make this work.

Transmitter:

#include <RH_ASK.h>
#include <SPI.h> // Not actually used but needed to compile

RH_ASK driver;

void setup()
{
Serial.begin(9600); // Debugging only
if (!driver.init())
Serial.println(“init failed”);
}

void loop()
{
const char *msg = “Hi World!”;
driver.send((uint8_t *)msg, strlen(msg));
driver.waitPacketSent();
delay(1000);
}

Receiver:

#include <RH_ASK.h>
#include <SPI.h> // Not actualy used but needed to compile

RH_ASK driver;

void setup()
{
Serial.begin(9600); // Debugging only
if (!driver.init())
Serial.println(“init failed”);
}

void loop()
{
uint8_t buf[12];
uint8_t buflen = sizeof(buf);
if (driver.recv(buf, &buflen)) // Non-blocking
{
int i;
// Message with a good checksum received, dump it.
Serial.print(“Message: “);
Serial.println((char*)buf);
}
}

I certainly like the simple code, since the radio head library does all the heavy lifting for you. Have any of you ever tried these out?

Linux – keep it simple.