University of Manitoba Department of Electrical & Computer Engineering
ECE 4600 Group Design Project
Final Project Report
Development of an Emulation System for Satellites
- A subsystem based testing platform for C&DH unit
by
Group 17
Chiwing Chan Xu Ding Xin Jin
Jiafeng Liang Bingjie Xiong Juntian Xiong
Academic Supervisor Dr. Witold Kinsner
Department of Electrical and Computer Engineering University of Manitoba
Industrial Supervisor Mr. Dario Schor
Magellan Aerospace Winnipeg, MB
Date of Submission
March 17, 2017
Copyright © 2017 Chiwin Chan, Xu Ding, Xin Jin, Jiafeng Liang, Bingjie Xiong, Juntian Xiong
G17 Final Report 2017 Abstract
-i-
Abstract
The following report covers the development of a hardware emulator based satellite testing
system for a C&DH unit; the report investigates in the purpose, methodologies, system implementations,
and outcomes of this project.
As satellite technology fast pace itself in time, its complexity and cost follows closely; satellite
subsystem verification became a major difficulty in satellite constructions. Accurate software response,
realistic hardware response, robust system, and reasonable budget failed to be incorporated into a single
system.
The goal of this project is to develop a robust satellite testing system that result in accurate
responses within a contained budget, which is a necessity for future growth in satellite industries. This
goal is achieved by developing satellite subsystem emulators to test a desired complex system, the
Command and Data Handling unit (C&DH). Communication subsystem and thermal management
subsystem are selected to validate the C&DH unit by performing regular service routines and anomaly
injections. Arduino microcontroller boards are configured individually to represent the C&DH unit,
communication subsystem, and thermal management subsystem; commercial hardware is compared and
selected to assist each subsystem in performing desired functions. This emulation system has built in
command lists to provide the user with efficient system handling experiences, it is able to request,
process, and feedback a user input command through a serial monitor on the Arduino program software.
This emulation system prototype performs regular routines between the C&DH unit and two
subsystems attached, while it is capable of handling injected software and physical anomalies with
precision. The emulation system prototype is successfully developed as a testing platform for the C&DH
unit and it is implemented to meet all performance metrics.
G17 Final Report 2017 Contributions
-ii-
Contributions
C
hiw
ing C
han
Xu D
ing
Xin
Jin
Jiaf
eng L
iang
Bin
gji
e X
iong
Junti
an X
iong
Research
C&DH System
Communication Subsystem
Thermal Subsystem
Power supply unit
System Integration
System Validation and Testing
Final Report
Legend: Lead task Contributed
G17 Final Report 2017 Acknowledgements
-iii-
Acknowledgements
Our design team would like to thank several people and companies for their support in this
project. We would like to take this opportunity to give special thanks to our advisor Dr. Witold Kinsner,
for all of his supports and guidance throughout the course of this project. We would like to thank to
industrial supervisor Mr. Dario Schor provided related documents. We would like to thank to Electrical
engineering technologist staff Sinisa Janjic who helped in acquiring all of the components required to
implement the project. Finally, we would like to thank to Dr. Derek Oliver, Daniel Card, Aidan Topping
and Dr. Ahmed Byagowi for providing valuable feedbacks allowing us to improve our written and oral
communication skills.
G17 Final Report 2017 Table of Contents
-iv-
Table of Contents
Abstract .......................................................................................................................................................... i
Contributions................................................................................................................................................. ii
Acknowledgements ...................................................................................................................................... iii
Table of Contents ......................................................................................................................................... iv
List of Figures ............................................................................................................................................. vii
List of Tables ............................................................................................................................................... ix
List of Abbreviations ................................................................................................................................... xi
Nomenclature .............................................................................................................................................. xii
1 Introduction ................................................................................................................................................ 1
1.1 Motivation ........................................................................................................................................... 1
1.2 Problem Definition .............................................................................................................................. 1
1.3 Proposal Solution ................................................................................................................................ 2
2 Capstone Project Formulation .................................................................................................................... 3
2.1 Aim of Project ..................................................................................................................................... 3
2.2 Core Concepts ..................................................................................................................................... 3
2.3 Project Statement ................................................................................................................................ 3
3 Scope of Project ......................................................................................................................................... 4
3.1 Project Limits ...................................................................................................................................... 4
3.2 Project Organization ........................................................................................................................... 4
4 Theoretical Formulations ........................................................................................................................... 5
4.1 Approach of Solution .......................................................................................................................... 5
4.1.1 C & DH Function Selections ....................................................................................................... 5
4.1.2 Communication Subsystem Functions Selections ....................................................................... 5
4.1.3 TMS Function Selections ............................................................................................................. 5
4.2 Methods............................................................................................................................................... 6
4.2.1 Command Processing ................................................................................................................... 6
4.2.2 Data Processing ............................................................................................................................ 7
4.2.3 Error injection .............................................................................................................................. 8
4.2.4 Transmission Error Detection and Correction ............................................................................. 8
G17 Final Report 2017 Table of Contents
-v-
4.2.5 Thermal anomaly detection and correction .................................................................................. 9
4.2.6 Information Storage ....................................................................................................................... 10
4.2.7 Health Monitor (Watchdog Timer) ............................................................................................ 11
4.3 Technique .......................................................................................................................................... 12
4.3.1 Serial Peripheral Interface .......................................................................................................... 12
4.3.2 Asynchronous Parallel transmission .......................................................................................... 14
4.3.3 Noise reducing method .............................................................................................................. 15
4.4 Algorithms ........................................................................................................................................ 17
4.4.1 Hamming code algorithm........................................................................................................... 17
4.4.2 Temperature sensor conversion algorithm ................................................................................. 18
4.5 Theoretical formulation outcomes .................................................................................................... 19
5 System Design ......................................................................................................................................... 21
5.1 Hardware Components ...................................................................................................................... 21
5.1.1 Microcontroller .......................................................................................................................... 21
5.1.2 Communication Subsystem ........................................................................................................ 23
5.1.3 Thermal Subsystem .................................................................................................................... 25
5.1.4 Accessories ................................................................................................................................ 32
5.2 Implementation ................................................................................................................................. 34
5.2.1 Schematic of the whole project .................................................................................................. 34
5.2.2 Feedback of commands .............................................................................................................. 34
5.2.3 Telecommand ............................................................................................................................. 35
5.2.4 Thermal Management Subsystem .............................................................................................. 36
5.2.5 Power Unit ................................................................................................................................. 38
5.3 Test Design ....................................................................................................................................... 39
5.3.1 Fault recovery testing ................................................................................................................. 39
5.3.2 Test design for command processing ......................................................................................... 39
5.3.3 Design test for Thermal Subsystem ........................................................................................... 39
5.4 Verification ....................................................................................................................................... 40
5.4.1 Fault recovery Verification ........................................................................................................ 40
5.4.2 Command Processing ................................................................................................................. 42
5.4.3 Command Storage ...................................................................................................................... 42
5.4.4 Thermal Management Subsystem .............................................................................................. 44
5.5 Result Collection ............................................................................................................................... 46
G17 Final Report 2017 Table of Contents
-vi-
6 Discussion ................................................................................................................................................ 51
6.1 Discussion of Result ......................................................................................................................... 51
7 Conclusion ............................................................................................................................................... 52
References ................................................................................................................................................... 53
Appendix A Budget .................................................................................................................................... 56
Appendix B Flow Chart .............................................................................................................................. 59
Appendix C Gantt Chart ............................................................................................................................. 62
Appendix D Code ....................................................................................................................................... 63
G17 Final Report 2017 List of Figures
-vii-
List of Figures
Figure 4-1 Sequence diagrams of command handling 7
Figure 4-2: Watchdog timer flowchart 10
Figure 4-3: Logic of using hamming code to encode in error correction 18
Figure 4-4: The Correction Process 18
Figure 4-5: SPI connection 20
Figure 5-1: Arduino Uno R3 23
Figure 5-2: Arduino Mega 2560 23
Figure 5-3: Pin configurations 25
Figure 5-4: DC fan speeds on different duty cycles 29
Figure 5-5: DC fan flowchart 31
Figure 5-6: Model of LCD 32
Figure 5-7: Various colors of solid-core wire 34
Figure 5-8: The whole circuit for the project 35
Figure 5-9: Pin connections among C&DH, communication and thermal subsystems 36
Figure 5-10: Parallel asynchronous transmission 37
Figure 5-11: Entire circuit for TMS 38
Figure 5-12: Simulation of heater unit 39
Figure 5-13: The simulation of voltage regulator for power supply 40
Figure 5-14: Command observed from logic analyzer 41
Figure 5-15: Command observed from logic analyzer 42
Figure 5-16: The fault inject and recovery function 42
G17 Final Report 2017 List of Figures
-viii-
Figure 5-17: Part of outcome of C&DH display on serial monitor 43
Figure 5-18: Telemetry processing between C&DH and communication subsystem through SPI 44
Figure 5-19: Data transfer between C&DH and thermal subsystem through SPI 44
Figure 5-20: Command processing between C&DH and communication subsystem 44
Figure 5-21: Heating command transmission 45
Figure 5-22: Cooling command transmission 46
Figure 5-23: Heating command verification on hardware 47
Figure 5-24: Outcome of C&DH 49
Figure 5-25: Outcome of communication subsystem 50
Figure 5-26: Outcome of thermal subsystem 51
Figure B-1: Flowchart for command processing 60
Figure B-2: Flow chart for command storage 61
Figure B-3: Conceptual flowchart for communication subsystem 62
Figure C-1: Gantt Chart 63
G17 Final Report 2017 List of Tables
-ix-
List of Tables
Table 4-1: Command lookup table 6
Table 4-2: Comparison of different error detection and correction methods 8
Table 4-3: Comparison of command storage methods 9
Table 4-4: Comparison protocol among SPI, I2C and CAN 11
Table 4-5: Comparison between serial and parallel transmission 13
Table 4-6: Comparison between asynchronous and synchronous 15
Table 4-7: Comparison of reducing noise method 16
Table 4-8: Calculation for each temperature sensor 19
Table 5-1: Comparison of board choosing 22
Table 5-2: FIFO types 24
Table 5-3: Comparison of different heating elements 26
Table 5-4: Comparison of three different cooling units 26
Table 5-5: Technical specification of TMP36 27
Table 5-6: Technical specification of NTC thermistor 28
Table 5-7: Technical Specification of MCP9808 29
Table 5-8: Specification of the DC fan 30
G17 Final Report 2017 List of Tables
-x-
Table 5-9: Pin description for LCD 32
Table 5-10: Parameter of bipolar junction transistor 33
Table 5-11: Voltage and current of whole system 47
Table 5-12: Performance matrix of C&DH 48
Table 5-13 Performance of fault recovery method for C&DH 48
Table A-1: Budget for G17 Capstone Project 58
G17 Final Report 2017 List of Abbreviations
-xi-
List of Abbreviations
Abbreviation Description
AWG American Wire Gauge
C&DH Command and Data Handling
CAN Controller Area Network
CRC Cyclic Redundancy Check
FIFO First In / First Out
I/O Input / Output
I2C Inter-Integrated Circuit
IDE Integrated Development Environment
LCD Liquid Crystal Display
MISO Master Input, Slave Output
MOSI Master Output, Slave Input
PWM Pulse Width Modulation
SCK Serial Clock
SCL Serial Clock Line
SDA Serial Data Line
SPI Serial Peripheral Interface
SS Slave Select
TMS Thermal Management System
G17 Final Report 2017 Nomenclature
-xii-
Nomenclature
Symbol Description
HFn Half-Full Flag
EFn Empty Flag
FFn Full Flag
Wn Write
Rn Read
D Data In
RSn Reset
RTn Retransmit
Q Data out
XIn Expansion In
Ω electrical unit of resistance
G17 Final Report 2017 Chapter 1 - Introduction
-1-
Chapter 1
Introduction
1.1 Motivation
Since the first successful artificial satellite was launched by the Soviet Union in 1957, satellite
development and industry have grown tremendously [1]. Thousands of satellites have been launched into
space and many have remained to provide military and civilian services.
Satellite’s increasing functionalities and varieties have greatly served the mankind, allowed fast
interpersonal communications and extensions in global and universal monitor and research. However, the
benefits came with a price, development complexity and cost of construction have created a heavy stress
on fast growing satellite organizations and industries, especially for their satellite testing teams, who are
responsible for developing a reliable testing system within their cost limit.
1.2 Problem Definition
Two testing methods are practiced by the industry are duplicating subsystems and satellite
simulations. They had unique edges in certain testing aspects, but both contained major flaws which made
them less competitive in future markets.
In the past, creating duplicate satellite subsystems or even a full satellite system were viable
because satellites were much less expensive and complex. This method would result in a nearly perfect
software and hardware response. Duplicate subsystems could no longer be created to solely facilitate
testing platforms due to extreme construction difficulties and high expenses, the return of cost in
comparison was unworthy as they could be quickly outdated due to fast growth in satellite technologies.
Software simulations is a currently popular used method where subsystems are modeled on
selected software and possibly loaded onto a commercial platform; this can provide a reasonable test
response with a well limited cost. While this method is useful, it fails to account for numerous hardware
interactions and environmental interferences; it is also limited in adaptation as these commercial
platforms are difficult to update and implement.
G17 Final Report 2017 Chapter 1 - Introduction
-2-
1.3 Proposal Solution
An inexpensive, robust, and realistic testing platform must be developed to suit the testing needs
of the growing satellite industry. It needs to be capable of accurate software responses and realistic
hardware responses, with a well contained budget.
A satellite system emulator is therefore proposed as the solution to the problem. This emulator uses
hardware from a much lower price range when compared to a real satellite system, and it emulates
important and necessary functions in order to perform accurate testing services.
G17 Final Report 2017 Chapter 2 – Capstone Project Formulation
-3-
Chapter 2
Capstone Project Formulation
2.1 Aim of Project
The aim of this project is to initiate the development of such satellite system emulator and focus
on the development of a satellite emulation system for testing the Command and Data Handling (C&DH)
unit on a satellite. While a real C&DH unit works with numerous functions that interacts with multiple
subsystems, this project targets its connections with the communication subsystem and the thermal
management subsystem. Both subsystems and the C&DH unit are designed, validated, and tested for
regular routines and anomaly response. A power regulator designs and implements into the system circuit
to provide power to appropriate devices.
2.2 Core Concepts
The C&DH unit is the brain of a satellite system, it is responsible for duties which include
collecting and managing satellite data, carrying out commands from ground station, and transmitting
satellite status and data to Earth. Therefore, testing the C&DH unit is very crucial for the construction of
any satellite.
In our design, C&DH performs regular routines with the communication subsystem and thermal
management subsystem; these routines are time tracked within the C&DH and it is capable of detecting
and correcting errors such as transmission errors and system temperature anomaly. In our project, the
C&DH is tested on the abilities to process commands which given by the user through the communication
subsystem, transmitted satellite data using two transmission schemes, collected data through sensory
devices, stored important time stamped events or data, and fault recoveries.
2.3 Project Statement
This Project is to design a satellite C&DH that testing emulator with two subsystems including a
C&DH unit. And it is built to satisfy ground operation standards with considerations of space conditions.
The system is constructed using Arduino microcontrollers and commercial hardware within budget.
G17 Final Report 2017 Chapter 3 – Scope of Project
-4-
Chapter 3
Scope of Project
3.1 Project Limits
Due to given project limits, aspects of this project are bounded to ensure successful completion.
First, testing conditions is significantly different from space environments; extreme temperature range,
space radiations, and vacuum space cannot be accounted and tested in this project. Second, this project is
limited to a budget of $600 CAD, which means these hardware components are not stand extreme space
conditions, have low accuracy and precision in measurements, and can be vulnerable to noise. Third, due
to time constraints, this project only emulates selected functions on the C&DH unit, communication
subsystems, and thermal management subsystem.
3.2 Project Organization
This capstone project is organized into four stages with the following order. Literature reviews is
the first stage of this project, this includes researches on satellites systems, C&DH unit, communication
subsystems, thermal subsystems, small satellite simulations, and small satellite projects; most of the
literature reviews are performed in this initial stage and continued as project progresses. The second stage
is to individually design and validate emulators for C&DH unit, communication subsystem, and thermal
management subsystem. The third stage is to integrate all emulators into one system, debug software
errors and correct integration conflicts. Lastly the entire system is validated to confirm expectations met
and perform varies tests to assess the robustness and limitations of the project.
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-5-
Chapter 4
Theoretical Formulations
4.1 Approach of Solution
4.1.1 C & DH Function Selections
The C&DH is chosen as our test subject because it serves as a “brain” in any satellite system, its
success needs to be guaranteed before insertion onto a satellite system; it is one of the most complex and
expensive units on satellites. C&DH is required to handle commands, service requests, and data from
surrounding subsystems and the ground operation center; maintains the health of the satellite, and
recovers from minor failures or errors. It performs key functions which includes i) command execution ii)
data collection iii) faults recovery and iv) command storage [2].
4.1.2 Communication Subsystem Functions Selections
The communication subsystem is chosen to test the C&DH unit because it handles interactions
between the satellite and men, passing deliverables to earth and instructions to the satellite. The
communication subsystem is responsible for testing the C&DH unit by means of telecommand, telemetry,
and transmission error injection; providing a user interface for system control, request, and feedback. It
performs functions which includes telemetry transmission, passes of satellite status and collects data from
the C&DH to the user interface; telecommand transmission, forwards user commands to the C&DH for
execution; transmission error injection inputs the C&DH with controlled data errors at a pre-set rate; user
interface, gives robust and efficient request and feedback for users through a computer.
4.1.3 TMS Function Selections
The thermal management subsystem (TMS) utilizes sensory device to track temperatures within
the satellite, reports collected data and temperature anomaly warning to the C&DH unit, and responds
according to commands which issued by the C&DH unit. This subsystem is chosen because it is a
representative subsystem in the entire satellite system, as it contains multiple functions which are present
on multiple subsystems. The thermal management subsystem in this project is to maintain system
temperatures within a pre-set limit and communicate with the C&DH unit for routine data or warnings. it
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-6-
is responsible for functions which include measurement data collection through sensors, false sensory
data rejection, data and warning transmission to the C&DH, and instructions execution from the C&DH.
4.2 Methods
4.2.1 Command Processing
The Command handling function is one of the most important function in the C&DH unit which
receives user commands and executes accordingly [3]. In our project, the C&DH unit receives user
commands from communication subsystem, corrects and verifies the command via the (7,4) hamming
code and a pre-set command lookup table shown in Table 4-1. Verified command executes following a
pre-set instruction. If the command requires to be redirected to thermal management subsystem, the
C&DH re-encodes the command and sends it to the thermal management subsystem. The thermal
subsystem decodes the commands before execution. The miniaturized process is shown in Figure 4-1.
Table 4-1: Command lookup table
Command type Representation
1 System status request
2 Increase control temperature by one degrees
3 Decrease control temperature by one degrees
4 Sample data transmission
For command transmission between the C&DH unit and communication subsystem,
asynchronous data transfer scheme was used because commands from the user are random in time, the
C&DH need to complete the current cycle before it accepts the command. Therefore, asynchronous
transmission makes sense as it does not require synchronization between the sender and receiver. The
asynchronous data transfer scheme was achieved by using FIFO hardware.
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-7-
The real packet format of a telecommand includes command type, space address bits, error check
bits, sequence counter, and length of command depends on the complexity of the command [4]. Once the
C&DH subsystem receive the commands, it reads the commands check the command length identify the
command type and uses the error correction and detection code to debug the commands. After finish
verifying and decoding commands, it stores in the specific space address and increases the command
executed counter. The command format in this project reduces into 4 data bits due to the number of
command available and user accessibility. The format of command which used in the system contained a
start bit, a stop bit, parity bits, and data bits.
Figure 4-1 Sequence diagrams of command handling
4.2.2 Data Processing
Data processing describes when the C&DH collects satellite status, measurements, and data from
surrounding subsystems; then encodes with a selected algorithm and sent through antennas towards
ground station, known as telemetry. In our design, transmission to the ground station is replaced with a
user interface on the Arduino serial monitor.
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-8-
The collection of satellite data and telemetry are performed though a synchronous transmission
scheme. Synchronous transmission well suit this purpose because data processing is mostly scheduled and
fixed in length, data transmission in synchronization will increase transmission speed as it removes
reception delay.
4.2.3 Error injection
In order to evaluate the C&DH unit in its capability to handle anomalies, trackable errors must be
injected from both surrounding subsystems.
The communication system injects transmission errors to the C&DH unit by changing data bits
through software. A scheduled error injection function is written in the communication subsystem
software with a pre-set error rate, this function will inject error to command bytes by flipping a command
bit. The limit of injection rate is 1 bit per byte of command.
The thermal management system injects thermal anomaly warnings to the C&DH unit by
physical contacts to the thermal sensors. Hot and cold objects will contact temperature sensors and the
TMS will assume the ambient temperature has changed. The error ranges limits to the temperature range
of the sensor in use.
4.2.4 Transmission Error Detection and Correction
In order to detect and correct transmission errors, procedures need to be completed by the
subsystems. Through comparison of four error detection methods, (7,4) is chosen to detect and correct
transmission errors. The communication subsystem encodes the 4-bit telecommand into a 7-bit segment
by adding 3 parity bits to the original command and sends the encoded command to C&DH. Upon
reception, the C&DH unit utilizes all 7 bits of data for error detection and correction by using the (7,4)
hamming code algorithm, then it strips off 3 parity bits from the original 4-bit command to match and
execute.
Four methods for error detection and correction are considered and listed in Table 4-2. The first
method is parity checking which adds up all the bits of the command and provides a parity bit to indicate
whether the sum is even or odd. If the sum is even, then the parity bit would be assigned as “0”. While the
parity bit is assigned as “1” when the sum is odd. The parity bit is inserted at the end of the command
message. However, if there are two errors, the sum of the message will overlook these errors and possibly
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-9-
execute the error command. The second method is repeating code that repeatedly sends the same bit for
three times. When the message is received, it compares every three bits and results a single most repeated
bit. As the amount of the message will be three times the original, it takes longer to transmit and uses
more memory to store the message. The third method is CRC which uses a static polynomial as divisor to
divide the command message in order to get the remainder. The message sends out by adding the
remainder at the end of the message. CRC can detect all errors but do not have the ability of error
correction therefore retransmission is required. This can be problematic as retransmission can delay
command execution. The last method is (7,4) hamming code which adds the selected bits in a message
and results in multiple sums, these sums lay in between the command message and they enable error
detection and correction, but this method can only detect up to two errors and correct up to one error in
each message [5].
Table 4-2: Comparison of different error detection and correction methods
Methods
Advantage Disadvantage
Parity checking (odd
and even parity)
• Easy to implement • Even number of errors
cannot be detected
• Cannot correct errors
Repeating Code
• Easy to implement
• Detect and correct one error
• Waste of memory
• Slow transmission
CRC
• Can detect all the errors in
messages up to 12 bits
• Messages need to be
retransmitted
Hamming Code
• Can detect two and correct
one error
• Can only correct up to one
error
4.2.5 Thermal anomaly detection and correction
When the detected ambient temperature is outside of the threshold temperature range, the TMS
will transmit an appropriate warning flag to the C&DH unit. The C&DH unit then process the warning
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-10-
flag and gives instructions to the TMS as a response. Instructions to the TMS will trigger a physical
response mechanism which includes a cooling fan and a heating ceramic resistor. Once the ambient
temperature falls back into operation range, the C&DH will instruct the TMS to stop its physical
response.
4.2.6 Information Storage
Information storage is crucial in a C&DH unit as it can store important time stamped events or
information. The ability to save time stamped events makes post analysis possible when the satellite
returns back to Earth; and the ability to memorize data increases the robustness of the system as
operations can be stored and handled in a desired order.
There are several methods which can achieve the command storage function as referred in Table
4-3.
Table 4-3: Comparison of command storage methods
Type of data
storing
method
Storage size advantage disadvantage
SD card Depend on
different types
of SD card
· Easy to remove from
the whole system
· The capacity of
storage is versatile
· The capacity of
storage is independent from
the Arduino boards.
· Life cycle of SD card
is long [x,10]
· Cost is variable for
different budget [x,10]
· Can be used to store
long term information
[x,10]
· Extra cost compares with
internal storage of Arduino
· The quality of
the SD card will influence the data
reading or writing speed [x,10]
· Data reading or writing speed
will slower than the internal storage
of Arduino board [x,10]
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-11-
EEPROM of
Arduino Mega
4 k bytes · Can be used to store
long term information
· No extra cost
· Open source of code
is available for Arduino
mega.
(EEPROM Library)
· The storage capacity is highly
dependent on the type of Arduino
board
SRAM of
Arduino Mega
8 k bytes · Larger storage size
· Data writing or
reading speed is very fast
· Only used to store the
variables of CDH
· Program may fail easily in
unexpected ways.
4.2.7 Health Monitor (Watchdog Timer)
In order to ensure C&DH has the ability to reset itself in case of a hardware failure or software
loopholes, a watchdog timer is added. In Figure 4-2 showed that the watchdog timer reset automatically
when a timeout occurs in order to recover the C&DH. Each time the C&DH unit executes the command,
it reset the timer and watchdog timer started counting again. In reality, watchdog timer is an important
function when the satellite is failed to work and the computer need to be reset.
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-12-
Figure 4-2: Watchdog timer flowchart
4.3 Technique
4.3.1 Serial Peripheral Interface
As previously mentioned, synchronous transmission is well suited for data and instruction
transfers between the C&DH unit and its surrounding subsystems. There are three serial communication
protocol we have investigated which include (i) SPI, (ii) I2C, and (iii) CAN for data transmissions.
Table4-4 showed the comparison among the three protocols which indicated the number of wires, speed,
the direction of the communication, support of bus and number of master. These factors are considered
for the protocol to use in the project.
Table 4-4: Comparison protocol among SPI, I2C and CAN [14,15]
SPI I2C CAN
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-13-
(Serial Peripheral
Interface)
(Inter-Integrated
Circuit)
(Controller Area
Network)
Wires Four wires (MOSI, MISO,
SS, SCK)
Two wires (SCL, SCK) Two wires (TX, RX)
Speed Higher
(up to 10 Mbps)
Slower
(up to 3.4 Mbps)
High
(up to 1 Mbps)
Communication Full-duplex Half-duplex Half-duplex
Power consume Low High Low
Multiple devices
support
on the same bus with
additional wire
on the same bus with
same wire
on the same bus with
same wire
Data Cannot ensure the data is
received by slave
Ensure the data is
received by slaves
Ensure the data is
received by slaves
Master Supports one master Support multiple
master
Support multiple master
Travel distance Short distance Much greater distance
at low rates
Greatest
The serial peripheral interface (SPI) is a synchronous serial communication method regularly used in
embedded systems with multiple devices. The SPI communicate in full duplex mode, meaning that
bidirectional transmission is allowed on a single clock pulse. The SPI communication supports one master
multiple slave operations, which is very similar to the operation scheme of a C&DH unit. SPI scheme also
thrives in high transmission rate and low power consumption
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-14-
4.3.2 Asynchronous Parallel transmission
Asynchronous transmission, suited for command transmissions, can be done in combination with
either serial transmission scheme or parallel transmission scheme. The benefits for each of them are listed
in table 4-5 and table 4-6. At the same clock frequency, parallel transmission is significantly fast and
easier to implement because a byte can be transmitted per clock cycle without additional start or stop bits.
Command transmissions between the C&DH unit and the communication subsystem utilizes
asynchronous parallel transmission because it handles random.
Table 4-5: Comparison between serial and parallel transmission [12]
No. Factors Serial Parallel
1. Number of bits
transmitted at one clock
pulse
One bit N bits
2. No. of lines required to
transmit n bits
One line N lines
3. Speed of data transfer Slow Fast
4. Cost of transmission Low as one line is required Higher as n lines are required
5. Application Long distance communication
between two computers
Short distance communication.
Like computer to printer
Table 4-6: Comparison between asynchronous and synchronous
Sr. No. Factors Asynchronous Synchronous
1. Data sent at one time Usually 1 byte Multiple bytes
2. Start and Stop bit Used Not used
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-15-
3. Gap between Data units Present Not Present
4. Data transmission speed Slow Fast
5. Cost Low High
4.3.3 Noise reducing method
A noise or electrical interference exists in all electrical systems. More than fifty percent of system
hardware is highly influenced by the noise [3]. There are four types of common interferences.
Conducted Interference:
The noise signal exists and transmit in wires. This type of noise is also known as the crosstalk
noise. The crosstalk noise appears in all the electric circuits. It causes the unstable of the voltage in signal
wires [3].
Radiated Interference:
The source of this noise is the electric and magnetic fields. Since the electric or magnetic fields
can be transmitted in air from start port to the terminal during signal transmitting. The influence of this
noise is greater in the circuits with radiated components [3].
Electrostatic Discharge:
Electrostatic Discharge is created by the contact or apart of different kind of materials. It can
damage the circuit by its high energy and frequency [3].
Radio Frequency Interference:
Radio astronomy is one of the major sources of noise that can interfere the normal working of
satellite [3].
There are lots of ways to reduce noise in this project. The most common ways are shown in Table 4-7.
Table 4-7: Comparison of reducing noise method
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-16-
Noise Reducing
methods
Principle Advantage Disadvantage
Use shielded
twisted pair
cables
After shielded, the signal wires will
not effect by other conductors outside
the shield.
· Easy to
decrease the crosstalk
noise
· Minimize the
radiations from
electromagnetic fields
· Can reduce
electric noise in wide
frequency range.
· Extra cost
Isolate signals Isolate the noisy components from the
whole system.
· Can solve
ground loop and signal
conversion problems
· Hard to
implement.
· A signal
isolator is needed
Use different
measurements
In high speed digital signal
communication, it is important to
choose wire with specific impedance
to guarantee the signal was
transmitted with maximum power.
· Can eliminate
any crosstalk noise
theoretically.
· Can take benefit
from twist pair cable.
· Hard to
eliminate all noise
in real case.
Filters Filter is used to remove the noise by
cut-off frequency.
· Low cost
· Easy to design
· Can be achieved
in either software or
hardware
· Not
sensitive with the
environment.
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-17-
4.4 Algorithms
4.4.1 Hamming code algorithm
Hamming code (7,4) is a method that substituting three digit (either 1 or 0) into a four-digit
binary number. In Figure 4-4 shows that P1, P2 and P4 are the position of the three new digit which are
using the concept of XOR gate to calculate the number. For example, P1 is taking the value from position
X3, X5, and X7 and after the calculation, the new value of P1 replaced the original one in the hamming
code word. When the received side received the code and it started decoding with the seven digit binary
number. The method was similar to encoding which calculating S1, S2, and S4 with certain position that
were shown in Figure 4-5. If either one of them has the value of “1”, an error occurred. S1, S1, and S4
indicated the location of the error such that S1 = 1, S2 = 0, and S4 = 1 which the binary combination is
“101”. This binary combination showed that the error occurred in bit 5.
Figure 4-4: Logic of using hamming code to encode in error correction
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-18-
Figure 4-5: The correction Process
4.4.2 Temperature sensor conversion algorithm
In order to obtain the temperature reading in Celsius, the microcontroller have to convert the
analog input voltage into digital bits by using the build in A/D converter. The A/D converter transforms
the analog voltage level between 0 to 1023 and turns the 10-bit analog reading into Celsius. The specific
calculation for each sensor are shown in Table 4-8.
Table 4-8: Calculation for each temperature sensor
TMP36 Voltage at Analog Pin1= (reading from ADC) * (5000/1024)
Temperature in Celsius = [(analog voltage) - 500] / 10
NTC Analog_reading=1023 - analogRead(Analog Pin0)
Temperature in Celsius = 3950 /(log((1025.0 * 10 / Analog_reading - 10) / 10) + beta /
298.0) - 273.0
MCP908 Temperature in Celsius = Tempsensor.readTempC(); //directly from the library
“Adafruit_MCP9808.h”
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-19-
4.5 Theoretical formulation outcomes
Transmission scheme:
In order to test the C&DH unit, telemetry and telecommand functions are implemented by using
two communication methods. The telemetry function uses synchronous SPI communication protocol
which operates at high frequencies. The choice of this communication scheme arises from two reasons.
Telemetry data are prepared and sent by the C&DH on scheduled basis with a fixed size, which makes it
ideal for fast synchronous transmission; second reason is that fast transmission requires hardware
components to be working under high frequencies, therefore serial transmission is ideal for reducing
crosstalk noise generated by fast alternating current. Whereas the telecommand function utilizes an
asynchronous eight bit parallel communication scheme as telecommands varies in length and transmits at
a slower rate. The uncertainty in size of the command and low transmission rate is suitable for
asynchronous transmission as commands can be first stored in a buffer device such as a FIFO, and acquire
it once all commands are received to prevent the system from spending unnecessary time in waiting, also
at low frequencies, crosstalk won't be significant in this parallel scheme. Another reason for having a
second transmission scheme is that in case one protocol fails, the second transmission protocol can handle
both telemetry and telecommand as both transmission schemes are capable of half duplex transmission.
Communication Protocol:
By considering the communication between subsystems need to be bidirectional, a full-duplex
protocol is our first priority as C&DH has to receive the message from thermal and send commands to
control the subsystems. On the other hand, the speed of the transmitting message is our second
consideration as a higher speed of transfer rate can provide a feedback instantaneously. As a result, SPI is
chosen for the communication in both thermal subsystem and communication subsystem. The connection
between them is shown in Figure 4-6 which indicates that they are sharing the same connections with a
separate slave pin to control which slave is able to communicate with C&DH.
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-20-
Figure 4-6: SPI connection
Error correction:
In order to obtain the resilience of C&DH, an error handling method is implemented. The method
that is chosen in this project is hamming (7,4) code method. The reasons for choosing (7,4) hamming
code are the following: the coding scheme allowed both error detection and error correction. Therefore,
C&DH obtain a correct command without retransmission when an error occurs and leads to a higher
transfer rate. Comparing to (7,3) hamming code, (7,4) used less parity bit, thus it can obtain a higher
encoding rate and the error was correction is simpler than other method. Since the hamming distance for
(7,4) hamming code is three, the error could be corrected when there is only one error detected [5].
Command storage:
The command storage function is implemented by using EEPROM in Arduino mega. Every
command that received from the communication subsystem is stored in the EEPROM in Arduino mega.
The storage size of EEPROM for Arduino mega is 4096 bytes.
Thermal Management System
The TMS contains the temperature sensors, heating unit and cooling unit. Both heating unit and
cooling unit are controlled by the C&DH. And the temperature data are transmitted to the C&DH. If the
detected temperature is over or under the predetermined range, C&DH sends the command to the TMS
for changing the current temperature whether increasing or decreasing depends on temperature, and
ensure the system is in the predetermined range.
G17 Final Report 2017 Chapter 4 – Theoretical Formulations
-21-
However, the whole system is designed to expose in the air and the main objective of our project
is to provide a testing platform for C&DH through the control for the heating unit and cooling unit. And
the thermal commands transmission is shown in both hardware and software.
Chapter 5
System Design
5.1 Hardware Components
5.1.1 Microcontroller
According to Table 5-1: Comparison of Board Choosing, the Raspberry Pi is a fully functional
computer, but Arduino boards are microcontrollers, not full computers. It does not run a full operating
system. However, executing simple code is easier and is not required specific operating system.
Therefore, Arduino boards are great for interfacing with other devices, especially Arduino boards have a
plenty of facilities for communicating with another Arduino boards or other microcontrollers [16].
For instance, every Arduino Uno boards include 14 digital pins that can be used as input or output by
using the function of pinMode() and digitalWrite(), and digitalRead(). Compare to the Raspberry Pi, the
Arduino software (IDE) does not have limits for the operating systems, it can run on the Windows,
Macintosh OSX and Linux. The IDE s a simple and clear programming surrounding that is suitable for
the beginner; at the same time, it is also flexibility enough for advanced users to use. On the other hand,
the Arduino boards are relatively economical compared with other microcontroller platforms. Arduino
Uno board that showed in the below Figure5-1 is a great choice for the communication subsystem and
thermal subsystem.
As a result, two Arduino Uno board are used for the thermal subsystem and C&DH by connecting
the pin 10 to pin 13 for the SPI protocol at the beginning. After we have added the communication
subsystem, the number of pins on the C&DH are insufficient for both subsystems. Therefore, the Uno
board is replaced with a Mega Arduino board as there are more pins for the digital input. C&DH is
connected to communication through a FIFO in order to receive the commands and a SPI for sending a
response message to it
G17 Final Report 2017 Chapter 5 – System Design
-22-
Table 5-1: Comparison of board choosing [17]
Arduino Raspberry Pi
Board microcontroller motherboard general-purpose computer / fully
functional computer
Purpose Gathering data such as reading sensors
and changing values
Complete task with personal computer /
need to connect Internet
Tasks run one program at a time run multiple programs
Complexity Easy to use complicated
Operating
system
Not specified Linux
Power Low (5V / 3.3V) 5V
shut down pull the plug via a software process
Networking Need extra chip built-in Ethernet port
Sensors Easy to connect analog sensors with
commands
Requires software to interface with
devices
G17 Final Report 2017 Chapter 5 – System Design
-23-
Figure 5-1: Arduino Uno R3
Figure 5-2. Arduino Mega 2560
5.1.2 Communication Subsystem
The FIFOs include four main different types which shown in the below Table 5-2. Comparing
with the software FIFOs, hardware FIFOs is faster than software memory based FIFOs. Meanwhile, the
G17 Final Report 2017 Chapter 5 – System Design
-24-
control is local that does not involve any microcontroller. However, the software FIFOs must provide the
control [18]. According to the Table 5-2, a FIFO can be either asynchronous and synchronous, write and
read for asynchronous have different rates and a clock is not required. However, the write and read need
to have a same rate and a clock is required for synchronous.
Table 5-2: FIFO types [18]
As a result, the IDT 7200 is chosen as FIFO component in the project. The IDT 7200 pin
configuration are shown in Figure 5-3. This dual-port memory hardware FIFO loads and empties data on
a first in first out basis. [Ref 97] The devices use full and empty flags to prevent data overflow and
underflow. On the other hand, expansion logic allows unlimited expansion capability in both word size
and depth. This “dual-port” represents there are two data separated lines for write and read. Data is
toggled in and out of the devices through the use of Write (Wn) and Read pins(Rn). The read and write
are internally sequential through the use of circle pointers without requiring address information to load
and unload data.
G17 Final Report 2017 Chapter 5 – System Design
-25-
Figure 5-3: Pin configurations [19]
5.1.3 Thermal Subsystem
In the TMS, it consists three major units which are temperature sensors, heating unit, and cooling
unit. In this project, three different methods are proposed for both heating unit and cooling unit. However,
both cooling unit and the heating unit are activated depend on the temperature sensor. And the
temperature sensor is placed in the whole system to detect the actual temperature for each subsystem in
order to avoid the overheat and undercool situations. Thus, the sensitivity and the temperature range are
the essential keys for choosing the correct temperature sensor.
For the heating unit, three different ideas are introduced as following: i) Peltier unit, ii) Ceramic
resistor, and iii) PTC thermistors. Based on different heating elements, the operating requirements are
independent. Firstly, Peltier unit, this kind of heating elements has different sides that provided heat or
cold. the minimum supply voltage is about 12 V and the rating power is around 60W which means Peltier
unit required more current to reach the rating power. However, since Peltier unit provides heat and cold at
the same time, the situation of the unit can not be controlled[p]. Secondly, Ceramic resistors, this kind of
heating elements is made by ceramic which can dissipate heat outside the resistor. Since the voltage
supplied by Arduino is too small to provide enough current to resistors, a boost converter to step up the
5V voltage to around 15 V is decided to be built[c]. Thirdly, PTC thermistors, the minimum supply
voltage of the heating unit is 12 V. Amplifier and several resistors is used to generate enough voltage to
G17 Final Report 2017 Chapter 5 – System Design
-26-
the thermistors. Based on different sizes of the thermistors, the speed of rising up the temperature can be
easily controlled. The operating temperature of the thermistor is -40°C to 125°C[PTC]. However, the
operating temperature of this device is lower than the ceramic resistor, ceramic resistor is decided to use
as a priority plan in the project. The performance for each heating elements are shown in Table 5-3.
Table 5-3: Comparison of different heating elements
Peltier unit ceramic resistor PTC Thermistor
Type TEC1—12708 / RO8.5-76.0
(B/N193623)
YAGEO 1322 5w
10R J
Disk shaped, 230 V, Æ
= 8 mm
Voltage Operating
Range
up to 15.4V up to 350V 230V - 265V
Temperature Operating
Range
less than 90 degree from -55 C to 155
C
from -40 C to 100 C
On the other hand, for the cooling unit, there are three proposed elements to release the waste
heat from the system as following, i) Heat pipe, ii) Radiator, and iii) PC Fan. Each individual cooling
elements performed in different ways. Firstly, heat pipe is the most efficient way to transport the large
quantities of heat from one location to another by using a closed two phase fluid flow cycle. Secondly,
radiator rejects the waste heat of the system and any radiant heat loads from the environment. Thirdly, PC
fan is an electrical device to circulate the air within the system. Table 5-6 shows the comparison of three
different cooling units.
Table 5-4: Comparison of three different cooling units [2]
Type of
Cooling Unit
Advantage Disadvantage
Heat Pipe Transport large amount of heat without using
electrical power
Size constraint
Mass constraint
G17 Final Report 2017 Chapter 5 – System Design
-27-
Suitable to used in varying temperature ranges by
applying different working fluids
Radiator Active thermal control elements
No power required to operate
Needed additional surface
finished
Radiating power depends on
the emissivity
DC Fan Adjustable fan speed
Automatically turn on upon the temperature sensor
Required power to operate
Not cool off in closed space
TMP36
The TMP36 is the temperature sensor which is the low voltage and precision centigrade
temperature sensor. It provides a voltage output that is linearly proportional to the temperature in Celsius
and does not require any external calibration for providing typical accuracies over the temperature range
from -40°C to 125°C. The technical specifications of the TMP36 are shown in the Table 5-5 [9].
Table 5-5: Technical specification of TMP36
Parameter Specification
Test Conditions Minimum Typical Maximum
Temperature Range
−40°C
125°C
Supply Voltage
2.7 V
5.5V
Accuracy TA = 25°C
−40°C ≤ TA ≤ +125°C
±1°C
±2°C
Supply Current
50 uA
G17 Final Report 2017 Chapter 5 – System Design
-28-
NTC thermistor
The NTC thermistor has the high measurement accuracy with a wide range, good stability and
strong overload capacity. The precision of NTC thermistors can up to 0.1°C. When the temperature gets
higher, the resistance of the thermistor decreases and the voltage of pin A0 increases accordingly. The
voltage data converts to digital quantities by the internal A/D adapter of Arduino Uno [10].
Table 5-6: Technical specification of NTC thermistor
Parameter Specification
Test Conditions Minimum Typical Maximum
Temperature Range
−50°C
150°C
Supply Voltage
3.3 V
5.5V
Accuracy −25°C ≤ TA ≤ +85°C −55°C ≤ TA ≤ +150°C
±0.5°C
±1°C
MCP9808
The MCP9808 is the most precise temperature sensor among the three, with typical accuracy of
0.25°C in the range from -40°C to 125°C and precision of 0.0625°C. It is the I2C digital temperature
sensor using the I2C data pins, which are SCL and SDA. This MCP9808 comes in the compact PCB with
the pull-down resistors for 3 address pins and it can connect up to eight units to a single I2C bus without
address collision [11].
Table 5-7: Technical Specification of MCP9808
Parameter Specification
Test Conditions Minimum Typical Maximum
G17 Final Report 2017 Chapter 5 – System Design
-29-
Temperature Range
−40°C
125°C
Supply Voltage
2.7 V
5.5V
Accuracy −40°C ≤ TA ≤ +125°C
−20°C ≤ TA ≤ +100°C
±0.25°C
±0.5°C
Supply Current
200 uA
DC Fan
The DC Fan is used as the cooling unit in the TMS. And it has the ability to operate in different
speeds, which is based on the use of analog output PWM. The PWM is the digital control that used to
create the on-off pattern into square wave switching between 0V and 5V. In order to operate in different
speeds, by changing the portion of the time the signals spend on versus the time that the signal spend off.
Figure 5-4: DC fan speeds on different duty cycles
In TMS design, the DC Fan is operated in four levels of speed based on the predetermined
temperature range and programmed in the IDE software. According to the flowchart in Figure5-5, it is
clearly illustrated that the DC Fan is off when the temperature in the predetermined range. If the
temperature is higher than the normal temperature and less than the warning temperature, the DC Fan
starts operating at 25% of the speed. And if the temperature is greater than the warning temperature and
less than the maximum limit, the DC Fan is operating at 50% of the speed. The last situation, if the
temperature is over the maximum limit, the DC Fan is operating at the 100% of the speed.
Table 5-8: Specification of the DC fan
Supply Voltage 3V - 5V
G17 Final Report 2017 Chapter 5 – System Design
-30-
Adjustable Speed 0 - 255 rpm
Din 0-OFF/1-ON
Figure5-5: DC fan flowchart
G17 Final Report 2017 Chapter 5 – System Design
-31-
LCD
The 16x2 LCD is used to display the changing temperature and the status of the fan in the thermal
subsystem. And the model of the LCD is NHD-0216XZ-FSW-GBW and is shown in Figure5-6. This
LCD has its own built-in controller (ST7066U), which means it has the ability to convert the signal from
Arduino Uno on the correct display of LCD, based on the build-in font table. The communication
between the Arduino Uno and the LCD is bidirectional in order to send the signal from Arduino to be
displayed by the LCD [20].
Figure 5-6: Model of LCD
The 16x2 LCD means that it can display 16 characters per line and there are 2 lines in total. Table 5-9
shows the pin description of the LCD.
Table 5-9: Pin description for LCD
Pin Number Symbol Function description
1 VSS Ground
2 VDD Supply Voltage (5V)
3 V0 Power Supply for contrast
4 RS Register Select Signal (RS=0: Command, RS=1: Data)
5 R/W Read/Write Select Signal(R/W=1: Read, R/W=0: Write)
6 E Enable signal, Falling edge triggered
G17 Final Report 2017 Chapter 5 – System Design
-32-
7-14 DB0-DB7 Bi-directional three-state data bus lines
15 LED+ Power supply for LED Backlight
16 LED- Ground for Backlight
Bipolar Junction Transistor (BJT)
The BJT is used as a switch in order to control on/off of the heating unit. The basic concept is
using the supplied current from Arduino Uno to control the statement of the BJT. And the type of BJT is
NPN since the load needs a positive voltage at collector terminal, and there is a sufficient base current
which is supplied by Arduino to turn on the transistor. And Table 5-10 shows the parameter of bipolar
junction transistor [21].
Table 5-10: Parameter of bipolar junction transistor
Parameter Specification
Minimum Maximum
Temperature Range −55°C 150°C
Maximum Collector-Emitter Voltage
40V
Maximum Collector-Base Voltage
60V
Maximum Emitter-Base Voltage
6.0V
5.1.4 Accessories
Solderless Breadboard
The breadboard is a rectangular piece of insulating material used to hold electronic components
when making circuit prototypes. These three reasons of using breadboard: first of all, breadboards have
solderless connections that allow components to be changed quickly, and the components are not
damaged by heat from being continuously soldered. Moreover, a variety of electronic systems may be
prototyped by using breadboards, from small analog and digital circuits to complete central processing
G17 Final Report 2017 Chapter 5 – System Design
-33-
units. Although, breadboards cannot be used for circuits that require high frequencies because the
connecting strips have high resistance and stray capacitance. High voltages and currents cannot be used
because they can cause arcing between the connecting strips. However, we don’t require high frequencies,
high resistance and stray capacitance and high voltages and currents in the circuit in the project. Since this
project need plenty of testing and improvement for circuit; therefore, the GS-830 solderless breadboard is
chosen in the project. [22]
Wires
The reason of using various colors of solid-core 22 AWG hook-up wire is chosen breadboard in the
project which shown in the Figure 5-7. The typically breadboard holes only handle a small range of wire
gauges, because a too small wire will fall out or make a poor connection. [23] If a wire is too large, it will
bend out a hole or just not fit. However, the most often 22gauge wire specifically is marketed for
breadboards. On the other hand, Wire may be drawn from different conductive materials, most often
metal. Gold and silver are excellent conductors of electricity. But exotic metals are often soft and
expensive. Most practical wires are made of copper and tin. Meanwhile, the various colors of wires
represent different uses in project.
Figure 5-7: Various colors of solid-core wire [24]
G17 Final Report 2017 Chapter 5 – System Design
-34-
5.2 Implementation
5.2.1 Schematic of the whole project
The whole system is supplied by a 9V battery through the switching regulator. And it contains the
C&DH, communication subsystem and the thermal management subsystem. The communication between
C&DH and each subsystem is using the SPI protocol. The Figure 5-8 shows the schematic for the whole
project.
Figure 5-8: The whole circuit for the project
5.2.2 Feedback of commands
Communication and thermal subsystem are connected to C&DH through SPI which is shown in
Figure 5-9. From pin 10 to pin 13 of the two subsystems are the default SPI pins on the Arduino UNO
while pin 49 to pin 53 are on Mega. An interrupt is set up on the communication and thermal subsystem.
If there is a new message generating from C&DH, an interrupt occurs simultaneously. Both subsystems
G17 Final Report 2017 Chapter 5 – System Design
-35-
give the response immediately when they receive the interrupt message. And C&DH selects different
subsystem by setting the slave pin to low.
Figure 5-9: Pin connections among C&DH, communication and thermal subsystems
5.2.3 Telecommand
The telecommand function uses parallel asynchronous transmission scheme. This scheme
successfully uses eight I/O pins (D0-D7) as data pins and five I/O pins as control pins. a FIFO is used as a
buffer for the transmitted data as shown in the Figure 5-10. Parallel asynchronous transmission is
designed for the uplink data transfer from the communication subsystem (Arduino Uno R3) to the C&DH
unit (Arduino Mega 2560).
G17 Final Report 2017 Chapter 5 – System Design
-36-
Figure 5-10: Parallel asynchronous transmission
5.2.4 Thermal Management Subsystem
Figure 5-11 shows the whole circuit in the TMS, which contains the ceramic resistor as heating
unit, DC Fan as the cooling unit, and three temperature sensors. And the LCD is used to display the
current temperature and the status of the DC Fan. The cooling unit is controlled on the PWM digital pin 9
and the heating unit is turning on/off by the NPN transistor switch on digital pin 8. All three temperature
sensors are connected to the analog pins of Arduino Uno. There is a build-in A/D converter transforms the
10-bit analog reading into temperature in Celsius.
G17 Final Report 2017 Chapter 5 – System Design
-37-
Figure 5-11: Entire circuit for TMS
Basic concept of the entire heater unit uses Arduino connect with a Bipolar Junction Transistor to
control a heating element which is the 10 Ω ceramic resistor. The voltage is supplied by 5V voltage bus.
Therefore, the ideal power supplied by heater is 2.5W, and the simulation result is 2.461W which shown
in Figure 5-12.
G17 Final Report 2017 Chapter 5 – System Design
-38-
Figure5-12: Simulation of heater unit [25]
5.2.5 Power Unit
A 9V battery is used as input voltage to provide 5V through a voltage regulator switching
(LM317). In order to generate the stable output voltage at 5V, the value of R1 and R2 is calculated using
the equation:𝑉𝑜𝑢𝑡 = 𝑉𝑟𝑒𝑓 ∗ (1 +𝑅2
𝑅1)[25]. Therefore, the ratio of R2/R1 is (Vout/Vref) - 1 =
(5V/1.25V) - 1 = 3. However, the value of the resistors is chosen based on the real value. And 330 and
1000 are selected as R1 and R2 respectively. By using Multisim, the output voltage is 5.09V, which is
shown in Figure 5-13. While the calculated output voltage is 5.038V from the equation. And for the
circuit in practice, the actual output voltage supplied by 9V battery is 5.028V, and it is close to the
calculated value.
G17 Final Report 2017 Chapter 5 – System Design
-39-
Figure 5-13: The simulation of voltage regulator for power supply [26]
5.3 Test Design
5.3.1 Fault recovery testing
To test the response of recovering message in C&DH, a fault inject function is implemented. The
function added a fault into the command message with a random position and send the message to
C&DH. When the C&DH received the message, which contained a fault, the message is corrected
automatically in the original message by using hamming code in each subsystem. The function of
message recovery is successfully working for each error that had implemented.
5.3.2 Test design for command processing
In order to test the function of command processing. Four different types of commands are created.
The first type of command is used to get system status (temperature) from thermal subsystem. The second
and third type of commands is used to change the status of the thermal subsystem. The fourth type of
command is to send data to C&DH subsystem. With different types of commands, C&DH have different
command handle ways. For first type of command, the C&DH subsystem sends the command to thermal
subsystem and asks for the thermal status. If the C&DH received the second and third type of commands,
it sends these commands and require the thermal subsystem to execute them. If all the commands are
handled successfully, then it indicates the command processing function is fully implemented.
5.3.3 Design test for Thermal Subsystem
This project is to design the test platform for C&DH. Therefore, it is necessary to check the
communication between the C&DH and TMS. The TMS should maintain the temperature in the
predetermined range, and it is controlling by thermal commands from C&DH, whether turning on/off for
the heating unit or the cooling unit. The test for the TMS is separated into two parts, which are software
and hardware test. For software test, using the Arduino IDE and serial monitor to check the program is
working properly or not. And applying the logic analyzer to verify the transmission between C&DH and
TMS. For hardware test, it should check whether the heating unit and the cooling unit working properly
or not. In order to test the TMS, using the different temperature ranges to activate either the heating unit
or the cooling unit.
G17 Final Report 2017 Chapter 5 – System Design
-40-
5.4 Verification
5.4.1 Fault recovery Verification
In order to verify the recovery of command with fault that we have obtained, a logic analyzer is
used to observe the result. The logic analyzer is connected to the SPI on thermal subsystem. In Figure 5-
14 showed that an encoded command “105” in MOSI while in Figure 5-15 showed “97” and “109” in
MOSI which indicated an encoded command with fault. As the command is corrected and decoded, it
gives a correct command to the subsystem. Thus, the result shows that all of them are returned a
temperature to C&DH as the corrected message and the command is obtained correctly.
Figure 5-16 is the result of the fault inject and recovery method shows by serial monitor. The left side
of the figure is the serial monitor of Communication subsystem and the right-hand side of the figure is the
serial monitor of C&DH subsystem. The serial monitor of Communication subsystem shows that a
random fault has been injected when sending the encoded command 1. The serial monitor of C&DH
shows that when it received encoded command 1, a fault is detected at the position 2 of the encoded
command 1 and the line after “Error detected at 2” shows the number of command received after fault
recovery and decoded which is command 1.
Figure 5-14: Command observed from logic analyzer
G17 Final Report 2017 Chapter 5 – System Design
-41-
Figure 5-15: Command observed from logic analyzer
Figure 5-16: The fault inject and recovery function
G17 Final Report 2017 Chapter 5 – System Design
-42-
5.4.2 Command Processing
A logic analysis is used to observe the speed of command processing and telemetry
(housekeeping data) processing. The reason for using logic analysis is that it shows the clock and data
transmission. It also shows the time period for each command or data during data transfer. Figure 5-18
shows the clock and data transmitting when command 4 is send. The data is transmitted at the falling edge
of the clock in logic analysis which can be read at the position of the white point of each channel as
shown in the Figure 5-18. The result read from the logic analysis for command 4 is 00000100 in binary
which is 4 in decimal. In Figure 5-19, C&DH subsystem sends the command or receives data and
feedbacks from the thermal subsystem through the SPI transmission.
5.4.3 Command Storage
The main purpose of testing the command storage is to observe whether the commands are
successfully saved in EEPROM of Arduino Mega or not. Therefore, a function of reading EEPROM in
Arduino Mega is used. The program printed out the commands which stores in the EEPROM
automatically when it received a new command from communication subsystem. The printing result is
shown in serial monitor. In Figure 5-17, the left column of number after the line of “0:00:35 16 3 2017”
shows the position of the EEPROM, and the right column of numbers shows all the commands received
by the C&DH from beginning to the time 0:00:35, 16/3/2017.
Figure 5-17: Part of outcome of C&DH display on serial monitor
G17 Final Report 2017 Chapter 5 – System Design
-43-
Figure 5-18: Telemetry processing between C&DH and communication subsystem through SPI
Figure 5-19: Data transfer between C&DH and thermal subsystem through SPI
Figure 5-20: Command processing between C&DH and communication subsystem
G17 Final Report 2017 Chapter 5 – System Design
-44-
5.4.4 Thermal Management Subsystem
According to the designed test, the predetermined temperature is changing in order to verify the
thermal commands transmission between C&DH and TMS. And it is testing the MOSI, MISO, Clock and
SS pins on the logic analyzer. Figure 5-6 and 5-7 shows the thermal commands transmission on channel
0, channel 1, channel 2 and channel 3, which are the MOSI, MISO, Clock and SS pins respectively.
In Figure 5-21, it shows the increasing temperature command transmission. The C&DH is
sending the encoded command “42” to the TMS and allow the TMS turning on the heating unit to
increase the current temperature. While the TSC simultaneously sends the acknowledge “255” back to
C&DH, which telling the C&DH that TMS have received the command successfully. And this
transmission is done in the 8 clock cycles.
In addition, in Figure 5-22, it shows the decreasing temperature command transmission. The
C&DH sends the encoded command “67” to the TMS and allows the TMS turning on the cooling unit to
decrease the current temperature. While the TSC simultaneously sends the acknowledge “255” back to
C&DH, which telling the C&DH that TMS have received the command successfully. And this
transmission is also done in the 8 clock cycles.
Figure 5-21: Heating command transmission
G17 Final Report 2017 Chapter 5 – System Design
-45-
Figure 5-22: Cooling command transmission
On the other hand, the verification of the thermal commands is also shown in the hardware part.
For the heating command, the ceramic resistor starts heating up by closing the NPN transistor switch.
And there is a blue LED connecting with the ceramic resistor to indicate whether the NPN transistor
switch is on or not. And it is shown in Figure 5-23, the blue LED is switched on after receiving the
heating command from C&DH. And the heating command is the key turning the NPN transistor on and
off. For the cooling command, the DC Fan is turning on after receiving the cooling command from
C&DH. And the fan is activated in three different speeds according to the predetermined temperature
range, which is controlling by the digital PWM pin 9 of the Arduino Uno.
G17 Final Report 2017 Chapter 5 – System Design
-46-
Figure 5-23: Heating command verification on hardware
5.5 Result Collection
Power Testing Results
The actual input voltage which is supplied by 9V battery is 7.19V, the supplied current measured
before entered into voltage regulator is 0.457A. The supplied voltage after regulated is5.019V and the
current after regulated is 0.475A because the voltage regulator only change the amplitude of the voltage.
The supplied voltage to heater is around 5.018V and the current through heater is 0.35A. Therefore, the
actual power is 5.018V * 0.35A = 1.756W. Arduino supplied 0.03A current into BJT switch to control the
statement of heater.
Table 5-11: Voltage and current of whole system
Vin 7.19V Iin 0.457A
Vreg 5.019V Ireg 0.475A
Vheater 5.018V Iheater 0.35A
VArduino 1.504V IArduino 0.03A
G17 Final Report 2017 Chapter 5 – System Design
-47-
C&DH
Performance Matrix of C&DH shows in Table 5-12 and the performance of the fault recovery
method shows in Table 5-13.
Table 5-12: Performance matrix of C&DH
Requirements for typical C&DH Results in our project
Processing of Commands
· Command rates:
· Computer interface:
· Command storage:
· 50 commands/s
· None
· Commands
· 40-60 commands/s
· None
· Telemetry
Processing of telemetry
· House keeping data rate:
· Computer interface:
· 500-4kb/s
· None
· 8 kb/s
· None
Others:
· Mission time clock
· Watch dog
· Included
· None
· Included
· Included
Table 5-13 Performance of fault recovery method for C&DH
Error Handling method Hamming code (7,4)
Error Inject Rate 48.423%
Error Detection Rate 90%-100%
Error Correction Rate 90%-100%
G17 Final Report 2017 Chapter 5 – System Design
-48-
Figure5-24 shows the outcome of the CDH subsystem display by serial monitor of Arduino.
Figure 5-24: Outcome of C&DH
G17 Final Report 2017 Chapter 5 – System Design
-49-
Figure 5-25 shows the outcome of the Communication subsystem displayed by serial monitor in
Arduino. The numbers after “Command transmission in progress” shows the command that sends to the
C&DH subsystem and the column of data after “the command execution in progress” shows the data that
Communication subsystem wants to send to the C&DH subsystem.
Figure 5-25: Outcome of communication subsystem
G17 Final Report 2017 Chapter 5 – System Design
-50-
Figure 5-26 shows the status of the thermal subsystem display by Arduino serial monitor. It
showed the temperature received from three different types of sensors. The thermal subsystem calculated
the mean temperature as the housekeeping data and sent to C&DH when it required.
Figure 5-26: Outcome of thermal subsystem
G17 Final Report 2017 Chapter 6 – Discussion
-51-
Chapter 6
Discussion
6.1 Discussion of Result
The result obtained from the test validated the communication between C&DH and the two
subsystems which emulated a real satellite. Some of the main functions are chosen to be demonstrated in
figures and successfully displayed key functions which included the command processing, fault recovery
and health monitoring. When a command is called from the communication subsystem by user, the
C&DH received and processed the command and redirected to the thermal subsystem. All of the process
are printed out on the serial monitor.
In the communication subsystem, a user interface is created for the users to select a command. By
sending the command to C&DH, a feedback and a logged time are successfully obtained by receiving
either a temperature response message or an acknowledge from C&DH. The messages are all printed out
on the serial monitor as the received time.
For the TMS, the heating unit, cooling unit and the sensors works properly referring to different
range of temperature. Both heating unit and cooling unit normally turns off when the temperature is in the
desirable temperature range. If the temperature is determined as overheat, C&DH sends the cooling
command to the TMS and the DC fan turns on and operates at different speeds based on the temperature
levels. On the other hand, the heating command is sent to the TMS when the system is undercooling.
Then, the ceramic resistor heats up by closing the NPN transistor. Based on the testing and the result from
previous chapter, the thermal commands transmission is successfully done in both hardware and software.
G17 Final Report 2017 Chapter 7 – Conclusion
-52-
Chapter 7
Conclusion
The resulted satellite emulation system for a C&DH unit met all performance metrics introduced
in the proposal of this project. The system achieved the goal of testing a C&DH unit in both regular
routines and failure recoveries.
In a real satellite, there are more redundancy for each part in every subsystem in order to provide
a high reliability and therefore, more sensors and heater will be added as a backup for the satellite.
Moreover, a reduction of noise method will be introduced as the noise exists in a real satellite which
affect the operation of it. In order to achieve a complete emulator of satellite, more functions will be
added to the C&DH so that it can fit in a satellite with more subsystems such as Attitude Determination
and Control System and Power subsystem.
For further improvement, the C&DH subsystem should have either high quality of components or
cold redundancy [27]. A second Arduino Mega with the same functions as the first one can be added in
the system as backup subsystem. If the origin C&DH works smoothly, then the redundant C&DH only
plays a role of storage which uses to store data and commands [27]. Therefore, when there are crush or
damaged on the original C&DH, it can replace the original one without affecting the whole system and no
information will be lost in this process.
G17 Final Report 2017 Reference
-53-
References
[1] NASA. (2014, Feb. 12). What is a Satellite? [Online]. Available:
https://www.nasa.gov/audience/forstudents/5-8/features/nasa-knows/what-is-a-satellite-58.html
[March 17, 2017]
[2] W. J. Larson, and J. R. Wertz. (1999). “Spacecraft Subsystems” in Space Mission Analysis and
Design, 3rd Ed. Hawthorne, CA.: Microcosm; New York: Springer, Chapter 11, pp 353-518.
[3] D. B. Watson. (2007). Stop the Noise: The Importance of Being (Properly) Shielded [Online].
Available:
http://www.newark.com/pdfs/techarticles/Stop_the_Noise_The_Importance_of_Being_Properly_
Shielded_FINAL_2-20-07.pdf [Mar 16, 2017].
[4] W. A. Beech, D. E. Nielsen, and J. Taylor. (1998). AX.25 Link Access Protocol for Amateur
Packet Radio [Online]. Available: http://www.tapr.org/pdf/AX25.2.2.pdf [March 17, 2017].
[5] T. Iida, Ed. (2000). “Error Control and Coding Techniques” in Satellite Communication System
and its Design Technology [Online], Tokyo, Japan: IOS Press, Ch. 9, pp 335-341. Available:
https://books.google.ca/books?id=v-
OuSc4t7IQC&pg=PA335&lpg=PA335&dq=error+detection+in+satellite+communication&sourc
e=bl&ots=Tu0b1YgMvm&sig=upWVUzCYfouhhSge5xgCsyEXqJ8&hl=zh-
TW&sa=X&ved=0ahUKEwjpgqvJiI7RAhXry4MKHfz3D-
4Q6AEINjAC#v=onepage&q=error%20detection%20in%20satellite%20communication&f=false
[March. 01, 2017].
[6] Anon. (2008). “Peltier Element Type 12708: Specification / Data Sheet” [Online]. Available:
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/193623-da-01-en-
PELTIER_ELEMENT_TEC1_12708.pdf [March 16, 2017].
[7] TE connectivity. (2011). “High Power Resistors, Type SQ Series” [Online]. Available:
http://www.soemtron.org/downloads/disposals/typesqcementresistors.pdf [March16, 2017].
[8] TDK. (2016). “PTC thermistors as heating elements” [Online]. Available:
https://en.tdk.eu/inf/55/db/PTC/PTC_Heating_B59053_A53.pdf [March 16, 2017].
[9] Analog Devices. (2016). “Low Voltage Temperature Sensor” [Online]. Available:
http://ctms.engin.umich.edu/CTMS/Content/Activities/TMP35_36_37.pdf [Nov 11, 2016].
[10] SunFounder. (2016). “Thermistor” [Online]. Available:
http://www.sunfounder.com/wiki/images/4/49/Thermistor_datasheet.pdf [Nov 11, 2016].
G17 Final Report 2017 Reference
-54-
[11] Microchip. (2016). “MCP9808” [Online]. Available:
http://www.microchip.com/wwwproducts/en/en556182 [Nov 11, 2016].
[12] D. Thakur. (2017). What is Data Transmission? Types of Data Transmission [Online].
Available: http://ecomputernotes.com/computernetworkingnotes/communication-networks/data-
transmission [ March 16, 2017].
[13] L. Tallini, and B. Bose. (2003). “Transmission time analysis for the parallel asynchronous
communication scheme,” IEEE Transactions on Computers [Online], vol. 52 (5), pp.558-571.
Available: IEEE [March 16, 2017].
[14] M. Burris. (2016, July 22). Selecting Between I2C and SPI [Online]. Available:
https://www.lifewire.com/selecting-between-i2c-and-spi-819003 [Feb. 24, 2017].
[15] Future Technology Devices International Limited. (2015, March 23). “What is CAN?” [Online].
Available:
http://www.ftdichip.com/Support/Documents/TechnicalNotes/TN_156%20What%20is%20CAN.
pdf [Feb. 24, 2017].
[16] Arduino.cc. (2017). Arduino - Introduction [Online]. Available:
https://www.arduino.cc/en/Guide/Introduction [March 16, 2017].
[17] B. Bourque. (2015, Mar 8). Arduino vs. Raspberry Pi: Mortal enemies, or best friends? [Online].
Available: http://www.digitaltrends.com/computing/arduino-vs-raspberry-pi/#ixzz4aIvgLEcQ
[March 16, 2017].
[18] “Principles of Embedded Systems Design: Buffers and Queues,” class notes for ECE 3730,
Department of Electrical and Computer Engineering, University of Manitoba, 2015.
[19] IDT 7200, (2002). “CMOS ASYNCHRONOUS FIFO” [Online] Available:
http://pdf.datasheetcatalog.com/datasheet/idt/7200-7202_DS.pdf [March 16, 2017].
[20] NewhavenDisplay. (2016). “Character Liquid Crystal Display Module” [Online]. Available:
http://www.newhavendisplay.com/specs/NHD-0216XZ-FSW-GBW.pdf [Nov 20, 2016].
[21] Motorola. (1996). “General Purpose Transistors, NPN Silicon” [Online]. Available:
http://www.futurlec.com/Transistors/2N3904.shtml [March 12, 2017].
[22] Global Specialties. (2014). “Solderless Breadboard, 830 Tie-Points, with Bus Strip” [Online].
Available: http://file:///Users/xuding/Downloads/GS-830_datasheet.pdf [March 16, 2017].
[23] J. Pitt. (2014). Electrical Wires & Cables - D & F Liquidators Inc [Online]. Available:
http://www.dfliq.net/electrical-materials-products/electrical-wires-cables/ [March 16, 2017].
[24] P. Smith. (2017). Working with Wire - learn.sparkfun.com [Online]. Available:
https://learn.sparkfun.com/tutorials/working-with-wire [March 16, 2017].
G17 Final Report 2017 Reference
-55-
[25] K. C. Smith, and A. S. Sedra. (2010). Microelectronic circuit. 6th Ed. New York: Oxford
University Press, Chapter 5, pp 377-541 [March 1, 2017].
[26] Y.M. Lai. (2006). Power Electronics Handbook. Elsevier Inc, Chapter 23, pp.593-618.
[27] R. Harris, D. Beattie, S. Beaudette, and S. Beaudette. The CASSIOPE Small Satellite – The
Challenges of Developing Magellan’s MAC-200 Bus. Winnipeg, MB: Magellan Aerospace
Limited, pp. 1-16 [Mar.16,2017].
G17 Final Report 2017 Appendix A Budget
-56-
Appendix A Budget
The estimated and actual budget for the project is shown below in Table A-1. The budget
allowed for the project was CAD$ 100 per group member. Thus, the total budget for our group
is CAD$ 600. The predicted costs are based on our preliminary researched, and the total budget for
this project was initially set at $ 271.52. ECE department provided the additional project funding
beyond the predicted $ 92.98. Therefore, the actual total cost of the project came to $ 364.5. The
Electrical Engineering Department and Tech shop provide the related equipment used for the testing the
project’s components.
Table A-1: Budget for G17 Capstone Project
Category Item Unit
Cost Predicted Quantity
Actual
Quantity Total Supplier
Thermal
Sensor
Temperature Sensors
TMP36GT9Z $2.05 3 3 $6.15
ECE
Department
NTC Thermistor N/A N/A 1 N/A Group
Member
Temperature
Sensors
MCP9808
1528-1032-ND
$7.03 N/A 3 $21.09 ECE
Department
Thermal
Cooling system Fan N/A N/A 1 N/A
Group
Member
LCD LCD
NHD-0216XZ-FSW-GBW N/A N/A 1 N/A
Group
Member
Heater
Circuit
Component
Transistor
BJT N/A N/A 1 N/A Tech shop
Ceramic Resistor
10 Ω N/A N/A 1 N/A Tech shop
Resistor
15 Ω N/A N/A 1 N/A Tech shop
Diode
1N4001 N/A N/A 1 N/A Tech shop
G17 Final Report 2017 Appendix A Budget
-57-
LED
Blue LED
C503B-BCN-CV0Z0461 $0.32 2 2 $0.64
ECE
Department
Green LED
HLMP-1790-A0002 $0.274 2 2 $0.548
ECE
Department
Red LED
C503B-RAN-CY0130AA1 $0.23 2 2 $0.46
ECE
Department
Micro- controller
Arduino Mega $53.29 N/A 1 $53.29 ECE
Department
Arduino Zero $64.50 2 0 $0.0 N/A
Arduino Uno R3 $30.37 1 6 $30.37 ECE
Department
Breadboard
Solderless
Breadboard
GS-830
N/A 4 4 N/A Tech shop
Power
Supply
Battery
9V N/A N/A 2 N/A Tech shop
Voltage Regulator
LM317 N/A N/A 1 N/A Tech shop
Wire
Solder-core
22 AWG
Hoop-up wire
N/A N/A N/A N/A ECE
Department
Jumper
BC-32627 $11.44 1 2 $11.44
ECE
Department
Power Supply
Circuit Component
Resistor
330 Ω N/A N/A 1 N/A Tech shop
Resistor
1000 Ω N/A N/A 1 N/A Tech shop
Hardware
FIFO
Dual-Port Hardware FIFO
IDT7200 N/A N/A 1 N/A Tech shop
Motors - DC 1528-1076-ND $8.45 N/A 2 $16.9 ECE
Department
Optical Sensors Photo Detectors
TSMP58138-ND $1.64 N/A 6 $9.84
ECE
Department
G17 Final Report 2017 Appendix A Budget
-58-
Table Wood board N/A N/A 1 N/A Tech shop
Shipping $20 ECE
Department
Total (Before the Tax)
$322.578
Tax $41.9
Predicted Total $271.52
Actual Total $364.5
G17 Final Report 2017 Appendix B Flow Chart
-59-
Appendix B Flow Chart
Figure B-1: Flowchart for command processing
G17 Final Report 2017 Appendix B Flow Chart
-60-
Figure B-2: Flow chart for command storage
G17 Final Report 2017 Appendix B Flow Chart
-61-
Figure B-3: Conceptual flowchart for communication subsystem
G17 Final Report 2017 Appendix C Gantt Chart
-62-
Appendix C Gantt Chart
Figu
re C
-1: G
antt
Ch
art
G17 Final Report 2017 Appendix D Code
-63-
Appendix D Code
Software codes are available up request.