Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


chicken last won the day on April 30

chicken had the most liked content!

1 Follower

About chicken

  • Rank
    Level 4

Contact Methods

  • Website URL

Profile Information

  • Gender
    Not Telling
  • Location
    Redmond, WA
  • Github
  1. [POTM] dAISy - A Simple AIS Receiver

    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.
  2. 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
  3. [POTM] dAISy - A Simple AIS Receiver

    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.
  4. [POTM] dAISy - A Simple AIS Receiver

    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.
  5. [POTM] dAISy - A Simple AIS Receiver

    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.
  6. [POTM] dAISy - A Simple AIS Receiver

    Yes, you can remove both and it will still work. #define TEST would enable extra code. I used that during development for testing the NMEA code without a radio. As long as the project does not define it, the test code will be skipped. It's not enabled in the code, so you don't have to worry about that. #define DEBUG_MESSAGES is useful to get more information about the radio communication. I would leave that in until you got the receiver working, as it will help you tracking down what's going on.
  7. [POTM] dAISy - A Simple AIS Receiver

    @andimmike15 For debug messages, simply add a #define in main.c, like I did on line 20. For test mode, I made a separate profile in the CCS project, which sets the define with the -D compiler option.
  8. [POTM] dAISy - A Simple AIS Receiver

    FYI @Fonsin and @GeoffH The NMEA adapter is now back in stock on Tindie and in our own store: https://www.tindie.com/products/astuder/nmea-0183--rs-422-adapter-for-daisy/ https://shop.wegmatt.com/products/nmea-0183-rs-422-adapter-for-daisy
  9. [POTM] dAISy - A Simple AIS Receiver

    Hello @NsNcc I'm not much of a Linux wizard, so I don't have a better method to achieve this. There was a thread on the Kplex Google group about issues with the dAISy USB because Linux didn't initialize the USB ports early enough, but I wasn't aware that the same issue exists with the regular serial port. https://groups.google.com/forum/#!forum/kplex Kplex may be overkill if you just need to forward AIS data to a network address. Alternatives are: A simple python script: https://github.com/jaluebbe/ais-forwarder Or a shell script: But of course, that still leaves you with the "run at startup problem". As a Linux noob, I'd try this (which looks very similar to what you're already doing): https://superuser.com/questions/155476/how-do-i-make-a-script-run-upon-startup-of-the-ubuntu-machine
  10. [POTM] dAISy - A Simple AIS Receiver

    Hi @GeoffH I just sent out a request for a quote for a few more of the NMEA add-ons for the small dAISy. It will probably be 4-6 weeks before they are back in stock. I tried to directly connect dAISy TX to the A2 and GND to B2 on the NMEA2WiFi, but it does not have enough power to drive the signal. If you are into tinkering, you can try something like this:
  11. Shouldn’t there be a special badge on 43oh for earning 430 reputation points? Well, congrats to my dear friend @Fmilburn for having crossed that line of 43oh awesomeness
  12. [POTM] dAISy - A Simple AIS Receiver

    Hi Fonsin, Glad to hear that you successfully upgraded your dAISy USB. As for the NMEA-0183 adapter: I didn't plan to build new ones as I think the 2+ is the more robust solution. But there were recently a number of requests from current owners of the dAISy USB, so I will probably spin a small batch in the next few months. It seems like the NMEA-0183 listeners are not too picky. Some (e.g. Garmin) even use just one data wire, which may directly work with the UART output on TX. Though input protection may be an issue. On my adapter I use the TI UA9638, which is also available as DIP package (UA9638CP) http://www.ti.com/product/UA9638 This IC is very easy to use. Just connect 5V, GND and TX, and you get a RS-422, i.e. NMEA-0183 compliant, differential output. And maybe add a 0.1uF and/or 1uf capacitor across the power pins if you want to get fancy. The downside of the UA9638 is, that it's relatively power hungry (50mA) compared to the rest of dAISy USB. It is responsible for 75% of the increased current consumption of the dAISy 2+. There are other RS-422 drivers which seem to be lower power, like for example the ST485 or MAX485. But I haven't used any of these. This document goes into great detail about the electrical characteristics of NMEA-0183: http://www.actisense.com/wp-content/uploads/2017/07/NMEA-0183-Information-sheet-issue-4-1-1.pdf Best Regards, Adrian PS: As for logic gates, the 74HC00 could be a good alternative for the transistor. It depends a bit on the required current, but the NMEA-0183 spec says 2mA per listener, which a logic gate should be able to deliver. Another option is to use 74HC04 to create a true differential signal (1 inverter for one line, and 2 inverters in series on the other line).
  13. MSP430FR2433 LCD16x2

    I don't have a MSP430FR2433, but a few items come to mind: 1) Does the LCD display support 3.3V input? Most Arduinos are running at 5V, but the MSP430 family is 3.3V. 2) Did you check if just wiggling a pin works? E.g. by turning on an LED or measuring with a multimeter? If that doesn't work, some additional GPIO configuration may be needed. 3) If you have a logic analyzer or oscilloscope, check if the timing of the pin wiggles is as expected. Your code seems to assume, that the clock is running at 750KHz. I don't know if that's the speed at which the FR2433 starts up without any further configuration.
  14. [POTM] dAISy - A Simple AIS Receiver

    This is the relevant line in radio_config.h: #define RF_GPIO_PIN_CFG 0x13, 0x1A, 0x00, 0x11, 0x14, 0x1B, 0x00, 0x00 ..which in the M4463 branch looks like this: #define RF_GPIO_PIN_CFG 0x13, 0x11, 0x00, 0x21, 0x20, 0x14, 0x00, 0x00 I have a few bare boards of the booster pack laying around. Happy to solder them up if there's interest.
  15. [POTM] dAISy - A Simple AIS Receiver

    Hi Sven, I think the MSP430 side is ok. It looks like your setup is able to configure the radio, and something is received. Sync indicates, that the packet handler ISR found preamble and start flag. Did you already try the regular branch? The 4463 branch is quite stale, and it looks like I did a few changes to radio configuration and packet handler on master after the branch. Regards, Adrian