Modified Baofeng UV-17 Pro CPS software 1.2.4f

Continuing my series of modified CPS releases, 1.2.4f was released on the Miklor.com web site today. It introduces a number of new features including full Cut / Copy / Paste functionality – within a zone, between zones, and to / from CSV.

Here is a complete list of new features and changes in 1.2.4f:

  • Add full Cut / Copy / Paste functionality – within zones, between zones, and to/from CSV (Comma-Separated Value) files.
  • Fix VFO window scan range limits to 108-136/136-174/200-260/350-390/400-520 to match the radio’s capability.
  • Display an informational message when selecting a scan range between 108-136 or 350-390 to warn about a bug in the radio firmware that prevents their use.
  • Fix VFO Channel A & B frequency box validation to accept all valid frequencies.
  • Fix Channel window frequency input boxes to accept all valid frequencies.
  • Change the window top menu strip to show the actual radio frequency bands of 108-136/136-174/200-260/350-390/400-520.
  • Change the default language for the radio in empty configs to English.
  • Add a pop-up if selecting a radio model other than UV-17 to request feedback, as I have not tested those models.
  • Fix the write progress bar to auto-close after the user clicks “OK” in the completion pop-up.
  • Restore the ability to install on Windows XP (broken since 1.2.4d).
  • Restore correct 136.5 CTCSS tone (broken since 1.2.4d).
  • Accept frequencies ending with a decimal point (like “146.”) instead of generating an “Error in frequency format” error message.
  • Both the setup program and CPS are digitally signed to prove their authenticity and that they have not been modified or damaged.
  • Provide a complete manual (this document) in PDF form instead of text README file.

Modified Baofeng UV-17 Pro CPS software 1.2.4e

I’ve owned a number of Baofeng UV-17 Pro GPS radios for some time and I’ve previously posted a teardown here on this blog. John Miklor has posted a detailed review on his site.

I had been hoping CHIRP would add support for this radio as I’ve had an issue open to add support for it for some time. Unfortunately, there are a huge number of requests competing for the CHIRP team’s time and this is not a simple thing to add – this radio uses a completely different programming interface and properly supporting it would require re-architecting parts of CHIRP’s basic structure – as an example, this radio model has 10 zones of 100 channels each. This would either mean a 1000-row list in CHIRP or adding a new way to select zones.

The factory CPS (Customer Programming Software, presumably) is very basic. In addition to an overall lack of features there are a number of annoyances ranging from the minor (some error messages only display in Chinese) to the major (the software won’t let you enter frequencies in the 108-136MHz aircraft band, even though the radio can receive them).

I initially thought “How hard could this be to fix?” and released a patched version of the factory software which I called 1.2.4a to distinguish it from the factory software. This got an excellent reception from the user community and soon requests for additional features started coming in, as well as a report that a certain series of steps would disable entry of aircraft band frequencies again. The sequence was odd enough (program frequencies in CPS, write to radio, read from radio and try to edit) that only one user ran into it. I released my 1.2.4b and 1.2.4c versions in rapid succession, but was unable to entirely eliminate the reported error. It also became clear that a number of feature requests from users could not be accomplished by simply patching the factory CPS with a hex editor.

Fortunately, the factory CPS was built with Visual Studio and Microsoft .NET and the program included a full “symbol table” which meant that it was possible to “decompile” the program into source code that had meaningful labels – typically decompilation produces code with names like “L1874” instead of “ChannelNumber”. At first I looked at this source code solely as an aid to discovering where I needed to patch things, but then I decided to attempt “recompiling” it from scratch. Much to my surprise, Visual Studio produced a program that seemed to work just like the factory CPS (after I made a number of corrections to the decompiled code). I worked on a number of “1.2.4d Experimental” releases which fixed many more bugs (including finally fixing the “aircraft band disabled after reading from radio”) and added new features. This version was extensively tested by John Miklor and a few selected users. I refer to 1.2.4d and later as “modified” software instead of “patched” software as things have moved far beyond simple patching at this point.

Confident that I was heading in the right direction, I continued with development of 1.2.4e. In addition to changes I was making to the program, I also built an installer package so that all users needed to do was run a “setup.exe” program. John Miklor contributed a new icon (orange UV-17 radio) which is now the default icon. The original generic radio icon is still available for those that prefer it. John did additional extensive testing to make sure I didn’t break anything and verify that all of the newly-added features and bug fixes worked as expected.

1.2.4e was released on the Miklor.com web site today and I wrote this blog entry to provide a little history on how and why it came about.

This is the list of changes and what version they first appeared in:

Revision history:

Changes in 1.2.4a:
1) "Freqence is invalid" -> "Invalid Frequency!" error message
2) "ZONEE 5" -> "ZONE 5" in default settings
3) "v1.2.4" -> "1.2.4a" in About
4) "?????" (Chinese text 'Read Failed!') -> "ERR1!" when opening a file
5)  Changed lower VHF frequency limit from 136MHz to 108MHz

Changes in 1.2.4b:
6)  "1.2.4a" -> "1.2.4b" in About
7)  Fixed additional locations where the aircraft frequency is checked
8)  Added additional information to this file

Changes in 1.2.4c:
9)  "1.2.4b" -> "1.2.4c" in About
10) Changed header to show 108-174 instead of 136-174
11) Documented restriction after reading from radio

Changes in 1.2.4d Experimental-1:
12) Switch to full recompilation in Visual Studio instead of patching binary
13) Changed Properties / Details to provide information about executable
14) Changed various Chinese-only error messages to English
15) Fixed "ZONE 5" to not have trailing NUL
16) Changed "ERR1!" from item #4 to "File open/read error!"
17) Corrected various spelling / grammar issues in English messages
18) Increased normal window size to not need scroll bars
19) Changed main window title to "UV-17/18/19/20/21/22 Pro CPS - Unofficial Experimental by 
    Terri Kennedy"
20) REALLY fixed air band in channel list
21) Removed documented restriction from #11 as it no longer applies
22) Changed Help / About... to "Version 1.2.4d\nExperimental-1\nby Terri Kennedy"
23) Changed the default radio model to UV17PRO

Changes in 1.2.4d Experimental-2:
24) Changed VFO lower limit to 108
25) App icon is missing from source-built executable - reinstate
26) Change “Bank” labels to “Zone” to be consistent with radio’s usage

Changes in 1.2.4e Experimental-3:
27) "1.2.4d" -> "1.2.4e" in About 
28) Temporarily disable “Import Picture to Radio” in Tools menu as it is not working
29) Make sure all instances of minVHF refer to 108 (hard-code in assignments)
30) Change default icon to orange (from John Miklor), retain original as alternate icon
31) Change internal app icons to orange and add where missing
32) Auto-close the COM port dialog after port is selected
33) Start app in window mode instead of fullscreen
34) Fix .cs files not loading properly in Visual Studio 2019 Designer
35) Change ordering of Zone selection buttons on channel window, rename “Last” to “Previous” 
    to correctly reflect function.
36) Fix SK2 setting reverting to FM when downloading from radio
37) Use orange icon in Control Panel / Programs and features

Changes in 1.2.4e Unofficial Build:
38) Change “Experimental-x" to “Unofficial Build” in #19
39) Change “Experimental-x” to “Unofficial Build” in #22
40) Change “Experimental-x” to “Unofficial Build” in #13

I have a number of things planned for a future 1.2.4f release, but you’ll need to wait for that release. I think you’ll be amazed at what I’ve come up with! In the meanwhile, 1.2.4e is so much better than the factory CPS that you should definitely try if you have one of these radios.

Hopefully these improvements will encourage Baofeng to “up their game” in their own CPS software releases. Simply releasing a bare-minimum CPS is no longer sufficient if they want to be taken more seriously as a radio supplier. Since there is currently no CHIRP support for their newer radios, Baofeng can’t simply say “use CHIRP if you want something better”.

A few closing thoughts:

1) If Baofeng is interested in obtaining the improved CPS, they should definitely reach out to me.
2) It would probably be possible to make similar improvements to the CPS for other radio models. My interest is exclusively the UV-17 Pro GPS as those are the radios I have. I’d be glad to discuss technical details with anyone who wants to try the same sort of thing on a different CPS. I’d also consider doing the work myself on a “time and materials” basis. I’d need at least one radio of the desired model to verify proper operation, as well as funding for the project.

Baofeng UV-17 Pro GPS handheld radio internals

Older Baofeng radio models often included internal pictures which were available to view in the public FCC filing. However, for recent radio models Baofeng has requested long-term confidentiality for the internal photos (the schematic, block diagram, set-up procedure and operation description were already under long-term confidentiality on previous models).

Of course, since the radio isn’t welded shut, this doesn’t stop anyone from making a detailed investigation of what is in the radio, and that’s what I set out to do.

Without further ado, let’s dive right in. This is the side of the radio board that you will see upon initial disassembly (after removal of the LCD display screen):

All images are clickable to display a larger version.

  1. LCD display connector – the large solder pad to the left is where the antenna connector is soldered to the PCB
  2. Front panel (keypad / microphone / speaker / LEDs) connector
  3. Unidentified integrated circuit from 3PEAK labeled DM2S04B
  4. GPS antenna connector (UFL) – to the left of the GPS connector are the 2 LEDs that light up the activity indicator at the top of the case.

The back side of the board is where things really get interesting (note that you will need to de-solder the antenna connector to get the board out of the chassis):

  1. TDA2822A – STMicroelectronics dual audio amplifier
  2. 5807M – RDA Microelectronics FM tuner
  3. XM25QH16CHIG – XMC 16Mbit serial flash (2MB)
  4. Microcontroller – Unknown brand/model as the top has been ground off
  5. M21529010 – Unknown IC, possibly flash memory
  6. FD6818 – RF transceiver
  7. H0606E – RF power transistors
  8. ATGM336H-5N – Zhongke Microelectronics GPS / Baidu receiver

This is the underside of the front panel (keypad / microphone / speaker / LEDs). I did not do further disassembly in this area. But the LEDs and their driver transistor are visible at the left of this image. The PCB artwork is dated 2314, so is apparently quite recent.

This is the baseplate, which doubles as a heat sink for the 2 RF output transistors (the blue pads). The coarse scrawl of “UV-17 1” is quite different than the care shown in the rest of the radio internals:

This closeup shows the identification markings on the main PCB – “BF_UV17_PCB1.6 / 2023-03-01” with PCB artwork dated 2317. It is possible that the row of 5 fingers at the center right is used for programming the firmware.:

In contrast to pictures posted of older model radio internals, the wave soldering seems to be quite well-done on this board:

In this picture you can see the hand-soldering of items like the volume control and the K1 external microphone / speaker connector:

I’ll wrap up this post with a picture of the GPS patch antenna. It is a “dumb” antenna – all of the magic happens in the ATGM336H-5N chip:

Creating drive labels for Dell 2.5″ disk trays

If you buy used Dell servers, you may end up with a system assembled from various parts. One of the more common things is ending up with a server that has no disk trays, or where the drives in the trays don’t match the labels on the trays due to the seller swapping or adding drives.

While the labels on the trays don’t provide enough detail to tell you the exact model of drive in the tray, it at least gives you a clue what you’re looking at, like “SAS 146GB 15k”. I recently assembled a server which came with no drives, by adding 8 Toshiba PX04SMB040 SSDs (Dell part number GM5R3) which came in unlabeled trays.

A number of different solutions have been proposed – everything from writing on the tray with a silver Sharpie pen to web-based label generators. Even if you could generate a perfect printout of tray labels, there is still the issue of finding a printer that can print silver, as well as the issue of either aligning the labels or manually cutting each label to size. Dell prints enough labels (or contracts them out) in large enough quantities that it works for them. I decided I could create a simpler solution at a much lower cost.

Since I already had all of the things needed to create tray labels, I decided to document the procedure here in case anyone else is interested.

First, you will need a Brother P-Touch printer that takes “TZe” type labels and supports printing from a host computer. I have the PT-P710BT “P-Touch CUBE Plus” model.

At the time I started this project, I could not find a Brother part number for a TZe 9mm black print on silver tape. Fortunately there is a huge aftermarket supply of TZe tapes, so this was not a problem. On eBay I found one in sealed packaging for $1.99. While I was writing this article I discovered that Brother does indeed make this size and color of tape – the TZe-M921. But Brother really does go out of their way to make it difficult to find part numbers for their tapes. I think that if they had a simple PDF, updated regularly, with columns showing tape width and rows showing the color, and either a part number or “N/A” at each intersection, they’d sell a lot more tapes.

Here is the “MATTSILVER” (sic) tape I purchased on eBay:

All images are clickable to display a larger version.

Installed in the P-Touch CUBE Plus:

Next, I created an image of the desired label in Adobe Photoshop. You can download the Photoshop file here and modify it to suit your requirements. I then saved the completed image as a .png file and imported it into the P-Touch Editor, duplicating it multiple times to create a strip of identical labels. The P-Touch file for the strip of labels I created is also available here (right-click and “Save Link As…”), although it won’t be very useful unless you also have 400GB SAS SSDs. But you can load it into the P-Touch Editor to see how easy it is to use.

The varying gaps between labels are not important – these will be trimmed away later. What is important is the vertical alignment – the black strips should align across each of the duplicates:

I then printed out the completed label strip. Note that the silver is more shiny and less matte than represented by the seller, but for $1.99 I can’t complain:

The next thing I did was tape the completed labels down to an 8.5 x 11 sheet of plain paper using 3/4″ Scotch “Magic Tape”. It is important to have the black stripe side of the labels closest to the edge of the paper and to center the tape on top of the label strip so that there is excess tape on all sides.

I then trimmed the sides of the paper so that the ends of the black stripe lined up with the cuts:

The previous step is necessary so the black stripe can be lined up exactly with the cutting path of the rotary trimmer:

While holding the paper firmly in the correct position, I used the rotary trimmer to cut the label strip and remove the excess silver part from the long edge of the labels. This trimming is needed because the indent on the Dell drive tray is narrower than 9mm and the P-Touch printer cannot print all the way to the edge of the label. Trimming the labels solves both problems in one step:

I then used the rotary trimmer to trim the sides of the labels to the correct width. This is something that requires practice – trim a label and hold it up to the drive tray and see if it is too narrow, too wide, or just right.

Next, I used scissors to cut off the excess paper ‘tails’ of each label:

Here is the drive tray I’m going to apply a label to:

Peel back the paper and fold it over, leaving a short strip of tape exposed between the label and the paper:

Remove the wax paper backing from the adhesive side of the label. You may find a single-edge razor blade helpful:

Carefully align the top, bottom and right sides of the label with the indent and apply the label, using the paper “tail” to hold and position the label:

Again using the paper “tail”, begin peeling the tape off the top of the label, starting at the top right. The adhesion of the label to the tray should be greater than that of the tape to the label, so the label should remain attached to the tray while peeling:

Continue removing the paper and tape until it is completely removed:

The left edge of the label needs to be pressed down into the tray indent. Then use a razor blade to cut the small diagonal notch on the bottom left of the label, taking care to not cut too deeply – you just want to cut the label, not the tray:

Repeat as needed until you have a system full of labeled trays:

You can use a similar method for 3.5″ drive tray labels or older generations of trays.

Will the REAL Baofeng please speak up?

There are a huge variety of radios sold under the “Baofeng” (officially, Fujian [Nan’an] Baofeng Electronics Co.) name. Some are probably official private label models, some are outright fakes, and some fall somewhere in between. To confuse things further, Baofeng originally didn’t bother to register their brand trademark in the US. Someone else did some “trademark squatting” by registering it. While this was playing out at the US Patent and Trademark Office (USPTO), Baofeng branded their radios as “Pofung“. Between the Baofeng / Pofung confusion, official private label models and the fakes, it is hard to tell if a particular “Baofeng” radio is legit or not.

To complicate things even further, at least two companies claim to be “the” official United States distributor of Baofeng radios:

https://baofengtech.com (who also refer to themselves as BTECH) state that “We have personally dealt with hundreds of counterfeit listings and have had them removed from marketplaces. Unfortunately, most sites will not prohibit the counterfeiter from creating another listing. The most effective means to stopping counterfeits is to buy direct from a BTECH authorized distributor.”

https://baofengradio.us claims “Baofeng Radio US is the Authorized Distributor of Baofeng products in the United States. All products ship from within the United States.”

In addition to those two, there are a large number of other sellers on Amazon, eBay, etc. who are also selling “Baofeng” radios.

The manufacturer isn’t helping the situation. Their Baofeng Official Website Announcement says “While Baofeng has worldwide distributors and resellers, products are all produced by Baofeng. The concept that radio not sold by one of the distributors is counterfeit is factually inaccurate.” Aside from that statement appearing to claim that anything marked with a “Baofeng” label is genuine, it does not provide a list of “worldwide distributors and resellers” so anyone could represent that they’re a factory-authorized distributor or reseller and the purchaser has no way of telling if that is true or not. To confuse matters further, there are many “Certificate of Authorization” letters allegedly issued by the manufacturer listing dozens (if not hundreds) of entities that are “authorized”. These letters seem to come in a a surprising variety of styles, and every one I’ve examined is expired. You can do a Google image search for yourself by clicking here.

My first experience with this situation was ordering a package of two “Baofeng UV-82HP” radios from Amazon in November 2019. This was a “too good to be true” deal with 2 radios, 4 batteries, 2 coiled combo speaker/microphones, 2 earpieces and two whip antennas. When I received them, there was no FCC ID number on/in the radio (required for them to be legally sold in the US) and after contacting the seller I was given the alleged FCC ID for these radios, which turned out to be for a different model entirely. I returned then to Amazon for a refund, stating that they were counterfeit. I also left a review saying the radios were counterfeit. Amazon approved and published my review and it showed up among several other reviews also stating that the radios were counterfeit. Apparently the seller complained because my reviews and the other reviews mentioning “counterfeit”, “fake”, etc. were removed without explanation. That product listing is still active on Amazon, three and a half years later.

I eventually ordered replacement radios on Amazon from seller “BaoFeng Tech”. This is the same seller as https://baofengtech.com, also known as BTECH. In fact, their Amazon pages show both “Sold by BaoFeng Tech” and “Visit the BTECH Store”. They came with the expected FCC IDs inside and performed as expected. Since then I’ve been making sure to only order products that are sold by BTECH.

You can probably get the same radio from other sellers, particularly if you’re outside the US. But I decided to stop “rolling the dice” and always order from BaoFeng Tech / BTECH.

BTECH themselves are not helping the situation with their multiple brandings. Also, while their radios have customized battery compartment labels with their website listed and they have custom packaging distinct from any other seller I’ve seen, all of their BL-8 batteries had been mis-labeled (along with everyone else’s) as 2800mAh capacity instead of the actual 1700mAh capacity. This continued for many years until they introduced a new version of the BL-8 pack which includes a built-in USB-C charging port in the pack. That pack is correctly labeled as 18mAh. Unfortunately they didn’t change the part number, so a “BL-8” battery might or not might have USB charging depending on when it was made and who sold it. It makes me want to jump up and down and yell “You’re not helping!” regarding confusing naming.

Having said all that, BTECH does seem to be the most reliable supplier in terms of the product being exactly what it is represented to be.

The Black Company in Middle Earth

This is something I worked on quite a few years ago, and I’m finally getting around to posting it.

A long time ago I ran across a fan fiction story titled The Black Company in Middle Earth by a user named McJunker. You almost certainly know Middle Earth as the setting for J. R. R. Tolkien’s The Lord of the Rings, but you may not have heard of Glen Cook’s The Black Company novels. That is something you’ll probably want to rectify, as McJunker explains. The Black Company in Middle Earth is a full novel in its own right – if it were to be published as a paperback, it would be close to 200 pages long.

Anyway, I contacted the author because I loved the story. I was working on my copy editing and document formatting skills at the time because I was getting ready to have a paper published in a professional journal. I asked if I could “publish” his story in a somewhat more polished form, as a PDF. He loved the idea, and off and on over the next year or so I worked on this project. In the meantime the author entered military service, served in Afghanistan and came back home. How time flies…

Anyway, once McJunker returned I showed him the result and he loved it. But I never got around to posting it for some reason. So here it is: The Black Company in Middle Earth (PDF edition). I hope you find it as enjoyable to read as I did. If for some reason you’re prefer reading it online, you can read it here: The Black Company in Middle Earth (HTML edition). I’m partial to the version with my copy edits, but if you want to read the original, feel free to check it out via the link at the top of this post.

Thoughts upon the passing of a friend

You passed away a month ago, but I’ve been so torn up about it that it took me this long to put thoughts to paper. Plus, I’m still in disbelief – you were such a positive whirlwind of energy that I have a hard time believing you were taken from us so soon.

The very first time I met you was when you were working at Stan Veit’s Computer Mart of New York. I was working for a company a few blocks away, designing computers. That first time I just ran in there to get some random part I needed, rather than waiting for mail order. Somehow we ended up talking. After that I’d tell my work that I urgently needed a part, just to go to CMNY to talk to you some more. Dave Levine showed me how to program the Computalker to say ‘things’ to you after I’d left.

While we were both in our own orbits, we passed each other often enough to become close friends. I have a series of vivid memories, though I can’t put them in any sort of definite time sequence other than by relating them to other events in my life, looking at concert ticket stubs, and so on. After we reconnected, I told you a number of these – some you remembered, some you could even pin down to a specific time and place, and others you didn’t remember at all. As you pointed out, we were partying pretty hard together during some of those times.

Stan’s CMNY closed and he ended up at Synchro Sound. Shortly after that, my project was shut down and I was looking for work. I asked Stan for a job and he was kind enough to set me up with a job there. You were working in that shoe company office in the Empire State Building and I’d commute back to Manhattan and meet up with you.

Eventually I lost track of you. I would run into various friends of yours at the strangest places – in a diner in the middle of nowhere in New Jersey, at the DMV, and so on. I’d always ask “Have you heard from Sue?” and the answer was always “No”, sometimes with a “If you do hear from her, let me know.”

I had pretty much given up finding out what ever happened to you when by chance I came across Stan’s obituary at legacy.com and saw that you had posted there. Knowing your married name I was able to find you with a web search. I discovered you were happily married and were doing what you loved. I decided I didn’t need to interject myself into your new life just to say “hello” and reminisce.

I don’t know why it took me so long, but 10 years after I located you, I decided to reach out and contact you via email. That was in October 2020. You were surprised but very glad to hear from me, and we had a brief but intense exchange of long emails filling each other in on what we’d both been doing since we saw each other last. I promised I’d come visit, but somehow never managed to find the time.

At the beginning of December 2021 you posted that you were in the hospital. I figured it wouldn’t slow you down at all – you were a force of nature, after all. With increasing disbelief I saw your less and less frequent posts, until your husband David announced that you’d passed away on December 30th. I was in shock – how could someone so full of life pass away so soon? It just wasn’t fair!

As I said above, it has taken a month for me to write this, and I’m in tears even now. One thing I do know is that wherever you are now, you’re definitely livening up the place with the joy you spread so freely to all around you. The lights here on Earth may have dimmed, but the heavens gained a new star when you joined them.

You go by Suzie Kerr Wright these days, but to me you’ll always be Sue (and when I need to distinguish between you and anyone else named Sue, “Sue with blue hair and roller skates”, or “Blue Sue” for short).

Farewell, Sue. I love you and I miss you more than you can imagine.


Suzie Kerr Wright

1960 – 2021

How to Print LTO Labels on an Epson SureColor P10000

(AKA “How to gum up the inside of your $7000 printer with labels”)

NOTE: This is how I print LTO labels, provided to you for informational use. I am not responsible if you have a label come off inside your printer or for any other damage following this procedure may cause – you perform these steps at your own risk!

If you have an LTO tape library or autoloader with a media robot, you know that you need to label all of your LTO tapes with a unique barcode which both identifies the tape and tells the library what generation of media it is. You can purchase pre-printed labels such as the HP Q2013A which contains 110 labels with a random starting sequence number (you might get WZT653 through WZT752), for the incredibly low price (hah!) of only $92 (list price, street price is between $52 and $100). If you want a custom start sequence on your labels, you will find out that they are VERY expensive – once you find a web site that sells them, you’ll likely end up with a “Request for a Quote” button, and like they say “if you have to ask, you can’t afford it”.

Fortunately there is a very inexpensive solution to this problem. You will need 3 things:

  • OL173WX labels in “Standard White Matte” from https://www.onlinelabels.com – if you buy the 250 sheet package for $39.87, you’ll get 8000 labels (32 per sheet) which should last you a lifetime, and still costs less than half of what a package of 100 preprinted HP labels costs.
  • Free LTO label generating utility at https://tapelabel.de.
  • An Epson SureColor P10000 printer (or any other printer that exhibits the problem described below).

Using the free LTO label generating utility, create a sheet of labels with your desired settings. I use Library Type: IBM, Tape Type: LTO6, Label Type: OL173, Color Scheme: full colors. I specify the 3-character alphabetic prefix I want and the starting sequence number (usually 0 for the first set of labels). Leave all of the other options at their defaults. Cick the “Generate my labels” button and open the PDF file it generates. Make sure it looks like the labels you were expecting. Be sure to check the “fine print” – the small “L6” (or whatever generation you are using) on the right side of the label.

Now, if you go and print these on your P10000, you’ll get wonderful-looking labels, EXCEPT that the barcode is cut off on the bottom of the page. The P10000 doesn’t want to print close to the trailing edge of a sheet of paper, and just discards the remaining part of the image without telling you. You need a trick or two:

  • Get a sheet of 8.5 x 11 plain paper and make a mark exactly 3″ from the long end.
  • Line up the 2 sheets of paper (OL173 label and plain) with the plain paper on the BACK of the OL173, so the plain sheet sticks out 3″ (use the mark from the first step) beyond the OL173.
  • Use a a small piece of Scotch tape (maybe 2″ long) to tape the two sheets together where they overlap on the back. Put the tape in the center of the overlap after making sure the two sheets are aligned. DON’T overdo the tape – one piece, just enough to hold the sheets together without skewing.
  • Load the paper into the printer with the OL173 face up and the blank sheet at the trailing edge (in other words, labels first). Have the printer load the paper as “Cut sheet / Plain paper”.
  • Go to the Adobe Acrobat Print dialog and select the P10000. Click on Properties to open the print driver menu. Make sure Media Type is set to Plain Paper, Color is set to Color, and Print Quality is set to speed (any of the higher-quality modes put too much ink on the paper, causing the labels to wrinkle). Make sure Paper Source is set to Sheet. For Size, select “User Defined” and then click on the “User Defined…” button and select Paper Width of 8.5″ and a Paper Height of 14″. Click OK to exit that menu and OK again to exit the printer menu.
  • Back in Acrobat’s print dialog box, make sure you have the “Actual size” button selected. Set the Orientation button to Portrait. The print preview window should show you “Document: 8.5 x 11.0in” and “8.5 x 14.0 Inches” for the paper size. The labels should be up at the top of the preview box, not centered.
  • Click “Print”. The printer should begin printing the labels from the top edge and work its way down to the bottom edge of the label sheet, correctly printing all 32 labels. It should not print anything on the plain paper. When the printer asks you to eject the paper, press the OK button and remove the printed page from the printer. Check the print for proper alignment on the labels – there shouldn’t be any bleed from the bottom of one label’s barcode to the color boxes on the next label. Bleeding downward generally indicates that you pushed the labels too far into the printer during the paper loading sequence. Left-to-right misalignment is a user error in not lining up the edge of the labels with the edge marker on the printer roll feed housing, but there is a fair amount of left / right tolerance on the labels. As long as the print isn’t off the edge of a label, you should be OK.

Remove the plain backing paper and tape from the finished labels and let the labels sit somewhere to dry out before stacking them. You can re-use the plain backing paper and its tape a few times, as long as the paper is not crinkled or torn and the tape still sticks down securely. When in doubt, replace the paper and tape – that is a lot cheaper than fishing bits of paper and tape out of the printer.

NOTE: I suppose it is possible for a label to come off and get stuck inside the printer (which could turn into a VERY expensive service call). However, the paper hold-down in this printer is mainly vacuum from the back side – as the printer is designed to print on expensive, delicate papers with fragile coatings, it does make an effort to not touch the front side of the paper.

Updated 1-Feb-2022 to add:

I have used this procedure to print labels on several different P10000 printers and there seems to be a bit of a manufacturing variation in where exactly the paper edge is in relation to the first printable area. On the second P10000 I tried, the labels were consistently a bit low on the page, which resulted in a small portion of the barcode bleeding over onto a subsequent label. Out of a half-dozen or so libraries I’ve used the labels in, one would occasionally misread barcodes. It was apparently “seeing” the tiny bit of the previous label’s barcode. I was unable to adjust the starting point on the sheet with the label generation program because the printer just can’t print that close to the leading edge of the paper. I ‘solved’ the problem by using a black marker to cross out the tiny bit of barcode from the previous label. That caused the barcode reader to read the correct barcode further down the label. I think this is a barcode reader alignment issue on that one particular library. This is just something to be aware of when printing the labels.

Mini Review – Netgear WAX218 Business AX3600 access point

Executive summary: Utterly unsuitable for the task at hand. NOT recommended. Decent (probably) hardware let down by mediocre firmware.

I purchased a Netgear Business Essentials WiFi 6 AX3600 Dual Band Wall/Ceiling Mount, PoE Powered, Local Management access point for evaluation. I have several dozen older (non-AX) access points spread across a half dozen or so locations that I am looking to upgrade to AX3600. Based on a quick look at the specs, the Netgear WAX218 seemed as though it could be a potential candidate as a replacement model.

Before I go any further, I should mention that this is not a full review with lots of nice graphs showing throughput vs. number of clients, etc. – I didn’t get that far before giving up in disgust and boxing the unit up to return for a full refund.

In my opinion, a “Business” networking product should be able to be configured and deployed remotely, with on-site workers simply running the network cable (if there wasn’t one already), mounting the access point, and reporting the installation as complete so support can remotely configure and test the unit. The WAX218 fails to meet even this expectation. Initial configuration requires an on-site system with WiFi to connect to the special WAX218XXXXXX-CONFIG-ONLY SSID. The password is printed on the bottom of the unit, along with the actual SSID (replacing the X’s in the above example). After entering basic information such as the new admin password, the SSID and passphrase for the first WiFi network, etc. the WAX218 stores those and reboots – which takes an unusually long time. The next thing I did was update the 1.0.1.0 firmware that shipped with the unit to the latest 2.0.1.0 firmware found on Netgear’s support site. After uploading the firmware, the WAX218 goes catatonic for 10 minutes (!), displaying a countdown timer from 600 seconds until 0 seconds when it will resume communicating. This is accompanied with dire warnings not to interrupt the power, close the web session, etc.

With those preliminaries out of the way, I attempted to continue the configuration by connecting to the WAX218’s IP address over the hardwired Ethernet. After accepting my connection, it performed a redirect to https://routerlogin.com which gave me the message “You may not be connected to your Router’s WiFi network. To access routerlogin.com, your device must be connected to your Router’s WiFi network. Check your current connection and try again.” I then tried connecting via WiFi to the SSID I had defined in the initial configuration and got the same error. It appears the only way you can access the web management interface is via the dedicated WAX218XXXXXX-CONFIG-ONLY SSID. That pretty much rules out any remote management of these devices.

Next, I used the web interface to attempt to configure the timezone. The WAX218 allowed me to specify the offset from GMT, but required me to provide a specific start and end date for Daylight Saving Time (DST). It does not even support rules like “second Sunday in March”, so you need to remember to update the config on every WAX218 annually. What makes this particularly galling is that the WAX218 is running Linux as its underlying operating system. Linux comes with a very complete set of timezone rules for the whole world. Another annoying point is that when I clicked “Save” after making these changes, the WAX218 reported it was rebooting. This was a matter of just a few seconds, but config changes that don’t affect user connections should NOT affect user connections by rebooting the device.

I then enabled the SSH server on the WAX218 and logged into it via SSH to see if there was any sort of a decent menu system. There isn’t – it is a very deep tree of commands, none of which can be abbreviated. Other than checking to make sure the timezone setup was equally brain-dead via the CLI and a few other things (including doing a reset to factory defaults before packing it up for a return and refund) I did not experiment with the CLI in depth. There did not appear to be any supported way to get to a Linux shell prompt to investigate if there was a timezone file there at all. Frankly, Netgear would have been better off using a character cell based browser like Lynx to access the WAX218 web server. At least that way the device would be remotely manageable.

I did examine the T-bar / ceiling mount bracket included with the WAX218. It was a flimsy appearing piece of plastic, not something I’d be comfortable to support a 1.75 pound (yes, the WAX218 is huge and heavy) 8 feet or more over my head.

Senator Ted Stevens’ Internet envisioned as a series of tubes

15 years ago, on June 28th 2006, Alaska’s Senator Ted Stevens said that “… the Internet is … a series of tubes”. While widely ridiculed at the time for failing to understand the nature of the services his Senate committee was in charge of regulating, I figured I’d take a look back on the occasion of the quote’s 15th anniversary. The following text is intended as humor – please don’t tell me that I don’t “get it” either.

While the Internet is indeed “a series of tubes”, very few people have actually seen these tubes and generally think (if they think about them at all) that they are as mythical as unicorns. In reality, the tubes are quite shy and generally burrow deep underground, where they are neither seen nor heard as they happily carry the Internet traffic of billions of users. Despite being solitary by nature, sometimes the tubes are forced by humans into larger groups for ease of herding. Even in captivity, the tubes do reproduce by fission, generally as one or more new, thinner tubes branching off of the parent tube. An example can be seen in the rectangular box near the foreground of the image.

As I mentioned, the tubes are generally solitary and out of sight, so most people don’t know what they look like. So I am pleased to show you this image of a large group of tubes at one of the main places humans have forced them together. This may be the only time people will ever see such a large gathering of tubes.


This image is clickable for a larger view

This image was taken in October, 2019 at 111 Eighth Avenue, NYC (AKA the Googleplex), although this photo was taken in a public corridor. The exact location is the 5th floor near the 9th Avenue end of the building. And yes, I really did take this picture nearly two years ago with the specific intent of making this post today.

This specific post and image are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license. Contact the author here if you would like to discuss alternative licensing and usage.