Contents
- SD Document (PDF)
- SRS Document (PDF)
- Final Presentation (PDF)
- Final Demo Video
- Week 10 Presentation (PDF)
- Week 10 Demo Video
- Meeting Minutes
5/9 - Meeting #34
Start Time: 4:00 pm - End Time: pm
Kathryn Rohlfing, Tingkai Li
Discussed:
Error in capacity data being loaded in graph
From the downloaded data on the frontend, some of the values look right (should be 0.0…. not 3….)
Likely an error within the initial database load
Gaps in data, runner.py not always running, possibly when lab computer is sleeping
Differential graphs won’t necessarily work since the time between data points is too small, not something for this team to fix
Need to fix x/y labels on first QV graph, and units should be mAh on that page, not Ah
5/6 - Meeting #33
Start Time: 4:00 pm - End Time: 4:30 pm
Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams,YewKen Chai, Tingkai Li, Chao Hu, Simanta Mitra, Carey Novak
Discussed:
Final demo for client
Capacity/voltage values are too large in capacity fade graph
Add key to prediction diagram
QV should have x and y axis swapped potentially
Values are not quite right, but not sure why
Work with Dr. Hu to fix errors in the data before submission
Look at sample excel file
Can have a Zoom or in-preson meeting with Tingkai
Provide documentation on all the pieces and how to run to Dr. Hu
Save data as csv rather than json
Meet on Monday with Tingkai at 1 pm
5/5 - Meeting #32
Start Time: 1:00 pm - End Time: 2:00 pm
Kathryn Rohlfing, Evan Williams
Discussed:
Adding prediction code to the frontend
Moving threshold input from home page, since it has to be provided for prediction code anyways
5/2 - Meeting #31
Start Time: 10:0 pm - End Time: 10:30 pm
Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams,YewKen Chai
Discussed:
Real data loads from database now
Needed to change cid to id in frontend to make correct database calls
Some errors with database if no data is found in capacity table for a row in genTable
Channel Name is not showing up on frontend, some debugging needed
5/2 - Meeting #30
Start Time: 5:30 pm - End Time: 6:00 pm
Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams,YewKen Chai
Discussed:
Worked on presentation
Expect that database should be done
Aidan will meet with with Ken tonight to discuss
For demo, Kathryn will show either live frontend site or pre-recorded video
Jihoo will remote into lab computer on his laptop, Ken and Aidan will go over that demo
Ken and Aidan will work on database tonight
5/1 - Meeting #29
Start Time: 2:15 pm - End Time: 4:00 pm
Jihoo Kim, Kathryn Rohlfing, Evan Williams
Discussed:
Worked on updating documentation
server.py, client.py, related files not in use anymore due to database
Need clarification on some of the backend files, but a first draft of components has been written for all
4/29 - Meeting #28
Start Time: 4:00 pm - End Time: 4:30 pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams, Tingkai Li
Discussed:
From Jihoo: INSERT INTO table_name (column_list) VALUES (value_list_1)
Dr. Hu is in a different meeting currently, won’t be able to join
Tingkai says frontend has the major features wanted for the site
Able to get data from the Neware API into the database prior to its crash
This is from the http request loading method
Not currently displayed in frontend
SQL database can store up to 1 trillion rows so should be able to store the full file
Jihoo has idea to solve it by changing how the initial load is done
Can also write into file and use import manually
Ken says can also return latest in a timestamp, but sometimes 2 rows have same timestamp so data may be lost this way
Tingkai says that there should be a slight difference between all
But, if they’re written too close to each other and data is pulled every 5 seconds, a few points could be lost
Shouldn’t be a problem as they will do interpolation on the data anyways
Ken working on splitting cycling and testing dataset
Is there any indicator that current cell will finish soon? Thinking a way to do it would be check data every few minutes to see if timeseries type has changed, but this would be expensive,
No automatic way Tingkai says
Neware API only returns most recent testing timeseries
Tingkai says don’t set characterization/cycling test based on things like how long they’re running based on their current setup
Could change how they’re running things, such as longer cycling tests only
No fixed time, cycling test is manually stopped but characterization is automatically stopped
Would be better to manually put in parameters for users
On home page, set whether a cell uses characterization or cycling
Text field input so there can be more choices later
Jihoo will add endpoint to update test type
Predicting cycle life is most important graph to have
Deadline would be next week for dead week
Tingkai will check with Dr. Hu to see if he wants to meet - would be good to do final presentation for him and Carey
4/28 - Meeting #27
Start Time: 4:30 pm - End Time: 6:20pm
Jihoo Kim, YewKen Chai, Aidan Webster
Discussed:
We will reconvene later tonight once the JSON formatting has been changed
Refactoring JSON object format to match database
Make a dictionary where keys are the “channel IDs” 1-64, and the values are lists of JSON objects where each object is a data point that contains current,capacity,voltage, etc.
Make one JSON object per channel id where the format is { cell name channel id status } (edited) [5:34 PM]
the cell name can just be the exact same as the channel id, which is the "1-1" name field [5:35 PM]
Established python to sql connection
Things that need to be changed in database:
Change time field to string instead of datetime
Removed redundant q entry
Change channel id to 1-1,1-2, will be provided as input 1-64
4/28 - Meeting #26
Start time: 12:40 pm - End time: 12:50 pm
Kathryn Rohlfing, Evan Williams, Dr. Mitra
Discussed:
Need to meet with Chao to show him progress on our project
For class presentation, also demo remoting into the lab computer and showing how data is pushed to the database
4/26 - Meeting #25
Start time: 12:15 pm - End time: 1:00 pm
Kathryn Rohlfing, Evan Williams
Discussed:
415 error with the put request for names -resolved by adding a content-type header
Decided to make a database call to refresh the table when the name is changed so that it’s as user-friendly as possible and reflects changes as quickly as possible
To-do: finalize course website including team members page, documentation, verify that all data shows up properly when database is filled with real data
4/22 - Meeting #24
Start time: 4:00 pm - End time: 4:30pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Tingkai Li
Discussed:
For graphs, y axis should be between 3 and 4.2 for capacity/voltage, x maximum 0.27 ish (units Mah)
Frontend download works, and update to CanvasJS is complete - home page pulls from endpoints, graph page needs to be updated to pulling from database
Jihoo says endpoint should be complete by next week
Aidan has made good progress on pushing data to the database
Ken working on the Gaussian process code from last week
Takes some modifications to get it to work
Data may be stored on lab computer, not Neware
API is giving only most current cycle currently
At first may need something to get initial data, but eventually just updating it with newest data should work
Double exponential graph only, not other 8 models provided in example
Max number of channels is 64 in tester
4/19 - Meeting #23
Start time: 12:40 pm - End time: 1:00 pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams
Discussed:
Id in capacity read_table request is channel request
Jihoo can add more endpoints, will send him data of what the frontend needs
At least one for capacity read to only return top data, since home page only needs most recent
Kathryn will send current documentation, eventually need backend assistance but main priority is getting real data to database
4/15 - Meeting #22
Start time: 4:00 pm - End time: 4:15 pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams, Tingkai Li
Discussed:
Ok to use CanvasJS - can apply for student license, but also ok in the meantime to just use the trial version
Capacity-voltage x axis should have a max value of about .2, not 5. Need to take a look at this
Database should be working in the next 1-2 days
Graph data from Ken and Aidan should all be up to date – they’ll look this weekend at the remaining life prediction
Ken asked What values should we use for the first prediction time and and end of life threshold when predicting for your cells?
Tingkai says that the end of life threshold should be 80% (.8)
May need to modify a bit to make prediction from 3rd or 4th week
May be able to split characterization and cycling test - only the characterization tests should be used for end of life prediction
Easiest way is to, when storing in database, label the different kinds, but need to be able to determine what kind of a test it is
Alternates between cycle and characterization test
Simplest way to distinguish between the two cycles is based on how long they run
NDA file records end capacity of each step
Can store this for each step in a separate table in database (Capacity of discharge(Ah) - make sure it’s a discharge status, and get that row’s capacity
One value each week
4/13 - Meeting #21
Start time: 3:30 pm - End time: 4:00pm
Evan Williams, Kathryn Rohlfing
Discussed:
Victory is having difficulty rendering the full size of the real data
Evan will test using react-timeseries charts to see if it handles the larger dataset better
Kathryn will work on jsdocs
4/8 - Meeting #20
Start time : 4:00 pm - End time: 4:30pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams, Tingkai Li
Discussed:
For download data, want to be able to get all data for a particular cycle (or range of cycles, not just for each graph
Important to be able to track cycles in the database
Edit Cell names feature looks good
Monthly flush of database should be fine, may check with Chao to be sure
Tingkai will check on machine learning/prediction status
Will likely be part of the capacity fade surve if we implement it
4/5 - Meeting #19
Start time : 2:45 pm - End time: 3:30pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams
Discussed:
Want to ask Friday - do we need to call/display machine learning algo, or just have data available to download
Graph data should be done this Friday (tentative)
Update runner.py to make http requests
Jihoo will work on database
Should be done in next week
How often do we need to get rid/flush test data from database?
Shouldn’t have to store real-time in database, just history (for graphs) and also battery cell names
To-Do:
Display graph data
Add a slider to move across steps?
Can view and download past channel data
List all previously stored data, when clicked shows graphs
Create a database to store 1. past test data 2. current cell names
Table 1: 20 cell names
Table 2: Tables for previous test data
May need 2 tables, 1 with intervals of seconds and 1 with cycles
How often do we need to flush old(est) data?
Can change cell names on frontend, saves to db, pull down updated data
Send full data to server/database, then in a particular response send back only needed columns etc to frontend
Will update runner.py to run as service to start on boot
4/1 - Meeting #18
Start time: 4:00 pm - End time: 4:30pm
Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams, Dr. Mitra, Chao Hu, Tingkai Li, Carey Novak
Discussed:
Need to get graphs loaded
Frontend should be able to filter/sort data
Need to get cycles column, since that’s the basis of their data
Database to store everything, Jihoo is working on this
Need to be able to display web page on different computers/host on server
Merge in other branches so that it’s all in one place
3/25 - Meeting #17 - Demo
Start time : 4:00 pm - End time: 4:30pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams
Discussed:
Need to update Cycle Life (%) column, current data is in 100s or 1000s which isn’t a percent
Currently coming from relative time parameter currently?
Not found in the raw data, will have to be computed
Should be titled like ‘Cycles Completed’, starts at 0 and counts up every time
May need to save somewhere in server etc to track that since it stops and restarts weekly
Cycle should be renamed Steps
Change Battery Name to Channel Name, and maybe have a separate Battery name that’s customizable within the UI, figure out how to track which battery name was in a particular channel at a particular time
Under Status, instead of working say either charging or discharging
Change based on current value if positive or negative
Want to be able to save how many cycles cell has gone through
Develop a file to record each battery
Example:
Battery1-1
Week 1 x number of cycles
Week 2 y number of cycles
Start counting from the present since we don’t have access to past data
Would be good eventually to display on site
Could do a separate tab on graphs page for each battery
Capacity fade graph requires for you to check past data, each data point is one cycle
Neware API has a function to get channel history (need to get the right timestamp to make sure it’s for the right cell)
Should look similar to a cubic function, but shouldn’t reach 0
3/25 - Meeting #16
Start time : 2:45 pm - End time: 3:30pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams
Discussed:
Networking looks good
Need to look into adding in the specific filepath for data in React to get networking working there (to find data from server)
Combining folders on lab computer to combine front/backend
Need to output json to a file in Backend folder so it can be sent to the server
Doesn’t work to run fronted on the server because of node version, but can run locally for demo. Will look into this next week or soon after
Main battery page runs great and updates instantly with new data, graph pages aren’t updated yet - need to decide if frontend will send a request to the backend when a battery page is opened, or how that should work to not stream all the data when it won’t be used
3/24 - Meeting #15
Start time : 12:40 pm - End time: 1:10 pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Aidan Webster, Evan Williams
Discussed:
Networking is going well: real data may take a long time since there is so much
Once the transfer data is received, info will be in server and won’t have to run locally soon (but not received yet today)
For tomorrow: run locally
Will regroup tonight or tomorrow to connect everything, backend had some bugs that should be good by tonight
3/22 - Meeting #14
Start time : 12:40 pm - End time: 1:00 pm
YewKen Chai, Jihoo Kim, Kathryn Rohlfing, Aidan Webster
Discussed:
Jihoo was able to send data to server (once, doesn’t check for updates)
Pipeline code that was on main isn’t the right one, is on a different branch
Ken will merge it into main
Aidan is almost done with data pre-processing, should be by end of day today
Will run locally for the demo
Having some issues with Teamviewer
Before Friday, need to run once to get data into json file to run on the lab computer
Thursday meeting to go over pieces
For frontend, won’t have to do any fetching to update data, updates automatically when json changes
Spring Break - No meetings occurred
3/8 - Meeting #13
Start time : 12:50 pm - End time: 1:30 pm
Evan Williams, Jihoo Kim, Kathryn Rohlfing
Discussed:
Networking
Kathryn will attempt to host frontend on class server, see if it can run
For demo on 3/25, just run it locally
Communicate directly with the lab computer, grab data directly from there and have endpoint on lab computer to send to frontend
Will ask Mitra about how to communicate between front/backend
3/4 - Meeting #12
Start time : 4:00 pm - End time: 4:15 pm
Jihoo Kim, Aidan Webster, YewKen Chai, Kathryn Rohlfing, Tingkai Li, Adam
Discussed:
Tingkai will restart lab computer to help with backend package installs
Small style changes on frontend, next big thing is just to get data from backend
Chris says they only have nda to excel, but have already figured out another option
Dummy server isn’t possible, so will need to be careful with data on lab computer
Host react project on the server (Jihoo will look into this)
2/25 - Meeting #11
Start time : 4:00 pm - End time: 4:15 pm
Evan Williams, Jihoo Kim, Aidan Webster, YewKen Chai, Kathryn Rohlfing, Tingkai Li, Carey Novak
Discussed:
Status update on project, have been able to convert nda files, updates on battery site page
Add differential curve for qv curve and capacity fade
Have main dashboard update with new data every 5-10 seconds would be good
Start with graphing data from one cycle
Will give update in about 1 month, Fri Mar 25 (need to impress Dr. Hu :)
2/24 - Meeting #10
Start time : 12:45 pm - End time: 1:52 pm
Evan Williams, Jihoo Kim, Aidan Webster, YewKen Chai, Kathryn Rohlfing
Discussed:
Still haven’t heard back from Chris :(
Backend was able to convert the .nda files into either .csv or json depending on what we want to do
Frontend cleaned up the battery graph page and added tabs for different plot curves
Determined that initially we will populate the graphs by using the .nda files. However, those files are megabytes in size so after initialization we will continuously update the graphs using the pipeline.
A feature that we decided will be very useful is a button to re-initialize the graphs if needed via the .nda file
Frontend showed how the json files are structured so the backend knows how to send the data to them in a format that is convenient
We need to ask if they want the data since the start of the test existence
Also need to ask what tests they want shown, for example if they use one battery for multiple tests do they want the ability to save old test graphs or do they just want the ability to monitor the live data?
Idea for a future feature: the ability to save and view old test graphs in an archive of sorts
Backend sending handshake message to frontend
Backend split up work:
Ken: Neware API data extraction
Aidan: Data pre-processing
Package for pre-processing: Pandas
Jihoo: Networking component (frontend to backend communication)
Package for networking: Requests
2/18 - Meeting #9
Start time : 4:15pm - End time: 4:40 pm
Evan Williams, Jihoo Kim, Aidan Webster, YewKen Chai, Kathryn Rohlfing, Tingkai Li
Discussed:
Backend was able to pull .nda files, need to talk to Chris to figure out how to parse those
Don’t need to view all of the data charts for individual battery page, plots are more important
CC_DChg means constant capacity discharge, Qv = capacity vs voltage
Frontend team received feedback on UI
2/17 - Meeting #8
Start time : 12:00pm - End time : 3:30pm
Evan Williams, Kathryn Rohlfing
Worked on:
Reviewed change to data table
Determined which columns should be present in main dashboard
Battery Name, Status, Cycle, Cur(A), Voltage(V), CapaCity(Ah), Energy(Wh), Cycle Life(%)
Began designing individual battery page
2/08 - Meeting #7
Start time : 12:40pm - End time: 1:00pm
Jihoo Kim, Aidan Webster, Kathryn Rohlfing, YewKen Chai,
Worked on:
Sent follow up email to Tingkai inquiring about the python code he has for us and when we will get to meet the Neware person/how
Kathryn showed us the progress her and Evan have made on the frontend GUI
Jihoo is going to contact Mitra to get information on getting a server for the backend and potentially presentation, Aidan will attempt to connect to Neware
2/07 - Meeting #6
Start time : 12:00pm - End time : 2:00pm
Evan Williams, Kathryn Rohlfing
Worked on:
Initial work on reactjs app
Started on an actionable data table for the list of batteries
Created new issues and layed out the next week of work to be done
2/03 - Class #4 (Presentation)
Start time : 12:40pm - End time: 1:15pm
Evan Williams, Jihoo Kim, Aidan Webster, YewKen Chai, Kathryn Rohlfing
Discussed:
Went over use cases, screens, and components/overview in class
Dr. Mitra says it would be cool to move the graph every time more data comes in
Will look into Recharts, and react-timeseries-charts
Should look into libraries for drawing graphs and also organizing code well
Sending email to client to ask about how to get data from API, server questions
2/02 - Meeting #5
Start time : 5:00pm - End time : 5:15pm
Jihoo Kim, Aidan Webster, YewKen Chai
Discussed:
Discuss backend plans for Thursday meeting
Reviewed Neware API document
2/01 - Meeting #4
Start time : 1:30pm - End time: 2:15pm
Evan Williams, Kathryn Rohlfing
Discussed:
Began sketching UI screens
2/01 - Meeting #3
Start time : 12:40pm - End time: 1:00pm
Evan Williams, Jihoo Kim, Aidan Webster, YewKen Chai, Kathryn Rohlfing
Discussed:
Preparing the use case and requirements for Thursday meeting
1/31 - Meeting #2
Start time: 5:00pm - End time: 5:45pm
Evan Williams, Jihoo Kim, Aidan Webster, YewKen Chai, Kathryn Rohlfing
Discussed:
Viewed battery test setup
Cycle: 1 charge and discharge
Not all discharges are equal (sometimes fully discharged, sometimes less)
Each cycle has steps within the cycle (don’t need to show in UI)
Tingkai will send API for battery test equipment that backend will use & python model
Began describing requirements and plan to be shared on Thursday
Frontend: Kathryn & Evan
Backend: Jihoo, Aidan, YewKen
Both email and discord work equally well
1/28 - Meeting #1
Start time: 4:00pm - End time: 4:25pm
Evan Williams, Jihoo Kim, Aidan Webster, YewKen Chai, Kathryn Rohlfing
Discussed:
Met with client for the first time
Introductions
Currently shouldn’t be a need for a server
Primarily local, web-based tool
Will be provided with sample code for stats analysis, already has some python code
UI is from scratch, can use figure in proposal as reference (can make changes as needed)
Similar to Voltaiq (but better)
Use Java or similar to import data created from python predictions
Next week schedule time to walk through lab, see test machine & data
Can all come, request to wear a mask
Needs to do 3 things listed in proposal
Dr. Mitra recommended React/JS but open to using something else as needed
For next week:
Look at lab/equipment
Monday at 5 pm, in 2081 Black Engineering
1/27 - Class #3
Evan Williams, Jihoo Kim, Kathryn Rohlfing, YewKen Chai
1/20 - Class #2
Evan Williams, Jihoo Kim, Kathryn Rohlfing, YewKen Chai
1/18 - Class #1
Evan Williams, Jihoo Kim, Kathryn Rohlfing, YewKen Chai