Skip to content

Commit 4039b12

Browse files
committed
finished changing main, removed sleepherler from repl
1 parent f30a47f commit 4039b12

File tree

2 files changed

+78
-61
lines changed

2 files changed

+78
-61
lines changed

src/flight-software/main.py

Lines changed: 75 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,14 @@
1919
from lib.pysquared.logger import Logger
2020
from lib.pysquared.nvm.counter import Counter
2121
from lib.pysquared.rtc.manager.microcontroller import MicrocontrollerManager
22-
from lib.pysquared.sleep_helper import SleepHelper
2322
from lib.pysquared.watchdog import Watchdog
23+
from lib.adafruit_mcp230xx.mcp23017 import MCP23017
24+
from lib.pysquared.hardware.power_monitor.manager.ina219 import INA219Manager
25+
26+
27+
from lib.adafruit_tca9548a import TCA9548A
28+
29+
2430
from version import __version__
2531

2632
boot_time: float = time.time()
@@ -41,27 +47,45 @@
4147
software_version=__version__,
4248
)
4349

50+
logger.debug("Initializing Config")
51+
config: Config = Config("config.json")
52+
4453
loiter_time: int = 5
4554
for i in range(loiter_time):
4655
logger.info(f"Code Starting in {loiter_time-i} seconds")
4756
time.sleep(1)
4857

4958
try:
5059

51-
initialize_pin(logger, board.SPI0_CS0, digitalio.Direction.OUTPUT, True),
60+
SPI0_CS0 = initialize_pin(logger, board.SPI0_CS0, digitalio.Direction.OUTPUT, True)
61+
SPI1_CS0 = initialize_pin(logger, board.SPI1_CS0, digitalio.Direction.OUTPUT, True)
62+
GPIO_RESET = initialize_pin(logger, board.GPIO_EXPANDER_RESET, digitalio.Direction.OUTPUT, True)
5263

64+
i2c1 = initialize_i2c_bus(
65+
logger,
66+
board.I2C1_SCL,
67+
board.I2C1_SDA,
68+
100000,
69+
)
70+
71+
i2c0 = initialize_i2c_bus(
72+
logger,
73+
board.I2C0_SCL,
74+
board.I2C0_SDA,
75+
100000,
76+
)
77+
78+
79+
mcp = MCP23017(i2c1)
5380

54-
# This sets up all of the GPIO pins on the MCP23017
5581
#GPB
5682
FACE4_ENABLE = mcp.get_pin(8)
5783
FACE0_ENABLE = mcp.get_pin(9)
5884
FACE1_ENABLE = mcp.get_pin(10)
5985
FACE2_ENABLE = mcp.get_pin(11)
6086
FACE3_ENABLE = mcp.get_pin(12)
6187
FACE5_ENABLE = mcp.get_pin(13)
62-
#READ ONLY
63-
#CHARGE
64-
88+
6589
# GPA
6690
ENABLE_HEATER = mcp.get_pin(0)
6791
PAYLOAD_PWR_ENABLE = mcp.get_pin(1)
@@ -72,30 +96,6 @@
7296
RF2_IO0 = mcp.get_pin(6)
7397
RF2_IO3 = mcp.get_pin(7)
7498

75-
# This defines the direction of the GPIO pins
76-
FACE4_ENABLE.direction = digitalio.Direction.OUTPUT
77-
FACE0_ENABLE.direction = digitalio.Direction.OUTPUT
78-
FACE1_ENABLE.direction = digitalio.Direction.OUTPUT
79-
FACE2_ENABLE.direction = digitalio.Direction.OUTPUT
80-
FACE3_ENABLE.direction = digitalio.Direction.OUTPUT
81-
ENAB_RF.direction = digitalio.Direction.OUTPUT
82-
VBUS_RESET.direction = digitalio.Direction.OUTPUT
83-
ENABLE_HEATER.direction = digitalio.Direction.OUTPUT
84-
PAYLOAD_PWR_ENABLE.direction = digitalio.Direction.OUTPUT
85-
86-
87-
88-
watchdog = Watchdog(logger, board.WDT_WDI)
89-
watchdog.pet()
90-
91-
logger.debug("Initializing Config")
92-
config: Config = Config("config.json")
93-
94-
mux_reset = initialize_pin(
95-
logger, board.MUX_RESET, digitalio.Direction.OUTPUT, False
96-
)
97-
98-
# TODO(nateinaction): fix spi init
9999
spi0 = _spi_init(
100100
logger,
101101
board.SPI0_SCK,
@@ -110,33 +110,26 @@
110110
board.SPI1_MISO,
111111
)
112112

113+
113114
sband_radio = SX1280Manager(
114115
logger,
115116
config.radio,
116117
spi1,
117-
initialize_pin(logger, board.SPI1_CS0, digitalio.Direction.OUTPUT, True),
118+
SPI1_CS0,
118119
initialize_pin(logger, board.RF2_RST, digitalio.Direction.OUTPUT, True),
119-
initialize_pin(logger, board.RF2_IO0, digitalio.Direction.OUTPUT, True),
120+
RF2_IO0,
120121
2.4,
121122
initialize_pin(logger, board.RF2_TX_EN, digitalio.Direction.OUTPUT, False),
122123
initialize_pin(logger, board.RF2_RX_EN, digitalio.Direction.OUTPUT, False),
123124
)
124125

125-
i2c1 = initialize_i2c_bus(
126-
logger,
127-
board.SCL1,
128-
board.SDA1,
129-
100000,
130-
)
131-
132-
sleep_helper = SleepHelper(logger, config, watchdog)
133126

134127
uhf_radio = RFM9xManager(
135-
logger,
136-
config.radio,
137-
spi0,
138-
initialize_pin(logger, board.SPI0_CS0, digitalio.Direction.OUTPUT, True),
139-
initialize_pin(logger, board.RF1_RST, digitalio.Direction.OUTPUT, True),
128+
logger,
129+
config.radio,
130+
spi0,
131+
SPI0_CS0,
132+
initialize_pin(logger, board.RF1_RST, digitalio.Direction.OUTPUT, True),
140133
)
141134

142135
magnetometer = LIS2MDLManager(logger, i2c1)
@@ -147,7 +140,7 @@
147140
logger,
148141
uhf_radio,
149142
config.radio.license,
150-
Counter(Register.message_count),
143+
Counter(2),
151144
0.2,
152145
)
153146

@@ -157,21 +150,54 @@
157150
logger,
158151
config.cubesat_name,
159152
uhf_packet_manager,
160-
boot_time,
153+
time.monotonic(),
161154
imu,
162155
magnetometer,
163156
uhf_radio,
164157
sband_radio,
165-
error_count,
166-
boot_count,
167158
)
168159

160+
161+
# Face Control Helper Functions
162+
def all_faces_off():
163+
"""
164+
This function turns off all of the faces. Note the load switches are disabled low.
165+
"""
166+
FACE0_ENABLE.value = False
167+
FACE1_ENABLE.value = False
168+
FACE2_ENABLE.value = False
169+
FACE3_ENABLE.value = False
170+
FACE4_ENABLE.value = False
171+
172+
173+
def all_faces_on():
174+
"""
175+
This function turns on all of the faces. Note the load switches are enabled high.
176+
"""
177+
FACE0_ENABLE.value = True
178+
FACE1_ENABLE.value = True
179+
FACE2_ENABLE.value = True
180+
FACE3_ENABLE.value = True
181+
FACE4_ENABLE.value = True
182+
183+
mux_reset = initialize_pin(logger, board.MUX_RESET, digitalio.Direction.OUTPUT, False)
184+
all_faces_on()
185+
time.sleep(0.1)
186+
mux_reset.value = True
187+
tca = TCA9548A(i2c0, address=int(0x77)) #all 3 connected to high
188+
189+
battery_power_monitor: PowerMonitorProto = INA219Manager(logger, i2c0, 0x40)
190+
solar_power_monitor: PowerMonitorProto = INA219Manager(logger, i2c0, 0x41)
191+
192+
169193
def nominal_power_loop():
170194
logger.debug(
171195
"FC Board Stats",
172196
bytes_remaining=gc.mem_free(),
173197
)
174198

199+
all_faces_on()
200+
175201
uhf_packet_manager.send(config.radio.license.encode("utf-8"))
176202

177203
beacon.send()

src/flight-software/repl.py

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@
33

44
import board
55
import digitalio
6-
from lib.adafruit_mcp230xx.mcp23017 import (
7-
MCP23017, # This is Hacky V5a Devel Stuff###
8-
)
9-
from lib.adafruit_tca9548a import TCA9548A # This is Hacky V5a Devel Stuff###
6+
from lib.adafruit_mcp230xx.mcp23017 import MCP23017
7+
from lib.adafruit_tca9548a import TCA9548A
108

11-
# from lib.pysquared.Big_Data import AllFaces ### This is Hacky V5a Devel Stuff###
129
from lib.pysquared.beacon import Beacon
1310
from lib.pysquared.cdh import CommandDataHandler
1411
from lib.pysquared.config.config import Config
@@ -58,13 +55,9 @@ def get_temp(sensor):
5855
SPI0_CS0 = initialize_pin(logger, board.SPI0_CS0, digitalio.Direction.OUTPUT, True)
5956
SPI1_CS0 = initialize_pin(logger, board.SPI1_CS0, digitalio.Direction.OUTPUT, True)
6057

61-
62-
6358
#manually set the pin high to allow mcp to be detected
6459
GPIO_RESET = initialize_pin(logger, board.GPIO_EXPANDER_RESET, digitalio.Direction.OUTPUT, True),
6560

66-
67-
6861
i2c1 = initialize_i2c_bus(
6962
logger,
7063
board.I2C1_SCL,
@@ -80,7 +73,7 @@ def get_temp(sensor):
8073
)
8174

8275

83-
mcp = MCP23017(i2c1) # x1e or x52 or 0x6b
76+
mcp = MCP23017(i2c1)
8477

8578

8679
# #GPB
@@ -296,7 +289,6 @@ def all_faces_on():
296289
except Exception:
297290
logger.debug("WARNING!!! Temp sensor 4 failed (Z- Face Bottom pins")
298291
temp_sensors.append(None)
299-
300292
#these are the bottom 6 pins on the z- face connection, uncomment if that is where you plug in a face for the z- board
301293
# try:
302294
# sensor = MCP9808Manager(logger, tca[6], addr=24)
@@ -314,7 +306,6 @@ def all_faces_on():
314306
battery_power_monitor: PowerMonitorProto = INA219Manager(logger, i2c0, 0x40)
315307
solar_power_monitor: PowerMonitorProto = INA219Manager(logger, i2c0, 0x41)
316308

317-
## Init Misc Pins ##
318309
burnwire_heater_enable = initialize_pin(
319310
logger, board.FIRE_DEPLOY1_A, digitalio.Direction.OUTPUT, False
320311
)

0 commit comments

Comments
 (0)