Coder Social home page Coder Social logo

ppmadapter's Introduction

PPM Adapter

This is a userspace application that reads the PPM audio stream produced by many RC controllers, and produces a virtual joystick using the uinput system.

Installation

This application requires two libraries, pyaudio and python-evdev. They are declared in the setup.cfg file, so will be installed if you pip install, but you can also install them using the system package manager. On Ubuntu (15.10):

sudo apt-get install python-pyaudio python-evdev

Notes

Ignore any input like the following, it is a consequence of using the Port Audio library from what I can tell.:

ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started

I have only tested this with my Turnigy 9XR Pro using the JR training port, and a cheap USB audio card that got bundled with a heli sim. It has a sample rate of 48000Hz, and USB ID of 0c76:1607 JMTek, LLC. audio controller.

The only simulator that I've tried this with is FPV Freerunner. Sometimes I need to stop and start PPMAdapter to get the full range on the channels, but once it starts working it seems to keep working.

Usage

You may have to give your user access to the /dev/uinput device. This is beyond the scope of this document, but there are options using udev rules, or just chmod.

You can use the built in microphone port, or the USB one provided with some (cheap?) adapters. To see a list of candidate input devices type:

python -m ppmadapter inputs

You will get a list like this:

HDA ATI SB: VT2020 Analog (hw:0,0)
HDA ATI SB: VT2020 Digital (hw:0,1)
HDA ATI SB: VT2020 Alt Analog (hw:0,2)
HDA NVidia: HDMI 0 (hw:1,3)
HDA NVidia: HDMI 0 (hw:1,7)
HDA NVidia: HDMI 0 (hw:1,8)
HDA NVidia: HDMI 0 (hw:1,9)
USB Headphone Set: Audio (hw:2,0)
sysdefault
front
surround21
surround40
surround41
surround50
surround51
surround71
iec958
spdif
pulse
dmix
default

Then, to start the application with a specific card:

python -m ppmadapter -i hw:2 run

A partial match will be done on the name to find the right adapter. At this point if you run dmesg you should see something like the following, indicating that the device has been created.:

input: ppmadapter as /devices/virtual/input/input62

Controller setup

I use a Turnigy 9XR PRO running OpenTX. I've got a model setup to use PPM 1-4 channels using 22.5ms and 350us spacing, with - polarity. When you plug your controller in you should see the words Got sync written.

License

GPL v3

ppmadapter's People

Contributors

nigelsim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ppmadapter's Issues

is this still working?

depending on the device I choose I get:

  1. IOError: [Errno -9998] Invalid number of channels

or

  1. IOError: [Errno 22] Invalid argument

Voltage divider to adjust levels

Hi there!
Nice project, was thinking about writing this code myself, but as I found your project I don't have to. Meanwhile I anyway solved with a hardware based device as seen on instructable, thus I don't need it currently. Still ... I think you add a note of caution to your readme instructions as you don't want to make people connect a 5...10V PPM signal to their built-in soundcards, right? (since that might seriously damage them, of course)

ppmadapter issue on 16.04

Cannot get this working on Ubuntu 16.04. Below is the output demonstrating the problem.

-Bob

blabj@thinkbuntu:~/ppmadapter$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

blabj@thinkbuntu:~/ppmadapter$ uname -a
Linux thinkbuntu 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

blabj@thinkbuntu:~/ppmadapter$ ls -l /dev/uinput
crw-rw---- 1 root adm 10, 223 Apr 22 07:34 /dev/uinput

blabj@thinkbuntu:~/ppmadapter$ groups
blabj adm dialout cdrom plugdev lpadmin admin sambashare vboxusers

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter inputs
Input audio devices
-------------------
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
HDA Intel: ALC269 Analog (hw:0,0)
HDA Intel: HDMI 0 (hw:0,3)
sysdefault
front
surround40
surround51
surround71
hdmi
pulse
dmix
default
/dev/dsp

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i hw:0,0 run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: HDA Intel: ALC269 Analog (hw:0,0)
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 205, in main
    with PPMDecoder(rate) as ppm:
  File "ppmadapter/__init__.py", line 75, in __init__
    ecodes.EV_KEY: {288: 'BTN_JOYSTICK'}
  File "/home/blabj/.local/lib/python2.7/site-packages/evdev/uinput.py", line 136, in __init__
    _uinput.create(self.fd, name, vendor, product, version, bustype, absinfo)
IOError: [Errno 22] Invalid argument

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i hw:0,3 run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: HDA Intel: HDMI 0 (hw:0,3)
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 202, in main
    input_device_index=in_ix)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i hw:0 run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: HDA Intel: HDMI 0 (hw:0,3)
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 202, in main
    input_device_index=in_ix)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i sysdefault run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: sysdefault
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 205, in main
    with PPMDecoder(rate) as ppm:
  File "ppmadapter/__init__.py", line 75, in __init__
    ecodes.EV_KEY: {288: 'BTN_JOYSTICK'}
  File "/home/blabj/.local/lib/python2.7/site-packages/evdev/uinput.py", line 136, in __init__
    _uinput.create(self.fd, name, vendor, product, version, bustype, absinfo)
IOError: [Errno 22] Invalid argument

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i front run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: front
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 202, in main
    input_device_index=in_ix)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i surround40 run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: surround40
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 202, in main
    input_device_index=in_ix)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i surround51 run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: surround51
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 202, in main
    input_device_index=in_ix)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i surround71 run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: surround71
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 202, in main
    input_device_index=in_ix)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i hdmi run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: hdmi
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 202, in main
    input_device_index=in_ix)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i pulse run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: pulse
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 205, in main
    with PPMDecoder(rate) as ppm:
  File "ppmadapter/__init__.py", line 75, in __init__
    ecodes.EV_KEY: {288: 'BTN_JOYSTICK'}
  File "/home/blabj/.local/lib/python2.7/site-packages/evdev/uinput.py", line 136, in __init__
    _uinput.create(self.fd, name, vendor, product, version, bustype, absinfo)
IOError: [Errno 22] Invalid argument

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i dmix run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: dmix
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 202, in main
    input_device_index=in_ix)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i default run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: default
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 205, in main
    with PPMDecoder(rate) as ppm:
  File "ppmadapter/__init__.py", line 75, in __init__
    ecodes.EV_KEY: {288: 'BTN_JOYSTICK'}
  File "/home/blabj/.local/lib/python2.7/site-packages/evdev/uinput.py", line 136, in __init__
    _uinput.create(self.fd, name, vendor, product, version, bustype, absinfo)
IOError: [Errno 22] Invalid argument

blabj@thinkbuntu:~/ppmadapter$ python -m ppmadapter -i /dev/dsp run
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Using input: /dev/dsp
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/blabj/ppmadapter/ppmadapter/__main__.py", line 5, in <module>
    sys.exit(ppmadapter.main())
  File "ppmadapter/__init__.py", line 205, in main
    with PPMDecoder(rate) as ppm:
  File "ppmadapter/__init__.py", line 75, in __init__
    ecodes.EV_KEY: {288: 'BTN_JOYSTICK'}
  File "/home/blabj/.local/lib/python2.7/site-packages/evdev/uinput.py", line 136, in __init__
    _uinput.create(self.fd, name, vendor, product, version, bustype, absinfo)
IOError: [Errno 22] Invalid argument

blabj@thinkbuntu:~/ppmadapter$ ls -l /dev/dsp
crw-rw-rw- 1 root root 14, 3 Apr 22 07:34 /dev/dsp

python3 support

please provide support for python 3.

  • need to fix print in init.py
  • following error needs to be adressed as well:

xxxxxxx:~/workspace_local/ppmadapter [master]> _ python -m ppmadapter -i hw:0 run
connect(2) call to /dev/shm/jack-0/default/jack_0 failed (err=No such file or directory)
attempt to connect to server failed
Using input: HDA Intel PCH: ALC887-VD Alt Analog (hw:0,2)
Traceback (most recent call last):
File "/usr/lib/python3.5/runpy.py", line 170, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/trunk/workspace/ppmadapter/ppmadapter/main.py", line 5, in
sys.exit(ppmadapter.main())
File "/trunk/workspace/ppmadapter/ppmadapter/init.py", line 205, in main
with PPMDecoder(rate) as ppm:
File "/trunk/workspace/ppmadapter/ppmadapter/init.py", line 75, in init
ecodes.EV_KEY: {288: 'BTN_JOYSTICK'}
File "/usr/lib/python3.5/site-packages/evdev/uinput.py", line 107, in init
_uinput.create(self.fd, name, vendor, product, version, bustype, absinfo)
SystemError: Objects/longobject.c:403: bad argument to internal function

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.