Skip to content

Sean3Don/OSSI-1Firmware

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OSSIREADME

OSSI-1 인공위성 사용방법

BEACON 사용법

  1. BEACON은 144.25MHZ 에서 12wpm 으로 CW를 신호를 내보낸다. CW는 모스코드로 인코딩 되어 있다 CW 신호의 내용은 'OSSI/1' 와 인공위성 기본정보를 보낸다.

    첫번째(6개 바이트) 인공위성 이름

     OSSI/1 
    

    두번째(5개 바이트) 형식: 1 space errorflag space powerOn

     1 0b10100 0b11111 (비트순서:EPS(BATTERY), OBC, BEACON, COMMS, Payload)
    

    세번째(5개 바이트) 형식: 2 space solarvoltage space batteryvoltage

     2 0b11111111 0b11111111
    

    각 문장은 Space Space Space 로 구분한다.

  2. 신호읽기 OSSI 사이트를 보고 인공위성이 자신의 상공을 지나갈때 무전기를 꺼내어 144.25MHZ를 맞추어 귀로 들으면 된다.

  3. 인공위성 찾기 144.25MHZ에서 CW신호에서 나오는 OSSI/1을 찾아 듣는다.

COMMS의 동작

지상에서 435.75MHZ로 2FSK로 다음 패킷을 보낸다.

from ossi import Uplink, Downlink, Request

u = Uplink(435.75, '2FSK', 1200)
d = Downlink(435.75, '2FSK', 9600)
request = Request(u, d)

# EPS
## 온도 
temp = request.getBatteryTemperature()
temp = request.getPannelTemperature()
x1_temp = request.getSolarPannelTemperature(X,1)
z1_temp = request.getSolarPannelTemperature(Z,1)
y1_temp = request.getSolarPannelTemperature(Y,1)

## volatge
v = request.getBatteryVoltage()
v = request.getSolarPannelVoltage()

## solar sensor
s = request.getSolarSensor()

## 충전 정보
check = request.checkBatteryCharge()


## 솔라, 배터리, SC 켜져 있는가?
check = request.checkSolarOn()
check = request.checkBatteryOn()
check = request.checkSuperCapOn()

## 수퍼캡 
status = request.doSuperCapOn()
check = request.checkSuperCapCharge()

## EPS reset!
request.resetEPS()

# OBC
## OBC reset!
request.resetOBC()

## 자이로
l = request.getGyro()

## RTC 시간 가져오기 
time = request.getRtcTime()
status = request.setRtcTime(datetime.datetime.now())

## Payload LED
reserveStatus = request.reserveMessage("OSSI 1", datetime.datetime(2012, 12, 12, 12, 12))
reserveList = request.getReserveList()

request.ledOn()
request.ledOFF()

## 안테나 펴졌는지?
check = request.checkAntDeploy()
## 안테나 펴기
request.antDeploy()

request.resetPayload()

# COMMS
request.resetCOMMS()

# BEACON
request.resetBEACON()

# STORAGE(EEPROM, FRAM)
status = request.setByteEEPROM(1, 'x')

http://swisscube-live.ch/Publish/S3-D-ICD-1-0a-Housekeeping_ICD.pdf

패킷 포멧

예제 TX 패킷

OxAA, 0xAA, 0xAA, 0xAA, 0xD3, 0x91, 0xAA, 0xAA, 0xAA, '1', '2', '3', '4', '5', '6', 0xAA, 0xAA, 0XAA

p1, p2, p3, p4, s1, s2, len, command1, c2, c3, d1~dn, crc

ax.25

http://swisscube-live.ch/Publish/S3-BC-SE-1-1b-AX.25%20Transfer%20Frames%20Format.pdf

  • 01111110 # flag
  • callsign 48bits # destination
  • ssid 8bit 011ssid0
  • callsign 48bits # source
  • ssid 8bit 011ssid0
  • control bits 00000011
  • protocal identifier 0xF0
  • Information field(32-2048)
  • Frame-Check Sequence
  • 01111110 # flag

Information field

  • version number: 00
  • virtual channel Id: 000
  • spare: 000
  • master frame count 0x00
  • virtual channel frame count 0x00
  • first header pointer 0x00
  • data
  • time flag 0b000
  • spare 00
  • tc count 00
  • time

UART로 통신하기

OBC에 있는 인터페이스를 통해서 다른 모듈을 제어 할 수 있다.

인터페이스는 동일

from ossi import Serial Request

s = Serial('Com3', 9600)
request = Request(s)

인공위성 dashboard

https://github.com/ripienaar/graphite-graph-dsl/wiki

About

OSSI-1Firmware

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published