๐ฐ๏ธ This is the portal for Summer Internship 2024 on Introduction to CubeSat and Satellite Communication. ๐ก
- June 25: CubeSat101: Basic concepts and processes.
- June 26: CubeSat Communication I: LoRa-based CubSat Commuication HW architecture.
- June 27: CubeSat Communication II: Digital Communication, EM Spectrum, EM Field, LoRa Radio Architecture.
- July 01: CMOS VLSI Design: An introduction.
- July 02: LoRa Basics: Spread-Spectrum Modem, LoRa Basics (Spreading factor, BW, SNR, Bit Rate).
- July 03: Antenna Basics: Radiation mechanism, equivalent circuit, Radiation pattern, polarization, types of antenna, antenna tuning.
- July 10: RaspberryPi for Space: Considerations for building elecrotnic systems for space eg. Radiation hardening.
- Datasheet SX127X
- Application Note AN1200-22: LoRa Basics: This application note covers the basics of LoRa Modulation including spread-spectrum communication and LoRa spread spectrum.
- Ai Thinker's LoRa Radio Module RA-02 is RF radio module based on the Semtech's SX127X transceiver chip. This module will be used for all the satellite communication Lab exercises as well as the tinyGS ground station. This page provides the basic information about the module.
- Datasheet RA-02: LoRa modeule: Ai Thinker's LoRa Radio Module RA-02
- Datasheet ESP32 SoC
- Datasheet ESP32 WROOM32E Module
- Engineering Reference Manual ESP32
- LoRa Library for ESP32 firmware development:
-
Rappaport, "Wireless Communication Principles", PHI, 2002 (Link : Chap5: Modulation techniques for Mobile Radio 5.4 Digital Modulation technique (p-220) 5.10 SPread spectrum Modulation Technique
-
Xiong, "Digital Modulation Techniques", Artech, 2006 (Link)
-
Siwiak, Bahreini, "Radiowave Propagation and Antennas", Artech, 2007 (Link ( - Chap4: Radio Frequency Spectrum - p 99, - Chap5: Comm using Earth-Orbiting Satellites.)
-
Balanis, C, "Antenna Thoery" Wiley, 2005 (Link)
-
NASA CubeSat Launch Initiative (NCSLI), CubeSat 101: Basic Concepts and Processes for First-Time CubeSat Developers, Oct 2017 (PDF)
- 4NEC2 Simulator
- Quick Start Guide
- Tutorial-1: Dipole simulation
- Tutorial-2: Two examples
- Tutorial-3: For begineers
- Tutorial-4: with exercises.
- Videos
- Understanding the Smith Chart: Rhode and Schwarz series
- Basics of the Smith Chart
- Understanding VSWR and Return Loss
- Python : For programming, scripting, plotting (using
matplotlib
lib), scientific computing (popular libs:numpy
, scipy`). - Draw.io: Drawing tool with built-in libraries for all types of application including electrical circuit diagram, flow-charts, etc.
- Overleaf: Website for writing LaTeX documents for very high-quality technical documents.
- GitHub: For hosting projects, websites, codes, collaborative projects and many more.
-
Lab 18: Processing TLE data with Python
- Using genAI tool (ChatGPT, CoPilot, etc) find out the detail about the satellite Two-Line Element (TLE) format.
- Write a Python programm to conver a TLE of satellite into a Lat/Long location.
- You can get all the TLEs of satellites tracked by TinyGS here
- Generate the output as an URL that you can paste in a browser and get the satellite location.
- And modify the above program such the TLE data file can be given as input with the two line numbers to process.
-
Lab 19: Simulating Digital Spread Spectrum Modulation
- Resimulate FSK from Lab 8
- Introduce code to convert the digital data into spread spectrum before modulating it to a higher frequency.
-
Lab 1: Intro to ESP32 Programming
- Install and configure Arduino IDE
- Introduction to ESP32 development kit.
- Write and execute a C-code to blink an LED on the dev board.
-
Lab 2: Intro to GPIO programming
- In this Lab exercise, students learn to configure a GPIO as an output and control an LED with it.
-
Lab 3: Dimming LED using PWM
- In this exercise we are going to use the ESP32 to control the light intensity of an external LED using PWM signal.
- From the LED Datasheet tabulate the following data:
- Maximum Forward current (If)
- Typical Forward Voltage (Vf)
- Dominant Wavelength (lambdaD)
- Estimate the color (RGB) from the above wavelength
- Typical Cacpacitance (pF)
- Operating temperature range
- From the ESP32 Datasheet find and tabulate:
- the maximum output voltage of the GPIO pins, and
- the maximum current that the GPIO can source from supply to the load.
- Calculate the value of the resistance to pass half of the Maximum forward current (If) when ON.
- Make sure this current can be sourced by the output port.
- Find the closest E12 standardized resistors value available in the market to use for the above limiter.
- See this guide on resistor standardization.
- Calculate the maximum frequency you can switch the LED such that, the RC time-constant of the LED-cap-resitor is at least 1/25 of the switching period.
- Find out what is the minimum frequency you can switch the LED.
- Decide on a frequency which is safely in between the minimum and maximum.
- Write a program for ESP32:
- Assign an output port for the LED
- Assign an input port for 2-step dimmer control.
- 1: Full intensity, 0: 25-percent intensity.
- Write a program to control the LED intensity using Pulse-Width Modulation (PWM).
-
Lab 4: Dimming multiple LEDs
- ESP32 GPIO pins were used to dim multiiple LEDs with different delays.
-
Lab 5: Printing data in the serial monitor
- The Serial Monitor is an essential tool when creating projects with Arduino. It can be used as a debugging tool, testing concepts, or communicating directly with the Arduino board.
- The Arduino IDE 2 has the Serial Monitor tool integrated with the editor, which means that no external window is opened when using the Serial Monitor. This means that you can have multiple windows open, each with its own Serial Monitor.
-
Lab 6: Controlling an LED through serial monitor
- Controlling an LED connected to ESP32 by reading commands from the serial monitor and turning the LED on or off based on those commands.
-
Lab 7: I2C-based OLED Display control
- I2C-based OLED pin details. Importing OLED libraries. Structure of the OLED. Displaying simple Text and Scrolling Text in different ways.
-
Lab 8: Introduction Signal Processing using Python
- You can use lab1-fft.py and lab2-fsk.py as reference for the following exercises:
- Write a python program to create a cosine wave of frequency
2MHz
with256
samples per cycle. - Plot it with proper annonation and axis labeling.
- Compute the
FFT
of the above signal and plot it.- You will notice the FFT resolution is very limited for a single cycle.
- Create another a signal of frequency
3MHz
, add it to above signal and doFFT
for the resultant signal. - Simulate lab2-fsk.py and anlayze the plot to understand FSK modulation.
- Change the code such that the modulation frequency for
1
is4MHz
and for0
it is3MHz
.
- Change the code such that the modulation frequency for
- Change the above code to simulate ASK modulation.
- Add demodulation to the above code and plot the time-domain waveform, as well as the FFT of the demodulated signal.
- Add a moving average filter to remove the high-frequency component from the demodulated signal.
-
Lab 9: I2C temperature sensor interface
- Display of room temperature and humidity through OLED as well as serial monitor using DHT22 with ESP32.
-
Lab 10: Introduction to LoRa module
- Introduction to architecture and pin configuration of Ra-02 Lora transceiver module and SPI (Serial Peripheral Interface) communication.
-
Lab 11: LoRa communication
- Introduction to Lora communication using Ra-02 Lora transceiver module with ESP32.
-
Lab 12: Communication between two LoRa nodes
- Sending Text packets and receiving the text packets with *RSSI (Received Signal
- Strength Indicator)* and SNR through Serial monitor.
- Sending Temperature and humidity packets and receiving the same packets with RSSI (Received Signal Strength Indicator) and SNR through a Serial monitor as well as an OLED display.
-
Lab 13: LoRa one-to-many communication setup
- Sending data packets from one Lora transmitter to multiple Lora receivers and retracing the same packets.
-
Lab 14: Introduction to antenna modeling and simulation software 4NEC2.
-
Lab 15: Physical design of Dipole and V-dipole antennas
- Tune it to 433MHz with the help of NanoVNA-A Portable VNA Antenna Analyzer Kit with 10KHz-1.5GHz, 2.8 Inch Digital LCD Display Touching Screen Standing Wave Measuring Instrument.
-
Lab 16: Introduction to TinyGS
-
Lab 17: Setting up a TinyGS ground station
- Download and install the latest version (2.3.2+) Arduino IDE. Majority of the Lab activity will be writing
C Programming Language
for the ESP 32 platform which we will develop using the Arduino IDE. - Download and install 4NEC2, antenna modeling and simulation softwware. The antenna design and simulation will be done using this sofware.
- Install Windows Subsystem for Linux (WSL) with Ubuntu 22.04 Linux Distro (OMIT instruction related to EDA tools). During the tenure of the course, we will learn many fundamental signal processing concepts that is best practiced using the Python programming/scripting language. We will WSL for that purpose. Python language is not a prereq, the basic programming structures will be provided to you.
- After updating your linux distro, install the following packages:
sudo apt install pip -y
pip install numpy scipy matplotlib
- Create a GitHub account if you don't have one already. We will use it for multiple purpose: for submission Lab assignment, documenting your Labs and final projec and keeping a revision control repository of all your work during the course work.
- Ai Thinker's LoRa Radio Module RA-02 is RF radio module based on the Semtech's SX127X transceiver chip. This module will be used for all the satellite communication Lab exercises as well as the tinyGS ground station. This page provides the basic information about the module.
- Datasheet RA-02: Ai Thinker's LoRa Radio Module RA-02
- Datasheet ESP32 SoC
- Datasheet ESP32 WROOM32E Module
- Engineering Reference Manual ESP32
- The SX1276/77/78/79 transceiver chipset features the LoRaยฎ long range modem that provides ultra-long range spread spectrum communication
- Datasheet SX127X
- Application Note AN1200-22: This application note covers the basics of LoRa Modulation including spread-spectrum communication and LoRa spread spectrum.
- Application Note AN1200-13: This is an application note for LoRa modem design covering basic priciples of LoRa Design (Modulation, RX Senisitivty, SNR, SF, BW, etc.) to advancd LoRa design (FEC, HW, etc) and how to use the LoRa calculator to optimize Radio design.
- LoRa Library for ESP32 firmware development:
- ๐ DURATION: June 25th till July 12th (3 weeks)
- โฒ๏ธ TIMINGS:
- Theory Sessions ๐ 10:00am - 1:00pm
- Hands-on practical Sessions ๐ 2:30pm - 5:30pm
- ๐๏ธ VENUE(Old Building):
- Theory & Practical Sessions: Room 04-10 (Advanced VLSI Training Lab)
- NOTE The venue for June 25th ONLY is Training Hall-2, 2nd Floor, New Building.
- Theory & Practical Sessions: Room 04-10 (Advanced VLSI Training Lab)
- ๐จโ๐ซ RESOURCE PERSONS:
- Dr. Saroj Rout and Prof. Prasant Swain, ECE, Silicon University
- Dr. (Prof.) Chinmoy Saha and Dr. (Prof.) Priyadarshanam, Dept. of Avionics, Indian Institute of Space Science and Technology
- Adnaan M, Founder, ToSpace, Karur, Tamil Nadu.
-
๐ PREREQUISITES:
- 1st Year Engineering Math Courses.
- All programming the embedded systems will be done using 'C language'. So a general revision will help.
-
COURSE OUTCOME:
- A good understanding of CubeSat, a small satellite format.
- Good understanding of satellite communication.
- Proficient in RF communication systems using LoRa protocol.
- A good understanding of antenna design, simulation and implementation.
- Setting up a satelitte ground station using the open source platform TinyGS.
-
COURSE DETAILS
- Introduction to small satellite format CubeSats.
- CubeSat Dispenser Systems
- Launch Vehicles (LVs) or, Rockets.
- Development Process Overview: Development, Funding, Design, Regulation, GS, etc
- Mission Models and Requirement Sources for Launch
- Licensing and Flight Certification.
- Basics of Satellite Communication
- Introduction to Communication and signal processing.
- Introduction to LoRa protocol.
- Introduction to spread-spectrum communication protocol.
- Setting up a LoRa communication system using ESP32 platform.
- Introduction to Antenna Design
- Types of Antenna and their Radiation Mechanism.
- Design and simulation of wire and dipole antennas.
- Practical antenna tuning using VNA.
- Setting up Ground Station using the TinyGS open-source platform.
- Programming ESP32 platform using Platform I/O
- Setting up a TinyGS ground station using an ESP32 platform.
- Design and tune an antenna for the ground station.
- A group of three will design a implement their ground station. The ground stations will be judged based on figure of merit based on the density of satellites and the strength of the signal received. The final winner will present a poster during the upcoming NES-2024 workshop.
- Introduction to small satellite format CubeSats.