Skip to content

hezmand/ja-rule

 
 

Repository files navigation

Ja Rule

Build Status Coverity Scan Status Coverage Status

Ja Rule is an open source DMX512 / RDM stack for PIC32 microcontrollers. The software is developed as part of the Open Lighting Project.

Documentation

The Ja Rule Developer Documentation, is targeted towards people who want to know more about the platform and how to modify it.

The Ja Rule User Guide is not available yet.

Licensing

The Ja Rule codebase is licensed under the LGPL.

The unit-testing code & mocks are licenced under the GPL.

The hardware designs and the documentation is licensed under the Creative Commons BY-SA.

Directory Layout

├── Bootloader  # The DFU bootloader
│   └── firmware
│       ├── Bootloader.X  # Bootloader MPLAB X project
│       ├── src  # Bootloader source code
├── boardcfg     # Software configuration for each board
├── common  # Common code shared between the bootloader and application.
├── firmware  # The main DMX/RDM application
│   ├── ja-rule.X
│   └── src
├── linker       # linker scripts for the bootloader & application
├── tests        # Unit tests
├── tools        # tools to upgrade the firmware on the device.
└── user_manual  # The user manual

Getting Started

The firmware/ja-rule.X project can be opened in MPLAB X.

To run the unit tests, you'll need:

gmock / gtest should not be installed system-wide, see https://code.google.com/p/googletest/wiki/FAQ for the reasons.

The install-gmock.sh helper script will download and build gmock & gtest in the local directory.

Once gmock has been built, run:

autoreconf -i
./configure
make
make check

Dev Notes

A bulk-in transfer with a full 512 bytes of DMX data takes < 1ms on my mac laptop. Given this, I felt that a simple request / response model with a double buffer would suffice.

For DMX / RDM messages, the response message is sent when the transceiver completes the transaction, so the host received positive acknowledgement.

Releases

No releases published

Packages

No packages published

Languages

  • C 64.9%
  • C++ 31.1%
  • Makefile 2.5%
  • Other 1.5%