kopia lustrzana https://github.com/DL7AD/pecanpico9
rodzic
70ff480b43
commit
934fd1ec3a
|
@ -3,7 +3,7 @@
|
|||
#include "debug.h"
|
||||
|
||||
module_conf_t config[9];
|
||||
uint8_t ssdv_buffer[65535] __attribute__((aligned(32)));
|
||||
uint8_t ssdv_buffer[256*1024] __attribute__((aligned(32)));
|
||||
|
||||
/*
|
||||
* Position module configuration description
|
||||
|
@ -50,7 +50,7 @@ uint8_t ssdv_buffer[65535] __attribute__((aligned(32)));
|
|||
* - TRIG_NEW_POINT Triggered when new track point available
|
||||
* - TRIG_TIMEOUT Triggered by timeout (e.g. trasmit position every 120sec)
|
||||
* this option requires trigger.timeout to be set
|
||||
* - TRIG_CONTINOUSLY Continue continously (e.g. send new image once old image sent completely)
|
||||
* - TRIG_CONTINUOUSLY Continue continuously (e.g. send new image once old image sent completely)
|
||||
*
|
||||
* ============================== The following options are needed if protocol == PROT_APRS_AFSK or protocol == PROT_APRS_2GFSK ===============================
|
||||
*
|
||||
|
@ -173,12 +173,12 @@ void start_user_modules(void)
|
|||
// Module POSITION, APRS 2m AFSK
|
||||
config[0].power = 127; // Power 20 dBm
|
||||
config[0].protocol = PROT_APRS_AFSK; // Protocol APRS, modulation AFSK
|
||||
config[0].frequency.type = FREQ_STATIC; // Dynamic frequency allocation
|
||||
config[0].frequency.hz = 144390000; // Default frequency 144.800 MHz
|
||||
config[0].frequency.type = FREQ_APRS_REGION; // Dynamic frequency allocation
|
||||
config[0].frequency.hz = 144800000; // Default frequency 144.800 MHz
|
||||
config[0].init_delay = 0; // Module startup delay in msec
|
||||
config[0].trigger.type = TRIG_NEW_POINT; // Trigger when new track point released
|
||||
chsnprintf(config[0].aprs_conf.callsign, 7, "DL7AD"); // APRS Callsign
|
||||
config[0].aprs_conf.ssid = 11; // APRS SSID
|
||||
config[0].aprs_conf.ssid = 12; // APRS SSID
|
||||
config[0].aprs_conf.symbol = SYM_BALLOON; // APRS Symbol
|
||||
chsnprintf(config[0].aprs_conf.path, 16, "WIDE1-1"); // APRS Path
|
||||
config[0].aprs_conf.preamble = 300; // APRS Preamble
|
||||
|
@ -190,7 +190,7 @@ void start_user_modules(void)
|
|||
config[0].aprs_conf.tel_enc = TRUE; // Transmit Telemetry encoding information activated
|
||||
config[0].aprs_conf.tel_enc_cycle = 3600; // Transmit Telemetry encoding information every 3600sec
|
||||
chsnprintf(config[0].aprs_conf.tel_comment, 30, "http://ssdv.habhub.org/DL7AD");// Telemetry comment
|
||||
//start_position_thread(&config[0]);
|
||||
start_position_thread(&config[0]);
|
||||
|
||||
// Module POSITION, APRS 2m 2GFSK
|
||||
/*config[1].power = 127; // Power 10 dBm
|
||||
|
@ -234,23 +234,23 @@ void start_user_modules(void)
|
|||
// Module IMAGE, APRS 2m AFSK low-duty cycle
|
||||
config[3].power = 127; // Power 20 dBm
|
||||
config[3].protocol = PROT_APRS_AFSK; // Protocol APRS SSDV, modulation AFSK
|
||||
config[3].frequency.type = FREQ_STATIC; // Dynamic frequency allocation
|
||||
config[3].frequency.hz = 144390000; // Transmission frequency 144.800 MHz
|
||||
config[3].frequency.type = FREQ_APRS_REGION; // Dynamic frequency allocation
|
||||
config[3].frequency.hz = 144800000; // Transmission frequency 144.800 MHz
|
||||
config[3].init_delay = 0; // Module startup delay in msec
|
||||
//config[3].packet_spacing = 30000; // Packet spacing in ms
|
||||
config[3].packet_spacing = 30000; // Packet spacing in ms
|
||||
//config[3].sleep_conf.type = SLEEP_WHEN_ISOL_BELOW_THRES;
|
||||
//config[3].sleep_conf.isol_thres = 3;
|
||||
config[3].trigger.type = TRIG_TIMEOUT; // Trigger transmission on timeout (Periodic cycling)
|
||||
config[3].trigger.type = TRIG_CONTINUOUSLY; // Continuous Trigger
|
||||
config[3].trigger.timeout = 10; // Timeout 10 sec
|
||||
chsnprintf(config[3].aprs_conf.callsign, 7, "DL7AD"); // APRS Callsign
|
||||
config[3].aprs_conf.ssid = 11; // APRS SSID
|
||||
config[3].aprs_conf.ssid = 12; // APRS SSID
|
||||
config[3].aprs_conf.preamble = 300; // APRS Preamble
|
||||
chsnprintf(config[3].ssdv_conf.callsign, 7, "DL7AD"); // SSDV Callsign
|
||||
config[3].ssdv_conf.ram_buffer = ssdv_buffer; // Camera buffer
|
||||
config[3].ssdv_conf.ram_size = sizeof(ssdv_buffer); // Buffer size
|
||||
config[3].ssdv_conf.res = RES_QVGA; // Resolution VGA
|
||||
config[3].ssdv_conf.redundantTx = true; // Transmit packets twice
|
||||
//start_image_thread(&config[3]);
|
||||
start_image_thread(&config[3]);
|
||||
|
||||
// Module POSITION, Morse 2m OOK
|
||||
/*config[4].power = 127; // Power 10 dBm
|
||||
|
@ -266,15 +266,15 @@ void start_user_modules(void)
|
|||
start_position_thread(&config[4]);*/
|
||||
|
||||
// Module IMAGE, APRS 2m 2GFSK
|
||||
config[5].power = 127; // Power 20 dBm
|
||||
config[5].power = 50; // Power 20 dBm
|
||||
config[5].protocol = PROT_APRS_2GFSK; // Protocol APRS SSDV, modulation 2GFSK
|
||||
config[5].gfsk_conf.speed = 9600; // 2GFSK Speed
|
||||
config[5].frequency.type = FREQ_STATIC; // Static frequency allocation
|
||||
config[5].frequency.hz = 144860000; // Transmission frequency 144.860 MHz
|
||||
//config[5].init_delay = 60000; // Module startup delay in msec
|
||||
config[5].sleep_conf.type = SLEEP_WHEN_VBAT_BELOW_THRES;
|
||||
config[5].sleep_conf.vbat_thres = 4000;
|
||||
config[5].trigger.type = TRIG_TIMEOUT; // Trigger transmission on timeout (Periodic cycling)
|
||||
//config[5].sleep_conf.type = SLEEP_WHEN_VBAT_BELOW_THRES;
|
||||
//config[5].sleep_conf.vbat_thres = 4000;
|
||||
config[5].trigger.type = TRIG_CONTINUOUSLY; // Trigger transmission on timeout (Periodic cycling)
|
||||
config[5].trigger.timeout = 30; // Timeout 10 sec
|
||||
chsnprintf(config[5].aprs_conf.callsign, 6, "DL7AD"); // APRS Callsign
|
||||
config[5].aprs_conf.ssid = 12; // APRS SSID
|
||||
|
@ -284,7 +284,7 @@ void start_user_modules(void)
|
|||
config[5].ssdv_conf.ram_size = sizeof(ssdv_buffer); // Buffer size
|
||||
config[5].ssdv_conf.res = RES_VGA; // Resolution XGA
|
||||
//config[5].ssdv_conf.redundantTx = true; // Transmit packets twice
|
||||
start_image_thread(&config[5]);
|
||||
//start_image_thread(&config[5]);
|
||||
|
||||
// Module IMAGE, SSDV 2m 2FSK
|
||||
/*config[6].power = 127; // Power 20 dBm
|
||||
|
|
|
@ -15,13 +15,13 @@
|
|||
#define LOG_FLASH_ADDR2 0x080E0000 /* Log flash memory address 2 */
|
||||
#define LOG_SECTOR_SIZE 0x20000 /* Log flash memory size */
|
||||
|
||||
#define GPS_ON_VBAT 0 /* Battery voltage threshold at which GPS is switched on */
|
||||
#define GPS_OFF_VBAT 0 /* Battery voltage threshold at which GPS is switched off */
|
||||
#define GPS_ON_VBAT 4000 /* Battery voltage threshold at which GPS is switched on */
|
||||
#define GPS_OFF_VBAT 3500 /* Battery voltage threshold at which GPS is switched off */
|
||||
|
||||
#define TRACE_TIME TRUE /* Enables time tracing on debugging port */
|
||||
#define TRACE_FILE TRUE /* Enables file and line tracing on debugging port */
|
||||
|
||||
#define RUN_3V TRUE /* Lets the tracker run a 3V otherwise 1.8V. 3V is needed to do 20dBm radio output power.
|
||||
#define RUN_3V FALSE /* Lets the tracker run a 3V otherwise 1.8V. 3V is needed to do 20dBm radio output power.
|
||||
* With 1.8V only 15dBm can be done. Some serial-USB adapters also need a 3V IO level in
|
||||
* order to work. However 3V takes a lot of power in idle. You can save energy using 1.8V. */
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ static const struct regval_list OV5640YUV_Sensor_Dvp_Init[] =
|
|||
{ 0x3c0a, 0x9c },
|
||||
{ 0x3c0b, 0x40 },
|
||||
|
||||
{ 0x3820, 0x41 },
|
||||
{ 0x3820, 0x46 },
|
||||
{ 0x3821, 0x01 }, //07
|
||||
|
||||
//windows setup
|
||||
|
@ -96,7 +96,7 @@ static const struct regval_list OV5640YUV_Sensor_Dvp_Init[] =
|
|||
{ 0x3034, 0x1a },
|
||||
{ 0x3035, 0x11 }, //15fps
|
||||
{ 0x3036, 0x46 },
|
||||
{ 0x3037, 0x13 },
|
||||
{ 0x3037, 0x14 },
|
||||
{ 0x3038, 0x00 },
|
||||
{ 0x3039, 0x00 },
|
||||
|
||||
|
@ -331,7 +331,7 @@ static const struct regval_list ov5640_vga_preview[] =
|
|||
{ 0x3035, 0x11 }, // PLL
|
||||
{ 0x3036, 0x46 }, // PLL
|
||||
{ 0x3c07, 0x08 }, // light meter 1 threshold [7:0]
|
||||
{ 0x3820, 0x41 }, // Sensor flip off, ISP flip on
|
||||
{ 0x3820, 0x46 }, // Sensor flip off, ISP flip on
|
||||
{ 0x3821, 0x01 }, // Sensor mirror on, ISP mirror on, H binning on
|
||||
{ 0x3814, 0x31 }, // X INC
|
||||
{ 0x3815, 0x31 }, // Y INC
|
||||
|
@ -397,8 +397,8 @@ static const struct regval_list OV5640_RGB_QVGA[] =
|
|||
//2592x1944 QSXGA
|
||||
static const struct regval_list OV5640_JPEG_QSXGA[] =
|
||||
{
|
||||
{0x3820 ,0x41},
|
||||
{0x3821 ,0x26},
|
||||
{0x3820 ,0x46},
|
||||
{0x3821 ,0x20},
|
||||
{0x3814 ,0x11},
|
||||
{0x3815 ,0x11},
|
||||
{0x3803 ,0x00},
|
||||
|
|
|
@ -48,9 +48,9 @@
|
|||
#define STM32_PLLN_VALUE 192
|
||||
#define STM32_PLLP_VALUE 4
|
||||
#define STM32_PLLQ_VALUE 4
|
||||
#define STM32_HPRE STM32_HPRE_DIV1
|
||||
#define STM32_HPRE STM32_HPRE_DIV2
|
||||
#define STM32_PPRE1 STM32_PPRE1_DIV2
|
||||
#define STM32_PPRE2 STM32_PPRE2_DIV1
|
||||
#define STM32_PPRE2 STM32_PPRE2_DIV4
|
||||
#define STM32_RTCSEL STM32_RTCSEL_LSI
|
||||
#define STM32_RTCPRE_VALUE 8
|
||||
#define STM32_MCO1SEL STM32_MCO1SEL_HSE
|
||||
|
|
|
@ -48,7 +48,7 @@ systime_t waitForTrigger(systime_t prev, trigger_conf_t *config)
|
|||
case TRIG_TIMEOUT: // Wait for specified timeout
|
||||
return chThdSleepUntilWindowed(prev, prev + S2ST(config->timeout));
|
||||
|
||||
case TRIG_CONTINOUSLY: // Immediate trigger
|
||||
case TRIG_CONTINUOUSLY: // Immediate trigger
|
||||
return chVTGetSystemTimeX();
|
||||
|
||||
case TRIG_ONCE: // No trigger defined
|
||||
|
|
|
@ -131,7 +131,7 @@ typedef enum {
|
|||
TRIG_ONCE, // Trigger once and never again (e.g. transmit specific position packet only at startup)
|
||||
TRIG_NEW_POINT, // Triggered when new track point available
|
||||
TRIG_TIMEOUT, // Triggered by timeout (e.g. trasmit position every 120sec)
|
||||
TRIG_CONTINOUSLY // Continue continously (e.g. send new image once old image sent completely)
|
||||
TRIG_CONTINUOUSLY // Continue continuously (e.g. send new image once old image sent completely)
|
||||
} trigger_type_t;
|
||||
|
||||
typedef struct {
|
||||
|
|
Ładowanie…
Reference in New Issue