Skip to content

SilentResonance/Arduino-PPM-Generator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arduino-PPM-Generator

All code presented here is WORK IN PROGRESS!

Prelude

  • This projekt was forked from https://github.com/kolod/Arduino-PPM-Generator.
  • Due to a bug, QTSerialbus is not working on Windows or even Ubuntu Mate 18.04 in Virtualbox 6.3.0 you can find the bug report here. Should be fixed with Qt 5.13.0 RC1. Works with my local Qt 5.13.0 on Windows. Let me know, if it works in Linux too ;)
  • Using a test message (0x01 0x03 0x00 0x00 0x00 0x01 0x8a 0x0a) with the QtSerialport blockingmaster example, created a response using the Arduino example "hello_modbusino" from the Simple-Modbus-Slave library on Arduino Uno R3 SMD. Note: make shure both tools use 115200 Baud speed setting - this is not default for the Qt example... ##Project goals
  • Test GUI to create PXX, S.Bus and/or LANC output to control camera equipment like Blackmagic Micro Cinema Camera (S.Bus + LANC) or Video Assist 4k (LANC).
  • Controlling FrSky XJT module with PXX to create S.Bus output with FrSky XM Plus receiver for controlling Blackmagic Micro Cinema Camera (BMMCC).
  • Wireless LANC still no final idea (maybe S.Bus Ch 17 and 18 as Auto Exposure trigger which only seems to be accessable via LANC in BMMCC)

Prerequisites

  • Arduino IDE (> 1.8.5)
  • Qt 5.13.0 & Charts module
  • Simple-Modbus-Slave library

Protocols

S.Bus

  • Code from Pawel S. is used.
  • An inverter is needed between Arduino TX pin to S.Bus input

PXX

Branches

  • master

  • sbus_test

    • Working with direct Arduino Mega → inverter → BMMCC extension port S.Bus (all at 5V)
    • Adapted GUI with limited (non-percent) value range according to Blackmagic Micro Studio Camera Manual chapter "Remote Settings" page 26

      ⚠️ The mentioned value range 44 to 212 needs to be multiplyed by 8 in order to fit 11 Bit precision of S.Bus. They seem to have mapped to 8 Bit precision here...

    • ☑️ Needs GUI/code cleanup
    • ☑️ Added JSON files for camera and lenses
    • ☑️ Added JSON reader and configuration classes
    • 🔲 Needs GUI controller class and output handling class
  • pxx_test

    • UNTESTED
    • Adapted GUI with raw output values and PXX output
  • camera_sbus (not yet created)

    • Based on sbus_test branch
    • 🔲 Add camera controls
    • 🔲 Create XML lens parameter database in order to map raw values to aperture/zoom ranges. Sadly lensfun doesn't seem to have complete aperture lists for every lens. Any other lens library out there worth looking into?

TODOs

  • ☑️ Test serial communication on Windows with QtSerialport blockingmaster
  • 🔲 Rework Qt GUI to use QtSerialport instead of QtSerialbus
  • 🔲 Add customizable controls to match
  • 🔲 Extend Arduino sketch to be able to output PXX, S.Bus or LANC

Installation Linux

  1. Used Qt online installer for 64-bit
  2. Install some packages necessary for builing (Ubuntu Mate 18.04)
sudo apt-get install build-essential clang libglu1-mesa-dev

Tested environments

Software

  • Qt 5.13.0 on Windows 10 (working with newer SimpleModbusSlave library)
  • Arduino IDE 1.8.9
  • Qt 5.13.0 on Ubuntu Mate 18.04 on Virtualbox (not tested, see Prelude)

Hardware

  • Arduino Mega 2560
  • S.Bus might require second hardware serial, so Arduino Mega 2560 was used here
  • FrSky XJT sender module
  • FrSky XM Plus receiver module

Appendix (Text from original repository)

Sketch for Arduino Nano allows you to generate a PPM signal. It uses hardware sixteen bit timer. The pulse duration is adjusted with an accuracy of 0.0625 microseconds.

gui screenshot

Sorry, but comments in the code in Russian.

Test Markdown Code

[ ] Testbox

SIGNAL_ACTIVE_LOW

SIGNAL_ACTIVE_LOW

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.2%
  • QMake 2.8%