====== Firmware ====== The software to be put on each generation of the weatherbox. Meant to be a complete replacement of the previous Apple code with the added capability of implementing the same functionality onto the other generations. [[weatherbox:unified_software_team:start|Unified Software Team]] **Firmware Repository**: * [[https://github.com/scel-hawaii/control-tower|Master]] ---- ===== Future Improvements ===== * Communicate with weatherbox hardware teams to prepare device drivers for next versions of weatherboxes * Create detailed documentation and user manual * Increase sampling period to 1 minute * Reduce the power consumption * Implement a sleep function * GPS Integration [[weatherbox:unified_software_team:firmware_ideas|Future Firmware Ideas]]\\ [[weatherbox:unified_software_team:current_build_notes|Current Build Not Working Notes]] ---- ===== Goals (Spring 2023) ===== * Help Guava with code updates * Start simplified data pipeline * Dataset vending machine * Two way communication * Firmware Refactoring (C structs to C++ objects) ===== Goals (Fall 2022) ===== * Assist Hardware Teams with weatherbox deployment (troubleshooting software) * Setup new server * Recover data from scelserver-1 * Implement the Simplified Data Pipeline * Create the Dataset Vending Machine * Firmware refactoring (C structs to C++ objects) ===== Goals (Spring 2022) ===== * Assist Hardware Teams with weatherbox deployment (troubleshooting software) * Continue Firmware Handbook as reference for future members * Integrate Real-time Clock for Guava * Implement the Simplified Data Pipeline * Implement improvements to current algorithm (sampling period, power consumption, etc) * Insert comprehensive comments throughout the code * Transition from Python2 to Python3 ===== Goals (Spring 2021) ===== * Assist Hardware Teams with weatherbox deployment (troubleshooting software) * Integrate Real-time Clock for Guava * Create a Firmware Handbook as reference for future members * Implement improvements to current algorithm (sampling period, power consumption, etc) * Insert comprehensive comments throughout the code ===== Goals (Spring 2021) ===== * Assist Hardware Teams with weatherbox deployment (troubleshooting software) * Integrate Real-time Clock for Guava * Create a Firmware Handbook as reference for future members * Implement improvements to current algorithm (sampling period, power consumption, etc) * Insert comprehensive comments throughout the code ===== Goals (Fall 2020) ===== * Assist Hardware Teams with weatherbox deployment (troubleshooting software) * Integrate Real-time Clock for Guava * Implement improvements to current algorithm (sampling period, power consumption, etc) * More research, depending on Coronavirus situation ===== Goals (Spring 2020) ===== * Establish database for weatherbox data collection * Implement the Real-time Clock for Guava * Improve Real-Time Clock and fix time stamp discrepancy * Assist other teams with software ===== Goals (Fall 2019) ===== * Create test gateway using Raspberry Pi * Create better file system * Implement the Real-time Clock * Assist other teams with software ===== Goals (Spring 2018) ===== * Implement Snapdragon * Implement the Real-time Clock and GPS modules for Cranberry * Deploy weatherboxes * Assist other teams with software ===== Goals (Fall 2017) ===== * Improve modularity of firmware code * Create new sensor drivers * Develop deployable versions of weatherbox firmware * Improve power efficiency of the weatherboxes ---- ===== Block Diagrams ===== {{:weatherbox:firmware:screen_shot_2016-12-06_at_2.04.25_pm.png|}} {{:weatherbox:firmware:screen_shot_2016-12-06_at_2.04.29_pm.png|}} {{:weatherbox:firmware:scel_blockdiagram.png|}} Updated: 4/28/22 {{ :weatherbox:firmware:scel_blockdiagram.pptx |}} ---- ===== Current Algorithm ===== Initialization Create and initialize board struct Set-up board Initialize all of the sensors Read Node ID from EEPROM Run a Power on Self-Test Sample each sensor Write sensor values to serial monitor Check for bad sensor values Execution Heartbeat Packet Poll diagnostic data every three seconds for first thirty seconds Apply scaling factors to diagnostic data Construct heartbeat packet Transmit heartbeat packet every three seconds for first thirty seconds Write message to indicate successful transmission to serial monitor Data Packet Poll sensor and diagnostic data every thirty seconds Apply scaling factors to diagnostic and sensor data Construct data packet Transmit data packet every thirty seconds Write message to indicate successful transmission to serial monitor Command Mode Enter any character into the serial monitor to interrupt execution Enter ā€œPā€ into serial monitor to run a Power on Self-Test Enter ā€œEā€ to exit command mode and return to execution ===== Old Algorithm ===== Initialization (setup()): Version check Initialization of corresponding functions and variables Initial health diagnostics Execution (loop()): Check weatherbox battery health if good health: Poll data from each sensor Data manipulation (scaling, etc.) Construct packet Transmit packet Clear packet buffer if poor health: Turn off sensors and XBee Update current battery voltage While the battery voltage remains bad: Turn on XBee Send health diagnostic packet Turn off XBee Wait approx 10 minutes Check battery voltage Turn on Sensors and XBee ---- ===== Current Status of the Weatherbox Generations ===== [[weatherbox:unified_software_team:generation_apple|Generation Apple]]\\ [[weatherbox:unified_software_team:generation_cranberry|Generation Cranberry]]\\ [[weatherbox:unified_software_team:generation_dragonfruit|Generation Dragonfruit]]\\ ---- ===== Problems/Resolutions ===== * [[weatherbox:firmware:arduino_library_support|Arduino Library Configuration]]\\ * [[weatherbox:firmware:apple_board_connectivity|Connecting/Debugging Apple]]\\ * [[weatherbox:firmware:solar_irradiance_sensor_reading|Solar Irradiance Sensor (For Incomplete Apple Boards)]]\\ * [[weatherbox:firmware:power_saving|Power Saving Mode]]\\ ---- ===== Q&A ===== **Q: Why use pre-made Arduino libraries for the sensors (and other hardware parts) instead of programming the I2C capabilities ourselves?** * From recent experience, programming the I2C requires a solid understanding of the part on the I2C bus as well as I2C programming itself. * The pre-made libraries provides examples and the code to obtain data from the parts which shows the unique traits about the part. * Programming I2C relies heavily on understanding what is on the part's data sheet, while applying the pre-made libraries requires only a understanding of what each function in the library does (at minimum). * Pre-made libraries are open source and open to input from other sources to improve its overall functionality. ---- ===== Resources/Notes ===== __Arduino__: * [[https://www.arduino.cc/en/Tutorial/BuiltInExamples|Tutorials]] - Provides helpful tutorials that cover setting up an Arduino sketch, using the serial monitor for debugging, and how to obtain input and assign output to pins. __Git__: * [[https://try.github.io/levels/1/challenges/1|Tutorials]] - Simple 25 step tutorial on to get those new to Git use to the common commands necessary to utilize and interface with GitHub. __Xbee Profiles__: * {{:weatherbox:firmware:xbee_profiles.rar|Xbee Profiles}} - Link to download our Xbee Coordinator Profile and Router Profile. __Xbee Library__: * [[https://github.com/andrewrapp/xbee-arduino|Xbee Library GitHub]] - Location of the Xbee Library that provides users with the ability to utilize the functions of Xbee with Arduino. * //Note//: This library differs from the library the current Apple Code (10/23/2015) uses. __Xbee API Mode__: * [[https://code.google.com/p/xbee-api/wiki/WhyApiMode|Xbee API Mode]] - Details the differences between Xbee's two supported modes of operation (AT and API). Details the benefits of using API Mode. __I2C Programming__: * [[http://tronixstuff.com/2010/10/20/tutorial-arduino-and-the-i2c-bus/|I2C Tutorial]] - Basic tutorial on using I2C bus with Arduino. It helps obtain data from the sensors for Cranberry and Dragonfruit. * [[http://forum.arduino.cc/index.php?topic=38954.0|I2C Discussion]] - Discussion on interfacing with multiple components attached to the SDA line. __Function Pointers__: * [[http://www.newty.de/fpt/fpt.html|Function Pointers]] - Goes over the basis of function pointers * Our code focuses on declaration and assignment * Function pointers are used to reduce the use of wrappers (large blocks of conditional compilation, #ifdef & #endif) * Two main categories of function pointers used: - Sensor functions * Used to assign the appropriate generation-specific sensor function to the generation being run - Transmission method functions * Used to assign the type of transmission method desired * Affects: * Packet clearing/initializing * Packet construction * Packet Transmission * Also affects what routine is run (at Full Integration level) * Function pointers **MUST**: - Be declared the same type as the functions it can "point" to - Be given the same amount and type of arguments as the functions it can "point" to __Apple Code__: * [[https://github.com/scel-hawaii/weatherbox/tree/v1.0.2|Apple Code]] - Apple Code to be used as a reference for further updates to the new firmware. __Moving Average__: * [[http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_averages|Exponential Moving Average]] - Reference for the implementation of an exponential moving average. __Git/GitHub Branch Name Changes__: * [[https://gist.github.com/lttlrck/9628955|Branch Name Change]] - Three commands to manage changing the name of your local branch and pushing the name change to the repo on GitHub. __Git/GitHub Tagging__: * [[https://git-scm.com/book/en/v2/Git-Basics-Tagging|Tagging Basics]] - Basic way in which to tag releases of code. __Tag Naming Conventions__: * [[http://semver.org/|Semantic Versioning]] - Our tag conventions are based off of this idea, but not followed. * vX.Y.Z * X = Major updates to functionality of code * Y = Changes to code that doesn't affect overall functionality or logic * Z = Minor changes to patch errors or fix portions of the functions __Error Code Naming Conventions__: * Error codes shall be a negative 3 digit number * Error ABC * A = Module * B = Function * C = Specific error __Unit Testing Practices__: * [[http://blog.stevensanderson.com/2009/08/24/writing-great-unit-tests-best-and-worst-practises/|Unit Testing]] - Guidelines to follow to create meaningful and useful Unit tests ---- ===== Review Notes ===== * [[2016-07-03 Review]] ===== Meeting Minutes ===== ** Spring 2024 ** * [[UST: Meeting minutes January 22, 24, 25, 2024]]\\ * [[UST: Meeting minutes January 29, 31, February 1, 2024]]\\ * [[UST: Meeting minutes February 5, 7, 8, 2024]]\\ * [[UST: Meeting minutes February 12, 14, 15, 2024]]\\ * [[UST: Meeting minutes February 19, 21, 22, 2024]]\\ ** Fall 2023 ** * [[UST: Meeting Minutes August 29, 31, 2023]]\\ * [[UST: Meeting Minutes September 5, 7, 2023]]\\ * [[UST: Meeting Minutes September 12, 14, 2023]]\\ * [[UST: Meeting Minutes September 19, 21, 2023]]\\ * [[UST: Meeting Minutes September 26, 28, 2023]]\\ * [[UST: Meeting Minutes October 3, 5, 2023]]\\ * [[UST: Meeting Minutes October 10, 12, 2023]]\\ * [[UST: Meeting Minutes October 17, 19, 2023]]\\ * [[UST: Meeting Minutes October 24, 26, 2023]]\\ * [[UST: Meeting Minutes October 31, 2023]]\\ * [[UST: Meeting Minutes November 2, 2023]]\\ * [[UST: Meeting Minutes November 7, 9, 2023]]\\ * [[UST: Meeting Minutes November 14, 16, 2023]]\\ * [[UST: Meeting Minutes November 21, 23, 2023]]\\ * [[UST: Meeting Minutes November 14, 16, 2023]]\\ * [[UST: Meeting Minutes November 28, 30, 2023]]\\ * [[UST: Meeting Minutes December 5, 7, 2023]]\\ * [[UST: Meeting Minutes December 12, 14, 2023]]\\ * [[UST: Meeting Minutes December 5, 7, 2023]]\\ ** Spring 2023 ** * [[UST: Meeting Minutes January 19, 2023]]\\ * [[UST: Meeting Minutes January 24, 26, 2023]]\\ * [[UST: Meeting Minutes January 31, February 2, 2023]]\\ * [[UST: Meeting Minutes February 7, 9, 2023]]\\ * [[UST: Meeting Minutes February 14, 16, 2023]]\\ * [[UST: Meeting Minutes February 21, 23, 2023]]\\ * [[UST: Meeting Minutes February 28, March 2 2023]]\\ * [[UST: Meeting Minutes March 7, 9, 2023]]\\ * [[UST: Meeting Minutes March 14, 16, 2023]]\\ * [[UST: Meeting Minutes March 21, 23, 2023]]\\ * [[UST: Meeting Minutes March 28, 30, 2023]]\\ * [[UST: Meeting Minutes April 4, 6, 2023]]\\ * [[UST: Meeting Minutes April 11, 13, 2023]]\\ * [[UST: Meeting Minutes April 18, 20, 2023]]\\ * [[UST: Meeting Minutes April 25, 27, 2023]]\\ ** Fall 2022 ** * [[UST: Meeting Minutes August 30, September 1, 2022]]\\ * [[UST: Meeting Minutes September 6, 8, 2022]]\\ * [[UST: Meeting Minutes September 13, 15, 2022]]\\ * [[UST: Meeting Minutes September 20, 22, 2022]]\\ * [[UST: Meeting Minutes September 27, 29, 2022]]\\ * [[UST: Meeting Minutes October 4, 6, 2022]]\\ * [[UST: Meeting Minutes October 11, 13, 2022]]\\ * [[UST: Meeting Minutes October 18, 20, 2022]]\\ * [[UST: Meeting Minutes October 25, 27, 2022]]\\ * [[UST: Meeting Minutes November 1, 3, 2022]]\\ * [[UST: Meeting Minutes November 8, 10, 2022]]\\ * [[UST: Meeting Minutes November 15, 17, 2022]]\\ * [[UST: Meeting Minutes November 22, 24, 2022]]\\ * [[UST: Meeting Minutes November 29, December 1, 2022]]\\ * [[UST: Meeting Minutes December 6, 8, 2022]]\\ ** Spring 2022 ** * [[UST: Meeting Minutes January 19-22, 2022]]\\ * [[UST: Meeting Minutes January 26, January 28,January 29, 2022]]\\ * [[UST: Meeting Minutes February 2, February 4, February 5, 2022]]\\ * [[UST: Meeting Minutes February 9, February 11, February 12, 2022]]\\ * [[UST: Meeting Minutes February 16, February 18, February 19, 2022]]\\ * [[UST: Meeting Minutes February 23, February 25, February 26, 2022]]\\ * [[UST: Meeting Minutes March 2,March 4, March 5, 2022]]\\ * [[UST: Meeting Minutes March 9 March 11, March 12 2022]]\\ * [[UST: Meeting Minutes March 16, March 18, March 19, 2022]]\\ * [[UST: Meeting Minutes March 23, March 26, March 27 2022]]\\ * [[UST: Meeting Minutes March 30, April 1, April 2, 2022]]\\ * [[UST: Meeting Minutes April 6, April 8 April 9, 2022]]\\ * [[UST: Meeting Minutes April 13, April 15, April 16, 2022]]\\ * [[UST: Meeting Minutes April 20, April 22, April 23, 2022]]\\ * [[UST: Meeting Minutes April 27, April 29, April 30, 2022]]\\ ** Fall 2021 ** * [[UST: Meeting Minutes November 29 - December 3, 2020]]\\ * [[UST: Meeting Minutes November 22-26, 2020]]\\ * [[UST: Meeting Minutes November 15-19, 2020]]\\ * [[UST: Meeting Minutes November 8-12, 2020]]\\ * [[UST: Meeting Minutes November 1-5, 2021]]\\ * [[UST: Meeting Minutes October 25-29, 2021]]\\ * [[UST: Meeting Minutes October 18-22, 2021]]\\ * [[UST: Meeting Minutes October 11-15, 2021]]\\ * [[UST: Meeting Minutes October 4-8, 2021]]\\ * [[UST: Meeting Minutes September 27 - October 1, 2021]]\\ * [[UST: Meeting Minutes September 20-24, 2021]]\\ * [[UST: Meeting Minutes September 13-17, 2021]]\\ * [[UST: Meeting Minutes September 6-10, 2021]]\\ * [[UST: Meeting Minutes August 30-September 3, 2021]]\\ ** Spring 2021 ** * [[UST: Meeting Minutes January 19, January 21, 2021]]\\ * [[UST: Meeting Minutes January 26, January 28, 2021]]\\ * [[UST: Meeting Minutes February 2, February 4, 2021]]\\ * [[UST: Meeting Minutes February 9, February 11, 2021]]\\ * [[UST: Meeting Minutes February 16, February 18, 2021]]\\ * [[UST: Meeting Minutes February 23, February 25, 2021]]\\ * [[UST: Meeting Minutes March 2, March 4, 2021]]\\ * [[UST: Meeting Minutes March 9, March 11, 2021]]\\ * [[UST: Meeting Minutes March 23, March 25, 2021]]\\ * [[UST: Meeting Minutes March 30, April 1, 2021]]\\ * [[UST: Meeting Minutes April 6, April 8, 2021]]\\ * [[UST: Meeting Minutes April 13, April 15, 2021]]\\ * [[UST: Meeting Minutes April 20, April 22, 2021]]\\ * [[UST: Meeting Minutes April 27, April 29, 2021]]\\ ** Fall 2020 ** * [[UST: Meeting Minutes December 7, December 8, and December 10, 2020]]\\ * [[UST: Meeting Minutes November 30, December 1, and December 3, 2020]]\\ * [[UST: Meeting Minutes November 23, November 24, and November 26, 2020]]\\ * [[UST: Meeting Minutes November 16, November 17, and November 19, 2020]]\\ * [[UST: Meeting Minutes November 9, November 10, and November 12, 2020]]\\ * [[UST: Meeting Minutes November 2, November 3, and November 5, 2020]]\\ * [[UST: Meeting Minutes October 26, October 27, and October 29, 2020]]\\ * [[UST: Meeting Minutes October 19, October 20, and October 22, 2020]]\\ * [[UST: Meeting Minutes October 12, October 13, and October 15, 2020]]\\ * [[UST: Meeting Minutes October 5, October 6, and October 8, 2020]]\\ * [[UST: Meeting Minutes September 28, September 29, and October 1, 2020]]\\ * [[UST: Meeting Minutes September 21, September 22, and September 24, 2020]]\\ * [[UST: Meeting Minutes September 14, September 15, and September 17, 2020]]\\ * [[UST: Meeting Minutes September 8, and September 10, 2020]]\\ * [[UST: Meeting Minutes September 3, 2020]]\\ ** Spring 2020 ** * [[UST: Meeting Minutes March 10, and March 12, 2020]]\\ * [[UST: Meeting Minutes March 3, and March 5, 2020]]\\ * [[UST: Meeting Minutes February 25, and February 27, 2020]]\\ * [[UST: Meeting Minutes February 18, and February 20, 2020]]\\ * [[UST: Meeting Minutes February 11, and February 13, 2020]]\\ * [[UST: Meeting Minutes February 4, and February 6, 2020]]\\ * [[UST: Meeting Minutes January 28, and January 30, 2020]]\\ * [[UST: Meeting Minutes January 21, and January 23, 2020]]\\ ** Fall 2019 ** * [[UST: Meeting Minutes December 2, and December 3, 2019]]\\ * [[UST: Meeting Minutes November 25, and November 26, 2019]]\\ * [[UST: Meeting Minutes November 18, and November 19, 2019]]\\ * [[UST: Meeting Minutes November 12]]\\ * [[UST: Meeting Minutes November 4, and November 5, 2019]]\\ * [[UST: Meeting Minutes October 28, and October 29, 2019]]\\ * [[UST: Meeting Minutes October 21, and October 22, 2019]]\\ * [[UST: Meeting Minutes October 14, and October 15, 2019]]\\ * [[UST: Meeting Minutes October 7, and October 8, 2019]]\\ * [[UST: Meeting Minutes September 30, and October 1, 2019]]\\ * [[UST: Meeting Minutes September 23, and September 24, 2019]]\\ * [[UST: Meeting Minutes September 16, and September 17, 2019]]\\ * [[UST: Meeting Minutes September 9, and September 10, 2019]]\\ * [[UST: Meeting Minutes September 3, 2019]]\\ ** Spring 2019 ** * [[UST: Meeting Minutes April 30, and May 1, 2019]]\\ * [[UST: Meeting Minutes April 25, and April 26, 2019]]\\ * [[UST: Meeting Minutes April 18, and April 19, 2019]]\\ * [[UST: Meeting Minutes April 9, April 11, and April 12, 2019]]\\ * [[UST: Meeting Minutes April 4, and April 5, 2019]]\\ * [[UST: Meeting Minutes March 28, and March 29, 2019]]\\ * [[UST: Meeting Minutes March 14, and March 15, 2019]]\\ * [[UST: Meeting Minutes March 7, and March 8, 2019]]\\ * [[UST: Meeting Minutes February 28, and March 1, 2019]]\\ * [[UST: Meeting Minutes February 21, and February 22, 2019]]\\ * [[UST: Meeting Minutes February 14, and February 15, 2019]]\\ * [[UST: Meeting Minutes February 7, and February 8, 2019]]\\ * [[UST: Meeting Minutes January 31 and February 1, 2019]]\\ * [[UST: Meeting Minutes January 25, 2019]]\\ * [[UST: Meeting Minutes January 18, 2019]]\\ * [[UST: Meeting Minutes January 17, 2019]]\\ * [[UST: Meeting Minutes January 16, 2019]]\\ ** Fall 2018 ** * [[UST: Meeting Minutes December 3, 2018]]\\ * [[UST: Meeting Minutes November 30, 2018]]\\ * [[UST: Meeting Minutes November 26, 2018]]\\ * [[UST: Meeting Minutes November 19, 2018]]\\ * [[UST: Meeting Minutes November 16, 2018]]\\ * [[UST: Meeting Minutes November 9, 2018]]\\ * [[UST: Meeting Minutes November 5, 2018]]\\ * [[UST: Meeting Minutes November 2, 2018]]\\ * [[UST: Meeting Minutes October 29, 2018]]\\ * [[UST: Meeting Minutes October 26, 2018]]\\ * [[UST: Meeting Minutes October 22, 2018]]\\ * [[UST: Meeting Minutes October 19, 2018]]\\ * [[UST: Meeting Minutes October 15, 2018]]\\ * [[UST: Meeting Minutes October 12, 2018]]\\ * [[UST: Meeting Minutes October 8, 2018]]\\ * [[UST: Meeting Minutes September 28, 2018]]\\ * [[UST: Meeting Minutes September 24, 2018]]\\ * [[UST: Meeting Minutes September 21, 2018]]\\ * [[UST: Meeting Minutes September 17, 2018]]\\ * [[UST: Meeting Minutes September 14, 2018]]\\ * [[UST: Meeting Minutes September 10, 2018]]\\ * [[UST: Meeting Minutes September 7, 2018]]\\ * [[UST: Meeting Minutes August 31, 2018]]\\ * [[UST: Meeting Minutes August 28, 2018]]\\ ** Spring 2018 **\\ * [[UST: Meeting Minutes April 27, 2018]]\\ * [[UST: Meeting Minutes April 26, 2018]]\\ * [[UST: Meeting Minutes April 24, 2018]]\\ * [[UST: Meeting Minutes April 20, 2018]]\\ * [[UST: Meeting Minutes April 19, 2018]]\\ * [[UST: Meeting Minutes April 17, 2018]]\\ * [[UST: Meeting Minutes April 13, 2018]]\\ * [[UST: Meeting Minutes April 11, 2018 ours]]\\ * [[UST: Meeting Minutes April 11, 2018]]\\ * [[UST: Meeting Minutes April 6, 2018]]\\ * [[UST: Meeting Minutes March 20, 2018]]\\ * [[UST: Meeting Minutes March 16, 2018]]\\ * [[UST: Meeting Minutes March 13, 2018]]\\ * [[UST: Meeting Minutes March 9, 2018]]\\ * [[UST: Meeting Minutes March 6, 2018]]\\ * [[UST: Meeting Minutes March 2, 2018]]\\ * [[UST: Meeting Minutes February 27, 2018]]\\ * [[UST: Meeting Minutes February 23, 2018]]\\ * [[UST: Meeting Minutes February 20, 2018]]\\ * [[UST: Meeting Minutes February 16, 2018]]\\ * [[UST: Meeting Minutes February 13, 2018]]\\ * [[UST: Meeting Minutes February 9, 2018]]\\ * [[UST: Meeting Minutes February 6, 2018]]\\ * [[UST: Meeting Minutes February 2, 2018]]\\ * [[UST: Meeting Minutes January 30, 2018]]\\ * [[UST: Meeting Minutes January 26, 2018]]\\ * [[UST: Meeting Minutes January 23, 2018]]\\ * [[UST: Meeting Minutes January 19, 2018]]\\ * [[UST: Meeting Minutes January 16, 2018]]\\ **Spring 2016** * [[weatherbox:firmware:meeting_minutes_may_4_2016|Firmware Team Meeting - May 4, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_april_27_2016|Firmware Team Meeting - April 27, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_april_20_2016|Firmware Team Meeting - April 20, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_april_13_2016|Firmware Team Meeting - April 13, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_april_6_2016|Firmware Team Meeting - April 6, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_march_16_2016|Firmware Team Meeting - March 16, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_march_9_2016|Firmware Team Meeting - March 9, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_march_2_2016|Firmware Team Meeting - March 2, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_february_24_2016|Firmware Team Meeting - February 24, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_february_17_2016|Firmware Team Meeting - February 17, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_february_10_2016|Firmware Team Meeting - February 10, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_february_3_2016|Firmware Team Meeting - February 3, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_january_27_2016|Firmware Team Meeting - January 27, 2016]]\\ * [[weatherbox:firmware:meeting_minutes_january_20_2016|Firmware Team Meeting - January 20, 2016]]\\ **Fall 2015** * [[weatherbox:firmware:meeting_minutes_december_8_2015|Firmware Team Meeting - December 8, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_december_1_2015|Firmware Team Meeting - December 1, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_november_24_2015|Firmware Team Meeting - November 24, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_november_17_2015|Firmware Team Meeting - November 17, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_november_10_2015|Firmware Team Meeting - November 10, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_november_3_2015|Firmware Team Meeting - November 3, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_october_27_2015|Firmware Team Meeting - October 27, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_october_20_2015|Firmware Team Meeting - October 20, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_october_13_2015|Firmware Team Meeting - October 13, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_october_6_2015|Firmware Team Meeting - October 6, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_september_29_2015|Firmware Team Meeting - September 29, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_september_22_2015|Firmware Team Meeting - September 22, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_september_15_2015|Firmware Team Meeting - September 15, 2015]]\\ * [[weatherbox:firmware:meeting_minutes_september_10_2015|Firmware Team Meeting - September 10, 2015]]\\ ---- ===== Presentations ===== **Spring 2018** * {{:weatherbox:firmware:firmware_s18_proposal_presentation.pdf|Proposal Presentation}} * {{:weatherbox:firmware:firmware_s18_pdr_presentation.pdf|PDR Presentation}} * {{:weatherbox:firmware:firmware_s18_cdr_presentation.pdf|CDR Presentation}} * {{:weatherbox:firmware:firmware_s18_final_presentation.pdf|Final Presentation}} **Fall 2016** * {{:weatherbox:firmware:software_proposal_presentation.pdf|Proposal Presentation}} * {{:weatherbox:firmware:software_pdr_presentation.pdf|PDR Presentation}} * {{:weatherbox:firmware:software_cdr_presentation.pdf|CDR Presentation}} * {{:weatherbox:firmware:software_final_presentation.pdf|Final Presentation}} **Spring 2016** * {{:weatherbox:firmware:firmware_proposal_presentation.pdf|Proposal Presentation}} * {{:weatherbox:firmware:firmware_pdr_presentation.pdf|PDR Presentation}} * {{:weatherbox:firmware:cranberry_dragonfruit_firmware_cdr_sp16.pdf|CDR Presentation}} *{{:weatherbox:firmware:firmware_final_presentation_2016.pdf|Final Presentation}} **Fall 2015** * {{:weatherbox:firmware_proposal.pdf|Proposal Presentation}} * {{:weatherbox:firmware_pdr.pdf|PDR Presentation}} * {{:weatherbox:firmware:firmware_cdr_presentation.pdf|CDR Presentation}} * {{:weatherbox:firmware:firmware_final_presentation.pdf|Final Presentation}} ----