Application for managing a DMX controller device
A PIC32MX-based USB device acts as a programmable DMX controller (DMX is a protocol for controlling lightning fixtures, fog/haze/snow/bubble machines on a stage). Completely designed and implemented an OS X application for programming this device. The application allows editing database of fixtures and libraries of fixtures in a Contacts-like UI, presents DMX fixtures on a scrollable Calendar-like view, whose cells correspond to various DMX channels (different fixtures are shown as "calendar entries" with different adjustable colors), programs DMX Cues, Loops and Arrays on the device. The application interacts with the device using USB CDC protocol (regular communication mode), and uses USB HID to interact with the controller's bootloader (firmware upgrade mode).
Application also allows importing fixture database files and has extended drag&drop functionality
Used technologies: IOKit, CoreData, Heavy OS X UI customization and custom UI controls, UX, USB HID, USB CDC interacting with a PIC32 controller, PIC32 MPLAB toolchain, PIC32MX USB Starter Kit board II