To apply for this task please complete this mandatory coding challenge together with your application: T1191
Applications without matching coding challenge completed will not be considered.
Read our Google Summer of Code Overview page:
https://wiki.apertus.org/index.php/GSoC_Overview
This a is a collection of small tasks that can be worked on in the course of a GSoC project. The scope is working on the AXIOM Remote hardware (https://wiki.apertus.org/index.php/AXIOM_Remote) which has a hardware prototype finished based on a PIC32 CPU
The current AXIOM Remote software code can be found here: https://github.com/apertus-open-source-cinema/AXIOM-Remote/tree/dev/Firmware
Videos of the previous software and hardware are here: https://lab.apertus.org/T1116
Goals:
Implement:
- LVP (Low Voltage Programming) for PIC16s.
- PIC32 self-programming.
- Preset store (save all current camera/config parameters/states into external flash storage) and load routines.
- Shutdown routines (preset store, display power off, component power down).
- Investigate power saving modes (PIC32 low power and sleep mode).
- LCD dimming through PWM control of the LCD LEDs.
- Communication between bootloader and firmware.
- Host (PC/Axiom Beta) software to flash PIC16 and PIC32 firmware via USB.
- Unit tests to verify proper implementation.
Prerequisites:
- PIC32MZ Getting started overview: https://microchipdeveloper.com/pic32mz:start
- PIC32MZ2048ECG100 (see Documents for datasheet): https://www.microchip.com/wwwproducts/en/PIC32MZ2048ECG100
- PIC16F1718 (see Documents for datasheet): https://www.microchip.com/wwwproducts/en/PIC16F1718
Language Skills:
- C / C++
- GCC linker scripts
Difficulty: Medium/High
Mentors: Andrej (@BAndiT1983), Priya (@metal_dent)
To get in touch with any mentor check the Mentor Contact List.
Note: As this task requires certain hardware we provide remote access for testing and/or hardware emulation (https://github.com/apertus-open-source-cinema/AXIOM-Remote/tree/master/axiom_remote_visualizer).