Navigation

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. simon-rob
    3. Posts
    • Profile
    • More
      • Following
      • Followers
      • Topics
      • Posts
      • Best
      • Groups

    Posts made by simon-rob

    RE: Does the PPS code work for the new INS example for OpenIMU?

    @Andrey-Bondarev @Dong-xiaoguang

    Are you guys still working?

    Please can you confirm that the time stamp is being synchronised by the external PPS signal as I cannot see how it is?

    Please correct me if I am wrong?

    posted in The OpenIMU Family •
    RE: Does the PPS code work for the new INS example for OpenIMU?

    @Andrey-Bondarev @Dong-xiaoguang Any updates?

    posted in The OpenIMU Family •
    RE: Does the PPS code work for the new INS example for OpenIMU?

    @Andrey-Bondarev

    Bump

    posted in The OpenIMU Family •
    RE: Does the PPS code work for the new INS example for OpenIMU?

    @Andrey Bondarev,

    I can see how ppsDetected is set in Timer5, but as far as I can tell timer5 isn't triggered by the pps input on pin 2.

    Timer0 gets trigger by the input on pin 2.

    My question as I can't figure it out, is how is the timestamp being synchronised by the pps input?

    Many thanks,

    Simon

    posted in The OpenIMU Family •
    RE: Does the PPS code work for the new INS example for OpenIMU?

    @dong bump

    posted in The OpenIMU Family •
    RE: Does the PPS code work for the new INS example for OpenIMU?

    Dong,

    I am trying to work out if the pps code actually works and what it is doing, I have the IMU connected to a Ublox zed-f9p with the pps connect to pin 2 . I now can see that the interrupt is being serviced, but I can't work out in the code as bits are commented out if the timestamp is being adjusted accordingly.

    Looking at in DataAcquisitionSupport.c and ONE_PPS_EXTI_IRQHandler.

    Why is ppsDetected commented out?

    void ONE_PPS_EXTI_IRQHandler(void)
    {
    OSEnterISR();

    if(platformIsGpsPPSUsed()){
    

    // ppsDetected = 1;
    }

    EXTI->PR = ONE_PPS_EXTI_LINE;  ///< Clear the interrupt bit
    
    OSExitISR();
    

    }

    Simon

    posted in The OpenIMU Family •
    Does the PPS code work for the new INS example for OpenIMU?

    Hi,

    I have put break points on TIM2_IRQHandler and I am never seeing this code called.

    I have set the the following as per the docs:

    void initUserDataProcessingEngine()
    {
    InitUserAlgorithm(); // default implementation located in file user_algorithm.c
    platformEnableGpsPps(TRUE); // Init PPS sync engine
    }

    What am I doing wrong?

    Regards,

    Simonrob

    posted in The OpenIMU Family •
    RE: STM32F405/src/startup_stm32f405xx.o] Error 1

    @Andrey Bondarev

    Many thanks that was driving me crazy!

    posted in The OpenIMU Family •
    STM32F405/src/startup_stm32f405xx.o] Error 1

    When trying to debug with the latest firmware I get STM32F405/src/startup_stm32f405xx.o] Error 1:

    Processing OpenIMU300ZI (platform: aceinna_imu; board: OpenIMU300)

    Verbose mode can be enabled via -v, --verbose option
    CONFIGURATION: https://docs.platformio.org/page/boards/aceinna_imu/OpenIMU300.html
    PLATFORM: Aceinna IMU 1.2.5 > Aceinna OpenIMU 300
    HARDWARE: STM32F405RG 120MHz, 128KB RAM, 1MB Flash
    DEBUG: Current (stlink) External (blackmagic, jlink, stlink)
    PACKAGES:

    • toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
      LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
      LDF Modes: Finder ~ chain, Compatibility ~ soft
      Found 3 compatible libraries
      Scanning dependencies...
      Dependency Graph
      |-- <OpenIMU300-base-library> 1.0.9
      |-- <Core> 1.0.4
      | |-- <OpenIMU300-base-library> 1.0.9
      |-- <CLI>
      | |-- <Core> 1.0.4
      | | |-- <OpenIMU300-base-library> 1.0.9
      | |-- <OpenIMU300-base-library> 1.0.9
      Building in debug mode
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS/src/cmsis_os.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS/src/croutine.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS/src/event_groups.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS/src/heap_1.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS/src/list.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS/src/port1.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS/src/queue.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS/src/tasks.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS/src/timers.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/FreeRTOS_M4/src/port.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Board/src/bsp.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Board/src/configureGPIO.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Board/src/spi_dummy.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Board/src/stm32f4xx_it.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Board/src/uart.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Board/src/watchdog.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/CAN/src/can.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/CAN/src/sae_j1939.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/CAN/src/sae_j1939_slave.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/CAN/src/taskCANcommunicationJ1939.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/BIT.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/DataAcquisitionSupport.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/comm_buffers.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/config_fields.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/crc.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/crc16.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/debug.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/handle_packet.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/platform.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/send_packet.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/sensors_data.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/serial_port.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Core/src/ucb_packet.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Filter/src/filter.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/Platform/Filter/src/lowpass_filter.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/misc.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/startup_stm32f405xx.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_adc.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_can.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_crc.o
      arm-none-eabi-as: unrecognised option '-Og'
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_cryp.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_cryp_aes.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_cryp_des.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_cryp_tdes.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_dac.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_dbgmcu.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_dcmi.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_dma.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_exti.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_flash.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_fsmc.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_gpio.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_hash.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_hash_md5.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_hash_sha1.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_i2c.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_iwdg.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_pwr.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_rcc.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_rng.o
      Compiling .pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/stm32f4xx_rtc.o
      *** [.pio/build/OpenIMU300ZI/lib451/OpenIMU300-base-library_ID6538/STM32F405/src/startup_stm32f405xx.o] Error 1

    I am using Ubuntu 16.04, all Visuaol Code and Platform IO are up to date and I am trying the debug the sample INS application.

    I can upload the application to the IMU and it runs fine but I can't debug.

    ; PlatformIO Project Configuration File
    ;
    ; Build options: build flags, source filter
    ; Upload options: custom upload port, speed and extra flags
    ; Library options: dependencies, extra library storages
    ; Advanced options: extra scripting
    ;
    ; Please visit documentation for the other options and examples
    ; http://docs.platformio.org/page/projectconf.html
    [platformio]
    description =
    A Kalman filter based algorithm that uses rate-sensors to propagate attitude
    (roll, pitch, and heading angles) forward in time and accelerometers and
    magnetometers as references, to correct for bias in the rate-sensor signal.
    Additionally, the algorithm uses accelerometer data to propagate velocity and
    position and velocity (in the North/East/Down-Frame) and GPS data to correct
    for errors and estimate bias in the accelerometer signals.

    Platformio.ini:

    [env:OpenIMU300ZI]
    platform = aceinna_imu
    lib_archive = false
    board = OpenIMU300
    ;lib_deps= ../../OpenIMU300-lib
    lib_deps = OpenIMU300-base-library@1.0.9
    build_flags =
    ; -D CLI
    -D GPS
    -D SPI_BUS_COMM
    -D __FPU_PRESENT
    -D DISPLAY_DIAGNOSTIC_MSG
    -D ARM_MATH_CM4
    -I include
    -I include/API
    -I src/user
    -I src
    ; -L ldscripts
    -Og
    ; -Wno-comment
    ; -Wl,-Map,imu380.map
    ; -Wl,-Tstm32f40x.ld
    -mthumb -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16

    monitor_speed = 115200
    debug_tool = stlink
    ;upload_protocol = jlink
    ;debug_tool = jlink

    ;debug_tool = custom
    ;debug_port = :4242
    ;debug_server = $PLATFORMIO_HOME_DIR/packages/tool-stlink/bin/st-util

    posted in The OpenIMU Family •
    RE: OpenIMU300ZA Obsolete

    @ysong any update?

    posted in The OpenIMU Family •
    RE: OpenIMU300ZA Obsolete

    Can I use OpenIMU300ZI firmware and apps on the OpenIMU300ZA?

    posted in The OpenIMU Family •
    OpenIMU300ZA Obsolete

    I have noticed Mouser is listing this part as obsolete and the all reference in the doc and Github are slowly disappearing.

    What is the official support for this part?

    Also if your products are aimed at the automotive segment amongst others why obsolete parts after such a short duration. I feel I have wasted and immense amount of time!

    Regards,

    Simon

    posted in The OpenIMU Family •
    RE: OpenIMU300ZA output freezes after 1 minute (approx) when using PPS

    @Li-YiFan Quite some time has passed now.. any updates on the next release?

    posted in The OpenIMU Family •
    RE: OpenIMU300ZA output freezes after 1 minute (approx) when using PPS

    @Li-YiFan Any update on the firmware release?

    posted in The OpenIMU Family •
    RE: How can I use the CLI - Can't get any commands to run

    I had the same problem, after looking at the code I thinks it's design is only for Windows with cr/lf and I am using linux terminal that only sends cr. I think it might be better for it to detect cr as end of line not LF.

    Regardless of that I don't see how the code ever worked properly, as the static uint32_t index = 0; and cmdlinde are never reset after am initial command line execution.

    I added bzero(&gCmdLine[0], sizeof(gCmdLine); index = 0 in (commandline.c)

    If you don't reset the above then it will only ever run one command.

    void CmdLineLookup(tCommand const *cmd_table)
    {
    static uint32_t index = 0;

    if (DebugSerialReadLine((uint8_t*) gCmdLine, &index, 80)) {
        strrep(gCmdLine, '\r', 0);
        strrep(gCmdLine, '\n', 0);
        if (gCmdLine[0]) {//don't process empty string
            //Ignore lines that start with # character
            if (gCmdLine[0] != '#') {
                _ExecLine(cmd_table);
                
            }
        }
        bzero(&gCmdLine[0], sizeof(gCmdLine)); // Add this
        index = 0; // And this
        CmdPrintPrompt();
    
    } // else wait until prompt is ready
    

    }

    Also comment the following in Debug_usart.c as it is stripping out the cr so it will never find the end of line to and never return true from DebugSerialReadLine()

    int DebugSerialReadLine(uint8_t *buf, uint32_t *index, uint32_t len)
    {
    uint8_t c = 0, lf = 0;
    int num;

    while (c != _LF){
        num = uart_read(debugSerialChan, &c, 1);
        if(num <= 0){
            break;
        }
      
        if (_TAB == c) {
            c = _SPACE;
        }
        
        /*if (_CR == c) {  // comment this out
            continue;
        }*/
    

    Regards,

    Simon

    posted in The OpenIMU Family •
    RE: OpenIMU300ZA output freezes after 1 minute (approx) when using PPS

    @Li-YiFan thanks for your response.

    Do you have a rough estimate of when the next firmware will be released?

    Alternatively can you point to to the relevant code in the Beta on github so that I can investigate?

    Regards,

    Simon

    posted in The OpenIMU Family •
    OpenIMU300ZA output freezes after 1 minute (approx) when using PPS

    Is the PPS signal supported in the firmware as per the documentation?

    Output consistently freezes after 1 min when using the INS example App with PPS from the GNSS connected to pin 2.

    Many thanks,

    Simon

    posted in The OpenIMU Family •
    How to update the base firmware for OpenIMU300ZA

    I am aware of the announcement to update firmware for OpenIMU300BI to version 1.1.1 .

    How can I update the base firmware for the OpenIMU300ZA, mine is currently 1.0.22.

    Regards,

    Simon

    posted in The OpenIMU Family •
    RE: How to propose changes to the core libraries ?

    @Sylvain,

    Any updates on the INS app?

    BTW
    I tried your drivers-imu_aceinna_openimu (for Rock) with the firmware in the in the folder and just got a core dumps- is the the correct firmware bin?

    unbuntu 16.04 LTS:

    openimu serial:///dev/ttyUSB0:115200 write-firmware INS_1-0-0_TW.bin
    contacted unit in bootloader mode at serial:///dev/ttyUSB0:57600
    firmware update successful

    ./openimu serial:///dev/ttyUSB0:115200 info
    terminate called after throwing an instance of 'iodrivers_base::TimeoutError'
    what(): readPacket(): no data waiting for data. Last wait lasted 3ms, out of a total timeout of 1000ms
    Aborted (core dumped)

    UPDATE:

    • Looks like the baud rate for INS_1-0-0_TW.bin firmware defaults to 57600. Then the output is fine.

    • Also note the GPS input is on UART 1 (Serial Channel 1) NOT UART2 (Serial Channel 2) which is normally designated for GPS.

    Regards,
    Simon

    posted in The OpenIMU Family •
    RE: magnetic calibration process message (ma) documentation

    @Li YiFan thanks for pointing out the the VG-AHRS app now has mag-align. I managed to get get better alignment after a few attempts.

    The mag-align process doesn't seemed to like being run in succession, I had to disconnect between attempts. Also my unit is in -X+Y-Z orientation (set in unit settings) does the align algo cope with non default orientations?

    Thanks,
    Simon

    posted in The OpenIMU Family •