IT-24 Image Scraper Now Supports More Analyzers

Written 2014-03-16

Tags:AA-170 Ham Radio Antenna IT-24 WiFi HSMM RigExpert 

The IT-24 Image Capture tool has been updated to support AA-170 analyzers as well. The AA-170 analyzer uses a 128x64 1-bit display, a simpler image transfer protocol, and a slower baud-rate. The new baud-rate must be specified on the command-line.

Additionally, this software should work on several other RigExpert analyzers like the AA-30 and AA-54, and may work with AA-230 and AA-520 as well. If you have one of the above analyzers, I'd love to hear if it works.

Inside the IT-24 Antenna Analyzer

Written 2014-03-14

Tags:Ham Radio Antenna IT-24 WiFi HSMM RigExpert 


RigExpert makes an affordable 2.4GHz analyzer. In an earlier post I documented the image transfer protocol. Today I take it apart.

First Remove the Six Screws From the Rear of the Unit

Pop Off the Rear Case

Remove Four More Screws to Free PCB

Flip PCB into Rear Case to See Front of PCB


Although RigExpert hasn't yet published repair diagrams or schematics for the IT-24, the design seems fairly simple and easy to repair. The main sections are RF(back of PCB near top), display(front of PCB near top), power(front of PCB near bottom), and digital/micro(back of PCB near bottom). There's a JTAG header to the ATMEGA128A, and except for the micro and FTDI converter, the other components are large enough to be manipulated with an iron. It would've been nice if the battery pack were attached with a connector instead of soldering. Coax-connectors are a standard part, which is great, since SMA and RP-SMA connectors are only rated for around 500 insertions. At one insertion per workday, they'll need replacement around every two years.

Reversing the IT-24 USB Image Protocol

Written 2014-03-02

Tags:USB IT-24 UART Hardware RLE RigExpert Universal Serial Bus 

Figuring it out


RigExpert makes a handheld 13cm band antenna analyzer, the IT-24. It is small, lightweight, and both measures and graphs SWR. However, until today, the IT-24 required a Windows tool called LCD2CLIP, which is used to copy the current analyzer frame to the windows clipboard. The image transfer is started by pressing the button labeled with a rectangle on the analyzer.


I started by examining the USB drivers - inside the IT-24 is a USB-FTDI interface. These show up under /dev/ttyUSB in Linux. The baud-rate is 115200. Pressing the screencapture button sends a newline,carriage-return,"screencomp", resolution,and then a compressed bytestream terminated with another newline and carriage return.

Gathering data and initial guesses

To verify the link quality, I recorded a few captures of the main menu using dd on the USB-emulated serial port device, and all captures of the main menu were the same. Changing the menu selection changed the capture data. The menu images were 4 to 5 pixels per byte. Captures of the graph page were 7 to 8 pixels per byte. This indicated that some form of compression was in use. Next I captured an SWR-sweep graph of the same antenna twice. Because they were different sweeps, the images were similar but not identical. Converting both dumps to hexadecimal and comparing in meld showed that the differences in binary dumps were similar to where the graphs would be different. Also suspicious was the fact that after subtracting the header and footer, the dump size was always a multiple of 3 bytes.


The next step was building a simple parser and gathering statistics. For each three-byte packet, the first and second bytes had a limited number of possible values. Additionally, when the first and second bytes are combined, the values line up, so this appeared to be a 16-bit integer. The third byte of all packets has the interesting property, when added together, of equalling the total number of pixels in the image, which is known from the ASCII header. This pretty much nails it down as Run-Length-Encoding .

Documented Format


  1. CarriageReturn
  2. NewLine
  3. "screencomp"
  4. width
  5. "x"
  6. height


RLE encoded, 3 bytes per packet representing between 1 and 255 pixels. Per packet:
  1. 2 bytes RGB565.
  2. 1 byte repeat-count.


  1. CarriageReturn
  2. NewLine

Code and closing

I wrote a python tool to scrape images from the IT-24 and posted it to github. A few revisions back you can find an earlier parser written in 'C' that was just enough to work out the rest of the format. Using the above program, it's perfectly reasonable to record a few graphs per minute to a PC using the IT-24 from RigExpert.


Written 2014-02-11

Tags:UART Serial Hexadecimal 

Several times now I've needed to interact with a serial device that doesn't speak ASCII. I usually end up writing code to talk to it, and add enough logging to figure out what's going on. But last night I wrote a simple hex-console. To write, you type in a hex string, and data received is printed in hex as well. Afterwards I found another implementation, so I'm not the first to want to do this. Anyhow, my code is here


Written 2014-02-08

Tags:KCMARC 2600 HSMM Amateur Radio 

Although we've been meeting for nearly a year now, a group of interested HSMM operators in the KC area have formed the KC-Mesh-ARC. People of import:

Name CallsignPosition
Noah KD0NRC President
Joel KD0HKI Treasurer
Brian KD0TLO Secretary
RichardKD0LIX Trustee

The proposed constitution is up for review here.

Several members have mobile nodes, and our largest mesh so far consisted of eight nodes. Hopefully in the coming year we hope to connect several more permanent installations together, and building longer-range infrastructure. Additionally, we'll soon be applying for official amateur radio club status, followed by a fancy callsign.