Evan Grahs’s Work Log

  • Post author:
  • Post last modified:April 20, 2024
  • Reading time:66 mins read
  • Post category:Work Logs

2024 Spring Semester Work Log

Week 3

2024 Spring Semester Week 3 Update

This Week’s Assignment

This week, we were asked to sketch our individual ideas about what our project will look like at the end of the semester. Attached below is my sketch of a front view (external and internal) approximating what our smart plug might look like and some features it might have.

This Week’s Progress

Website Development

  • Created tutorial series for account setup, author profile creation, and work log editing.
  • Debugged synced patterns issue, updated site components, changed configuration to work with newer versions of plugins and software.
  • Improved permissions and account management tools for site administrators.

Next Week’s Goals

KeWee Energy Meters

  • Make a demo web server / Wi-Fi AP on the new Arduino Nano ESP32 unit.
  • Compare library options for interfacing with the Wi-Fi module.
  • After selecting a library, research and get familiar with available functionality.

Next Week’s Concerns

KeWee Energy Meters

  • Wi-Fi communication and web server should support encryption, but that hasn’t been the case with some content I’ve found thus far.
Week 4

2024 Spring Semester Week 4 Update

This Week’s Progress

KeWee Energy Meters

Website Development

  • End user support for issues with website / tutorial instructions / etc.

Next Week’s Goals

KeWee Energy Meters

  • Map out what code can be re-used and what needs to be implemented with the new Nano ESP32.
  • Attempt HTTPS communications (as the client, not yet sure about how to do so as the server on Arduino.)
  • Research on-device encrypted storage options (or methods for encrypting data on Arduino).

Next Week’s Concerns

KeWee Energy Meters

Week 5

2024 Spring Semester Week 5 Update

This Week’s Assignment

This week, we were asked to create a diagram showing the various states our device could be in. Attached below is my diagram showing the various states the Arduino’s software can be in during normal operation and which states can transition to other states.

This Week’s Progress

KeWee Energy Meters

Next Week’s Goals

KeWee Energy Meters

  • Begin working with HTTPS libraries to build the on-device server for configuration and management over LAN/Wi-Fi AP.
  • Test out new Preferences.h method for persistent storage, replacing EEPROM and LittleFS methods used before.
  • Devise and test a key generation strategy for encrypting data stored to Flash with Mbed-TLS/AES library.
Week 6

2024 Spring Semester Week 6 Update

This Week’s Progress

KeWee Energy Meters

  • Attempted Preferences.h configuration with bad results: soft-bricked board restarting before loading or storing any configuration.
  • Made presentation slides for CDR next week.
  • I was sick and missed most classes this week, so my goals from last week are my goals this next week as well.

Next Week’s Goals

KeWee Energy Meters

  • Begin working with HTTPS libraries to build the on-device server for configuration and management over LAN/Wi-Fi AP.
  • Test out new Preferences.h method for persistent storage, replacing EEPROM and LittleFS methods used before.
  • Devise and test a key generation strategy for encrypting data stored to Flash with Mbed-TLS/AES library.
Week 7

2024 Spring Semester Week 7 Update

This Week’s Assignment

This week, we were asked to upload an image demonstrating progress on our project. My work has been heavily research and code based, I’ve attached a screenshot of my now working Preferences.h experiment, but see the links below as well for more of what I was up to.

This Week’s Progress

KeWee Energy Meters

Next Week’s Goals

KeWee Energy Meters

  • Continue working on an on-device HTTPS server using “esp_https_server.h”
  • Devise and test a key generation strategy for encrypting data stored to Flash with Mbed-TLS/AES library.

Website Development

  • Schedule meeting with Web Developers team to give members some tasks, and begin handing off admin duties to Xavier Haupt.
Week 8

2024 Spring Semester Week 8 Update

This Week’s Progress

KeWee Energy Meters

  • Focused on the HTTP components of the HTTPS server after running into issues getting a server certificate to not reject clients immediately. Will re-attempt to enable SSL/TLS later, which should be a minor change since everything is using the same “esp_https_server.h” with just a configuration difference to disable SSL/TLS.
  • Completed a working Wi-Fi Access Point with an HTTP Server capable of serving clients with data, along with all supporting abstractions (some of which are partially implemented but need more work).
  • Did not get to dealing with on-device encrypted storage.

Website Development

  • Met with Web Developers team to determine team projects. Also worked with Xavier Haupt to hand off some administrative tasks and updated user access/permissions.

Next Week’s Goals

KeWee Energy Meters

  • Continue working on an on-device HTTP server using “esp_https_server.h”
  • Possibly devise and test a key generation strategy for encrypting data stored to Flash with Mbed-TLS/AES library.
Week 9

2024 Spring Semester Week 9 Update

This Week’s Assignment

Image showing progress on project. This image shows the current main project folder with the new files developed so far. This week work commenced in HTTP Client, Request, Server, as well as the main test sketch.

This Week’s Progress

KeWee Energy Meters

  • Continued development and testing of HTTP Server, verified able to serve various files and content in another project.
  • Added ability to connect to existing Wi-Fi network.
  • Tried to implement HTTP Client, with severe crashes on instantiation that I haven’t been able to resolve yet.
  • Did not get to dealing with on-device encrypted storage.

Website Development

  • Met again with Xavier Haupt to hand off the remaining admin credentials and responsibilities.

Next Week’s Goals

KeWee Energy Meters

  • Add some POST functionality to the HTTP Server for receiving input data.
  • Fix bugs and make GET requests as HTTP Client.
  • Possibly devise and test a key generation strategy for encrypting data stored to Flash with Mbed-TLS/AES library.
Week 10

2024 Spring Semester Week 10 Update

This Week’s Progress

Full disclosure, this week I allocated my time elsewhere besides Enterprise due to 1. excessive time investment in past weeks, including over Spring Break, burning out my energy for this project 2. other academic and adjacent items taking my time and 3. just needing to step away from some of the setbacks I’ve been working through in this project to clear my head. That said, here is what did happen:

KeWee Energy Meters

  • Began work on HTTP Post functionality for the HTTP Server (not parsing key-value pairs yet).
  • Began researching alternative options to current HTTP library.

Next Week’s Goals

KeWee Energy Meters

  • Get POST requests working on HTTP Server with key-value pair parsing.
  • Fix bugs and make GET requests as HTTP Client, or alternatively switch underlying library used for this objective.
  • Possibly devise and test a key generation strategy for encrypting data stored to Flash with Mbed-TLS/AES library.
Week 11

2024 Spring Semester Week 11 Update

This Week’s Assignment

Sketch of what the project might look like at the end of the semester. Changes from Week 3 Sketch: 1. Removed relay – likely to not be included. 2. No reset button, not a priority at this time. 3. Resized AC/DC converter to reflect selected part. 4. Modified case size to reflect more realistic results (taller, similar width, similar depth).

This Week’s Progress

KeWee Energy Meters

  • Shifted to helping with hardware / software interfacing that has been a stuck for the rest of the team. (Delaying HTTP work further… but sensing is higher priority.)
  • Read through IC documentation on utilizing I2C interface for communicating with the chip’s EEPROM, attempted to make test code but failed to get response from the chip (it will assert ACK to anything sent, but never responds with meaningful data).
  • Verified test I2C code by communicating between two Arduinos with one configured as Controller and the other as Peripheral, where the Peripheral emulated expected functioning of the power monitoring IC.

Website Development

  • Added URL Shortening capability to the website.
  • Updated Admin Panel to include tutorial content that was previously only available in the Discord.
  • Patched a security vulnerability by disabling XML-RPC.
  • Organized custom code snippets.

Next Week’s Goals

KeWee Energy Meters

  • Likely more assistance with I2C / Sensor Interfacing issues.
  • Add some POST functionality to the HTTP Server for receiving input data.
  • Fix bugs and make GET requests as HTTP Client.
  • Possibly devise and test a key generation strategy for encrypting data stored to Flash with Mbed-TLS/AES library.
Week 12

2024 Spring Semester Week 12 Update

This Week’s Progress

KeWee Energy Meters

  • Made code that successfully communicates with the IC! The other one was indeed fried, but took more work than just swapping the IC to properly establish communication and fix a few bugs in interpreting the data.
  • Got a basic HTTP POST handler working and receiving the content of the request. May revise with different string handling for memory leak reasons later.

Next Week’s Goals

KeWee Energy Meters

  • Get a bit more organized to help prioritize my time in this final stretch. List all software components I’d like to have working and rank in priority, and what points I have to make critical decisions to bail on overly ambitious wishes.
  • Fix bugs and make GET requests as HTTP Client.
  • Possibly devise and test a key generation strategy for encrypting data stored to Flash with Mbed-TLS/AES library.
Week 1

2024 Spring Semester Week 13 Update

This Week’s Progress

KeWee Energy Meters

  • Continued working on HW/SW integration side of things by making a library with helper methods to assist in extracting data from the chip, all that is left is converting the bits to meaningful numbers.
  • Set priority order for what software components remain to build / finish first.
  • Started final report drafting. Identified areas that need more work for when the final report is due.

Next Week’s Goals

KeWee Energy Meters

  • Finish HTTP calls for data uploading.
  • Make some amount of the debugging light codes.
  • Add some way to connect and configure device.
Week 14

2024 Spring Semester Week 14 Update

This Week’s Assignment

Image of the state of the device (see final report for more polished version).

This Week’s Progress

KeWee Energy Meters

  • Worked with Hardware Team for several hours on getting voltage sensing working and correcting errors in I2C communication / sensing mathematics.

Next Week’s Goals

KeWee Energy Meters

  • Integrate everything the hardware side of things has to offer with the server.

2023 Fall Semester Work Log


2023 Fall Semester Week 10 Update

This Week’s Progress

KeWee Energy Meters

  • Assisted diagnosing more current sensor issues and troubleshooting sensing code.
  • Continued work on HTTP library rewrite (after trying to find something already available that does what I need).

Next Week’s Goals

KeWee Energy Meters

  • Work with team to continue troubleshooting hardware problems.
  • Keep progressing on codebase update/rewrite for the Arduino software.

2023 Fall Semester Week 9 Update

This Week’s Progress

Image testing ACS712 sensor output with fume extractor as a load.

KeWee Energy Meters

Next Week’s Goals

KeWee Energy Meters

  • Continue documentation work.
  • Continue codebase rewrite.
  • Meet with team and offer assistance in debugging and troubleshooting.

Website Development

  • Assess team progress and offer assistance where needed.

2023 Fall Semester Week 6 Update

This Week’s Progress

KeWee Energy Meters

  • Some documentation work for setup handshake.
  • Assisted testing migration to Arduino Nano from Uno.
  • Worked on CDR Slides & practiced personal sections of presentation.

Website Development

  • Communicated about some individual work log posts that needed to be merged into one post.
  • Verified plugins are updating and no major site issues are present.

Next Week’s Goals

KeWee Energy Meters

  • Practice & deliver CDR presentation.
  • Continue documentation work.
  • Begin assessing code rewrite plans.

Website Development

  • Continue maintenance.
  • Check in with web developer team projects.

2023 Fall Semester Week 5 Update

This Week’s Progress

KeWee Energy Meters

  • Setup documentation tool for entire team to use going forward, and began exploring ways to use it.
  • Worked with team members to debug testing code and hardware issues as we migrate all hardware code to the Arduino Nano RP2040 Connect.

Website Development

  • Met with team to distribute semester objectives for additional site content / features.
  • Created roles with required permissions for standard Web Developer team projects.

Next Week’s Goals

KeWee Energy Meters

  • Work on API documentation of device / server communication, emphasizing initial handshakes during setup.
  • Continue collaboration with new team members to share institutional knowledge.

Website Development

  • Support team member project work as needed.
  • Routine maintenance and general site monitoring.

2023 Fall Semester Week 4 Update

This Week’s Progress

KeWee Energy Meters

  • Migrated codebase to GitHub Repository for collaboration and version control.
  • Demoed existing software and server for new team members.
  • Began brainstorming major codebase updates while explaining existing software to new team members.

Website Development

  • Reviewed and adjusted any issues observed with the Authors page / template / author images.
  • Made and posted a tutorial video for students posting updates to the website, how to use the editor, and some general content guidelines and advice.

Next Week’s Goals

KeWee Energy Meters

  • Explore existing APIs that might provide insight into documentation style and structure.
  • Begin designing API documentation that considers how the codebase needs to be restructured and reworked.

Website Development

  • Meet with new Website Developers team to find objectives for each person.
  • Train other Website Developers on the existing OSHE site, ideally finding a good documentation method / platform for this information.