Madi’s Status Report for April 29

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week I primarily focused on Bluetooth integration for our project. This initially involved familiarising myself with the Adafruit feather bluefruit library that enables the microprocessor to utilise BLE functions. I noticed that firmware code that had been developed utilising the bluefruit library was not equipped to handle large streams of data as it was requiring the feather board to operate in command mode as opposed to data mode. I worked with my team members to address this and develop a communication protocol that would allow large amounts of data sent from the mobile application to be parsed effectively and securely. I also looked into some alternate firmware libraries such as circuit python that would allow us to reduce unnecessary complexities and jargon our firmware code.

On the software side of things, this week I worked on developing the ble module using CoreBluetooth. I set up custom protocols for the manager,  peripheral and their respective delegates, as well as a central “Controller” class to control the relationships & communication between these modules.

Unit Tests for Bluetooth Integration:

This week I also started performing unit tests to evaluate the functionality of our bluetooth system. This first involved setting up my iphone in developer mode to enable me to run and test our application outside of the native xcode simulator. I am currently developing our BLE module in a separate project to the rest of the code to allow us to validate everything before it is integrated with the rest of our code. I have created a couple of quick mock views to initiate scanning for nearby peripheral devices, reading/displaying peripheral devices  & their services/characteristics, as well as connecting to and disconnecting from nearby peripherals. Thus far using these mock views within the BLE test module, I have been able to successfully recognise and connect to the Adafruit feather & read from its services. I am working with the rest of my team to develop custom services via GATT (Generic ATTribute Profile), to permit me to more effectively filter through all nearby peripherals during scans and to be able to efficiently extract relevant information from the feather such as battery life.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Whilst I am behind from our initial Gantt Schedule, I have made a large amount of progress and adapted my goals for the remainder of the project to ensure we have sufficient work to present on demo day.

 

What deliverables do you hope to complete in the next week?

As I have been able to pass tests for BLE recognition & connection, and I have worked with my teammates to realise a communication standard, my next logical step is to work on adapting my existing BLE module to accomodate RX/TX via UART. After this I will work on integrating the BLE module in with my existing code and making some final modifications to the User Interface.

Madi’s Status Report for April 22

What did you personally accomplish this week on the project?

1 –  Working on Implementing Bluetooth Module

Although I had not fully finished creating the custom design control widgets for the application, this week I switched my focus to working on the code required for BLE communication to prepare for integration over the next couple of weeks. This involved running some tests with apple’s CoreBluetooth code to determine the best way to configure my code, what functions & classes I would need for our project etc. I also started writing the main code module that will contain all the core logic for the bluetooth functions.

2 – Working on outer enclosure

This week I also started making some progress on the design for the casing of our earring. I worked on developing a basic CAD model for a square shaped case with the following constraints -> button to allow the user to turn the device on/off, attachment for a CR2032 battery, compartment to fully enclose the PCB & prevent user access/tampering. As the user will need to replace / charge the coin battery, we have decided to also design an outer decorative casing, separate from the PCB compartment that will attach the device to the ear. This outer casing will contain a hinge and lock system that the user will be able to open to access the battery.

3 – Working on Final presentation

I was assigned to present for our group this week, so I also spent a lot of time preparing the slides.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

As I was working on the slides this week, I did not make as much progress as possible. I am planning on simplifying the application so I can focus on testing and finalising the core functionalities

What deliverables do you hope to complete in the next week?

Next week I hope to have the Bluetooth code working so I can focus on testing and integration.

Madi’s Status Report for April 8

What did you personally accomplish this week on the project?

This week I continued to work on developing the mobile application for our project. Specifically I continued working on fleshing out the front end, focusing on mapping user interactions to data model updates and making custom components and views.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I had a couple of issues at the start of the week with getting my database migrations to work without corrupting my code. However I was able to make some good progress by putting in additional hours during the back end of the week. Whilst I am still slightly behind as mentioned in previous status reports, I believe I have been able to catch up over the past couple of weeks. Our group as  a whole has chosen to make some simplifications to our project by just focusing on achieving our MVP.

What deliverables do you hope to complete in the next week?

Over the next week I hope to start looking more closely at Core Bluetooth so I can make preparations for integration.

Now that you are entering into the verification and validation phase of your project, provide a comprehensive update on what tests you have you run or are planning to run.  In particular, how will you analyze the anticipated measured results to verify your contribution to the project meets the engineering design requirements or the use case requirements? 

  • Functionality Tests => Across the past couple of weeks I have tested the performance of the mobile application using XCode’s built in simulator. This has enabled me to test the mapping between my constructed view & view models, and the navigation/user flow of the application. As the simulator enables the application to be run on different phone screen sizes (iphone X, iphone 12, iphone 14 etc.), I have also tested the responsiveness of our application design to ensure our product is accessible to a broad demographic of users. Moreover I have created test functions and dummy models to ensure all database operations are working. Over the coming weeks I hope to simulate the application on my phone,.
  • UI/UX Tests => To test the usability of our applications at this point I plan to gain feedback from my teammates. As they have not been involved in the software side of the project, their insights will provide somewhat of an unbiased perspective in regards to the successful and disadvantageous aspects of the current design. Specifically to evaluate our Setup Time Use Case Requirement, I plan to ask them:
    • How easy it is to create a new design?
    • How legible the design/pattern editing controls are?
    • How intuitive are the bluetooth connection controls?
    • How informative is the information on the home-screen?
  • Bluetooth & Integration Tests => To evaluate our Setup time  and Update Speed  user requirements I plan to work with my teammates to test the how effectively we can send information to the LED Matrix.

Madi’s Status Report for April 1

What did you personally accomplish this week on the project?

After reviewing Swift and iOS Development last week, I was able to working on building a foundation for our mobile Application this week. Specifically I worked on defining the Data/Entity models for our CoreData database, as well as the  associated business logic and fetch/store functions. In addition to this I worked on setting up the screen and custom views for our application. This primarily involved blocking out the component/view layouts and sizes and working on navigation controls.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

As mentioned last week I am slightly behind in term of the schedule initially defined on our Gantt Chart, however I feel as though I am starting to make better progress as I spend more time working with SwiftUI.

What deliverables do you hope to complete in the next week?

My plan is to finish getting the most simplified functional front end finished by early next week so I can have it integrated with the Data Layer before Friday. Then I hope to start working on developing the  UI/UX  –> i.e. customising widgets, integrating in the color/typography design system, adding in image & icon assets, refining gestures & user interaction etc.

 

Madi’s Status Report for March 25

What did you personally accomplish this week on the project?

1 – Focusing on Improving IOS dev skills

As I have started working more on the application I have come across gaps in my knowledge about IOS development, particularly my understanding of the  Swift language (I last used swift before college!!) and the mechanisms of the frameworks itself. At the start of the semester I had hoped that previous experience with Web application and Andriod dev would be enough to learn ios however I decided this week to quickly go through a Udemy Workshop to fill in the gaps in my knowledge. Whilst taking an in-depth course may be time consuming, my previous experience with learning new software/languages has revealed that I tend to save time in the long run by building a solid foundation of knowledge. Specifically, this week I focused on functionalities that will be central to our application like navigation control & communication between view controllers, working with CoreData, interfacing with a user’s camera & photo library (for LCD screen designs) and user gesture controls.

2 – Starting to look at Device Enclosure Design

In addition to my work on the application I have started to generate a few rough sketches of potential ideas for our physical jewellery component. Using exisiting products and conceptual jewellery designs as a reference I designed several potential earring cuffs (wearable would hook around the back/top cartilage of the ear) as well as drop earrings (hardware embedded in a pendant style fixture that would hand from the ear). I have included a couple of examples in the team report.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Unfortunately, I am quite behind in terms of my intended progress due to external commitments I had that did not finish until last week, and roadblocks during the application development process. Beginning this week I have been putting in extra hours to try and get back on schedule and will continue to prioritise capstone over the coming weeks. This weekend I am really focusing on  improving my IOS dev skills and believe based on my current progress that I will be in a position to continue working on our project by Monday. Moving forward I plan on setting small incremental goals for software application.

What deliverables do you hope to complete in the next week?

By the end of next week I hope to have a functional implementation of all the views planned for the application. I am planning to just focus on getting the layout and basic function of all the UI elements & screens completed before integrating the design system I worked on in previous weeks

Madi’s Status Report for March 11

What did you personally accomplish this week on the project?

In the week leading up to break I focused on completing the design report. Specifically I worked on the scheduling/task division and fleshing out the architecture, system implementation and design trade studies for the mobile interface application. This involved doing further research into Apple’s CoreBluetooth Framework and determining a generalised system architecture for the application. In addition to this, I completed the design trade study and system implementation for the device enclosure. I also started drafting some initial designs.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I did not have much opportunity to make progress on the project over the past couple of weeks due to midterms and commitments over spring break. However, I had accounted for having less time in the first couple of weeks of March earlier in the semester and plan to set aside a large amount of time to make progress in the coming weeks.

 

What deliverables do you hope to complete in the next week?

This week I hope to have more sketches of the device enclosure completed, as well as the model classes for the application finalised. If I have additional time I plan on working on creating customised views for the application

 

Madi’s Status Report for Feb 25

What did you personally accomplish this week on the project?

Task 1 – Working on Design Presentation & Report

This week, along with my teammates I worked on content for the design presentation and supplemental documentation for the design report. I finalised the IOS app schematics/user flow diagram I was working on last week and mapped out the core data classes we plan on using in our application.

Task 2 – Starting Front-End Development 

In addition to this, I started working on the implementation of our user application in Swift UI/XCode. This involved creating a repository for my team and organising into modules to store the files for our data models, scenes, assets and views.

My first goal beyond this was to create structures to store all visual values (colours, padding, margins, text sizes etc.) we wish to keep standard across the application. Based on research I conducted last week into best practices for iOS development, I decided to utilise the design token system as a method of abstracting  raw values.

 

 Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Whilst I was able to get a start on the application, I would have liked to be able to make some progress on writing code for the models and UI view components.  Due to other commitments, I had anticipated at the start of the semester that late Feb/ Early March I would have less time to work on the project, so I don’t think I am too far behind. I have planned to have ample time from Mid to late March to make up for any lost progress in the coming weeks.\

 

What deliverables do you hope to complete in the next week?

I hope to have class definitions for the data models defined by the end of the week. Additionally I plan on setting aside time to work on the design report

Madi’s Status Report for Feb 18

What did you personally accomplish this week on the project?

This week I worked on completing the bulk of the preparation, research and planning required for the iOS app and UI. My goal was not only to provide a sufficient amount of documentation for the design presentation, but to also create a through set of clear and specific guidelines to optimise collaboration efficiency during app development.

Task 1 – Finalising the UI Design System

After conducting research on existing mobile interfaces and accessibility guidelines I finalised the team’s colour palette and typography choices. I then created a collaborative document for our team’s UI development on Figma and inputted the design system as a set of local styles.

Task 2 – Low Fidelity Wireframing

I then worked on drafting guidelines for all the potential screens, views and modals that would be required for our application. This involved determining all the components and widgets that the user would require to navigate our application. Additionally, I used guidelines from Apple’s developer documentation to determine the minimum size, padding, margin etc. constraints required for all components (i.e. sliders, buttons, cards) to be user-friendly.

As these wireframes are low fidelity and our first draft for the application, they only contain exact specifications for component/view size and layout (currently in “px” units and designed for iPhone 14, but will be implemented as a responsive design). We are planning to finalise the colour scheme and render components early next week.

Task 3 – Finalising Userflow

Utilising feedback from the proposal presentation, I updated our initial to increase the salience/readability of our  MVP goals. I also added the LF wireframes to the flow chart to provide an extensive overview of user actions. Labels and icons specifying user gestures such as “touch” and “vertical swipe” were integrated to demonstrate the user actions required to traverse different views.

Task 4 – iOS Research

To prepare for app development, I started taking notes on the documentation on the apple developer website. Specifically, I looked at the specific classes available for different UI Views and started mapping these back to the components specified in the wireframes. Additionally, I looked into recommended architectures for iOS design and discovered that Apple’s developer tools primarily support using  an MVVM (model, view, view-model) architecture, as opposed to the MVC architecture we had initially planned on using.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I am slightly behind at this point in time as I had planned on having the UML diagram completed by today. As swift seems to require an MVVM architecture, I have had to spend some time doing additional research to ensure I can accurately draft plans for our proposed models and views. As these plans are required for the design presentation, I will have to put in additional time to finish before the slides are due.

I was also hoping to have drafted some plans for the physical design, however I had to de-prioritise this task due to commitments outside of the class.

What deliverables do you hope to complete in the next week?

Next Week, I plan to finalise the colour scheme and UI design with my teammates and start working on the front-end development of the application in swiftui.

Please list the particular ECE courses (if any) that covered the engineering science and mathematics principles your team used to develop your design ? If there are no courses please tells us how you learned those principles over the last week ?

As I have worked mostly on the software development part of our project, I have found 17-437 (Web Application Development) to provide the most relevant  information. However, whilst this gave me a good understanding of basic design principles and application development, I have some gaps in my knowledge in regards to app design. I have some experience from internships with Android development, but I have had to do additional research to learn iOS development. This has mostly involved looking at documentation on the apple developer site, watching tutorials on youtube and looking at existing projects on gitHub.

On the broader spectrum of our project, I believe knowledge from 18-349 (Embedded Systems), 18-220 (Analog Circuit Design) and 18-213 (Computer Systems) will be beneficial.

Madi’s Status Report for Feb 11

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours). 

The primary objective for me this week was to conduct research and work on the initial stages of planning our project. 

During the front end of the week, I focused on assisting with scheduling and task division, user/market research and developing the physical design and iOS application use case requirements for the proposal presentation. I communicated with my team members to develop a list of tasks and rough scheduling timeline to create a Gantt Chart. I attempted to segment our project as much as possible into smaller, achievable goals.

To accurately understand the design requirements for the outer casing/physical component of our project, I started by surveying the market of existing products. This involved gathering data from e-commerce sites associated with the consumer habits of our proposed market regarding earring size, material, type and backings. Information was compiled into a spreadsheet to enable us to develop realistic design constraints. Additionally, I conducted further research into safety guidelines for skin safe wearable materials, thermal ranges for parts in contact with skin, jewellery weight limits and design factors that can lead to dangerous conditions for consumers (i.e. ear infections, scarring , tearing etc). 

I also worked on developing the solutions approach for the iOS application. I looked at several different development avenues, including developing a cross platform application using React, or working with a combination of Apple’s UIKit. Due to our limited time and scope for this project, ultimately SwiftUI was chosen due to its higher compatibility for iOS 16 and better support for user interface development. I also looked into the APIS & libraries we could potentially use to interface with our wearable (CoreBlueTooth & CoreData). After determining an appropriate solutions approach, to gain a.  I looked over documentation and tutorials on the apple developer website as well as some existing projects for BLE communication on GitHub.

After the presentation, whilst our group waits for hardware parts I took the opportunity to start planning the user interface for our application. This has involved analysing existing mobile applications for smart home devices and lights, wearables and other bluetooth devices. This enabled me to gain a better understanding of the layouts, user flows and components that will provide an optimal user experience. Additionally I started working on a design system in figma (colour scheme, typography, component design and graphic elements). I also created a preliminary user flow diagram and started working on low fidelity wireframes. 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule? 

According to the Gantt chart I am currently on schedule. 

What deliverables do you hope to complete in the next week?

By the end of next week I hope to have all planning for the software completely done and to have possibly started working on some of the front end. I also hope to work with my other group members to have finalised a few options for the physical design of our earring.