From a053d5b4d4edea8789de8ad5af00a68bd69eccc8 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 5 Jul 2022 23:42:48 -0400 Subject: [PATCH] Update cubesatsim.ino --- cubesatsim/cubesatsim.ino | 164 +++++++++++++++++++++----------------- 1 file changed, 90 insertions(+), 74 deletions(-) diff --git a/cubesatsim/cubesatsim.ino b/cubesatsim/cubesatsim.ino index 224ca317..965d0181 100644 --- a/cubesatsim/cubesatsim.ino +++ b/cubesatsim/cubesatsim.ino @@ -75,6 +75,84 @@ void setup() { mode = FSK; // AFSK; + config_telem(); + +// configure ina219s + start_ina219(); + +// configure STEM Payload sensors + start_payload(); + +// program Transceiver board + configure_radio(); + +// start pwm + start_pwm(); + + transmit_on(); + +} + +void loop() { + + loop_count++; + + // query INA219 sensors and Payload sensors + read_ina219(); + read_payload(); + + // encode as digits (APRS or CW mode) or binary (DUV FSK) + if ((mode == BPSK) || (mode == FSK)) + get_tlm_fox(); + else if (mode == AFSK) + send_packet(); + +// delay(2000); +// test_radio(); + + digitalWrite(LED_BUILTIN, LOW); + +// delay(3000); + sleep(3.0); + + digitalWrite(LED_BUILTIN, HIGH); + + // send telemetry + + // delay some time + +} + +void send_packet() { + +// encode telemetry + get_tlm_ao7(); + +// digitalWrite(LED_BUILTIN, LOW); + + Serial.println("Sending APRS packet!"); + transmit_on() + send_packet(_FIXPOS_STATUS); + transmit_off() + +// delay(1000); + + +// digitalWrite(LED_BUILTIN, HIGH); +} + +void transmit_on() { + digitalWrite(MAIN_LED_BLUE, HIGH); + digitalWrite(PTT_PIN, LOW); +} + +void transmit_off() { + digitalWrite(PTT_PIN, HIGH); + digitalWrite(MAIN_LED_BLUE, LOW); +} + +void config_telem() { + frameCnt = 1; Serial.println("v1 Present with UHF BPF\n"); @@ -159,74 +237,8 @@ void setup() { char sym_tab_default = 'a'; char icon[] = "Ha"; set_lat_lon_icon(lat_default, lon_default, icon); - } - -// configure ina219s -start_ina219(); - -// configure STEM Payload sensors - start_payload(); - -// program Transceiver board - configure_radio(); - -// start pwm -start_pwm(); - - digitalWrite(MAIN_LED_BLUE, HIGH); - digitalWrite(PTT_PIN, LOW); - -} - -void loop() { - - loop_count++; - - // query INA219 sensors and Payload sensors - read_ina219(); - read_payload(); - - // encode as digits (APRS or CW mode) or binary (DUV FSK) - if ((mode == BPSK) || (mode == FSK)) - get_tlm_fox(); - else if (mode == AFSK) - send_packet(); - -// delay(2000); -// test_radio(); - - digitalWrite(LED_BUILTIN, LOW); - -// delay(3000); - sleep(3.0); - - digitalWrite(LED_BUILTIN, HIGH); - - // send telemetry - - // delay some time - -} - -void send_packet() { - -// encode telemetry - get_tlm_ao7(); - -// digitalWrite(LED_BUILTIN, LOW); - - Serial.println("Sending APRS packet!"); - digitalWrite(MAIN_LED_BLUE, HIGH); - digitalWrite(PTT_PIN, LOW); - send_packet(_FIXPOS_STATUS); - digitalWrite(PTT_PIN, HIGH); - digitalWrite(MAIN_LED_BLUE, LOW); - -// delay(1000); - - -// digitalWrite(LED_BUILTIN, HIGH); + firstTime = ON; } void get_tlm_ao7() { @@ -356,8 +368,10 @@ void get_tlm_fox() { // fflush(stdout); sampleTime = (unsigned int) millis(); - } else + } else { Serial.println("first time - no sleep\n"); + firstTime = OFF; + } // if (mode == FSK) { // just moved @@ -806,6 +820,8 @@ void write_wave(int i, short int *buffer) buffer[ctr++] = (short int)(0.25 * amplitude * phase); // Serial.print(buffer[ctr - 1]); // Serial.print(" "); + if (ctr > BUFFER_SIZE) + ctr = ctr - BUFFER_SIZE; } else { @@ -2065,12 +2081,12 @@ void pwm_interrupt_handler() { pwm_value = 128 - pwm_amplitude; // Serial.print("_"); } - pwm_set_gpio_level(AUDIO_OUT_PIN, pwm_value); -// Serial.println("wav_position: "); -// Serial.println(wav_position); - if (wav_position++ > 300) { - wav_position = 0; -// Serial.println("Reset wav_position"); + pwm_set_gpio_level(AUDIO_OUT_PIN, pwm_value); +// Serial.println("wav_position: "); +// Serial.println(wav_position); + if (wav_position++ > BUFFER_SIZE) { // 300) { + wav_position = wav_position - BUFFER_SIZE; +// Serial.println("Reset wav_position"); } }