Intern: Ben Katz
Faculty advisor: Jakub Kolodziejski
Source Code: GitLab Repository
Design, fabricate, and field-test a compact Arduino-based PCB that adds hyper-local environmental sensing — temperature, humidity, barometric pressure, particulate matter, and ambient noise — to COSMOS deployment sites. The intern will take the project from schematic capture and component selection through PCB layout, firmware development, and integration with the COSMOS edge data plane, producing an open-hardware module that feeds the sensor-fusion algorithms.
Week 1 (05/26-05/28)
Evaluated potential enviromental enviromental sensors that are compatible with the Arduino enviroment. I familirzed myself with digital, I2C sensors and downloaded libraries for the AmbiMate MS4 sensor. I successsfully connected the AmbiMate MS4 to the Arduino Uno to get real time temperature, humidity, TVOC, eCO2, audio, motion, and voltage data.
Week 1 Slides
Week 2 (06/01-06/04)
During my second week at WINLAB, I integrated the BMP085 barometric pressure sensor with the Arduino Uno and utilized the sensor libraries to collect real-time atmospheric pressure, temperature, and altitude measurements. To prepare the sensor for prototyping, I soldered right-angle header pins onto the BMP085 breakout board and connected both the BMP085 and AmbiMate MS4 sensors to the Arduino using a breadboard. This required configuring the I²C communication bus so that both sensors could operate simultaneously using parallel SDA and SCL connections. In addition, I created a KiCad schematic documenting the complete sensor-to-Arduino wiring configuration, providing a foundation for future PCB and enclosure development. Through this work, I gained experience with sensor integration, soldering, breadboard prototyping, I²C communication, and electronic schematic design.
Week 2 Slides
Week 3 (06/08-06/11)
I expanded the environmental sensor package by researching and evaluating additional atmospheric, air quality, vibration, and acoustic sensors compatible with the Arduino platform and will perform well on TEENSY. I selected and began integrating the Sensirion SPS30 particulate matter sensor, ADXL345 accelerometer, Fermion NO₂ sensor, MQ-series gas sensors, ozone sensor, and ICS-43434 MEMS microphone to significantly broaden the environmental dataset available for correlation analysis. I updated the KiCad schematic to incorporate the new sensors, documented their communication interfaces and power requirements, and developed a comprehensive data inventory including particulate matter, gaseous pollutants, vibration, motion, and acoustic measurements. This work established the foundation for future hardware integration, enclosure design, sensor validation, and real-world deployment on COSMOS nodes.
Week 3 Slides
Week 4 (06/15-06/18)
During my fourth week at WINLAB, I integrated the MQ-7 and MQ-4 sensors into the testbed on a second breadboard. I created functional code to pull raw pollutant readings from the sensors in the Arduino IDE and successfully obtained real-time data. This week, I also familiarized myself with Fusion 360 and began designing the enclosure for the sensor package.
Week 4 Slides
Week 5 (06/22-06/25)
This week, I researched the Teensy 4.0 microcontroller and compared it to the Arduino UNO Rev3. I evaluated the tradeoffs between the two platforms based on the project’s sensor package requirements and the COSMOS infrastructure, particularly with respect to supporting USB-enabled sensors and future expansion. In addition, I continued developing the enclosure for the sensor package, designing dedicated mounting features for both the SPS30 particulate matter sensor and the Teensy 4.0, which will serve as the primary microcontroller in the final prototype.
Week 5 Slides
Week 6 (06/29-07/02)
For my sixth week at WINLAB, I integrated the N-channel MOSFET heater control circuit, cleaned up the breadboard wiring and KiCad schematic, validated the AmbiMate humidity sensor, finalized the first version of the 3D-printed prototype enclosure, and prepared the Sensirion SPS30 particulate matter sensor for integration.
Week 6 Slides
Week 7 (07/06-07/09)
During Week 7, I transitioned the environmental sensor package from the Arduino Uno to the Teensy 4.0 microcontroller and integrated additional MQ-series gas sensors into the prototype. I implemented independent MOSFET heater control and timing logic for the gas sensors, allowing controlled warm-up, measurement, and cooling cycles. I also designed and tested a resistor-based voltage divider to safely interface 5 V analog sensor outputs with the Teensy's 3.3 V ADC inputs. Finally, I updated the KiCad schematic and continued troubleshooting hardware integration, sensor interfacing, and Teensy compatibility.
Week 7 Slides
Week 8 (07/13-07/16)
This week, I completed the Grafana data pipeline by sending sensor data from Python to InfluxDB and visualizing it in Grafana. This included saving the data to GitLab so the pipleine is open source. I also resoldered several cold joints to improve the reliability of the sensor connections.
Week 8 Slides
Week 9 (07/20-07/23)
For week 9 I refined the CAD design for the shell of the sensor pack. These refinements were done to maximize airflow and making the shell more compact with less intternal volume. I also worked on validating heater data by stabilizing the sensors with pre-burnout protocols.
[CAD Assembly]