Skip to content

Commit 8663db8

Browse files
authored
Merge pull request #84 from oresat/gps-eeprom
Add GPS EEPROM image, additional instructions
2 parents c41142b + db7d72b commit 8663db8

2 files changed

Lines changed: 41 additions & 2 deletions

File tree

octavo_eeprom_flasher/README.md

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8292
Attach 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+
98112
Example: 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
104 KB
Loading

0 commit comments

Comments
 (0)