Skip to content

Latest commit

 

History

History
84 lines (63 loc) · 2.86 KB

README.md

File metadata and controls

84 lines (63 loc) · 2.86 KB

WideUSB

Board based on STM32F4 to connect various perepherial over USB. May be useful with single-board computers (SoCs) like Raspberry Pi

Nearest roadmap and tasks

  • Base

    • Check that RingBuffer is thread-safe
    • Something for errors reporting
    • Global error handler and other callbacks - define something understandable
  • Networking

    • Retransmitting to another network devices (works on PC simulation)
    • TimePlanner should return time of next activity
    • Internal transmission without network
    • Struct-based layers parameters
    • Send ack second time if already sended ?
    • Move base64 to communication
  • STM32 Hardware abstraction

    • Devices driver structure: Driver <- Hal driver <- instance with concrete handlers configured by Cube
    • Some kind of RTOS-based light asio analog
  • Device core

  • Modules interface

    • For each module make 'module back' and 'module front'. Front should be avaliable from MCU too.
    • Change folders structure for modules
    • Derive backs from IModule
  • Monitor module

    • Run new stack on board
    • Merge to master: remove old code and files
  • GPS module

    • Fill thimestamp structs with content
  • Asynchronous C++ API

    • Add timeout for operations
  • Synchronous python API

    • Replace condition variable with promise/future and wait_for (No! Timeout shoud be made in another way!) ...
  • DAC module

  • ADC module

  • GPIO module

  • nfr24l01 device

    • Driver abstraction
    • Driver implementation
    • Single device test
    • Double device test
    • Device class code refactoring
      • SPI without IRQ
  • LoRa module

    • Double device test
    • Code refactoring and adaptation
      • Adapt as a class
      • Make physical layer
  • State saving in EEPROM

  • IR transmitter

  • IR receiver

Hardware

  • Gen 1 PCB design

Bugs

  • [?] CRITICAL: LoRa works only if message len > real sending amount - stabilisation with timouts
  • IMPORTANT: sometimes MCU spam inconsistent messages instead of replying by USB. Disabling lock glue fixes the problem... fixed by disabling malloc/free wrappers (NOT FIXED!..)
  • Wrong parameters value: file /home/dalexies/Projects/wideusb/source/stm32/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c on line 171 during HAL_NVIC_SetPriority in HAL_InitTick from HAL_InitTick (uwTickPrio); (stm32f4xx_hal_rcc.c:724) where uwTickPrio is set at uint32_t uwTickPrio = (1UL << __NVIC_PRIO_BITS); /* Invalid PRIO */ - this is generated by Cube
  • malloc(): mismatching next->prev_size (unsorted) on python exit