Longform
Origin Stories
Everyone's got a story to tell. Here at the Irregulars, we love telling stories - it's the reason we play games together in the first place. Today, I'm going to tell you bunch of old stories about when my brother Ryan and I first played Ultima Online on a tiny private shard called Krynn's Demise. It was our second MMO after Nexus: Kingdom of the Winds.
The shard has long since closed up shop, but the memories remain!
A Short Treatise on Blacksmithy
Krynn's was a very small world (my memory is fuzzy, but I want to say around ~50 players), so unlike the official UO shards, there was actually room to put up buildings and shops. Ryan and I quickly founded the Obsidian Artificers and set up a tiny blacksmth's shop right outside Britain. A bizarre combination of skills ensured that we were basically co-dependent on each other for business: Ryan was a grandmaster mage and miner, I was a grandmaster blacksmith and tinkerer. Cue many hours spent mining, enchanting, forging, and tinkering. We eventually established something of a name for ourselves as the source for quality adventuring equipment.
(The story of the actual Adventurer's Mart is one for another day.)
Eventually, we stumbled upon the recipes for dragonscale armor and the most powerful enchantments in the game at the time. You'd think with access to top-tier resources and equipment that we'd have been rolling in gold pieces? No, we mostly just made it to put in the Newbie Box -- only accessible to brand new players. Talk about ruining a digital economy. Ryan still grumbles about finding all of his ore smelted and forged before he even got back to the shop!
If we can find some old screenshots, I'll certainly put 'em up here.
The Pirate Invasion of Moonglow
Britannia was a pretty huge place; vast oceans, soaring mountain ranges, and plenty of cool locales to visit. Once we'd made some money, Ryan and I managed to secure the deed to a small ship so we could sail the seas. One day, when I wasn't around, Ryan decided to track down an island full of pirates so he could hire an army. At the time, NPCs were easily bribed with a little gold, so he managed to fill up our entire ship with pirate mercenaries in short order.
A short time later, having arrived in Moonglow, Ryan disembarked and released all of the pirates in to the city...causing the server to crash in a stream of "YARR!"s. Remember, this was around 2000 and always-on high speed internet was pretty new. I think the server might have been on a 3 megabit connection at the time. In any case, our resident server operator Wolverana was not pleased, and promptly jailed Ryan's character. A few hours logged in to a sparse jail cell would certainly give the wizard time to reflect on the folly of hiring a pirate army. Wolv departed, leaving Ryan to his penance.
Ryan, never one to waste time, always carried tons of crafting materials around with him. He was working on becoming a carpenter at that point in time and, faced with a proverbial blank canvas, began to decorate the cell with vast quantities of tables, chairs, carpeting, and other furnishings. When Wolverana returned some hours later, words were exchanged about the jail being a place for contemplation and not interior decorating. I think she found the whole experience funny enough to let him out early with a warning...
The First Arena Tournament
What happens when you stage a player vs. player tournament where one player is a wizard and everyone else uses melee weapons? If you place them at opposite sides of the arena, the wizard wins. This is pretty much what happened at the first Krynn's PvP tournament -- Ryan was the only grandmaster wizard at the time, and had spent hours running back and forth in a flame wall while polymorphed in to a dragon to max out his magic resistance. The last words every participant heard before they perished? Kal vas flam.
I think his old character bio sums things up rather nicely:
I'm Locke Vanthor, pyro-mage extrordinare. Locke is a character who, well, likes to blow things up. So that's what he does: blows up friends and foe alike. Blows up neutral people too!
Why, you ask, does he blow things up?
Well, there are many reasons. Here are a few: Because he can, because he feels like it, because it's evil, because it's good, beacuse it's neutral, and because he's bored. It is not very hard to name reasons why a chaotic neutral mage blows things up.
Well, I just covered the only subject that needs to be covered, if you have any questions, Locke will be sure to ignite... er, answer them.
Banking on Exploding Potions
The First Bank of Britain in Lower Britain was the premiere hangout spot in Krynn's. Our blacksmith shop was a short jaunt out the West Gate, and there were plenty of benches to sit on while you crafted and chatted about the day's events. Ryan liked to play his mage as perpetually grumpy, so he tended to sit around the bank, occasionally emote *grumble grumble*, and work on raising his alchemy skill. The easiest way to do this? Make explosion potions!
Bored, Ryan began to pave the streets with said potions, informing passers-by to NOT click on them while he was still delicately placing each vial on the cobblestones around the bank.
Yeah, someone clicked.
There were a lot of folks at the bank at that time too...
- Next time: the founding of Irondale, the Le Daemon restaurant, and a failed attempt at chicken fighting.
- Wulf or Wolverana, if you read this, leave us a comment! We'd love to reconnect!
- This post's header image courtesy of Ultima Codex!
About the Irregulars
The Irondale Irregulars are a group of friends originally from the Northeastern United States. We've been playing games together since 2000, despite our varied interests and tastes, but we all love the stories they help us create! Kyle takes care of most of the blog-writing these days.
Looking for some recommendations? We've got a decent list going at our Steam Curator page.

All of the articles from the Irregulars are licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
Constructing an AIS Receiver with a Raspberry Pi 3
Special thanks to Wegmatt LLC. for producing the dAISy AIS receiver, Stripydog (the makers of kplex), Matt Brown at m/v C:\ESC, Terry, and Freek Van Koolbergen for your documentation, tutorials, and comments -- I couldn't have done this without you! Last updated on September 27, 2017.
My wife Katt went on a cruise with her mom to the Caribbean this spring, which sparked a few questions in my head: how are ships located when they're out at sea? Is there some kind of system that they all use to communicate location data? A few Google searches and Wikipedia articles later, I discovered the Automated Identification System. A few sites like Marine Traffic specialize in aggregating this information across the entire world, and there's always a need for better coverage. I thought to myself "Ooh! What can I do to help out?" and quickly discovered that dedicated AIS receiver hardware can be pretty expensive -- anywhere from $200 to $500!
Armed with a Raspberry Pi 3 and just enough knowledge to be dangerous, I set out to build my own standalone receiver. I knew that I would need a USB-based AIS receiver, a VHF antenna, power supply, and some way to take the AIS traffic stream and send it to an aggregator. This post is a summary of what I learned, and how to set up your own receiver for around $100.
Bill of Materials
- Raspberry Pi 3 ($35 on Amazon)
- A 4GB or larger micro SD card
- Wegmatt LLC's original dAISy AIS Receiver ($59 on Tindie) or the newer two channel model, the Daisy 2+ ($89 on Tindie).
- Kenmax VHF "rubber duck" antenna ($13 on Amazon) -- depending on where you are located, you may want to invest in something bigger! I ended up using a 3' TRAM 1600-HC because my receiver is surrounded by large buildings in Boston, MA.
- Canakit's 2.5A/5V micro USB power supply ($9 at Amazon)
Setting up your receiver
Getting your Raspberry Pi 3 running
First, we need to get the basics out of the way: setting up an operating system on the Raspberry Pi, getting it online, then updating it with the most recent software.
- Head over to the Raspberry Pi Foundation's site and download the latest version of the New Out-of-Box Setup (NOOBS).
- Unzip the NOOBS.zip file and put everything inside of it on to your micro SD card. Don't just put the ZIP file on the card; it won't work!
- Put the micro SD card in to your Raspberry Pi, connect a display, mouse, and keyboard, then plug in the power.
- When the NOOBS setup loads, select Raspbian from the list and install it.
- Once the desktop loads after the installation is finished, set up the Pi's built-in WiFi by clicking on the icon in the top-right of the screen, then picking your WiFi network.
- Next, open the Terminal app and run
sudo apt-get update, thensudo apt-get upgradeto update your Pi with the latest software. If you're feeling bold, you can get the latest (bleeding edge) Raspberry Pi firmware by runningsudo rpi-updatetoo. - Install screen (this is how we're going to check to see if our dAISy is working later) by running
sudo apt-get install screen
Testing your dAISy AIS receiver
Now we're going to make sure our dAISy is working properly.
- First, attach the antenna to your dAISy. dAISy uses a BNC plug for its antennas, so if you have an antenna that uses a different connector (like SO-239), you'll need an adapter.
- Plug the dAISy's USB cable in to the dAISy, then in to your Raspberry Pi.
- Open up the Terminal app again. We're going to pull up dAISy's settings to make sure it hears AIS messages coming in from ships near us.
- Type
screen /dev/ttyACM0, then press escape to get in to dAISy's menu. - Press D until you get a message saying debug messages are turned on, then press escape again. Now, we're watching what AIS signals dAISy is picking up. If things are working, you'll see good messages prefaced with !AIVDM and weak/low signal messages with things like error: invalid stuff bit. When you're finished, you can exit screen by pressing CTRL-A, then K.
If things aren't working...
- Try unplugging dAISy and plugging it back in
- Make sure that your Raspberry Pi user is part of the dialout group. You can add your user to said group by typing
sudo usermod -a -G dialout $USERin the Terminal. - You can also try repositioning your antenna -- VHF works best with line-of-sight, so if you're surrounded by buildings, you might need to put your antenna on the roof!
Getting a Marine Traffic station
Now that we have a Raspberry Pi collecting AIS messages, we need a place to send them to! You can use applications like OpenCPN to plot the data you're getting locally, but I think it's more interesting to send it to an aggregator. That way, you're contributing to a global network of stations. I've been using Marine Traffic, though there are a few others if you're interested in using another provider.
- First, you'll need to register for an account with Marine Traffic.
- Next, log in to your account and scroll down to the section called My Stations.
- Click add a new station and fill out the details as best you can.
- A few moments later, you'll get an email from Marine Traffic telling you your station URL and where you should send your AIS traffic stream to. This will usually be to 5.9.207.224 on a random port. Be careful -- if you don't send traffic to your new station within 72 hours of creating it, they'll delete it and you'll need to make a new one.
Setting up kplex to send data directly to Marine Traffic
Ok, now we just need to link everything together! We'll be using kplex to do this; it will listen to the messages coming from your dAISy and forward them along to the correct endpoint over at Marine Traffic.
- First, download the latest version of kplex on to your Raspberry Pi. You want the version for Raspbian (ending in armhf.deb). It's not available through apt-get, so we're going to install the package by hand.
- Pop open a terminal on your Pi and enter
dpkg -i ./kplex_VERSION_armhf.deb, replacing VERSION with whatever the latest version of kplex is. When I did this, it was 1.3.4-1. - kplex will install. We'll want it to start automatically when the Pi boots up, so let's set that up now by entering
sudo update-rc.d kplex defaultsin to the terminal. (This doesn’t work on Raspbian Jessie and higher because of the switch to systemd. I am working on an systemd service file that will do the same thing!) - Now we need to tell kplex where to look for our AIS data and where to send it. That's done using a configuration file at
/etc/kplex.conf. I like to use nano to do simple edits, so runsudo nano /etc/kplex.confin the terminal to open up the configuration file. - Set up your configuration file to look like this:
[serial]
filename=/dev/ttyACM0
baud=38400
direction=in
[tcp]
address=5.9.207.224
port=(whatever Marine Traffic sent you earlier)
persist=yes
direction=out
The serial section is all about reading data in from your dAISy, which kplex can see on /dev/ttyACM0. The TCP section is all about sending the messages your dAISy gets to your station on Marine Traffic. When you are finished, press CTRL-O to save the file, then CTRL-X to exit nano. Now, you can either reboot your Raspberry Pi to start kplex or type sudo service kplex start in to the terminal.
Wrapping up
At this point, you should have a working Raspberry Pi 3 and dAISY, your own Marine Traffic station, and kplex set up route all the AIS information properly. Check your station at Marine Traffic; you should see statistics appearing about ships seen and messages received. Congratulations!