Code Monkey home page Code Monkey logo

suchai's Introduction

SUCHAI

SUCHAI Cubesat Flight Software

Key Features:

  • Designed for medium-range microcontrollers, as Microchip PIC24.
  • Low memory foot print
  • Highly extensible command processor architecture
  • Powered by FreeRTOS

Visit http://spel.ing.uchile.cl/suchai to get latest news about SUCHAI project

Visit http://www.freertos.org/ to get FreeRTOS source code and documentation

suchai's People

Contributors

carlgonz avatar guillecp123 avatar joseogalde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

suchai's Issues

dat_pay_expFis causing reset

Debug trace:

[Houskeeping] 20[s] actions..
[FlightPlan2] _4sec_check
[Dispatcher] Orig: 0x1105 | Cmd: 0x6001 | Param: 8
FSM_default => pay_i = dat_pay_expFis
fis_iterate..
len( ADC_period[] )\0xff\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00
--------- SUCHAI BOOT SEQUENCE ---------
.....

SUCHAI integration

In the integration for the tests in Brasil the +-Z array cables are crossed.

Beacon redefinition

Gomspace beacon only accept 20 characters (but adds auto generated telemetry as volt, rssi, temp) so we need to redefine beacon content.

bug SCH_TASKEXECUTER_VERBOSE

Se constata que luego de iniciado el sistema y de queda disponible la consola, el comando "rtc_print" falla si se ejecuta mas de 1 vez, sin embargo el comando "ppc_osc" no lo hace, aunque se repita indefinidas veces. El comando "rtc_print" en resumen solo funciona la 1era vez, pegando el sistema si se reintenta.

Se probo comentando las lineas de spemaforo del comando rtc_print, sin exito

Lo extraño es que al dejar el flag SCH_TASKEXECUTER_VERBOSE con un valor de 2 si se puede re-ejecutar "rtc_print" indefinidamente. Sin embargo se pega a si se reintenta, a penas se cambia el valor de SCH_TASKEXECUTER_VERBOSE.

No se han probado con otros comandos, si tambien se pagan.

cmdPayload.c refactoring

Please review and refactor this file:

  • Follow global coding styles (functions separated by space, avoid lines with /***********************************************/ use an space instead, add documentation)
    • Restore pay_take_lagmuirProbe command
    • Remove unused code

Payloads state machine does not preserve the status after a reset

The payloads state machine is designed to take a limited number of samples of each payloads. However, the execution counter is "initialized" (not properly initialized in the source code) after a reset. The later means that if the payload execution limit is set to 100 and before a reset it counter was set to 90, then after the reset the execution will continue from 0 resulting in 190 samples. This may cause issues with the payloads buffers.

See:

static unsigned int run_take_times_executed[dat_pay_last_one]; //all initialized to zero

Libcsp out of buffers

After a few operations libcsp get out of buffers.
Debugging of buffers usage is necessary.

Build SUCHAI project

Which versions of the MPLAB X IDE and XC16 compiler are required to build the SUCHAI project with the FreeRTOS and legacy PIC24 peripheral library?

eps_isAlive()

Falta crear la funcion eps_isAlive, para incluir el estado de la EPS en las variables de estado.
Existe una funcion VersionReadEPS(); para leer la version del la EPS, sin embargo no se ha encontrado que valor debe retornar. Una vez que se sepa la funcion eps_isAlive es trivial de terminar.

Migrate from con_printf to printf

At the moment printf (used in libcsp and nancom) and con_printf coexist. We need to:

  • link con_printf with printf and
  • make printf thread safe using mutexes (like con_printf)

Note: look in TRX_GOMSPACE for the solution.

TM frame endianess

TM frame are received with inverted endianess. Fix in trx_tm_addtoframe function

Tareas no se inician cuando no estan las EEPROM abordo

Las tareas no se inician cuando las EEPROM no están a bordo, debido a que hay una lectura de estado que causa un loop infinito antes de iniciar el funcionamiento efectivo.

Ejemplo TaskConsole.c

/*Avoid the acummulation of commands while the SUCHAI is still deploying.. */
#if (SCH_THOUSEKEEPING_USE == 1)
    portTickType xLastWakeTime = xTaskGetTickCount();
    portTickType check_deployment_time = (10000) / portTICK_RATE_MS;      /* check every 10sec  */
    while( TRUE ){

        /* TODO: Infinite loop if EEPROM is not onboard */
        if( sta_get_BusStateVar(sta_dep_ant_deployed)==1 ){
            break;
        }

        vTaskDelayUntil(&xLastWakeTime, check_deployment_time);
    }
#endif 

Relacionado: #23

Bad int trx_isAlive(void *param); implementation

Este comando no revisa que efecitvamente el TRX siga vivo. Solo asume que lo hace.

Esta asi ya que al ejecutar sta_get_stateVar(sta_TRX_isAlive); desde un Listener se genera un stack overflow ya todas las transaciones CSP con el TRX sobrepasan el limite de RAM de un Listener.

Command to set trx baudrate

A command to set trx baudrate is required. Please consider the ability to restore default settings if the new baudrate do not allow communication with ground station.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.