Appendices

Appendix A: Inclusion

The group approves this report for inclusion on the course website.

The group approves the video for inclusion on the course youtube channel.

Appendix B: Schematics

The following schematics illustrate the hardware components of each node in our network.

General Node Schematic Master Node Schematic

Appendix C: Commented Code Listing

All our code is hosted on github.

Appendix D: Cost

Cost Spreadsheet

Appendix E: Task List

We divided up tasks for the project as follows.

  • Alex Wong was primarily responsible for developing the mesh layer of the project. He developed a version of the AODV protocol (Ad hoc On-Demand Distance Vector), providing a clean interface for the application layer to send messages to any node in the network. In addition, he helped solder many of the nodes that we built and assisted in modifying the nrf24l01+ library to be used for this project.

  • Brian Clark was primarily responsible for developing the hardware and radio layer of the project. He prototyped and designed the standalone PIC, soldered and tested each node. He designed a thin layer of software on the the existing nrf24lo1+ library to allow node addressing and flooding in software. In addition, he helped Alex and Raghava with debugging their software layers.

  • Raghava Kumar was primarily responsible for developing the application layer of the project. He designed a custom message protocol and used it to implement automation functionality on the network. He designed a command-line user interface for the master node and implemented I/O functionality on other nodes. In addition, he helped design and solder a few of the nodes we built.

Appendix F: References

This project takes inspiration from Wireless Digital Automation System, a project completed by Karun Singh and Raghava Kumar for ECE 3140 in Spring 2016. However, no part of the hardware or software was referenced in the completion of this project.

This project uses the NRF24l01+ library developed by Fred Kummer and Douglas Katz for PIC32 devices. While we directly use much of their code, a lot of additional functionality was developed to suit our application.

In addition, the following datasheets, websites and papers were used to develop this project.