Jump to content

[POTM] dAISy - A Simple AIS Receiver

Recommended Posts

  • Replies 327
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Overview dAISy (do AIS yourself) is a very simple AIS receiver that I developed from scratch. It is built around the Silicon Labs EZRadioPRO Si4362 receiver, using a Texas Instruments MSP430G2553 MC

Ain't she pretty?    

Good news for everyone having difficulties sourcing the Si4362 radio IC.   I verified that the transceiver Si4463 works with dAISy. This probably also applies to Si4460 and Si4461. Besides being mor

Posted Images

  • 2 weeks later...

Hi Rian,


The packet handler interrupt routine will send SPI commands to the radio IC. This means that you cannot make calls to the radio from the main loop after ph_start(). If you want to test communication with the radio IC, comment out ph_start().


radio_setup() does configure all the pins. One could argue that I should also have set RADIO_SDN to low in there. Instead the first few lines of radio_configure() reset the radio by setting the SDN high for a few milliseconds and then low.


If you want to put a resistor on the SDN line, I'd use a pull-up to keep the radio in reset until the MCU explicitly turns it on. Either way works though. I'd go with a smaller resistor, maybe 10K.


Double check the connections with the defines in the source code. I may have shuffled things around in later revisions.


Hi Chicken!


Finally I found the problem of my dAISy. It was the soldering pin between Si4362 and the PCB. I created PCB in the local supplier and soldered the Si4362 IC. Si4362 is soldered by smartphone reparation technician in my town.

He didn't checked the IC pad in the PCB. Obviously, the masking of PCB was hit/impinged the IC pad in the PCB. It caused some pins of IC didn't sticked to the pad and radio_get_chip-status() was became hanging.

Thanks Chicken. I will go to the next step: receive the real AIS signal. Wish me luck.




Link to post
Share on other sites
  • 1 month later...

Halo Chicken!

I used  Si4463 direct mode to receive AIS signals,but  I tested the RSSI of SI4463 is only -70dbm, but datasheet mentions the receiving sensitivity can achieve -100dmn,

I need your help,how can i increase my sensitivity;The problem is inthe software or hardware?Thanks very much。




Link to post
Share on other sites

Hi @wanliban

Datasheet numbers are hard (impossible?) to hit, especially when the signal comes from a real world target rather than a piece of lab equipment. But you should definitely be able to achieve better than -70 dBm.

First thing: What does -70 dBm mean in your setup? The level at which you are able to receive any valid messages? Level at which you receive 50% of all messages? 80%? Real world targets or controlled signal from an RF generator?

You can find my radio_config file and software on GitHub: https://github.com/astuder/dAISy

Hardware wise, keeping noise out is very important. A bandpass filter in front of the radio helps a lot. Also make sure to minimize the self-inflicted noise by having continuous ground planes in the RF section and keeping the radio away from noisy circuits (like USB). If testing with real-world signals, make sure to use a proper VHF antenna (i.e. not a short rubber duck) and keep the antenna away from other electronics (e.g. monitors or LED and fluorescent light fixtures).

Also follow Silabs' procedures for RX LNA matching (AN643) and layout recommendations (AN414)

I hope this helps.

Link to post
Share on other sites
  • 1 month later...

Hi, I have been looking into playing with the AIS radio/hardware side and OpenCPN (I'm the publisher of the free version on the Play Store). I have never used any of the TI controllers, so I'm looking to interface from either Atmel or ESP8266 (or maybe hook them up directly to my FTDI module). After reading all your dAISy related information, datasheets, etc, I have some questions:

 - Would you still recommend your dAISy Rev B breakout board on OSHPark to get started, or has this been outdated now that you have implemented filtering?

 - Does the "BoosterPack" replace the OSHPark breakouts, do they come with the filter circuit and are these still available?

 - Or should i rather get some of the 4463 based modules from China and repurpose them from 433MHz to 162MHz?

 - How does the higher sensitivity of the 4467 compare to the 4463/4362 in practice?

 - SiLabs is currently providing free samples for their ARM/446x based SOICs. Did you try any of these?






Link to post
Share on other sites

Hi Jens,

The breakout while primitive will work as well as the Si446x modules from Ebay/AliExpress. Both will get you started if in line of sight of AIS targets.

But I should publish the BoosterPack sometime and update the Github project accordingly.

The bandpass filter increases the number of messages received. Range can be better or slightly worse depending on your RF environment.

The Si4467 does perform better than the older gen chips (e.g. Si4362-B1B). In real world scenarios the difference can be minor to significant, depending on how marginal AIS reception is.

I recently started toying with the EFM32 MCUs. I hope to create a small, inexpensive and easy to integrate AIS module. I really like the dev environment and peripheral libraries. Too early yet to assess RF performance compared to the standalone radios.



Link to post
Share on other sites
  • 1 month later...

Proud new owner of a dAISy hat here. When I first saw the little USB unit a little over a year ago I thought is was just another reworked DVB tuner and baseband video ADC setup with a micro built in to control it. Obviously it's not that on further examination and when I saw the true 2 channel Raspi hat I just had to have one so I ordered one late Friday night and was pleasantly surprised that it had already arrived on Monday with my mail. Extra bonus points for customer service, I didn't even expect the order to be processed until Monday much less already be in my mailbox. The shipping was more than reasonable 

However I do have a couple of questions ..... First am I correct in concluding that I could just hook this to one of my FT232 devices or even to an Arduino (with RX level shifter) and control/test the radio? That would make it easier to test and to set up without have to do a setup on Raspi. Plus I could easily work it into an existing box by hooking the GPS to port 2 and hooking the output of the dAISy to where the GPS was hooked up. Basically I have a box with an Arduino Mega that used to be a multiplexer/logger but is  a convenient way to route the GPS signal to different devices. Basically it reads my NEO-M8N and routes it out the USB, to an RS-422/485 level converter and to my Lowrance Elite TI and to a Bluetooth radio (HC-6). The finder itself can use AIS sentences and plot ships (Actually in my case barges on the Upper Mississippi River) The Elite TI then outputs the the position and depth (and AIS ) over the built-in WiFi to my Windows tablet. I use this setup to do depth mapping and sidescans of lakes and also interesting structure and wing dams on the Mississippi River and this is the way I get live data to my tablet since all my depth mapping software is Windows based. The AIS data however is only used on the Mississippi River but especially in late July through the end of September when I do a lot of fishing for Flathead Catfish and occasionally Walleye off the tips of wingdams and channel edge dropoffs. It's nice to have 15-20 minutes of advance notice so I can pull up my anchors and get out of the way (and the wake) of these monsters that can easily swamp a 1648 jon boat. I've been using the Marine Traffic app on my phone but you can't leave it running all the time or the data charges will kill you. I bought this for a system I'll build over the winter in the off season but if I can make this work in my existing setup this year would sure be nice 

The second question is about the I2C port, this will eventually go on a Raspi 3 with a Pimoroni Enviro pHat mounted in a Stevenson Screen which will supply temp and pressure (Converted to an MDA sentence in the Pi) as well as a tilt compensated Heading which along with the GPS and AIS data and will be sent out to my Tablet via WiFi and to my Elite Ti via a RS422/485 USB converter. Am I correct in concluding that the I2C port on the dAISy hat is just a feed through to the Pi and not even hooked to the circuitry of the radio? If so I can just hook the Enviro pHat right to that and not have to hack and tack wires to the Pi and dAISy hat which will be mounted just below the Stevenson shield.

While it hasn't been updated in a year and my boat and systems are always in a constant state of flux you can see my boat setup on my blog The Netbook2Chartplotter Project

Link to post
Share on other sites

Hi John,

Quite an impressive setup you have here. I will have to dig through your blog when I have more time.

As for your questions:

You are correct, the HAT can be run standalone and connected to a PC with a FTDI cable. You also can power the HAT over USB by connecting the respective wire to a 5V pad on the HAT. Serial 1 duplicates the connection that goes to the Raspberry Pi and you can connect it to any other "host" device, including an Arduino. The baud rate of Serial 1 is fixed to 38400 baud.

And you are also correct regarding the I2C header. It's a straight breakout of the Pi's I2C port, without any connections to the rest of the HAT. I expected that some people want to hook up sensors, as this seems to be supported by projects like OpenPlotter.



Link to post
Share on other sites

Sorry about being a little slow to acknowledge, we got hit by one of those Global Warming enhanced extreme rain events Friday into Saturday morning and my basement took on a little water but luckily no real damage other than wet indoor/outdoor carpeting I have in my workshop and computer room. Just to add insult to injury we are going back above flood stage for the second time this summer so I won't be getting out on the river for a couple of weeks at least anyway and there is not a lot of AIS traffic at the 500 acre new lake I'm depth mapping. However I do need to get this going as I'm having my house sided in a month and I have to take down my antennas and I don't think I'll be putting that one back up (2 stacked vertical dipoles) because line of sight issues limits my range and this part of the Mississippi River is already well covered on MarineTraffic. I do however sit 6 blocks from the river right above a lock and dam that also happens to be district headquarters for the Corps of Engineers so I do get a lot of traffic for testing. 

Since last year I run everything at 38400 baud since my GPS has 10 hz output with the exception of the Garmin "Intelliducer" on my aquabot (Be sure to check that out on my blog, I just finished Version 2 a month ago) which is fixed at 4800 in but is bumped up to 38400 like the GPS when it is multiplexed and sent out the USB and Bluetooth outputs with the position data.  It's also nice to have that I2C port just to make for an easier and better looking assembly for the Enviro pHat 

Link to post
Share on other sites

Hi Chicken,

I start building the AIS receiver based on dAISy. I bought two dAISy HAT. Then, I removed MSP430 and connect SPI from STM32F7 discovery kit to handle Si4467. I use the radio_config.h to set up the registers. Unfortunately, it receives the messages from the nearby devices. Meanwhile, the other dAISy HAT obtains to 8 knots. The attached file is the configuration file for Si4467 that I refered from Github. How should I do to improve the distance?



Link to post
Share on other sites

I apologize for the slow response.

Besides configuration, severely limited range can be a noise issue. You may introduce noise to the radios with the wires connecting over to the STM32.

The radio_config.h for the Si4362 should be a good starting point as the EzRadioPRO chips are compatible. You can generate the radio_config files for the Si4467 with the WDS tool from Silabs:


Seems like they changed the file format since the last time I used it. The attached project file can be loaded with the latest version of WDS. I also attached a radio_config.h for the Si4467 that I created with this project file. I haven't tested the results though.




Link to post
Share on other sites

Hi Adrian,

Thanks so much for your reply. I'll try the configuration. I also generate the configure from WDS, but some paramaters I can't know clearly. Is the file that you attached for dAISy HAT?

Again, thanks so much, Adrian!

P.s: I also transmitted message AIS successfully. However, I need fix some bugs (such as I only switch from Rx to Tx mode first time. The second switching is failed.) I'll publish it at here when I fix it.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...