Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


chicken last won the day on April 29 2019

chicken had the most liked content!


About chicken

  • Rank
    Level 4

Contact Methods

  • Website URL

Profile Information

  • Gender
    Not Telling
  • Location
    Redmond, WA
  • Github

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi Chumikov, The SR162 uses a Z80 MCU and two CMX589A GMSK modems (one per channel). The radio portion looks like a superheterodyne receiver with an oscillator, crystal filters and a ton of trimable passives. See attached a picture of the insides of the SR162.
  2. Hi Varnak, The dAISy software does change the channel every so often. The code for switching between the channels start at line 329 in packet_handler.c https://github.com/astuder/dAISy/blob/master/packet_handler.c#L329 The receiver will switch to the other channel when the state is PH_RESET, which is the case after an error, successful message, or when there is no start of message within PH_SYNC_TIMEOUT (defined in line 27) clock ticks (one tick being 1/9600 second). Statistically, it will miss at least 50% of the message as it can only listen on one channel at a time. Regards, Adrian
  3. Happy to hear that 🙂 Yeah, probably keep gain to a minimum. I would go with -50 dBm or less. And no worries about Google Translate, it does a great job.
  4. The Si4463 is backward compatible, as long as the chips have the same revision (B1 in this case). The pin out depends on the breakout board that you use for your project. I don't have a screenshot as I never updated the dAISy-E10-M4463D project to the new version of WDS. dAISy requires CLK and DATA from the radio, which the 4362 config files map to GPIO2 and GPIO3. If necessary, move them to other pins as they are available on your breakout board. But don't change CTS (GPIO1) as this pin is essential for SPI communication!
  5. FYI: dAISy works in Direct RX mode. Unfortunately, the built-in packet handler of the radio IC does not work with AIS.
  6. Hi Varnak, I just pushed a configuration file for WDS 3.2.11 that I had laying around. I haven't tested it, so not sure if it works as is. https://github.com/astuder/dAISy/blob/master/WDS3211_si4362_revb1_direct_rx.xml Best Regards, Adrian
  7. Hi Ross, Yes, you can feed the serial data out of the HAT into an Arduino or ESP8266. It's 8N1 UART at 38400. You can expect a few hundred messages / minute in very busy areas down to a few per minute in quieter locations. The AIS payload is encoded into !AIVDM messages. If you want to do more with the AIS data than just forwarding it, you will have to decode the !AIVDM message and then make sense of the binary AIS payload embedded in them. You can find detailed documentation of !AIVDM and payload structure that here. As you can see, it's pretty exhaustive. If you want to process AIS messages on the Arduino/ESP8266, you likely will have to focus on a few message types. 1, 2, 3, 5, 18,19 are the most important for tracking ships. This here is an Arduino library for AIS decoding that I found, but I never used it so can't vouch for it. Happy to share logs of real-world AIS data if that's helpful. If interested, send me a PM. Regards, Adrian
  8. PS: Forgot to answer the second part of your question. All the variations of dAISy are suitable for something built around a Raspberry Pi. The HAT is the obvious fit, but the USB receivers work as well. The USB receivers have the added benefit, that you can also use them on a regular PC or laptop if you decide to move away from the Pi.
  9. Hi Ross, The best solution depends on what you want to achieve. If you want to build a chartplotter, then OpenPlotter or a standalone setup of OpenCPN would be a viable approach. Both will require a RPI 3 as the GUI of OpenCPN ps For OpenPlotter, I recommend the 1.0 image and not their latest alpha, unless you know what you're doing. For standalone OpenCPN, this tutorial worked for me. If you only want to track ships and may report to a website, then AISHub's rPiAIS is the quickest way to get up and running. More DIY alternatives are Kplex (which OpenPlotter uses under the hood) or some form of home-brew Python script. ais-forwarder to send received AIS messages over the network simpleAIS to decode AIS messages in your Python project You will find more AIS related projects under my Github stars. Best Regards, Adrian
  10. Hi @pileoni You can use a terminal program like Putty on Windows to connect to dAISy. Pressing ESC will bring up a debug/configuration menu. There, you can start a test mode by pressing T and then ENTER. dAISy will start outputting an AIS message every 5 seconds. Alternatively, while in regular receive mode, you can send & to get dAISy to respond with its serial number. Let me know if this helps. Best Regards, Adrian
  11. Hi @andimmike15 To debug the application, I'd go through the following steps: 1. Write something on the serial console to make sure that end works (uart_init, uart_send_string) If that doesn't work, search this forum for tips on setting up serial output from your model of the LaunchPad. 2. Read the Si4362's part information and compare it to what's expected per datasheet (radio_setup, radio_part_info, radio_buffer.part_info.part_msb, radio_buffer.part_info.part_lsb) If you don't get the expected values (e.g. 0x43 for the msb, 0x62 for the lsb if you're using an Si4362), then something with the SPI connections is wrong. 3. Toggle LEDs in strategic locations in the packet_handler ISR, to see whether raw data and clk bits from radio arrive at the MCU and the interrupt is invoked. If that doesn't work, check that the correct radio and GPIO pins are connected. If all the above works, then you're ready to worry about the actual AIS signal. That side is hard to simulate without an AIS target, but your transponder would be a good start. But be careful to not damage the Si4362 with a too strong signal. Directly connecting the transponder with the receiver will destroy the receiver. Let me know if this helps, or where on that list you get stuck.
  12. In case you need to stock up on MSP430 dev boards, it's MSP430 week in the TI store. http://www.ti.com/store/featured/msp430week18.html
  13. For all you AIS home-brewers out there: I've added the TAI-SAW TA0395A SAW filter to my Tindie store. https://www.tindie.com/products/astuder/tai-saw-ta0395a-saw-filter/ This bandpass filter covers 6 MHz in the marine VHF band and can be found in many commercial AIS receiver and related equipment. As often with parts from specialist vendors, it is hard to come by without writing an RFQ and/or begging for samples. So I thought I'd sell some of my stash to fellow tinkerers.
  14. Hi @andimmike15 AIS messages can be longer than 32 bytes, for example message type 5 which includes the ship's name is 424 bits / 53 bytes. http://catb.org/gpsd/AIVDM.html#_type_5_static_and_voyage_related_data You could filter messages to only receive the position messages (types 1, 2, 3, 4, 9 and 18) by evaluating the message type at line 261 and resetting the packet handler state machine in case of an unwanted message. Keep in mind, that while the received message is converted to NMEA0183, a new AIS message may start arriving. So allocate a few bytes more for the FIFO than the minimal message length (21 bytes for the above, so maybe make the FIFO 32 bytes long). Note that due to its current implementation, the FIFO length must be a power of two. Setting FIFO_PACKETS to 2 is the minimum, again because a new packet may arrive while the first isn't fully processed yet. Another big chunk of memory is in the NMEA encoding section. If filtering AIS messages, you can squeeze out a few bytes by limiting the maximum size of the NMEA payload to 21 bytes (nmea.c line 19), which translates to a NMEA output buffer of 43 bytes. You could shave of a few more bytes by not storing the AIVDM lead-in in the buffer but directly outputting it on serial. Still, squeezing everything into into 96 bytes of RAM will be quite a challenge. The MSP430G2553 has a luxurious 512 bytes.
  15. The radio will work with any MCU. But in my project, you will have to rewrite anything that's hardware dependent. From top of my mind, that's spi.c, serial.c, GPIO interrupts in packet_handler.c, plus any interaction with GPIO like LEDs etc.
  • Create New...