Team Status Report for 04/19/2025

Currently we don’t see any risks that would jeopardize our project’s success.

We made a design change to only use 1 sensor instead of 2 after realizing our data would report the same values for both sensors, so using 2 would just be wasteful. This not only simplifies our hardware-software integration, but reduces the overall cost of our design by 50%.

Our schedule has not changed.

Meadow’s Status Report for 04/19/2025

I was finally able to figure out what was wrong with saving calibration status. Now I’m able to calibrate, power off, then upload to see fully calibrated accelerometer and gyroscope. However, there is a slight hiccup that the magnetometer does not save calibration and I’m not quite sure why that is yet. Calibrating it only involves slightly moving the sensor, so even though it starts at 0 when restoring calibration, it easily reaches 3 (fully calibrated) with minimal motion. In the context of our device this shouldn’t be an issue but I will look for some fixes next week just in case. All of my sensor testing was done with an Arduino, but I just cleared our ESP to work the same way with our scripts. Because we chose an Adafruit ESP with a screen as our secondary component, I also was working on displaying battery status when the device is on. There isn’t as much documentation on how to do this as I was hoping, so it’s not working quite yet but with a bit more research I should be able to reflect the message on the screen (for now it successfully prints in the basic serial monitor). I also began to work on the final presentation and develop the physical build of the sensor. Lastly, I spoke with the team about how we’d want to represent the balance metric and we decided on graph variation that will maintain a steady state until it senses a tilt, in which the output should move in either +y or -y to indicate imbalance (fairly basic).

I am a bit behind on some of the testing procedures due to setbacks in the data department, but it shouldn’t be too hard to catch up after completing the device assembly.

So, briefly, next week I’d like to: attempt to resolve magnetometer not restoring calibration, debug battery visual appearing on ESP screen, and engage in some of our testing procedures.

Meadow’s Status Report for 4/12/2025

Since the last status report I’ve worked extensively trying to get calibration to save on the sensor, but due to the lack of documentation it has been difficult to make work. I’ve found a couple resources of claims to have done so, but even running these examples explicitly doesn’t result in a saved calibration. But I will continue to try methods in the coming week in case I can fix the issue. Aside from that, I’ve discussed the physical build of the hardware portion with Jason and we’ve come to a general consensus on it. We’re currently waiting for a key part for that, but after arrival we should be able to go to TechSpark and assemble holdings for the parts on our barbell clip. Finally I started exploring how to transmit our hardware data to the user in a presentable and easy to understand manner. Although we’re using Jamshed’s app for this, I wanted to be able to test ways to display things like balance before integrating it into the app. We were never going to use a full Arduino for the final build and our new ESP32 models arrived (what we will be using), so I got started on the setup between the new ESP32 and the BNO055 sensor using our existing Arduino script in the IDE. In short, I added the ESP32 as a board in Arduino so we can run our script in the same way, just with the right components. There’s an Arduino IO site that I also began setting up so I can try experimenting with sending the data that comes from my script into visual feedback, similarly to how it should be in our app. I think I’m a bit behind on having the sensor features working well enough to be sent directly to the app, but hopefully I can close some of those gaps in the coming week and a half before the final presentation. So, next week I hope to figure out the best way to display balance to users and make sure that Jamshed is able to read the values output by the BNO into his app in the same way we see them printed from my IDE.

Team Status Report for 3/29/2025

After our work this week, we don’t have any notable risks on the software side, but we believe there may be some uncertainty with velocity calculations. Jason’s data reports a lot of drift, and while Meadow’s data does not, it has not been verified yet. Since this has been an area of concern from other sensor users, we suspected running trouble as well. We’re attempting to manage this risk by consulting sensor velocity documentation and pinpointing our issues through testing via serial plotter. Ensuring accurate velocity should not be too difficult, but we suspect keeping it that way is where things will become questionable. We will be keeping alert on ways to prolong its accuracy or tailor the time of a user’s lift to align with how long the velocity remains stable (but this is speculation).

Currently no changes have been made to the design.

Our overall schedule has not changed.

Meadow’s Status Report for 3/29/2025

This week I wanted to work on the calibration (such that it doesn’t have to be recalibrated after disconnecting), investigating the velocity, and figure out how to plot the serial data. Jason offered to manage the plotting, so I focused on the first two tasks. I was able to generate velocity in all 3 directions, but due to the difficulty of plotting data, I have not yet verified their accuracy (but they seem close to reasonable). Figuring out how to save the calibration status has taken longer than I was hoping and I think I need to do some more reading on how calibration gets stored before success. But so far, I (at least suspect) can calibrate the sensor and load the new values into a register on the sensor, however, I haven’t been able to check that the values stay the same upon rebooting yet. So I think I’m halfway there. This shouldn’t be an issue for our upcoming demo since we can just keep the sensor connected and calibrating is a quick process. Next week I plan to work with Jason on integrating the plotting software and validating my values. I’m also hoping that in the coming few days I can figure out what I’m missing with saving calibration, but here is what my serial monitor has been looking like after the initial calibration.

First we see the sensor at rest (there are a few offsets that will be adjusted later):

And here we have with some random movements (i.e. up/down, side/side, figure 8’s):

Team Status Report for 3/22/2025

So far there is a slight risk with not being able to find an ample serial plotter to be able to properly validate and test our sensor data. This is trying to be managed by asking around and checking out as many softwares from Google as possible (haven’t found a good one yet). Worst case, our team is ready to try and code a simple application ourselves to visualize the real time data transmitted to a visual graph. Additionally, there is the mystery of velocity calculations. It’s possible this could be mitigated by calculating the velocity without using the sensor (i.e. through the camera or some other means) or being able to integrate acceleration successfully (but this has said to be hard and unreliable). Since this is a fairly new concern, not much research has been conducted yet, and hopefully next week’s status will have good findings.

Currently no changes have been made to the design.

Our overall schedule has not changed.

Meadow’s Status Report for 3/22/2025

This week I learned more about how to interact with the BNO055 and the necessary code. I managed to calibrate the acceleration that was posing issues from last week and successfully configured the x, y, z acceleration and rotations about the x and y axis. The setup is stable and my output values are consistent every time. It seems easy to visually confirm the accuracy of the orientation angles, but I will confirm them with a protractor or something later. I’m unsure about the accuracy of the acceleration values because they seem to lag in changing (or not change at all) for a variety of short movements. However, this may just be an inability to comprehend what these values should be reporting. So far I’ve been analyzing this data straight through the Arudino IDE and using its serial plotter and monitor. These will not be sufficient to test against the ground truth (mostly because the plotter is pretty frugal),  so I was trying to find a reliable serial plotter software to run my experiments. But I couldn’t find one that works. Still looking for that fix. Unfortunately I was unable to test against ground truth for this reason and it will have to be postponed another week. But the sensor readings have made reassuring progress! Next week I want to implement the feature to save calibration status so I don’t have to redo it every time I want to test something and I want to figure out the plotting software situation to challenge the sensor accuracy. I also need to look into getting sensor velocity; I was under the impression this sensor calculated its own velocity (part of the reason we chose it), but we have yet to find documentation on this.

Meadow’s Status Report for 3/15/2025

This week I validated the real time streaming from the sensors after our new wires came in. I worked on calibrating the sensor, but came across some difficulties on how to so based on the Adafruit documentation. However, I managed to find a way to calibrate them after research on the device and  looking through sample code. I managed to calibrate 3/4 metrics reported from the sensor, but was unable to calibrate the acceleration vector, thus was unable to compare readings to a ground truth context for now. I have since found a method that should work to calibrate acceleration from the BNO055 GitHub and will verify this in the coming week. For next week I plan to solidify the calibration status on the sensors and become more comfortable with how to program what we want the sensor to do. Then I will begin some initial tests comparing the sensor to ground truth.

I am slightly behind from figuring out the calibration issues and haven’t been able to test the sensors on a barbell yet, but aside from this, other aspects seem to be on schedule. However, testing the sensors on a barbell goes hand-in-hand to comparing the sensor data to the ground truth model, which is expected to be done next week.

Meadow’s Status Report for 3/8/2025

Most of the work for this week was spent on the design report and fleshing out details for our device that weren’t set in stone or coming up with implementation plans. The rest of the week I used to set up the BNO055 with Arduino and confirmed real time data output along with minor power supply research. Having a sensor set up with Arduino instead of only the ESP32 will help with parallel testing and allow me to work on the sensor data and power independently from the Bluetooth communication. Testing was not consistently successful, however, due to losing contact in the sensor inputs from loose wire connections (no solder yet and waiting on STEMMA QT cables). For next week, as the cables arrived during break, I want to ensure reliable data output and move to confirming accuracy with ground truth comparisons and work on calibration if there are mismatches.

So far things seem to be on schedule.

Meadow’s Status Report for 02/22/2025

This week I gained more understanding on the ESP32 and the BNO055 and its setup process, along with part characteristics through research, prior to Jason physically testing the sensor. Even though he got some readings out of it, I found that pairing the BNO055 with an ESP32 is not reliable, per a warning from Adafruit. I took to looking for other microcontrollers compatible with the sensor in case there’s a more efficient option that offers more of our requirements than an Arduino (which we initially planned to test with). A different IMU was ordered to see how it compares to our BNO055, which will be tested after it arrives. I ordered a part that should help make testing the sensor easier for next week and eliminate some human error. I’ve also been looking into how to make our testing more functional by creating a (very) basic prototype to attach on a real barbell.  Because we know that the sensor is outputting values and have a script ready for more testing, next week I plan to investigate the sensor readings and check accuracy/plan for calibration and potentially perform more dynamic testing to simulate our use case instead of basic hand movements, should we manage to create the necessary mobility.

Progress feels on time.