Google Summer of Code or short GSoC came to an end for this years season recently and here we want to showcase some of the cool projects students worked on this year around the AXIOM project.
Remote Test System for AXIOM Remote
Example python script to run automated AXIOM Remote tests
"The project I worked on over this summer, was to develop a test system that would allow remote and automated testing of the AXIOM Remote for development purposes. This mainly involved two parts:
Developing gateware for the routing fabrics on the AXIOM Beta, that would simulate realistic button presses and rotary encoder actions on the AXIOM Remote, thus allowing the user to remotely control the AXIOM Remote via external hardware.
Developing a test framework that can run these automated tests
The HDL code for the gateware has been developed and can be found here. A bitstream can be generated from the source code which can be uploaded to the routing fabrics.
A test framework in python has also been developed that can do basic operations like push a button on the AXIOM Remote, turn the dials on the AXIOM Remote .etc" - Vinayak Sankar (@vnksnkr)
AXIOM Beta support for the AXIOM nMigen gateware
"My project for GSoC '21 was to develop support for the AXIOM Beta and its CMV12000 sensor in naps. naps is apertus’ approach to rewrite the FPGA design (gateware) of the AXIOM Beta using nMigen, an HDL toolkit implemented in the Python programming language. I implemented SPI communication with the sensor to initialize it and set its parameters. I then developed the PHY, or physical communication link to receive image data. This included link training, test pattern validation, and data storage to DRAM. The next piece is remapping so that captured images are displayed in the correct pixel order, followed by image output to HDMI. I plan to work on these components later in order to finish a complete image pipeline. Please look at the wiki for more information and source code." - Thomas Watson (tpw_rules)
AXIOM Remote: Firmware improvement and extension
"My task is to improve and enhance AXIOM Remote firmware, I have participated in the following works throughout GSoC:
- Adding transition animations in the UI of AXIOM Remote.
- Add a text input GUI.
- Set up a timer to measure the performance of the remote.
Documenting the process of setting up AXIOM Remote development Kit.
Utilizing the help from my mentors, I built several transition animations, discussed and created a text input keyboard widget, understood and documented the process of flashing PIC16s and PIC32 MCU of AXIOM Remote, and used a 16 bit timer (Timer 1) to assess the performance of AXIOM Remote firmware. Here on the project wiki page are my final report, phase 1 report, and project proposal." - Aman (@eppisai)
Image Sensor Simulation/Emulation
"My task was to create an emulation for the CMV12000 sensor so it could be placed as a direct interface integrated into the ZYNQ design or into a separate FPGA acting as a full sensor emulation. The development of the emulation went through different phases and stages.
- An SPI-Interface was designed for the sensor (sequencer registers) to communicate with the outside world.
- A 128, 16-bit sequencer registers were designed to control the sensor operation and output modes.
- A reset system was developed to reset the sequencer registers to their initial state.
- Two test patterns were developed for the emulation to use.
- Output channels, supporting different modes, were developed along with data training so that the generated patterns can be sent over.
The project is still under development. You can find the source code here." - SeifEldeen Emad (@Destfolk)
GUI for the AXIOM Recorder
"My project for GSoC '21 was to develop a Graphical user interface for the AXIOM recorder a software package that will be used to record video from the AXIOM cameras. The current command line based interface of the AXIOM recorder is difficult to use outside a lab setting. On the way of building said GUI, I (and @vup) planned and developed narui: A Powerful UI library for building applications with the rust programming language and Vulkan GPU rendering. That library makes it easy to build composable UI elements but also custom rendering (as needed for a performant debayered preview of the camera feed).
Currently, most of the groundwork is finished, and parts of the recorder UI are implemented. For more information on that project, read the GSoC finishing Blog-Post of that project" - (@anuejn)
- GSoC Overview - Read how to apply for GSoC 2022 and details on the procedure.
Want to participate?
Want to provide feedback or suggest improvements? Want to try your own approach and need help?
Get in touch via IRC or email.