Project Objective: Develop an open source AIS Alarm that alerts sailors that a new marine vessel with AIS is within range
Time to get back to work on the AIS project. In this post I will lay out a plan for developing the hardware and firmware.
I have no formal training in electronics or programming. But when I was a mechanical engineering student 40+ years ago all engineering disciplines at my university were required to follow a simple outline when solving homework problems, labs or during exams. I was surprised when I got out of school that not all technical oriented people follow a similar process. (Rant: I can't believe how poorly some people state problems and present solutions) Anyway, the basic steps I was taught go like this:
- Problem - a problem statement to show where you are going
- Given - things such as the source of power, what microcontroller is to be used, etc. as well as things that are excluded or assumed
- Plan - a description of how the problem will be solved
- Solution - Break the plan down into manageable pieces - outline the plan with steps to solution and document as you proceed
- Answer - Present the solution in a manner tailored to your audience
This is simplified and for most projects needs to be filled out with a schedule, budget, etc. But for this project it should be sufficient.
I described the problem in my first post: AIS Alarm as "the objective is to develop an open source AIS Alarm that alerts sailors that a new marine vessel with AIS is within range".
The given elements were also included in the first post.
- AIS radio shall be a single channel dAISy
- 5V primary power shall be from a rechargeable USB power stick
- Microcontroller shall be a Texas Instruments MSP430FR2111
- 3.3 power for the microcontroller will be from a LDO voltage regulator (e.g. Texas Instruments LM1117-3.3)
- Alarm shall be audible and visual
- User interface will include:
- on / off switch
- on / off indicator LED
- display momentary button switch to send data to PC
- reset momentary button switch to clear stored AIS data
- Firmware will be written in C using the Texas Instruments CCS IDE
- AIS NMEA messages assumed to be less than 120 characters and ring buffer will provide storage up to 16 messages
Along with the cartoon block diagram this makes the project easier to understand....
I worked in the real world too long. Here is a schedule and a cost estimate:
- Schedule: when I get around to it
- Cost Estimate: not so much that anyone would notice
This post and the outlined solution below are the plan.
I am going to do this in future blog posts with each step defined and documented. The steps will probably end up something like this:
- Put together a C main function for the firmware with placeholder functions for things like alarm sound, alarm LED, ring buffer for incoming messages, etc.
- Prototype the hardware piece by piece in conjunction with the firmware
- Fill in the placeholder functions in the firmware and test / debug
- Test / debug the completed prototype
- Make final decision on hardware - e.g. buzzer to be used, type LED, enclosure, etc.
- Order parts
- Design PCB
- Assemble and test / debug completed hardware and firmware
It probably won't end up looking exactly like this as I expect to run into problems along the way.
The final post will probably be photos and a video of the working AIS Alarm. Firmware will be posted on Github. The hardware design will be documented with a complete bill of materials, a schematic, and the PCB design in KiCad.
References and Links: