To apply for this task please complete this mandatory coding challenge together with your application: T1162
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:**
- embedded systems basics (we use a Microchip PIC32MZ CPU) - Full Manual: https://www.alliedelec.com/m/d/1e5e0c2adda09fc1913391ccd4594515.pdf
**Language Skills:**
- C / C++
- GCC linker scripts
**Difficulty:** Medium/High
**Mentors:** Andrej, Supragya (?)
To get in touch with any mentor check the [[ https://www.apertus.org/GSoC-2019-Mentor-Contact-List | 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).