Skip to content

Latest commit

 

History

History
104 lines (73 loc) · 3.26 KB

README.md

File metadata and controls

104 lines (73 loc) · 3.26 KB

MiniPIX UART Interface (MUI) - Software

  • C99 library
    • needs "virtual" methods to be implemented by the HW integrator
  • uses LLCP to communicate with the MiniPIX
  • provides routines for controling the MiniPIX
  • calls user callbacks when new data arrive
  • more details in mui/README.md

LLCP - Low-level Communication Protocol

  • C99 library
  • UART link layer between the MiniPIX and the MUI
  • capable of sending messages with up to 255 bytes of payload
  • can send data in binary or hexadecimal form
  • RAM-efficient: uses a single buffer to store received data and to present them to the user after decoding
  • No need to implement this directly, it is already used within the MUI

Example interface

  • Example usecase of MUI integration is provided for
    • Linux,
    • STM32F411RE Nucleo.

Dummy - the MiniPIX emulator

  • responds identically as the MiniPIX over UART
  • generic C++ implementation with virtual methods for particular platform
  • Linux Implementation:
  • HW implementation TODO
    • TODO Possibly STM32F411RE Nucleo or Blue Pill
    • TODO Could store a few real images
    • TODO Will probably randomly generate images using stored particle tracks

Gatherer - PC data receiver from the Example interface over FTDI

  • optionally, can be compiled with OpenCV GUI: shows incoming images
  • saves incoming packeted data into a file (example), to be later processed by the Decoder.

Install OpenCV for the GUI:

sudo apt-get -y install libopencv-dev

Disable/Enable the GUI in the CMakeLists.txt:

set(GUI 1)

Decoder - PC data decoder

  • stitches packeted data from a file (example), and shows the resulting images in a minimalistic GUI
  • consumes HEXadecimalized frame data (LLCP_FrameDataMsg_t) that can be obtained from the MUI

  • minimalistic Python implementation
  • contains code for pixel data deserialization and derandomization

Screenshot of Decoder GUI:

VZLUSAT1-timepix-data

A repository containing Timepix data obtained by the VZLUSAT-1 satellite. The data is used in the Dummy to emulate measurements.

Download the data by updating the git submodule:

git submodule update --init --recursive

Running in Tmux sessions

The tmux subfolder contains tmuxinator sessions ready for testing.

  1. Install tmux and tmuxinator:
sudo apt-get -y install tmux tmuxinator
  1. compile all the Linux software
./compile.sh
  1. If testing with the STM32F4 example, compile and flash the microcontroller -> README.md.

  2. If running the Linux MUI example, install virtual serial line:

sudo apt-get -y install socat
  1. Run ./start.sh in the appropriate tmux/{all_linux, hw_mui_dummy_virtual, hw_mui_hw_minipix, linux_mui_hw_minipix} sessions.

Screenshot of the Dummy, Linux MUI Example and the Gatherer running on a Linux PC: