Bangle.js Smartwatch Software for Cyclists
Bangle.js Smartwatch Software for Cyclists
1.1 Purpose
This document serves as a basis for the development of Bangle.js (a smartwatch software
specialising in customers' passion for biking and fitness tracking) to help and understand the
requirements of customer B („Bike“). All other documents, in particular the system design, the
test plan, the implementation and the user manual should be created based on this document.
The document must always be kept in sync with all other documents connected to it.
1.3 Definition
Bangle.js is a versatile software framework designed for a smartwatch, specifically tailored to
meet the needs of cycling enthusiasts and fitness analysis. It ensures robust data security
while offering customizable dials and the ability to switch between road cycling and mountain
biking modes. It provides comprehensive fitness tracking capabilities, including seamless
integration with external rpm and heart rate sensors. The software incorporates inbuilt sensors
that enhance the cycling experience, enabling users to monitor progress, set goals, and track
performance effectively.
1.5 Objectives:
The software in the smartwatch aims to fulfil the below objectives
Ensuring Data Security and Privacy
Customizable Dials
Road Cycling and Mountain Biking Modes
Fitness Tracking
Enhanced Cycling Experience
Progress Monitoring and Goal Setting
2. Mountain Biking Mode: In this mode, the smartwatch's dial is customised to display
features and information specifically relevant to cycling in mountainous terrains. Some
key features that may be displayed include:
Elevation and Altitude: The watch provides real-time updates on the cyclist's current
elevation and altitude gain during the mountain biking session. This information helps
users gauge the difficulty of their rides and track their climbing progress.
Depth Analysis: The watch may offer depth analysis features, such as displaying the
depth of descents during the ride. This information is particularly useful for mountain
bikers navigating challenging downhill sections.
Slope Gradient: The watch can show the slope gradient of the terrain, indicating how
steep or gradual the inclines or declines are. This information helps mountain bikers
anticipate and adjust their riding technique accordingly.
Trail or Trail Map: The watch may provide access to trail maps specific to mountain
biking trails, enabling users to explore and discover new routes. The display can show
trail markers, points of interest, and suggested paths to enhance the overall mountain
biking experience.
Weather Conditions: The watch may provide weather information such as temperature,
humidity, and precipitation to help mountain bikers plan their rides and make informed
decisions based on the current weather conditions.
3 Functional requirements
FA01 As soon as the software is initialised for the first time, the user is required to enter
his/her relevant information i.e. weight, height, gender, birth date, usage frequency.
FA02 The user gets a guided introduction to the interface and functions of the smartwatch
after the first initialization
FA03 The smartwatch is compatible with the user's external RPM sensor and heart rate
sensor strap
FA04 The watch should have two separate modes i.e. road cycling and mountain biking
which changes the dial to display more useful information i.e. distance covered &
GPS for road cycling and elevation & depth etc for mountain biking.
FA05 The watch’s sensors must calculate heart rate, distance covered, Calories burnt,
blood Oxygen Level, steps covered, elevation, and ECG. It must also calculate and
display the data collected from the external sensors (heartbeat strap and RPM
sensor).
FA06 The smartwatch must have customizable dials. With personalisable backgrounds.
FA07 The watch must have navigation, maps and GPS guidance systems.
FA08 The user wants data security and wants to keep all data on the watch at all times.
This means that except the maps and weather services all other features can
function without WIFI.
FA09 The watch must remind the user to clear the storage manually before going out of
storage.
FA10 The user wishes to have battery life for a minimum of 5-6 cycling sessions.
FA11 The developers must provide constant updates for the watch software.
4 Interface Requirements
4.1 Graphical user interface
The smartwatch is supposed to have a user-friendly interface. After the first initialization, the
watch provides the user with a guided introduction to the features of the watch and the watch
is ready to go
The initial screen is a customizable watch face, allowing you to choose from various
styles and designs. Users can personalise it to show information relevant to their biking
activities, such as time, date, weather, battery status etc
The biking dashboard should provide essential real-time data and statistics about the
user’s cycling session, such as speed, distance travelled, heart rate, cadence,
elevation, calories burned etc. The dashboard may include widgets that users can
customise to display the specific metrics they’re interested in.
To help users navigate during their rides, the smartwatch offers a built-in GPS. It
should display a map with your current location, marked route, and important
waypoints.
The smartwatch should include two preconfigured training modes designed specifically
for biking. Users should be able to switch between “Mountain Biking," and "Road
cycling" modes using a button. Each mode adjusts the displayed metrics and provides
specialised insights and feedback based on the chosen activity.
The settings menu should allow the user to personalise the smartwatch according to
their preferences. The user can adjust display brightness, change watch faces,
customise data fields, set activity goals, configure notifications, and manage other
device settings.
It smartwatch should also support connectivity with compatible biking accessories such
as heart rate monitors, speed sensors, or power metres.
5 Performance Requirements
5.1 General requirements
After the first initialization, the software shall provide a guided introduction to the interface and
functions of the smartwatch to the user. The software can only work if the boundary conditions
are met. The system is designed for use in smartwatches and should follow these
requirements.
1. UI Requirement: During regular usage of the smartwatch, users should experience
minimal delays, with no noticeable lag at least 95% of the time. This means that the
frame rate of the user interface should not drop below 80% of the normal frame rate,
ensuring smooth and responsive interactions.
2. App Size Restriction: The maximum size allowed for an installed application on the
smartwatch, excluding the database, should not exceed 50 MiB. This limitation
ensures efficient storage utilisation and prevents excessive memory consumption by
applications.
3. Memory Usage per Measurement: The smartwatch should use a maximum of 2 KiB
(kibibytes) of memory per measurement recorded. This restriction helps optimise
memory utilisation and ensures that each measurement takes up minimal storage
space.
4. Timely Display of New Measurements: Whenever a new measurement is recorded, it
should be promptly displayed to the user within 2 seconds. This requirement ensures
that users receive real-time feedback and can access their latest measurements
without unnecessary delays.
The smartwatch's sensors shall accurately calculate and display the following data: heart rate,
distance covered, calories burnt, blood oxygen level, steps covered, elevation, and ECG. The
user's data shall be securely stored in the smartwatch at all times, except for maps and
weather services which may require internet connectivity. It shall also calculate and display
data collected from the external sensors (heart rate strap and RPM sensor), The smartwatch
shall remind the user to clear the storage manually before it reaches its storage limit. In
particular, requirements are placed on the surrounding interfaces, especially concerning:
1. Heart-Rate strap Sensor:
The software and hardware should always be in synchronisation with the sensor. The
system should not miss any vital bits of data at any time interval. This may have an
impact on analysis and calculation. The system should have a sufficient signal range
to maintain a stable connection with the device, even in challenging conditions or when
the device is mounted on the user's body. It should ensure reliable data transmission
without frequent dropouts or signal loss.
2. Cadence & RPM Sensor:
The sensor should provide real-time data updates with minimal delay. It should capture
and transmit cadence and RPM information promptly to the connected device,
ensuring instant feedback for the user. The system should be designed to optimise
power consumption, ensuring efficient energy usage and maximising battery life. It
should employ power-saving techniques such as intelligent sleep modes or low-power
sensors, reducing the overall energy requirements of the sensor.
The system should be designed for the following sensors:
Heart Rate Sensor: SEN11574, MAX30102, BH1792GLC, ADPD4000, AFE4400
Barometer Sensor: BMP280, LPS25HB, MS5637, DPS310
SPO2 Sensor: MAX30102, Si114x, AFE4404, SP02F20
Motion Sensor: LSM6DSL, BMA456, LIS2DW12
Accelerometer: LIS2DH, BMA4xx, ADXLxx
Gyroscope: L3GD20, MPU-9250, BMG160, ADXRS
GPS: u-blox NEO-M8, MediaTek MT3333, SiRFstar V, SKY65933
Ambient Light Sensor: TSL2572, VEML6030, MAX44009, ROHM BH1721FVC
Temperature Sensor: TMP102, DS18B20
Number of Modes 2
6. Non-functional requirements
6.1 Availability, reliability, robustness
The smartwatch should be available for use whenever needed. It should have a high level of
uptime, ensuring that users can access its features and functions without significant
interruptions or downtime. The smartwatch should be resilient to unexpected conditions or
inputs. It should handle errors, exceptions, or invalid data. It should prevent crashes or system
failures. The software should recover or restore normal operations seamlessly after an
unexpected event. The smartwatch should be reliable and perform consistently without
unexpected failures or errors. It should maintain its functionality and performance over time
without degradation.
6.2 Comfort and Ease of Use
The smartwatch should have ergonomics designed with user comfort in mind, taking into
account factors such as weight, size and strap materials. It should be lightweight and
adjustable to fit different wrist sizes comfortably. The display should have good visibility,
legibility, and appropriate brightness levels for easy reading in different lighting conditions,
including outdoor environments. The device should also provide informative feedback on user
actions, such as tactile feedback through vibrations or audible notifications, ensuring that
users receive immediate and understandable feedback.
6.3 Safety
The materials used in the construction of the smartwatch, including the strap and casing,
should be hypoallergenic, non-toxic, and safe for prolonged contact with the skin. The
smartwatch should be built to withstand daily use, including exposure to sweat, water
splashes, and minor impacts. It should have a robust construction that minimises the risk of
damage or malfunction in typical usage scenarios.
6.4 Maintainability
The smartwatch should support software updates to ensure bug fixes, security patches, and
feature enhancements. Updates should be easy to install and preferably wireless or
automated. The smartwatch's battery should be replaceable, either by the user or through
authorised service centres, to extend the device's lifespan and provide an option for battery
replacement when needed. The smartwatch's hardware components, such as sensors or
straps, should be easily replaceable in case of damage or wear. The device should be
designed in a way that allows for efficient repair or replacement of parts.
6.5 Compatibility
The smartwatch should be compatible with desired external sensors, ensuring seamless
integration and interoperability. It should support standard communication protocols and
connectivity options.
6.6 Localization
The smartwatch should support multiple languages (English and German), allowing users to
choose their preferred language for the user interface and notifications. It should also consider
regional settings such as date formats and time zones to cater to a diverse user base.
6.7 Data Integrity
The smartwatch should ensure the integrity and accuracy of user data. It should securely store
and handle data, preventing data corruption or loss. The software should have mechanisms
in place to protect against unauthorised access, data breaches, or data manipulation.
6.8 Battery Efficiency
The smartwatch should be designed to optimise battery usage and maximise battery life. It
should implement power-saving techniques such as intelligent screen dimming, sleep mode,
and efficient background processes to conserve battery power.
7. Use cases
Name View Personal Data
Number UC01
Aim To view and access personal data such as age, height, weight,
birthday etc entered by the user
Precondition The user must have entered their data during the initialization
process.
Postcondition The user would receive a overall view of his personal data
Actors User
Normal Process 1. The user starts the watch and is requested to add details
about his personal data.
2. The user clicks on view a summary of data
3. A summary of the user's body measurements is displayed
Number UC02
Aim To access user’s detailed statistics and analytics of their cycling activities
such as average speed, maximum speed, elevation gain, distance
travelled, heart rate, cadence and calories burned.
Precondition The user must wear the watch for the sensors to work. The user must have
his watch connected to the internet at least once.
Actors User
Special Cases If the sensors are unable to record the data due to when not in use or in the
case of incorrect wearing, then values may be incorrect
Name Navigate to a Direction
Number UC03
Precondition Smartwatch has GPS functionality enabled. The user has a destination
address or point of interest(POI) in mind with exact coordinates.
Postcondition The user gets turn-by-turn directions to the destination. The user
successfully reaches the destination or cancels the navigation.
Actors User
Normal Process 1. The user activates the navigation feature on the smartwatch by
pressing the left upper button.
2. User enters the destination address or selects a POI from the
available options.
3. Smartwatch calculates the optimal route based on the current
location and destination.
4. Smartwatch displays the turn-by-turn directions on the screen.
5. Smartwatch continuously updates the directions based on the
user's movement and provides real-time information about
upcoming turns, distance, and estimated time of arrival (ETA).
6. User arrives at the destination or cancels the navigation if
desired.
Special Cases 1. If the smartwatch loses its GPS signal, it may temporarily pause
the navigation and attempt to regain the signal. It may also
provide alternative methods of navigation, such as relying on
mobile network data or offline maps if available.
2. If the user deviates from the recommended route, the
smartwatch recalculates the directions and provides revised
instructions to guide the user back on track.
Name Changing Modes for Road Cycling and Mountain Biking
Number UC04
Aim To allow the user to switch between road cycling and mountain
biking modes using a button on the smartwatch.
Postcondition in a If the user fails to select a mode within a specific time frame, the
special case smartwatch remains in the current mode.
Actors User
Name Connecting External Cadence, RPM, and Heart Sensors via Bluetooth
Number UC05
Actors User
Normal Process 1. The user activates the smartwatch, enables Bluetooth and
accesses the setting menu.
2. The user navigates to the “Sensor Connections” option in the
menu.
3. The smartwatch then displays a list of available sensors to
connect.
4. The user initiates a Bluetooth scan on the smartwatch to
discover nearby sensors.
5. The smartwatch detects external cadence, RPM, and heart rate
sensors within the range.
6. The user selects the desired sensors from the list and the watch
sends a connection request.
7. The external connections receive the request and establish
Bluetooth connectivity.
8. The watch confirms the connection to sensors and displays a
connection status message.
9. The smartwatch starts receiving real-time data from the
externally connected sensors and the user can view and
monitor the sensor data on display during activities.
Special Cases If the sensor is not within the range or if a connection attempt fails, the
smartwatch displays an error message indicating a connection failed.
The user can repeat the process from step 2 to connect sensors again.
Number UC06
Aim To monitor the accurate and average heart rate of the user at all times while
the watch is being worn.
Precondition The user must wear the watch for the sensors to work.
Actors User
Normal 1. The user opens the biking dashboard and then clicks on detailed
Process heart rate analysis.
2. User is displayed his heart rate. When connected to an external
heart rate monitor, the watch calculates the average of the data
collected by an inbuilt and external sensor to display accurate
results.
3. Extra data results such as BPM, ECG etc and also provided when
using an external heart rate sensor.
Special Cases If the sensors are unable to record the data when not in use or in the case
of incorrect wearing, then values may be incorrect.
Number UC07
Aim To calculate and view detailed statistics and analytics of a user's cycling
speed. Also learning the distance covered, average speed, maximum and
maximum speed etc
Precondition The user must wear the watch for the sensors to work.
Actors User
Normal 1. The user opens the biking dashboard and then clicks on speed
Process calculation.
2. User is displayed his average speed during his last biking sessions.
Also distance covered, time taken, and minimum and maximum
speed will be displayed.
Special Cases If the sensors are unable to record the data when not in use or in the case
of incorrect wearing, then values may be incorrect.
Number UC08
Aim To measure and display the calories burned during activities on the
smartwatch.
Precondition The user must wear the watch for the sensors to work. The smartwatch
is powered on and functional.
Postcondition The smartwatch accurately calculates and displays the calories burned
based on the user's physical activity.
Postcondition in If the connection fails, the smartwatch displays an error message and
a special case allows the user to retry or troubleshoot the connection.
Actors User
Normal Process 1. The user opens the biking dashboard and then clicks on
calorie analysis.
2. The smartwatch utilises its built-in sensors, including the
accelerometer and heart rate sensor, to monitor the user's
activity.
3. The smartwatch applies an algorithm that combines the user's
heart rate, activity type, duration, and other factors to estimate the
calories burned.
4. The smartwatch displays the real-time calories burned on the
screen during the activity.
Special Cases If the heart rate sensor is not available or fails to provide data, the
smartwatch employs alternative methods, such as motion tracking and
user input (e.g., user inputting activity intensity, duration, and other
parameters), to estimate the calories burned. The smartwatch informs
the user about the estimation method being used and may display a
disclaimer regarding the accuracy of the calorie measurement in the
absence of heart rate data.
Version
Date: 28th May 2023
- Clarified certain requirements based on additional information
- Updated the user profiles for Lisa Nguyen and Max Schmidt with more specific details
- Updated the Introduction section to provide clearer information on the purpose of the
document
- Revised and improved the language and clarity of various requirements
Version
Date: 28th May 2023
Version
Date: 28th May 2023
- Updated the entire document to align with the latest version of the Bangle.js smartwatch