Neha Nehru Shadab Ambat

Slides:



Advertisements
Similar presentations
Introduction to Arduino Programming January MER-421:Mechatronic System Design.
Advertisements

Constants and Data Types Constants Data Types Reading for this class: L&L,
One-dimensional character Arrays C does not have string data type. So strings are represented as arrays of characters. The end of the string is marked.
Informationsteknologi Wednesday, September 26, 2007 Computer Systems/Operating Systems - Class 91 Today’s class Mutual exclusion and synchronization 
Guide To UNIX Using Linux Third Edition
Testing a program Remove syntax and link errors: Look at compiler comments where errors occurred and check program around these lines Run time errors:
C++ fundamentals.
Chapter 18 I/O in C. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display Standard C Library I/O commands.
Shell and Flashing Images Commands and upgrades. RS-232 Driver chip – ST3232C Driver chip is ST3232C Provides electrical interface between UART port and.
Networking Nasrullah. Input stream Most clients will use input streams that read data from the file system (FileInputStream), the network (getInputStream()/getInputStream()),
1 Variables, Constants, and Data Types Primitive Data Types Variables, Initialization, and Assignment Constants Characters Strings Reading for this class:
CSCI 1100/1202 January 16, Why do we need variables? To store intermediate results in a long computation. To store a value that is used more than.
CP104 Introduction to Programming File I/O Lecture 33 __ 1 File Input/Output Text file and binary files File Input/output File input / output functions.
Computer Systems Organization CS 1428 Foundations of Computer Science.
Follow the Data Data (and information) move from place to place in computer systems and networks. As it moves it changes form frequently. This story describes.
File Structures Foundations of Computer Science  Cengage Learning.
1-1 NET+OS Software Group Flash API Multiple flash memory bank support New Flash API introduction Detailed Flash API Function presentation Supporting.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition, Fifth Edition Chapter 7: User-Defined Functions II.
Sparkfun Electronics ATtiny85 Arduino Quick Reference Sheet
Pointers A pointer is a variable that contains a memory address as it’s value. The memory address points to the actual data. –A pointer is an indirect.
ARDUINO 1. Basics  Comments  /* * Blink * * The basic Arduino example. Turns on an LED on for one second, * then off for one second, and so on... We.
2: Basics Basics Programming C# © 2003 DevelopMentor, Inc. 12/1/2003.
Characters and Strings
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
 Data Type is a basic classification which identifies different types of data.  Data Types helps in: › Determining the possible values of a variable.
1 ENERGY 211 / CME 211 Lecture 3 September 26, 2008.
© 2004 Pearson Addison-Wesley. All rights reserved August 27, 2007 Primitive Data Types ComS 207: Programming I (in Java) Iowa State University, FALL 2007.
Chip Config & Drivers – Required Drivers:
QIKcom-2 re-configurable Transponder module
Sparkfun Electronics ATtiny85 Arduino Quick Reference Sheet
Stack and Heap Memory Stack resident variables include:
Generic Remote Interface Unit (RIU) Interface Control Document (ICD)
The need for Programming Languages
“COMMAND PARSE” - A STATUS REPORT - Matt Smith Pallavi Khandelwal
User-Written Functions
The Machine Model Memory
User Interaction and Variables
Neha Nehru Shadab Ambat
Addressing Modes in Microprocessors
Chapter 7: User-Defined Functions II
Dale McClure Michael McEwen Sam Hishmeh Nanxiang Li Dec 5th, 2006
Lesson One – Creating a thread
Microcontroller basics
Primitive Data Types August 28, 2006 ComS 207: Programming I (in Java)
Multiple variables can be created in one declaration
Chapter 18 I/O in C.
CSE 303 Lecture 14 Strings in C
Micro-programmed Control Unit
User-Defined Functions
CPE 528: Session #7 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
Strings, Line-by-line I/O, Functions, Call-by-Reference, Call-by-Value
8086 Ahad.
An Introduction to Java – Part I, language basics
Beacon/Telemetry 12/8/2018.
Moving Arrays -- 2 Completion of ideas needed for a general and complete program Final concepts needed for Final DMA.
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Program Breakdown, Variables, Types, Control Flow, and Input/Output
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Moving Arrays -- 2 Completion of ideas needed for a general and complete program Final concepts needed for Final DMA.
System Calls David Ferry CSCI 3500 – Operating Systems
Programming 2: The Arduino IDE & First Sketches
Beacon/Telemetry 2/22/2019.
Follow the Data Data (and information) move from place to place in computer systems and networks. As it moves it changes form frequently. This story.
ECE 352 Digital System Fundamentals
Homework Finishing Chapter 2 of K&R. We will go through Chapter 3 very quickly. Not a lot is new. Questions?
“COMMAND PARSE” - A STATUS REPORT-.
Computer Architecture and System Programming Laboratory
KySat Packet format legend
Chapter 18 I/O in C.
Presentation transcript:

Neha Nehru Shadab Ambat BEACON & TELEMETRY Neha Nehru Shadab Ambat

Objective Periodically send current status information of the satellite to the ground station Send satellite telemetry information upon user request

Requirements Beacon Telemetry Data packet must be APRS compatible Must be sent periodically. Telemetry Must be KCOM encoded before transmission. Data should be sent only upon user request.

Beacon Data Packet (34 bytes) Byte No Data Unit/Label Bytes 1 Data type identifier T 2 Sequence Number Hash # 3 Sequence No. 6 Delimiter , 7 Analog Values Solar Cell Voltage mV 10 11 Solar Cell Current mA 14 15 Battery Voltage 18 19 Battery Temp. DegC 22 23 Processor Temp. 26 27 Digital Solar Cell Channel 2 Values(1/0) 1-true 0-false 8 28 Solar Cell Channel 1 29 Solar Cell Channel 0 30 Audio File Played 31 Picture Taken 32 Autonomously Executed Commands 33 Battery Charger On 34 Battery Heater On

Telemetry Data Packet 1 (42 bytes) Byte No Data Unit/Label Bytes 1 Hard State Data Solar Cell Voltage 1 mV 2 3 Solar Cell Voltage 2 5 Solar Cell Voltage 3 7 Solar Cell Voltage 4 9 Solar Cell Voltage 5 11 Solar Cell Voltage 6 13 Solar Cell Current 1 mA 15 Solar Cell Current 2 17 Solar Cell Current 3 19 Solar Cell Current 5 21 Solar Cell Current 6 23 Bus Voltage 1 25 Bus Voltage 2 27 Bus Current 1 29 Bus Current 2 31 Soft State Data Rx VHF packets 33 Sent UHF Packets 35 DTMF Command Rx 38 Rx S-band Packets 41 Sent S-band Packets

Telemetry Data Packet 2 (40 bytes) Byte No Data Unit/Label Bytes 1 Hard State Data Solar Cell Temp 1 DegC 2 3 Solar Cell Temp 2 5 Solar Cell Temp 3 7 Solar Cell Temp 4 9 Solar Cell Temp 5 11 Solar Cell Temp 6 13 Sec Battery Voltage mV 15 Temp 17 Charger Current mA 19 Camera Temp 21 VHF Current 23 UHF Current 25 Processor temp 27 Soft State Data Audio Files Played 29 CW Beacons Sent 31 Digibeacons Sent 33 Seconds Passed 35 Pictures Taken 37 Battery Heater Duty Cycle 39 No. of Autonomously Executed Commands

Design

Code Beacon Input array structure consists of 5 Analog values and an 8-bit Digital value Functions/Macros void BeaconTask(void); // Beacon Task TRY_BCN_PERIOD(unsigned char* period /* Minutes */, unsigned char bcn_interval /* OSTicks */); Waits for a beacon period. Period automatically set to new value if command received from Command_Parse send_tx_bcn(unsigned char *data, unsigned char num_bytes); Sends packet to Packet_Tx for transmission void toAsciiDigit(unsigned int value, ubyte *packet_index; Takes the desired value that is to be converted to ASCII (sequence number/analog values/digital values) and the beacon packet index as arguments Extracts each digit and converts it to ASCII. Each value is converted to ASCII Delimiters (,) are added to distinguish different fields Sequence nos. incremented for each packet Sends final APRS encoded packet to Packet_Tx for transmission

Code Telemetry Defined by 2 packet types Functions/Macros void TelemetryTask(void); // Telemetry Task GET_TLM_CMD(unsigned char* cmd, unsigned char* data, unsigned char* num_bytes); Waits until TELEMETRY_REQUEST command received from Command_Parse *data specifies the packet type (Packet1 or Packet2) send_tx_raw( unsigned char cmd, unsigned char* data, unsigned char num_bytes ); Sends raw unencoded packet to Packet_Tx for KCOM encoding and transmission

Code Array Manager Allows other tasks to read/write values from the Beacon and Telemetry memory arrays Functions/Macros ubyte SetBcnArray(ubyte field, ubyte *value); Sets specified field to *value in Beacon memory array Can either set individual fields in the buffer or the entire array in one function call using BLOCK_SET. Returns UPDATE_NOERR if update successful else returns UPDATE_ERR ubyte GetBcnArray (ubyte field, ubyte *bcn_ptr); Gets the current value of the corresponding field from the Beacon memory buffer Stores it to the address specified by the user (bcn_ptr) Option of getting a single field or the entire memory array (BLOCK_TRANSFER) Returns TRANSFER_NOERR on success else returns TRANSFER_ERR ubyte SetTlmArray (ubyte field, int *value); Similar to SetBcnArray except *value is a 2 byte integer. Used to set fields in global Telemetry buffer ubyte GetTlmArray (ubyte field, int *tlm_ptr); Telemetry counterpart of GetBcnArray. Difference - *tlm_ptr is an int instead of a ubyte

Testing Packet formats and com links tested Debugging mainly done using the library function kysat_printf to compare the packet formats to the required one

Future Goals Status Goals Achieved Beacon packet format and com link between Beacon and Packet_TX functioning. Com link between Telemetry and Packet_TX tested and working. Com link between Command_Parse and Telemetry tested and working. Functions for the Array_Manager complete (untested) Future Goals RTCGetTime function from Cmd_Parse still needs to be tested. Need to test if Array_Manager functions working correctly