Troubleshooting serial terminal connections (VT Serial Terminal, VT132, Packet Radio TNCs)

I’ve been on a serial terminal kick the last few months. I think it started when I picked up a used Sun Ultra 60 and found out you could boot with a serial terminal to diagnose boot issues, and/or logon via a serial terminal. I built a VT132 kit and this has worked well using a regular VGA monitor and USB keyboard, but one thing lead to another and I started shopping ebay for a real DEC VT terminal. These are getting harder to find in working condition and it seems the prices are going up to pretty crazy levels. You can easily get one around $200 to $300, but if you shop around you should be able to get one around $100.

I’ve been able to connect the VT132 to anything so far and get it to work. There are a couple of jumpers on the board to select a straight through or crossover cable connection, if one doesn’t work change it to the other and it will connect. I’ve used it so far to connect to a AEA PK-232 Amateur Radio packet TNC, my Ultra 60, and a PC running Ubuntu.

The VT terminal on the other hand is more tricky. It will connect to the PK-232 and the wifi modem on the VT132, but I have not been able to successfully connect it to do a serial terminal logon to a Raspberry Pi (this was my main goal), or another PC yet.

My suspicion is that the 2 serial cables I have that I’ve been using interchangeably depending on what I’ve connecting too just based on the connectors are not the same. One has DB25 to DB25, the other has DB9 to DB25, so I’ve been picking the one that connects between the two devices. I’ve assumed these are both null modem cables, but I think one is straight through, and I don’t know which is which. I need to test them with a meter to find out.

I also thought the USB to serial connector that I was using on the Raspberry Pi was not working (it was a FTDI chip) so I bought another one using the Prolific chip, and that didn’t work either connecting from the VT Terminal, but it did from the VT132, so I think this is more to do with the serial cable than the Serial USB adapter. I think the clue was that from the VT132 it only worked when I switched the straightthrough to crossover jumpers to crossover, actually the same setting that works with the Ultra 60 too (but not the PK-232).

My next steps are to create a table of all the combinations that work vs don’t work. I also need to test the cables to find out if one is a straight through vs the other being a crossover cable. I think assuming they were the same is not true and this is causing the confusion. I will keep you updated on my findings!

“zsh: No match found” error

zsh attempts to expand any potential filename wildcard characters (such as ‘*’ and ‘?’) used in a command before executing it. This can lead to the confusing error “zsh: No match found” error. What makes this confusing is if you’re trying to execute a grep or something where you are trying to find or match something, since the error implies your search is not working, whereas the error is about the patterns zsh is attempting to expand in the command string, and not from executing the command itself.

Depending on what you’re trying to do, the easiest workaround is to wrap parameters in quotes or escape characters like ‘*’ and ‘?’.

e.g. for curl, wrap urls in quotes.

Using a Unisys VT terminal with VT132 as a wifi modem

I just picked up a Unisys TO300G VT terminal to use for a few retro projects, and tried connecting it to my VT132 and use it as a wifi AT modem. Initially I wasn’t getting anything echo’d to the screen, then remembered I needed to set the speed to 115200, and then started getting a response from the VT132.

Here’s the menu, with the speed initially at 19200 8N1 :

Now we’ve got responses echoing back but there’s a bunch of CR/LF chars:

Turns out they’re echo’d to the screen if you have the Monitor Mode set to ON, so turning this option off fixed this. Also, the backspace key wasn’t working, and the Recognize Del option set to ON fixed this:

Now using ATD to dial up bbb.fozztexx.com and we’re in business:

Loving the amber glow of the text on this terminal, and the smooth scrolling is <3

Mapping xml to Java POJOs with Jackson

Jackson is typically used for Json serialization and deserialization, but with the jackson-dataformat-xml dependency you can also use Jackson to easily map to/from XML too.

Maven dependencies:

	<dependency>
	    <groupId>com.fasterxml.jackson.core</groupId>
	    <artifactId>jackson-core</artifactId>
	    <version>2.12.4</version>
	</dependency>
	  
	<dependency>
	    <groupId>com.fasterxml.jackson.dataformat</groupId>
	    <artifactId>jackson-dataformat-xml</artifactId>
	    <version>2.12.4</version>
	</dependency>

If you have additional elements and attributes on elements that you’re not interested in, similar to Json, just add the ignore annotation at class level:

@JsonIgnoreProperties(ignoreUnknown = true)

In some XML docs you can have elements with the same name at the same level without a parent to exclusively group those elements. For example you can have xml that looks like this with a grouping:

<example>
    <name>example1</name>
    <items>
        <item>1</item>
        <item>2</item>
    </items>
</example>

This would be automatically handled by Jackson if your POJO class has a list of Item called items:

private List<Item> items;

but sometimes you’ll have a doc that looks like this:

<example>
    <name>example1</name>
    <item>1</item>
    <item>2</item>
</example>

To map this you need to use this annotation:

@JacksonXmlElementWrapper(useWrapping = false)
private List<Item> item;