diff --git a/main.c b/main.c index 8b0c8835..8164df6d 100644 --- a/main.c +++ b/main.c @@ -22,6 +22,22 @@ #include "main.h" int main(int argc, char * argv[]) { + + char resbuffer[1000]; + const char testStr[] = "cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}' | sed 's/^1000//' | grep '902120'"; + FILE *file_test = sopen(testStr); // see if Pi Zero 2 + fgets(resbuffer, 1000, file_test); +// fprintf(stderr, "test result: %s\n", resbuffer); + fclose(file_test); + +// fprintf(stderr, " %x ", resbuffer[0]); +// fprintf(stderr, " %x ", resbuffer[1]); + if (resbuffer[1] != 0) + { + sleep(5); // try sleep at start to help boot + voltageThreshold = 3.7; + printf("Pi Zero 2 detected"); + } printf("\n\nCubeSatSim v1.1 starting...\n\n"); @@ -723,6 +739,8 @@ int main(int argc, char * argv[]) { fprintf(stderr, "INFO: Battery voltage: %5.2f V Threshold %5.2f V Current: %6.1f mA Threshold: %6.1f mA\n", batteryVoltage, voltageThreshold, batteryCurrent, currentThreshold); #endif // if ((batteryVoltage > 1.0) && (batteryVoltage < batteryThreshold)) // no battery INA219 will give 0V, no battery plugged into INA219 will read < 1V + +/**/ if ((batteryCurrent > currentThreshold) && (batteryVoltage < voltageThreshold) && !sim_mode) // currentThreshold ensures that this won't happen when running on DC power. { fprintf(stderr, "Battery voltage too low: %f V - shutting down!\n", batteryVoltage); @@ -745,7 +763,7 @@ int main(int argc, char * argv[]) { pclose(file6); sleep(10); } - +/**/ // sleep(1); // Delay 1 second ctr = 0; #ifdef DEBUG_LOGGING diff --git a/telem.c b/telem.c index eff6ba50..6c60b0fa 100644 --- a/telem.c +++ b/telem.c @@ -14,60 +14,12 @@ int main(int argc, char *argv[]) { debug = ON; } } - wiringPiSetup (); - - printf("\n"); - - pinMode (2, INPUT); - pullUpDnControl (2, PUD_UP); - - if (digitalRead(2) != HIGH) - { - printf("vB3 with TFB Present\n"); - map[BUS] = MINUS_Z; - map[BAT] = BUS; - map[PLUS_Z] = BAT; - map[MINUS_Z] = PLUS_Z; - snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(0)); - } - else - { - pinMode (3, INPUT); - pullUpDnControl (3, PUD_UP); - if (digitalRead(3) != HIGH) - { - printf("vB4 Present\n"); - map[BAT] = BUS; - map[BUS] = BAT; - snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(0)); - // strcpy(busStr,"1 0"); - } - else - { - pinMode (26, INPUT); - pullUpDnControl (26, PUD_UP); - - if (digitalRead(26) != HIGH) - { - // if (debug == ON) - printf("CubeSatSim v1.1 INA219 Voltage and Current Telemetry\n"); - map[MINUS_X] = MINUS_Y; - map[PLUS_Z] = MINUS_X; - map[MINUS_Y] = PLUS_Z; - snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(3)); - } - else - { - printf("VB3 Present\n"); - map[BUS] = MINUS_Z; - map[BAT] = BUS; - map[PLUS_Z] = BAT; - map[MINUS_Z] = PLUS_Z; - snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(0)); - } - } - } + printf("CubeSatSim v1.1 INA219 Voltage and Current Telemetry\n"); + map[MINUS_X] = MINUS_Y; + map[PLUS_Z] = MINUS_X; + map[MINUS_Y] = PLUS_Z; + snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(3)); // Reading I2C voltage and current sensors // printf("Starting\n"); @@ -127,7 +79,8 @@ int main(int argc, char *argv[]) { printf("-Y | % 4.2f V % 5.0f mA \n", voltage[map[MINUS_Y]], current[map[MINUS_Y]]); printf("-Z | % 4.2f V % 5.0f mA \n", voltage[map[MINUS_Z]], current[map[MINUS_Z]]); printf("Bat | % 4.2f V % 5.0f mA \n", voltage[map[BAT]], current[map[BAT]]); - printf("Bus | % 4.2f V % 5.0f mA \n\n", voltage[map[BUS]], current[map[BUS]]); + printf("Bus | % 4.2f V % 5.0f mA \n\n", voltage[map[BUS]], current[map[BUS]]); + fclose(file1); return 0; } @@ -141,7 +94,7 @@ int test_i2c_bus(int bus) strcat (busDev, busS); // printf("Bus Dev String: %s \n", busDev); - if (access(busDev, W_OK | R_OK) >= 0) { // Test if I2C Bus is present + if (access(busDev, W_OK | R_OK) >= 0) { // Test if I2C Bus is present // printf("bus is present\n\n"); char result[128]; const char command_start[] = "timeout 10 i2cdetect -y "; @@ -161,7 +114,7 @@ int test_i2c_bus(int bus) { printf("ERROR: %d bus has a problem \n Check I2C wiring and pullup resistors \n", bus); output = -1; - } + } } else { printf("ERROR: %d bus has a problem \n Check software to see if enabled \n", bus);