The ArcaneBooks Project – An Introduction


As some of you may know, I’ve been a ham (amateur) radio operator since 1999, holding the call sign N4IXT. I’m a member of several clubs, including the Birmingham Amateur Radio Club, the Shelby County Amateur Radio Club (where I’m also the webmaster), and the Amateur Radio Relay League (ARRL), in which I am a life member.

More importantly for this post, I am a member of the Alabama Historical Radio Society. We are beginning a project to catalog our exhibits and library into cloud based software named PastPerfect. As part of this effort we’ll be entering data for our extensive library into the software.

Naturally we want to automate as much of this as possible, since the collection is rather extensive. Some of our books are so old they have neither an ISBN (International Standard Book Number) or a Library of Congress Catalog Number (LCCN for short). Others have only the LCCN, the newer books have an ISBN, and a very few have both.

In the process of meeting with other museums I learned this is a need for many other organizations. So I decided to do something about it.

I plan to create a PowerShell module with cmdlets that can retrieve book metadata, such as title, author, and the like. This module will then be made available as on open source project on my website so other groups can use it as well.

As a source a user can pass in either an ISBN or LCCN number, or better yet pipe in an entire list of numbers from a text file, and generate book data.

The sources we’ll use are the Library of Congress and the Open Library site, which is part of the Internet Archive. Both provide web APIs we can use to retrieve data, and we’ll document that information in upcoming posts.

Why PowerShell?

You may be wondering why I chose PowerShell for this project. There were several good reasons.

First, and people often forget this, PowerShell is multi-platform. It can run on Windows, MacOS, and Linux. If you want to learn more on this you should watch my Pluralsight course PowerShell 7 Quick Start for Developers on Linux, macOS and Windows.

Next, the PowerShell code is viewable by anyone. Any user can download the code and easily examine it before running. This should address security concerns by many organizations.

The third reason is readability. As many will point out, there are other languages such as Python that will meet the above needs. In general though, code from other languages can be hard to read and execute for people who aren’t developers. I’m imagining my module will be used by many people with only a basic understanding of tech. As such a simple command like Get-BookByISBN -ISBN 1234567890 will be much easier to use.

Finally, well hey I just love PowerShell! As I need to turn this project around quickly I wanted to use something I already know and love.

The Plan

In the next two posts I will cover what ISBNs and LCCNs are, and the web APIs (Application Programming Interface) that we’ll use to get the data.

I’ll then begin a series of posts documenting the PowerShell code needed to retrieve the book data, and how you can use the book data for your organization.

The series will wrap up with the creation of the ArcaneBooks PowerShell Module, and its publication to my Github site.

Kusto Will Return!

For those of you who have been following Kusto Query Language series over the last few years, don’t worry it will return! I’m just taking a short diversion for the next month or so to document this project. Then we’ll return to the world of Kusto.


In this post I established the groundwork for my new ArcaneBooks PowerShell project. In the next few posts we’ll cover terms and data sources, then look at the PowerShell code needed to achieve our results.

I have a long series of blog posts on PowerShell, you’ll find them listed at my Fun With PowerShell Roundup

If you want to take a deeper dive into PowerShell, I have many PowerShell courses at Pluralsight, you’ll find them listed on my About Me page.

One course that may be especially helpful is my Pluralsight course PowerShell 7 Quick Start for Developers on Linux, macOS and Windows, as it dives into the creation of functions, modules, and more.

If you don’t have a Pluralsight subscription, just go to my list of courses on Pluralsight . At the top is a Try For Free button you can use to get a free 10 day subscription to Pluralsight, with which you can watch my courses, or any other course on the site.


Programming Your Baofeng Radio with Chirp and Solving the Prolific Driver Issue

Ok, this post is a bit off what I normally talk about, but I wanted to add it so I’d have a spot to point people back to, and more importantly be able to refer back to it myself.

Some of you may know I am an amateur “ham” radio operator, my call sign is N4IXT. As I’m also a “techie” I’m often asked to help people program their radios using the computer. There are a variety of hand held radios on the market. One of the most prolific manufacturers is a Chinese company who makes very inexpensive (some might even say cheap) radios marketed under the names of Baofeng and BTech. Another popular maker along these lines is Wouxun.

This post describes not only the steps to program, but to also install the software you’ll need to program these radios and others.

Installing Software and Drivers

The first thing you’ll need is the programming software itself. The software most people use is called CHIRP, available from It has versions for Windows, Mac, and Linux, although for this article we are going to focus on Windows.

You’ll also need the cable for your model of radio. Sometimes the cable comes with the radio, other times you’ll need to purchase it separately. Now if you were like me, and installed CHIRP, plugged in the cable, and hooked it to your radio, you probably got a lot of error messages.

Inside the programming cable are some chips that help the computer talk to the radio. The company who originally created these chips was called Prolific. These Chinese companies cloned the chips and their code, indeed the cables even report to Windows that they are from Prolific.

Thus when you plug in the cable, it tells Windows “Hey I’m a Prolific cable”, and Windows goes out and downloads and installs the latest Prolific drives. Which is where the problems start.

Prolific was naturally a tad upset that someone had stolen their design, and who can blame them? So they started adding a special code to their newer chips, as well as an update to the drives so that if the chip isn’t an authentic chip from Prolific, the driver won’t work.

You can verify this for yourself. On Windows 10 just go to the Cortona search area (next to the Start menu) and type in Device Manager. (If you are on an older version of Windows you can open up Device Manager through the Administration panel).


Scroll down the list to the Ports area and you’ll see the Prolific driver listed. Note that it has a big yellow exclamation mark.


Right click on the Prolific driver and pick Properties.


Right in the middle under Device Status we see the problem: This device cannot start. (Code 10). While rather cryptic, what this really translates into is “Hey, we’re trying to use the Prolific driver, but it’s telling us this isn’t a Prolific device.”

This puts us in a bind, as we need to use the driver, but the latest version doesn’t work. The solution then is to install the most recent version that works. Fortunately someone has made that very easy to do.

Head over to iFamilySoftware at and they have a detailed article describing the issue (which I’ve just briefly recapped here). In addition, they have a tiny program you can download and install that will uninstall the nonfunctional version of the Prolific driver, and install the last version that actually worked.

Even more important, their app will prevent Windows from automatically updating the driver in the future. Windows frequently will try to be “helpful” and scan your drivers and will go “oh look, you are running an older driver (in this case for Prolific), here let me update that for you automatically and not tell you”.

Note they have versions of their program for both the 32 and 64 bit versions of Windows, and it will run on Windows XP, 7, 8, 8.1, and 10. Just download and run, reboot, then return to Device Manager. Your Prolific driver should now appear without the exclamation mark, indicating it is now working.  Right clicking and picking properties should now display “The device is working properly”.

Running Chirp

OK, so now you have CHIRP installed, and the correct version of Prolific, it’s time to load up your radio with frequencies. Open up CHIRP, then plug in your cable, and (with the radio off) plug it into your radio, and then turn the radio on.

CHIRP opens up with a big blank screen. Your first step will be to download what is currently in the radio, even if it’s a brand new radio with just the default handful of frequencies.  This let’s CHIRP get a correct image of the radio type and what its current settings are.

Click on the Radio in the menus, then from the dropdown pick Radio, Download From Radio.


Next it wants to know what COM port the cable is using, who made the radio, and what model. If you aren’t sure of the COM port, go back to Device Manager using the previous instructions, and expand the Ports. At the very end of the driver name is the COM port it’s using, in parenthesis.


The first time you use CHIRP you’ll probably have to key in the COM port, just type COM3, COM4, or whatever it was.

I also want to add a quick note for eagle eyed viewers. I’m using two computers to write this article, one in which the Prolific drivers didn’t work, the second where it did. If you look back to the original image from the Device Manager you’ll note it read COM4 at the end. On the computer I took the above screen shot on, the computer where I have it working, Prolific is using COM3. Again you can use device manager, like I did, to determine what the correct COM port is for your computer, and if you use multiple computers your COM port may be different on each.

So once you’ve entered the correct COM port, you’ll see a drop down list for the Vendor, and CHIRP supports a LOT of radio companies. The radio I’m plugging in here is a Baofeng.

Once you pick the vendor, the Model drop down will now be populated with a list of all the models CHIRP supports for that Vendor. Here, I’ve picked the UV-5R. My radio is actually a UV-5RA, but the UV-5R settings work for it too. Once done just click OK.

Next you are shown a warning message.


Basically it’s CHIRP’s way of saying “Use at your own risk”. Don’t worry about it, CHIRP has been used on hundreds of thousands, if not millions of these radios. I’ve personally programmed dozens of radios with CHIRP for myself and others, so you can safely click YES. You may want to click the “Do not show this next time” option first, so you won’t see this every time you update your radio.

Next you will see a reminder on how to hookup your radio.


Basically, turn the radio off, hook it to the computer using the cable, then turn it on. Once you click OK, it will start transferring the data. You’ll see a small message showing you the progress, generally takes around 20 to 30 seconds.


When it’s done, the list of frequencies will open up inside CHIRP. (Click on the image below, or any of the images in this article, to open up a bigger version).


The first thing you should do is save what is there by using the File, Save menu option. This will save it as an IMG file. I generally use the radio vendor, then model, then the area where the frequencies are for. In this example it’s for Shelby County AL. After that I put the date I created the file. If I later go update it, I’ll do a Save As, and update the date. This lets me track changes over time, or go back to an older version if I need to.

Now you are ready to start entering frequencies. You can of course do it manually, typing each row supplying the data. You could also look up the frequencies online and cut/paste into CHIRP. Radio Reference ( is a good site to look things up, but there are many you can pick from.

Even easier though is to use CHIRPs built in functionality. In the Radio menu is an option “Import from data source”. There is a list of multiple sites you can import from, each will let you search on a variety of things like your state, county, or zip code to find frequencies near you. Just be sure your cursor is sitting on empty row in the frequency list or else you may overwrite some of your existing frequencies.

The final option is to copy from an IMG file a friend with a similar radio has sent you. CHIRP will let you open up multiple IMG files at the same time, and display them as tabs across the top. You can just open their file and copy/paste into yours. You can copy just some of the rows or their entire frequency list.

Now that you have your frequencies loaded you’re almost, but not quite, ready to upload to the radio. If you look to the very left, there are two tabs. The Memories tab is what you are currently on. Now click on the Settings tab.


The overwhelming majority of settings you should leave alone unless you have a specific need. However there are a few you may wish to look at. Do note these are for the Baofeng, what you see on the Settings tab will change with each radio type.

On the Basic settings you’ll see Display Mode A and B. This indicates what is shown on the display. Your choices are Name, Frequency, and Channel. I tend to prefer Name as it shows the name (such as the repeater call sign), but you could alternately show the frequency of the repeater. I don’t find Channel very useful, but feel free to experiment and pick what you like.

As you will see it’s not big deal to make a change and re-upload to the radio. Note that you don’t have to import from the radio before you upload back to the radio every time. You can make a change, upload, then if you don’t like it make another change and just upload again. But more on uploading in a moment.

The other thing on for this radio you might want to look at is the background color for the display, this Baofeng can have three different background colors, and you can set the Standby, Receive (RX) and Transmit (TX) colors independently.  Just for fun I use the different colors but use what works for you.

You can also enable or disable the Roger Beep using the check box at the bottom. Most hams find the beep annoying, so I suggest turning it off unless you are doing a lot of Simplex work.

Next click on the Advanced Settings.


The one thing I like to change here for the Baofeng’s is the voice. By default it is set to English. Every time you press a button or change to a different memory channel she (it’s a female voice) starts talking to you. Not only do I find this annoying, it also slows down the operation of the radio. I use the drop down to change this to OFF, but again it should be your preference.

As a final step in my setup process I click on the Other Settings tab.


At every meeting I go to there’s generally half a dozen people with Baofengs, so I change the Power-On Message to my call sign. This way when you turn on your radio, it displays the call sign of the owner.

There are several other tabs but these are really advanced items that I leave alone.

OK, now that you have your CHIRP image ready, it’s time to upload. A reminder though, make sure to do a File Save so your IMG file will be updated and should something catastrophic happen you won’t lose your hard work. (I’ve never had CHIRP crash, but I have had my home power go out on me. Oops.)

If your radio still isn’t hooked up, turn it off, then plug it into the cable, then turn it on. From the Radio menu, pick Upload To Radio.


Now it’s just like the download. You are first prompted for the COM port, the vendor, and the Model. Once you click OK, you are given the reminder to turn off the radio, hook it up, turn the radio on, and click OK. After clicking OK you may see the message about it being an experimental driver, just click Yes to proceed.

Once you proceed you’ll see the Cloning Radio progress box as it uploads the data to your radio. When it’s done you’ll see your radio reset, and then you’re done! You are ready to start using your radio, just remember to unhook it from the programming cable before you try to use it.


The steps in this article should work for most radios, especially the critical steps at the beginning for fixing your Prolific driver. I want to remind you the Memories layout and Settings pages will be different for each radio, even radios from the same vendor.

Some manufacturers, for example, allow additional information in the memory columns such as geographic location. Others may not have multiple LED colors for the display.

With the information in this article though you should be able to navigate setting up most of the radios that CHIRP supports.