AIS receiver with Ethernet interface

Due to my job I am very interested in the merchant shipping world. One of the websites I like a lot is This website shows shipping traffic all over the world, which it collects using the AIS data which every ship over 300t gross tonnage has to broadcast. Volunteers all over the world receive this data, and forward it to the website so it can be used to show the information. (More info: Class A and Class B fact sheets)

Commercial AIS receivers are normally expensive, and not easily available. A lot of people use modified maritime radios or scanners with a hardware decoder and a PC to collect and transmit the data. When investigating the possibility to build my own decoder I came across the website of Alex Scafidas where he describes the design of an AIS decoder based on an ATMega8 microcontroller and a CMX GMSK decoder IC. It looked very promising so I decided to use that design as a basis for my integrated receiver / decoder. I found a suitable receiver module at Radiometrix in the UK, the NRX1 . For network connectivity I decided to use a Lantronix Xport module (datasheet) which are regularly available at eBay for not too much…

I bought the required decoder chip, the CMX589A (datasheet) at eBay, together with the Xport module. I was lucky and spent only $25 for the both of them. The Xport is also available at Mouser or Digikey, but for around $45-$50 each, so it is worthwhile checking eBay! The CMX589 is not available at Mouser or Digikey, so the only option to get them is eBay. Unfortunately the only version of the CMX589 which is available at eBay is the SMD (24 pin TSSOP) version. The DIP version would be a lot easier to use, but it would take up a lot more PCB real estate. Since I am not “afraid” of SMD components it is not a problem to use these.

I created a prototype to fit into a tin plated box, and it has been running wonderfully for some time now. Since a tin plated box is not the nicest enclosure I decided to spend some time and make the design to fit a nice case (Case #1111 at which I still had laying around. The end result is a very nice layout which allows the connection of an external receiver if desired,. As voltage regulator I decided to use a switching regulator of Recom. These regulator has as a very big advantage of staying very cool during operation, even when the input voltage is >12V. I have not build this design yet, but since it is based on my prototype with some small errors removed I am positive that the design will work flawlessly. I have built the design as published and it works perfectly!

A note about the Xport modules from eBay; The modules I bought for $15 were incorrectly flashed. The symptom is a not properly working webinterface. I have solved this by downloading the firmware updating tool from the Lantronix website, together with the latest firmware. The instructions how to flash are included with the firmware files. However, they are incorrect! The instructions tell you to flash the web interface to WEB4, but it should be WEB1!! 


AIS IRD Ethernet top view

Top view of PCB

AIS IRD Ethernet bottom view

Bottom view of PCB

AIS receiver finished in case

Finished AIS receiver

Order PCB from OSHPark

AIS IRD Ethernet PCB PDF files

XPort user guide

XPort configuration sheet

Source code + hex files from Alex Scafidas

Eagle v6.x files

Bill of materials

This entry was posted in AIS, RF. Bookmark the permalink.

27 Responses to AIS receiver with Ethernet interface

  1. Sam says:

    Would it be possible to run this unit on 24v, If so can you edit the PCB to support input of of POE from a UBNT 24v injector such as the ones listed in

    UBNT does make a 15v injector but in the WISP industry we use 24vdc or 48vds and have them readily available at out tower locations.

    I would like to make some of these so that I can place the radio in a weather tight enclosure and place the unit next to the antenna high on the tower and have not loss due to the feed line.

  2. Sam says:

    Looks like the Xport AR will add POE to this device..

  3. Paul says:

    Hi Sam,

    The voltage regulator used allows up to 26VDC as input voltage. So if you feed it with 24VDC it should be working fine. Just make sure that the working voltage of C6 is 35V or higher.
    I would personally use a “Power Over Ethernet Passive POE Injector And Splitter” cable set. You can find them on eBay for cheap;

    I had a look at the Xport AR and implementing that one for POE purposes would require also a POE circuit which negotiates with the POE switch / injector. This would increase the cost significantly and would require a lot of PCB real estate.

    I hope this helps.

  4. Sam says:

    The POE injectors we use are not 802.AF they are passive. What program did you design the PCB with.

  5. Paul says:


    If they are passive then it is possible to use the cable as in my previous reply without any issue. As long as you only supply 24V..
    The PCB & schematic have been drawn in CadSoft Eagle. You can download a freeware version at their site; , which you can use to edit the files yourself. You can find the files at

  6. Sam says:

    I was just looking at the Eagle site.. The POE through the Ethernet jack is important.. As the way I want to use it I don’t have room for the POE Y-Cable.. I will most likely rearrange the the PCB to fit the case.. Here is a photo of one of the radios we currently use for Fixed Wireless I would like to put it in a simular case .. This way I can mount the AIS next to the antenna say 300ft up the tower and use a single Ethernet cable to the unit.

    No one makes a unit like this on the market! Plus I like open projects. I can have the case made and produce the boards my self and still come out cheaper than commercial units that don’t fit the bill of use..

  7. Paul says:

    Hi Sam,

    Sounds like a nice project 🙂 . I would really appreciate it if you can share your version of the receiver with us.

    If you need help drop me a message.


  8. Tim Bijker says:

    Hi Paul,

    When I load the HEX file into the Atmega it says it is OK but it doesn’t run on 2 PCBs. What could be wrong? my experienced colleagues says it is the software.

  9. Paul says:

    Hi Tim,

    The software I posted here on the page is the software I have in use. I had myself some issues with the fuse settings of the ATMega8, but other than that it has been working fine. Is there a way for you to monitor the serial output of the ATMega? It should send an identification string upon startup. If you have an oscilloscope you should be able to see that too..
    Drop me a message via the contact form if you need more help.

  10. Paul says:

    In addition to the previous comment; The command I used to set the fuses is:
    avrdude -p m8 -b 115200 -c stk500 -P /dev/tty.usbserial-FTTQJPTY -U lfuse:w:0xfd:m -U hfuse:w:0xdf:m
    I use a Macbook to program, so the serial port might (will!) be different in most other cases..

  11. Pat says:

    Hi everybody,

    I came across this site, and decided to build two receivers, one for each channel.

    I have completed the build, but for some reason, both of them aren’t receiving any data. I checked all the solder connections. Is there a way to debug?


  12. Paul says:

    Hi Pat,

    Sorry for the late reply… I have been occupied with a complete remodel of my apartment and have had no time to do anything online 🙁 .

    Did you manage to setup the X port units? Could you connect and enter all the right settings? If yes, what do you see if you use the “telnet” program to connect to the receiver at port 10001 ? In a windows command box enter “telnet 10001″ Where “” is of course the local IP address. (Something like Press the reset button on the unit, and you should see the controller reporting itself.
    If you don’t see anything showing up, then most likely the program in the controller is not flashed properly.
    If you do see the message, then it is at the receiving end. The CRC light should blink if you receive a valid packet. Things to check are the connections to the receiver, the antenna connection (what kind of antenna are you using?), and the connections around the CMX589 chip.

    Please leave a reply giving a bit more information and I will try to help you to get the units going 🙂

    • Pat says:

      Hi Paul,

      Dank je voor je antwoord, geen probleem uiteraard. Is het handig dat ik in het Nederlands hier verderga, voor je internationale bezoekers?

      Ik heb de beide ontvangers inmiddels een paar weken aan de praat 🙂 Ik had moeite met het programmeren van de ATMega’s en het zetten van de fuses, maar dat is gelukt inmiddels. Ik was bang dat de CMX589’s die ik op eBay gevonden had, misschien imitaties waren, maar alles werkt nu. Ik heb ze voor de zekerheid nog wel extra nauwkeurig gesoldeerd.

      Kan ik nog winst halen qua ontvangst door iets met de pot-meter te doen?

      Bedankt voor deze mooie site en info 🙂 Ik zat al een jaar in dubio om de ontvangers te bouwen, maar het is dus nu gelukt.

      • Paul says:

        Hi Pat,

        Goed om te horen dat je de ontvangers aan de praat hebt gekregen! 🙂 Succesverhalen zijn altijd leuk.

        Ik weet niet waarom, maar op de een of andere manier is de enige “moeilijkheid” van dit ontwerp het flashen van de controller. Ik heb er zelf wat moeite mee gehad, en de berichten die ik van andere nabouwers heb gehad waren eigenlijk alleen maar over het programmeren van de controller..

        De potmeter doet met de RadioMetrix modules niet veel. Het uitgangssignaal van deze modules is al zodanig sterk en goed van kwaliteit dat er geen invloed is. Echter bij gebruik van een externe ontvanger kan wat finetunen soms helpen..

        Als je nog vragen en/of opmerkingen hebt dan hoor ik ze graag!

    • Pat says:

      P.S. Ik kreeg net pas de mail dat je gereageerd had…

  13. S. Luigi Mantuano says:

    Hello Paul,

    I know this is a bit old now, but I would like to make a couple these units. The appealing thing is being able to locate the radio close to the antenna, powered by POE.
    I’ve started looking around for the main components but I don’t know where to look for the Radiometrics receiver of the correct frequency. Please let me know if you have any ideas.

    Thanx & regards

    Melbourne, Australia

  14. Can says:

    Do you think we will need sound card to take data or we can use only ethernet cable?
    Another question can ı use raspberry pi intead of lantroix , ı want to use same pin which you created on pcb is that work?

  15. Paul says:

    Hi Can,

    The receiver will not require anything else but an antenna, power supply and a network cable. No audio connection needed. The only purpose of the audio connection is in case you want to use a different receiver, and then you can feed the signal to the decoder that way.
    If you really want you can also use it as an audio out to get the signal from the receiver module, but that would basically defeat the whole unit. (You can just hook up the antenna to the module, feed it 3 – 5V, and then you can take the audio, without the rest of the circuit)

    You can replace the lantronix module with anything what accepts an serial TTL signal. Including the Raspberry Pi…

  16. Can says:

    Hi paul
    Can we add two piece radiometrix one of them 161.975mhz
    The other 162.025 mhz thus , can we create dual channel ais receiver?
    I guess pin of The radiometrix will be parallel.there is shouldnt be voltage or Amper problem.
    But what about the pic software And cmx demodulator will accept two frequence?
    And the last and important antenna pin,can ı mix two frequence on pcb way?
    Can ı learn your mail adress ı have more question

    • Paul says:

      Better late than never a reply…

      It sounds “easy” when you write it, but it is actually a little bit more involved than what you describe. It would require on the RF side a proper “splitter”, a second GMSK decoder, and at the CPU side a complete rewrite of the code to deal with two streams.
      In the end the only part which you might save is the 2nd X-Port module…. So yes, in theory possible, practically not really…

      • Can says:

        Dear paul
        I beleive code already writen for class A and Class B by peter baston
        I checked his project without receiver,as you know his project already receive tug(Class B) and vessels ( please check tekmanoid website There is a some screenshoot)
        But for gmsk modulator ı am agree with you signals can mix there
        I can use two atmega and two opamp and two cmx589 at top And bottom surface for each channel
        Then ı can go via rx tx pin at Xport , thus ı can make double channel receiver.but what you mean with rf splitter ı will already use one antenna and one bnc connector input then pcb way will seperate to work at bottom and top of the pcb
        Please let me know if am ı wrong and let me know your contact if ı need help

        • Paul says:

          The issue is that you cannot just put two receiver modules in parallel on the antenna input. This will create an impedance mismatch, which will result in a lot of signal loss. Therefore you need to design / use a proper RF splitter to feed both receivers.

          Once you have both data streams from both decoders, you need to find a way to “combine” both streams. If you want to approach it the way you describe you might end up with another controller which is just doing that. (Hint; look at an ATMega 328PB, this one has 2 UARTs which will make it a lot easier to implement. or pick any other controller you are familiar with, with at least 2 UARTS)

          You can reach me at my name at this website domain…

  17. Cigi says:

    I complated the circuit but its didnt work yet. I Load this hex file progisp application ı am not süre which is wrong (progisp show succes message)
    The other question ı am far from the sea how can ı test my circuit without transponder?

    • Paul says:

      Hi Cigi,

      Unfortunately I am not familiar with the progisp application. If the rest of the circuit is finished, the X-port is programmed etc, then you can also use the telnet program to connect to the X-port at port 10001 and press the reset button on the decoder. This should result in the CPU replying with the software version over the telnet connection……

  18. Keith Fitch says:

    Hello and thank you for a very good and well documented project. A couple of things which is holding me back at the minute is a decent schematic drawing, would you consider publishing one and secondly I use NI Ultiboard for my PCB design and to be absolutely truthful, I don’t have the time to learn or relearn another CAD program. Woudl you consider publishing the gerber files for the PCB.

    Many Thanks

    Keith F

    • Paul says:

      Hi Keith,

      I will send you the diagram and gerbers to your email address.
      Currently I am in the process of moving this site to another server, and once done I will add these to the page 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *