@@ -75,9 +75,19 @@ schematic to find the pins.
7575
7676![ oresat_debug_board.jpg] ( static/oresat_debug_board.jpg )
7777
78+ For the GPS v1.1 if it's powered through the flatsat breakout board it also
79+ needs to be turned on via OPD / the C3 surrogate board. That's complicated to
80+ set up so it ends up easier to plug power directly into vbusp. Also pictured
81+ both eeprom write protect and the i2c connection need to be grounded but the
82+ i2c adapter only has one ground pin so we alligator clipped the card ground to
83+ the i2c body as a way to get around that. Finally note that WP is the left most
84+ TP and SCL/SDA are the two rightmost, the inner left TP is left unconnected.
85+
86+ ![ gpsv11_eeprom_i2c.jpg] ( static/gpsv11_eeprom_i2c.jpg )
87+
7888### Power on the card
79- The card should have been power tested before attempting to program, this should not
80- be the first time the card has been powered up.
89+ The card should have been power tested before attempting to program, this should
90+ not be the first time the card has been powered up.
8191
8292Attach the breakout to a power supply set for 7.2V and 1A. Power on the Octavo.
8393
@@ -95,8 +105,37 @@ Example: Flash info for a v6.0 C3 card #1:
95105
96106 ./eeprom.py write /dev/i2c-n c3 6.0 1
97107
108+ This will print the flashed bytes on success:
109+
110+ b'\xaaU3\xeeA335OSC306002226PSAS0001'
111+
98112Example: Read the EEPROM ID:
99113
100114 ./eeprom.py read /dev/i2c-n
101115
116+ This will print the raw and decoded EEPROM values on success.
117+
118+ b'\xaaU3\xeeA335OSC306002226PSAS0001'
119+ Identifier(name='C3', major=6, minor=0, number=1, year=26, week=22)
120+
102121` read ` can be helpful for testing if you've connected the hardware correctly.
122+
123+ ### Debugging
124+
125+ The i2cprobe utility either will only see the EEPROM address once or not at all
126+ but then it will lock up the bus. If the bus is probed the card will need to be
127+ powercycled to get the EEPROM talking again.
128+
129+ Reading from an unprogrammed EEPROM will return a long string of 0xff bytes and
130+ then emit an error when it tries to decode that.
131+
132+ ### EEPROM data format
133+
134+ The example EEPROM data b'\xaaU3\xeeA335OSC306002226PSAS0001' can be read as:
135+ - 0xAA5533EE: Header
136+ - A335: CPU identifier - here for the AM335x
137+ - OSC3: Board identifier - here "OreSat C3"
138+ - 0600: Board revision, two digits major, two digits minor - here 6.0
139+ - 2226: Date, two digits week and here - here week 22, year 26
140+ - PSAS: Fixed, always PSAS
141+ - 0001: Board number, four digits
0 commit comments