Control the lights of Alienware computers under GNU/Linux systems.

Overview

Before requesting support please consider that this software is not actively developed. I created it in 2014 for managing my Alienware M14X-R1 (where it fully works) and even if I want to help the other users of the GNU/Linux community, I don't have either the time or the hardware to do it.

Also since 2019 many users with recent alienware computers are facing issues, probably because DELL has changed the USB protocol and it is different from the old computers. Such computers are not yet supported and some interesting information and code can be found in the open issues.

Best regards,
rsm~



Index

Software Features

AKBL is a software to control the lights of Alienware computers (The keyboard, the logo, the speakers, etc..). It includes a Graphical Interphase, a System Try Indicator, Default Commands, and Python Bindings.

Graphical Interface

GUI

The GUI is designed to be easy and comfortable to use, it will allow you to easily create, delete, and modify profiles.

System Tray Indicator

System tray indicator

It allows starting the GUI, turning the lights On/Off, and choosing profiles. By default it is not enabled, but it can be added to the start session of a user with the command akbl --start-indicator.

Default commands

Usage:

    akbl <option>

 Options:

    --change                          Change the computer lights on/off.
    --on                              Turn on the computer lights.
    --off                             Turn off the computer lights.
    --set-profile <profile_name>      Turn on the selected profile.
   
    --model-chooser                   Start the model chooser.   
   
    --start-indicator                 Start the indicator.
   
    --start-daemon                    Start the daemon.
    --daemon-is-on                    Return weather the daemon is running or not.
   
    --block-testing                   Display the block testing window.  
   
    -h, --help                        Display this dialog.
    -v, --version                     Display the software version. 
    -l, --license                     Display the software license.

 *If no option is introduced the graphical interface is launched.

The program comes with some default commands for those who doesn't know about programming. These commands can be easily added to hotkeys.

Python Bindings

import time, random
from AlienwareKBL import AlienwareKBL
   
akbl=AlienwareKBL()
r = lambda: random.randint(0,255)
 
while True:
 
    # Generate a random hex color
    random_hex_color='#%02X%02X%02X' % (r(),r(),r())   
 
    # Set the color in mode fixed
    akbl.set_colors('fixed', 100, random_hex_color)
 
    # Wait 2 seconds
    time.sleep(2)     

The Python bindings allow to modify the computer lights by using other programs signals, for example when receiving an email, when monitoring things like the weather or the CPU temperature. You can read more about this in the Bindings section.

How to Install

  1. Download the stable branch.

  2. Install the dependencies:

    • Debian based distributions: apt-get install systemd libgtk-3-0 libgtk-3-dev gir1.2-appindicator3 python3 python3-gi python3-cairo python3-usb python3-serpent python3-pyro4.

    • ArchLinux: pacman -Suy systemd gtk3 libappindicator-gtk3 python python-gobject python-cairo python-pyusb python-serpent python-pyro

    *Also gir1.2-appindicator3-0.1 is necessary for the system tray indicator, but seems that the package is deprecated on recent releases. The code needs to be updated to remove this dependency.

  3. Execute the setup file.

Note: If you wonder why there are no installation packages, you can refer to this question.

F.A.Q.

If my computer is not supported, what can I do?

Check if there's a bug concerning your computer model on GitHub, and if it don't exists create one:

  1. Set the title of the bug as: "Add support to (computer model)"
  2. Fill the general information of the bug (GNU/Linux distribution, python version etc)..
  3. Add the USB data of your computer:
    3.1 Open a terminal and execute the lsusb command:
  [rsm@m14xr1 ~]$ lsusb
  Bus 001 Device 004: ID 187c:0521 Alienware Corporation
  Bus 001 Device 003: ID 413c:8187 Dell Computer Corp. DW375 Bluetooth Module
  Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
  Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
  Bus 002 Device 002: ID 25a7:fa23 
  Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

3.2 Find the line with the Alienware device and get the bus and device numbers:

  Bus 001 Device 004: ID 187c:0521 Alienware Corporation

3.3 Execute the lsusb -D /dev/bus/usb/<bus>/<device> command:

        [rsm@m14xr1 ~]$ lsusb -D /dev/bus/usb/001/004
        Device: ID 187c:0521 Alienware Corporation
        Couldn't open device, some information will be missing
        Device Descriptor:
          bLength                18
          bDescriptorType         1
          bcdUSB               1.10
          bDeviceClass            0
          bDeviceSubClass         0
          bDeviceProtocol         0
          bMaxPacketSize0        64
          idVendor           0x187c Alienware Corporation
        [etc...]

What will happen next?

  1. I'll take your Computer ID and Vendor ID and I'll create a configuration file into /usr/share/AKBL/computers/.
  2. I'll commit the changes and I'll request you to download it, install it and test it.
  3. I'll wait to have your feed back (everything works, there are some problems, etc..). Please be specific! and give me as much details as possible!

If after all that your computer is recognized and you have minor problems (Ex: left and right keyboard), I'll commit the fixes.

If some zones are not recognized, I'll ask you to launch the block testing window to find the appropriate hex values. Once the blocks found, I'll add them to the configuration file, and I'll commit the changes to the code.

How to use the block testing window?

  1. Execute as root akbl --block-testing.
  2. A window will appear and normally the ID Vendor and ID Product will be already filled. If not, akbl may not support your computer.
  3. Click, the Connect button, and the block testing block should be ready to be used.

The block testing will help you to find the hex id's of your keyboard by iterating one by one the different possible hex values. Normally, the only thing you need to do, is to change the Block Number combobox, and click the Test button.

When iterating over the block numbers, everything will be logged. Once that you have found an hex color of a zone, you can directly write the zone name. Here is an example:

## Text File ##

[Device found]: Vendor ID: 6268     Product ID: 1313


# This test turned on my left speaker
[Command]: Lights off
[TEST]: block: 32     hex: 0x20     mode:blink     speed:1     color1:#00ff00     color2: #00ff00


# This test turned on the akbl logo   
[Command]: Lights off
[TEST]: block: 256     hex: 0x100     mode:blink     speed:1     color1:#00ff00     color2: #00ff00

After making changes to a theme the changes are not applied

For the moment the themes need to be saved before applying them. Any unsaved change will not be recognized by the daemon.

What's the function of the tempo button / clock icon / right-top corner button?

That button manages the speed of the theme in the following cases:

  • When the section of a theme (keyboard-left, keyboard-right, etc..) has multiple zones.
  • When some zone has the morph (gradient) mode.
  • When some zone has the blink mode.

Why there are no distribution packages and the installation is so complex?

I've been asked multiple times about my installation system. Why there are no distribution packages, etc..? Here is one good part of the answer:

  • Why not use setuptools:

    • It does not feed some needs like installing systemd files.
    • This module should always be avoided because all the software of a distribution shall be managed by the package manager.
    • This feature may be interesting for python software that is multi-operative system, which is not the case for AKBL.
  • Why not to let distributions do their thing?

    • Normally the GNU/Linux software is always released with installation batchs, and then, the maintainers of each Distribution create a custom package and include it into their repositories. If you a maintainer you can feel free to do that.
    • In the old times (before 2016) I used to create Debian packages and I even had my own repository, but I do not have the time to maintain it anymore. It is too much time consuming to release packages for each distribution (Debian, Noobuntu, ArchLinux..).
    • Create a package means that I made a release, I don't release AKBL.
  • Why not create a binary?

    • Even if you can compile python code, I don't think that you will be able to include all the dependencies which some may be written in other languages.
    • There is no much sense in compiling python software that is free code.
  • Why not using custom paths?

    • The software files are kinda "complex". There are:

      • Python module files
      • Common resource files
      • Binary files
      • User files
      • Systemd files
      • Temp files
      • Communication files

      and every single file has a special location defined by GNU/Linux conventions. This should not be customized by an user. If you really want to do this, you can modify the setup script, and the paths python file.

  • Why using a batch:

    • Because it is the common way to install GNU/Linux software that do not comes from any repository.
    • Because it allows to do anything that it is necessary to do (Move files, start services, etc etc..).
    • Because it works for any GNU/Linux distribution. I do not need to pass hours checking the dependencies of each distribution and making tests.
    • Because it does not requires to release the code, it can be directly taken from GIT, which allows much more flexibility.

taken from this question.

Python Bindings

API

class AlienwareKBL():
       
    def reload_address(self):
        """
            It tries to make a connection with the Daemon
        and it returns True or False.
        """
   
    def ping(self):
        """
            It checks if the Daemon is connected
            and it returns True or False.
        """
   
    def get_address(self):
        """
            It returns the current URI of the Daemon.
        """
   
    def get_profile_names(self):
        """
            It returns a list of the existing profile names.
        """
       
    def set_profile(self, profile):
        """
            Set a profile from the existing profiles.
           
            + 'profile' is the profile name.
        """
       
    def switch_lights(self):
           """
            Toggle on/off the lights of the keyboard.
           """
   
    def set_lights(self, state):
        """
            Turn the lights on or off.
           
            + 'state' can be a boolean or a string
        """
       
    def set_colors(self, mode, speed, colors1, colors2=None):
        """
            Change the colors and the mode of the keyboard.
           
                + The available modes are: 'fixed', 'morph' and 'blink',
                  'fixed' and 'blink' only take 'colors1'.
               
            + Speed must be an integer. 1 =< speed =< 256
           
            + colors1 and colors2 can be a single hex_color or a list
          of hex_colors. If both arguments are used, they must
          have the same number of items.
        """
 

Testing all the commands

This is the example that I use to test the bindings. It should be clear enough to explain all the commands !

#!/usr/bin/python3
#
 
import time
from AKBL.Bindings import Bindings
 
AKBLConnection=Bindings()
 
lights_test=True
profiles_test=True
colors_test=True
speed_test=True
colors_multiple_test=True
 
 
if not AKBLConnection.ping():
    print("The connection with the daemon is off")
    exit()
 
 
 """
     Each command is called as:
    
         print( <command_name>, <command> )
        
     To check if the commands succeed. You don't
     really need to do this in your code!
 """
 
 if lights_test:
     print('lights off', AKBLConnection.set_lights(False))
     time.sleep(2)
     print('lights on', AKBLConnection.set_lights(True))
     time.sleep(2)
     print('switch lights', AKBLConnection.switch_lights())
 
 
 if profiles_test:
     for profile_name in AKBLConnection.get_profile_names():
         print('set profile:', profile_name, AKBLConnection.set_profile(profile_name))
         time.sleep(5)
 
 
 color1='#F7F200'
 color2='#0018FF'
 
 if colors_test:
     print('set_colors blink', AKBLConnection.set_colors('blink', 100, color2))
     time.sleep(5)
     print('set_colors fixed', AKBLConnection.set_colors('fixed', 100, color1))
     time.sleep(5)
     print('set_colors morph', AKBLConnection.set_colors('morph', 100, color1, color2))
 
     
 if speed_test:
     print('set_colors blink', AKBLConnection.set_colors('blink', 1, color2))
     time.sleep(5)
     print('set_colors blink', AKBLConnection.set_colors('blink', 100, color2))
     time.sleep(5)
     print('set_colors blink', AKBLConnection.set_colors('blink', 256, color2))
     time.sleep(5)
 
 
 if colors_multiple_test:
     colors1='#0600FF'
     colors2='#FF00E5'
     
     print('set_colors multiple blink', AKBLConnection.set_colors('blink', 100, colors2))
     time.sleep(5)
     print('set_colors multiple morph', AKBLConnection.set_colors('morph', 100, colors1, colors2))
     time.sleep(5)
     print('set_colors multiple fixed', AKBLConnection.set_colors('fixed', 100, colors1))

Changing the keyboard colors by checking the CPU Temperature

The following script will change the keyboard colors by checking the CPU Temperature. Before using the script, you should check in a terminal if you have the command sensors.

#!/usr/bin/python3
#
 
import os
import time
from AKBL.Bindings import Bindings
 
def get_max_temp():
    """
        Get the maximum temperature of the CPU by
        using the bash commands "sensors"
    """
    output=os.popen('''sensors''')
    lines= output.readlines()
   
    max_temperature=0
   
    for line in lines:
        if '°C' in line:
            temp = line.split('+')[1]
            temp = temp.split('°')[0]
            temp = float(temp)
           
            if temp > max_temperature:
                max_temperature=temp
           
    return max_temperature     
 
 
if __name__ == '__main__':
 
    akbl=Bindings()
 
    if not akbl.ping():
        print("The akbl daemon is off.")
    else:
        while True:
           
            max_temperature=get_max_temp()
            print("The maximum temperature is", max_temperature)
           
            if max_temperature <= 0:
                akbl.set_colors('fixed', 100, '#000000') # black
            elif max_temperature <= 20:
                akbl.set_colors('fixed', 100, '#02EDFF') # cyan
            elif max_temperature <= 55:
                akbl.set_colors('fixed', 100, '#0000FF') # blue
            elif max_temperature <= 70:
                akbl.set_colors('fixed', 100, '#FFE900') # yellow
            elif max_temperature <= 85:
                akbl.set_colors('fixed', 100, '#FF7800') # orange
            elif max_temperature <= 95:
                akbl.set_colors('fixed', 100, '#FF0014') # red
            else:
                akbl.set_colors('blink', 100, '#FF0014') # red
 
            time.sleep(5) # seconds

Note that if you want to test the code, you can just create a fake temperature:

else:
    max_temperature=0
    while True:
        #max_temperature=get_max_temp()
                .
                .
                .
        max_temperature+=10
        time.sleep(5)

Changing the keyboard colors by checking the weather

I was curious to find if there was command line weather program, and it seems that inxi works fine :)

#!/usr/bin/python3
#
 
import os
import time
from AKBL.Bindings import Bindings
 
def get_max_temp():
    """
        Get weather temperature and make a linear
        scale: 40°C <==> 100
       
        (The linear scale is only to adapt this function
         to the previous script)
    """
   
    # get the temperature
    output=os.popen('''inxi -w''')
    line=output.read()     
    try:
        temp_str=line.split(' C')[0].split('(')[1]
        max_temperature=float(temp_str)
    except Exception as e:
        print(e)
        max_temperature=0
       
    # adapt it
    max_temperature=(max_temperature*10)/4
 
    return max_temperature   
 
 
if __name__ == '__main__':
 
    akbl=Bindings()
 
    if not akbl.ping():
        print("The akbl daemon is off.")
    else:
        while True:
           
            max_temperature=get_max_temp()
            print("The maximum temperature is", max_temperature)
           
            if max_temperature <= 0:
                akbl.set_colors('fixed', 100, '#000000') # black
            elif max_temperature <= 20:
                akbl.set_colors('fixed', 100, '#02EDFF') # cyan
            elif max_temperature <= 55:
                akbl.set_colors('fixed', 100, '#0000FF') # blue
            elif max_temperature <= 70:
                akbl.set_colors('fixed', 100, '#FFE900') # yellow
            elif max_temperature <= 85:
                akbl.set_colors('fixed', 100, '#FF7800') # orange
            elif max_temperature <= 95:
                akbl.set_colors('fixed', 100, '#FF0014') # red
            else:
                akbl.set_colors('blink', 100, '#FF0014') # red
 
            time.sleep(5) # seconds   
           

Development Documentation

Global Communication

general diagram

[...] Some more diagrams and documentation can be found here

AKBL History

History

AKBL stands for Alienware KeyBoard Lights (despite the fact that it controlls much more than the keyboard). And I created my first version in 2014 by hacking PyAlienFX.

It was a real hack from PyAlienFX because at that time I did not know about programming, and I only wanted to code a command for turning on and off the keyboard lights. So I mostly did some dirty modifications, and to avoid people blaming PyAlienFX for my code, I released it with a new name.

Then with the time, I realized that PyAlienFX was kinda dead and I was having fun learning python with this software. So I started fixing bugs, removing private content from the interface and creating new features. The major features that I have added are:

  • 2014: The Block Testing window. This is for debugging purposes.

  • 2015: The Daemon which had as main goal to allow the users using the software without being root.

    • 2015: The System Try Indicator (thanks to the Daemon).
    • 2015: The Python Bindings (thanks to the Daemon).
  • XXXX: Improved the software architecture for maintenance purposes. And I also added some more friendly configuration files like the current INI files.

So mostly I've been coding AKBL since 2014, doing modifications from time to time, and saddly despite the fact that alot of users contact me for bugs and new features, no one else have ever contributed directly to the code. The problem about this, is that I'm the only developer, and my free time for the project is very limited.

I may continue developing AKBL until my M14XR1 dies, but then I don't think I´ll buy another Alienware Laptop, I'll get some tiny and low performance computer.

Extra

With the time I have removed some content. In 2015-2016 AKBL was purely hosted on my personal website and I had some features like the Debian Repository, the Bug report pages, the sharing profiles pages, and the custom website.

Then, I realized that all those features was taking a lot of work and I spent more time doing extra stuff than actually coding AKBL, so I decided to remove most of the features and add the project to GitHub.

Some years after, I got back online with my personal website and I re-included the AKBL web page and a custom chat, but again, in 2020 I started developing other projects and I decided to close my personal website.

Even if the features was really nice, I do not have the time to maintain them. I'd better spend the few time that I have in the software it self.

About & Credits

This software is the work of libre software hackers of the GNU/Linux community. It do not depends of any corporation and its code is licensed GPL3.

AKBL

  • Rafael Senties Martinelli

AKBL is a software based on PyAlienFX. I mostly created new addons, improved the software architecture, removed all the privative content, and fixed some bugs. Now days AKBL is like 98% different from pyAlienFX but the code/concept that allows communicating with the hardware stills the same.

PyALienFX

  • Ledjfou125
  • LightHash
  • Corp
  • Niai

As far as I know pyAlienFX is not maintained anymore. They made work the project for some years and at the start they got inspired from AlienFX lite.

AlienFX Lite

  • Wattos

I have no information about AlienFX Lite, but in any case Wattos was the first hacker to understand the USB communication and to make some code to work with. Definitely the most important work since DELL engineers have never help us.

Comments
  • Add support to the Alienware 13 R3 computer

    Add support to the Alienware 13 R3 computer

    Device: ID 187c:0529 Alienware Corporation 
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               0.02
      bDeviceClass            0 (Defined at Interface level)
      bDeviceSubClass         0 
      bDeviceProtocol         0 
      bMaxPacketSize0        64
      idVendor           0x187c Alienware Corporation
      idProduct          0x0529 
      bcdDevice            0.00
      iManufacturer           1 Alienware
      iProduct                2 AW13
      iSerial                 3 03.00
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           41
        bNumInterfaces          1
        bConfigurationValue     1
        iConfiguration          0 
        bmAttributes         0xe0
          Self Powered
          Remote Wakeup
        MaxPower                0mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           1
          bInterfaceClass         3 Human Interface Device
          bInterfaceSubClass      0 No Subclass
          bInterfaceProtocol      0 None
          iInterface              0 
            HID Device Descriptor:
              bLength                 9
              bDescriptorType        33
              bcdHID               1.01
              bCountryCode            0 Not supported
              bNumDescriptors         1
              bDescriptorType        34 Report
              wDescriptorLength      56
              Report Descriptor: (length is 56)
                Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
                                (null)
                Item(Local ): Usage, data= [ 0x01 ] 1
                                (null)
                Item(Main  ): Collection, data= [ 0x01 ] 1
                                Application
                Item(Global): Usage Page, data= [ 0x0c ] 12
                                Consumer
                Item(Local ): Usage, data= [ 0x06 ] 6
                                (null)
                Item(Main  ): Collection, data= [ 0x02 ] 2
                                Logical
                Item(Local ): Usage Minimum, data= [ 0x00 ] 0
                                Unassigned
                Item(Local ): Usage Maximum, data= [ 0x66 ] 102
                                Still
                Item(Global): Logical Minimum, data= [ 0x00 ] 0
                Item(Global): Logical Maximum, data= [ 0x01 ] 1
                Item(Global): Report ID, data= [ 0x01 ] 1
                Item(Global): Report Size, data= [ 0x08 ] 8
                Item(Global): Report Count, data= [ 0x0b ] 11
                Item(Main  ): Input, data= [ 0x02 ] 2
                                Data Variable Absolute No_Wrap Linear
                                Preferred_State No_Null_Position Non_Volatile Bitfield
                Item(Main  ): End Collection, data=none
                Item(Global): Usage Page, data= [ 0x14 ] 20
                                Alphanumeric Display
                Item(Local ): Usage, data= [ 0x2b ] 43
                                Character Report
                Item(Main  ): Collection, data= [ 0x02 ] 2
                                Logical
                Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                                Alphanumeric Display
                Item(Local ): Usage Maximum, data= [ 0x66 ] 102
                                (null)
                Item(Global): Logical Minimum, data= [ 0x00 ] 0
                Item(Global): Logical Maximum, data= [ 0x01 ] 1
                Item(Global): Report ID, data= [ 0x02 ] 2
                Item(Global): Report Size, data= [ 0x08 ] 8
                Item(Global): Report Count, data= [ 0x0b ] 11
                Item(Local ): Usage, data= [ 0x2c ] 44
                                Display Data
                Item(Main  ): Output, data= [ 0x02 ] 2
                                Data Variable Absolute No_Wrap Linear
                                Preferred_State No_Null_Position Non_Volatile Bitfield
                Item(Main  ): End Collection, data=none
                Item(Main  ): End Collection, data=none
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x000a  1x 10 bytes
            bInterval              10
    Device Status:     0x0000
      (Bus Powered)
    
    enhancement 
    opened by BuckarewBanzai 26
  • Unable to start the GUI due to Pyro

    Unable to start the GUI due to Pyro

    System information

    bassim@me-inside:~$ sudo  setsid alienware-kbl --start-daemon
       bNumInterfaces       :    0x1
       bConfigurationValue  :    0x1
       iConfiguration       :    0x0 
       bmAttributes         :   0xe0 Self Powered, Remote Wakeup
       bMaxPower            :    0x0 (0 mA)
        INTERFACE 0: Human Interface Device ====================
         bLength            :    0x9 (9 bytes)
         bDescriptorType    :    0x4 Interface
         bInterfaceNumber   :    0x0
         bAlternateSetting  :    0x0
         bNumEndpoints      :    0x1
         bInterfaceClass    :    0x3 Human Interface Device
         bInterfaceSubClass :    0x0
         bInterfaceProtocol :    0x0
         iInterface         :    0x0 
          ENDPOINT 0x81: Interrupt IN ==========================
           bLength          :    0x7 (7 bytes)
           bDescriptorType  :    0x5 Endpoint
           bEndpointAddress :   0x81 IN
           bmAttributes     :    0x3 Interrupt
           wMaxPacketSize   :    0xa (10 bytes)
           bInterval        :    0xa
    
    
        can_light=True
        can_blink=True
        can_morph=True
        max_comands=15
    
    
        name=TX
        description=Tact-X
        hex_id=8192
        can_light=True
        can_blink=True
        can_morph=True
        max_comands=15
    
    
        name=TP
        description=Touchpad
        hex_id=1024
        can_light=True
        can_blink=True
        can_morph=True
        max_comands=15
    
    
    DEBUG from `/usr/share/AlienwareKBL/Configuration/Theme.py` on method `load`:
    path=`/root/.local/share/alienware-kbl/Default.cfg`
    
    
    area=RS
    
    
    mode=fixed
    left_color=#0000FF
    right_color=#0000FF
    
    ********************************************   
    area=TP                
    
    
    mode=fixed             
    left_color=#0000FF     
    right_color=#0000FF    
    
    ********************************************   
    area=TX                
    
    
    mode=fixed             
    left_color=#0000FF     
    right_color=#0000FF    
    
    
    + Distribution name: Ubuntu
    + Distribution version: Ubuntu 17.10
    + Python version: 3.6.6
    + Computer model: AW 15R3
    + Output of the command `alienware-kbl --daemon-is-on`: TRUE
    

    Bug description

    Dears, I'm unable to start the GUI after installing the packages. Also the pyro package can't be installed on the system and the below error is thrown each time I start Ubuntu

    selection_007

    selection_007

    bassim@me-inside:~$ pip3 install pyro
    Collecting pyro
      Using cached Pyro-3.16.tar.gz
        Complete output from command python setup.py egg_info:
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "/tmp/pip-build-6fyolzqa/pyro/setup.py", line 23
            exec code in constants
                    ^
        SyntaxError: Missing parentheses in call to 'exec'
        
        ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-6fyolzqa/pyro/
    bassim@me-inside:~$  `
    
    bug 
    opened by TheNetworker 17
  • Alienware 13 (r1)

    Alienware 13 (r1)

    Выставил белый цвет везде! (правый центр клавиатуры слабо подсвечен или вообще не подсвечен)

    начинаю тестировать и выбираю изменяющийся режим подсветки. Белый + красный

    Центр-право - (изменяющийся справа) изменяется зарядка на кнопке включения. Когда включаю мигающий слева - хаотичность из красного синего и белого, но когда меняю справа налево синего цвета незаметно.

    Head - при выборе крассного цвета полного или изменяющего (белый + крассный) - ничего не происходит. Logo - при выборе белого + крассного цвета - меняются (но самого красного насыщщеного цвета нет) Caps lock - на моем ноутбуке alienware 13 - hdd, bluetooth/(wlan), caps lock изменяют цвет одновременно по схеме microsoft. По вашей схеме capslock-bluetooth/(wlan) вместе! Hdd не меняется Hard Disk Drive - при выборе белого + крассного цвета все работатет как и Logo - без крассного насыщщенного Keyboard left centr - при выборе белого + крассного цвета все работатет как и Logo - без крассного насыщщенного Keyboard left - при выборе белого + крассного цвета все работатет как и Logo - без крассного насыщщенного Outer lid - при выборе белого + крассного цвета все работатет как и Logo - без крассного насыщщенного Keyboard right centr - (изменяющийся справа) изменяется зарядка на кнопке включения. Когда включаю мигающий слева - хаотичность из красного синего и белого, но когда меняю справа налево синего цвета незаметно. Keyboard ight - при выборе белого + крассного цвета все работатет как и Logo - без крассного насыщщенного

    Замеченные мною отклонения в калибровке цветов и управлении логтипом под дисплеем. Я выбрал белый цвет подсветки всех элементов. Элементы logo hdd capslock wlan head - имеют желтый оттенок. (возможно это имеет другой тип led в заводской конструкции, в официальной версии под microsoft - нет выбора белого цвета вовсе)

    Лого в виде надписи alienware которое находится под дисплеем буду назывть LOGO

    Дальше я начал искать HEAD, ведь я зменил все цвета изначально. Устанавливал белый+крассный, крассный+белый, крассный+крассный : ничего не менялось! Поставил на нем Черный! Возможно гдето чтото потухнет

    Ищу дальше и перехожу к Logo - выставляю крассный + белый - начинает изменяться цвет LOGO под дисплеем! (примерно так : белый + голубой + красный) выставляю крассный + крассный - Logo светится крассным цветом, стабильно! (но не насыщщено - ярко морковный)

    Преешел к outer lid - выставил зеленый + желтый - изменяется! К этому времени ноут полностью заряжен! И при отключении зарядного, кнопка включения в виде головы загорелась зеленым!, при подключении зарядного - кнопка мигает зеленым + желтым, как и наружный логотип на крышке экрана. Аккумулятор зарядился - head светится белым.

    Keyboard right centre выставил крассный + белый! На клавиатуре не изменилось ничего, но Head начал менять цвета (красный-белый-голубой и подмигивает желтым) изменил вариант: белый+крассный (меняет цвета нормально - не подмигивает желтым) но все же должен управлять правым центром, а не head. Выставил везде черный цвет. Все потухло.! Keyboard right centre выставил крассный + белый. Погулялся ползунком скорости изменения цветов. Когда на минимум - крассный, желтый мигает, голубой, белый. Когда на максимум, все очень плавно - но слишком много ненужных цветов от крассного до белого (хотя я допускаю конструктивную особенность невозможности переключения цветов от крассного к розовому и к белому.)

    Выставил все крассное - Head оставил черным. Но кнопка включения\выключения в виде головы светится крассным и подмигивает желтым.

    Вот такой хаос происходит. Новую стабильную версию не получилось запустить. Пришлось скачать старую, запустить старую, потом сверху установить новую. Но ничего стабильного для моего Alienware 13 не получилось.

    enhancement 
    opened by buzyn 14
  • Alienware 15 R3 Fixes

    Alienware 15 R3 Fixes

    Distribution name: Arch Linux Distribution version: 4.18.16-arch1-1-ARCH Python version: Python 3.7.1 akbl version: v2018.11.03 Computer model: Alienware 15 R3

    Application runs and can turn lights on and off and zones are correct, but colors are not, blue color in akbl displays green in leds.. white in akbl displays orange in leds, etc..

    bug 
    opened by StuckUpCreations 13
  • swapped zones on m14xr2

    swapped zones on m14xr2

    System information

    • Distribution name: ARCHLINUX
    • Distribution version:
    • Python version: Python 3.7.1
    • Computer model: m14xr2
    • Output of the command alienware-kbl --daemon-is-on:

    DEBUG from/usr/lib/python3.7/AKBL/Data/Theme/Theme.pyon methodload`: #############################################

    Alienware-KBL configuration theme

    #############################################

    name=gamming speed=1


    area=AH

    mode=fixed left_color=#ffffff right_color=#0000ff


    area=AL

    mode=fixed left_color=#40ff00 right_color=#0000ff


    area=LCK

    mode=fixed left_color=#ffffff right_color=#0000ff


    area=LK

    mode=fixed left_color=#ffffff right_color=#0000ff


    area=LS

    mode=fixed left_color=#ffffff right_color=#0000ff


    area=MB

    mode=fixed left_color=#ffffff right_color=#0000ff


    area=PB

    mode=fixed left_color=#ffffff right_color=#0000ff


    area=PBE

    mode=fixed left_color=#ff8000 right_color=#0000ff


    area=RCK

    mode=morph left_color=#00ffff right_color=#00ffff


    area=RK

    mode=fixed left_color=#00ffff right_color=#40ff00


    area=RS

    mode=fixed left_color=#ffffff right_color=#0000ff


    area=TP

    mode=fixed left_color=#ffffff right_color=#0000ff

    WARNING from /usr/lib/python3.7/AKBL/Daemon.py on method set_lights: samuel

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method write_constructor: packet=[ 2| 6| 0| 0| 0| 0| 0| 0| 0] legend=set_get_status

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method read_device: msg=array('B', [17, 0, 0, 0, 0, 0, 0, 0])

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method write_constructor: packet=[ 2| 6| 0| 0| 0| 0| 0| 0| 0] legend=set_get_status packet=[ 2| 7| 4| 0| 0| 0| 0| 0| 0] legend=reset, command=RESET_ALL_LIGHTS_ON

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method write_constructor: packet=[ 2| 6| 0| 0| 0| 0| 0| 0| 0] legend=set_get_status

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method read_device: msg=array('B', [16, 0, 0, 0, 0, 0, 0, 0])

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method write_constructor: packet=[ 2| 6| 0| 0| 0| 0| 0| 0| 0] legend=set_get_status

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method read_device: msg=array('B', [16, 0, 0, 0, 0, 0, 0, 0])

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method write_constructor: packet=[ 2| 6| 0| 0| 0| 0| 0| 0| 0] legend=set_get_status

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method read_device: msg=array('B', [16, 0, 0, 0, 0, 0, 0, 0])

    DEBUG from /usr/lib/python3.7/AKBL/Engine/Driver.py on method write_constructor: packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 14| 0| 1| 0| 0| 0| 0| 0] legend=set_speed, speed=1

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 1| 0| 0|128|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=128 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 2| 0| 1| 0| 79| 0| 0] legend=add_light_zone: left_color=#40ff00, hex_id=256 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 3| 0| 0| 2|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=2 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 4| 0| 0| 1|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=1 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 5| 0| 0| 32|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=32 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 6| 0| 28| 0|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=7168 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 7| 0| 32| 0|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=8192 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 8| 0| 63|220|248| 0| 0] legend=add_light_zone: left_color=#ff8000, hex_id=16348 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 1| 9| 0| 0| 4| 15|240|255] legend=add_morph_zone: left_color=#00ffff, right_color=#00ffff, hex_id=4 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 10| 0| 0| 8| 15|240| 0] legend=add_light_zone: left_color=#00ffff, hex_id=8 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 11| 0| 0| 64|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=64 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 3| 12| 0| 2| 0|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=512 packet=[ 2| 8| 1| 0| 0| 0| 0| 0| 0] legend=__save_block, block=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 9| 0| 0| 0| 0| 0| 0| 0] legend=__save_block packet=[ 2| 5| 0| 0| 0| 0| 0| 0| 0] legend=end_block_line

    packet=[ 2| 14| 0| 1| 0| 0| 0| 0| 0] legend=set_speed, speed=1

    packet=[ 2| 3| 1| 0| 0|128|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=128 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 2| 0| 1| 0| 79| 0| 0] legend=add_light_zone: left_color=#40ff00, hex_id=256 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 3| 0| 0| 2|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=2 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 4| 0| 0| 1|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=1 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 5| 0| 0| 32|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=32 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 6| 0| 28| 0|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=7168 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 7| 0| 32| 0|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=8192 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 8| 0| 63|220|248| 0| 0] legend=add_light_zone: left_color=#ff8000, hex_id=16348 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 1| 9| 0| 0| 4| 15|240|255] legend=add_morph_zone: left_color=#00ffff, right_color=#00ffff, hex_id=4 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 10| 0| 0| 8| 15|240| 0] legend=add_light_zone: left_color=#00ffff, hex_id=8 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 11| 0| 0| 64|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=64 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 3| 12| 0| 2| 0|255|240| 0] legend=add_light_zone: left_color=#ffffff, hex_id=512 packet=[ 2| 4| 0| 0| 0| 0| 0| 0| 0] legend=end_colors_line

    packet=[ 2| 5| 0| 0| 0| 0| 0| 0| 0] legend=end_block_line

    `

    Bug description

    some zones are like bad mapping for example the color of the power button eyes are apply to the alienware logo.

    other settings like keep media lights on are not working

    also there is a some problem with the right keyboard zone, if i set the color of the power button eyes, also apply a second color to the keyboard if you have red in the right keyboard zone and apply yellow to the powerbutton eyes... you get a orange right keyboard zone.

    bug 
    opened by samuaz 13
  • Add support to the M17X R2

    Add support to the M17X R2

    System information

    Bus 002 Device 004: ID 187c:0524 Alienware Corporation idVendor 0x187c Alienware Corporation Device: ID 187c:0524 Alienware Corporation

    • Distribution name: Kubuntu
    • Distribution version: 19
    • Python3 version: python3 --version python 3.7.3
    • akbl version: akbl -v 2019.05.26
    • Computer model: M17X R2
    • Daemon status: akbl --daemon-is-on False
    enhancement 
    opened by aliencolors 11
  • ModuleNotFoundError: No module named 'AKBL' on Alienware 15 Manjaro Linux(Arch Based)

    ModuleNotFoundError: No module named 'AKBL' on Alienware 15 Manjaro Linux(Arch Based)

    System information

    • Distribution name: Manjaro Linux
    • Distribution version: 17.1.12
    • Python version: 3.7.0
    • Computer model: Alienware 15
    • Output of the command alienware-kbl --daemon-is-on: alienware-kbl: command not found
    • Output of the command akbl --daemon-is-on:
    Traceback (most recent call last):
      File "/usr/share/AKBL/launch/default_arguments.py", line 22, in <module>
        from AKBL.Bindings import Bindings
    ModuleNotFoundError: No module named 'AKBL'
    

    Bug description

    This package used to work fine but recently I upgraded my system and also upgraded this package but when I try to run this, I get this error:

      File "/usr/share/AKBL/launch/gui.py", line 19, in <module>
        from AKBL.ADDONS.GUI.GUI import main
    ModuleNotFoundError: No module named 'AKBL'
    
    opened by v-octal 11
  • Problems under ubuntu & derivates

    Problems under ubuntu & derivates

    i recently switch from manjaro to kde-neon that is ubuntu based and i have this problem when i try to start with the indicator or setsid alienware-kbl --start-daemon:

    module 'Pyro4' has no attribute 'expose'

    thanks for your work!

    bug help wanted 
    opened by samuaz 11
  • interface 0 claimed by usbfs while 'python3' sets config #1

    interface 0 claimed by usbfs while 'python3' sets config #1

    System information

    • Distribution name: Ubuntu
    • Distribution version: 19.04
    • Python3 version: Python 3.7.3
    • akbl version: 2019.05.26
    • Computer model: Alienware 17 R5
    • Daemon status: True

    Bug description

    The daemon of akbl starts and seems to work, but when I issue any command from the GUI or the TUI, I get the following (infinite) lines on dmesg:

    [1205715.557252] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.558377] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.559109] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.560457] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.561230] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.562408] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.563346] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.564738] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.565656] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.566967] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.567701] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.568815] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.569777] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.570914] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.571591] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.572736] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.573610] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.574720] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.575589] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.576836] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.577660] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.578863] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    [1205715.579622] usb 1-4: usbfs: interface 0 claimed by usbfs while 'python3' sets config #1
    [1205715.580784] usb 1-4: usbfs: process 21883 (python3) did not claim interface 0 before use
    

    It never stops. The only way to stop it is to restart the daemon.

    bug help wanted 
    opened by fermuch 8
  • Alienware 13 R1 Fixes

    Alienware 13 R1 Fixes

    System information

    • Distribution name: Antegros
    • Distribution version: 5.1.15
    • Python3 version: python3 --3.7.3-2
    • akbl version: akbl-v2019.05.26
    • Computer model: Alienware 13 (r1)
    • Daemon status: akbl --daemon-is-on

    Bug description

    good day. recently replaced the battery and ssd drive on my alienware 13 (r1) installed windows10, program drivers, respectively, installed antegros + kde. after all the installations I decided, of course, to adjust the backlight, I was immediately upset by the blue color of the logo. The keyboard highlights normally with all colors. but the blue backlight is on the outer lid, alienware logo, shining at half the power. From this, when choosing a white color, the logo shines yellow. When choosing a blue color - the logo shines green. help please understand. Is this a controller problem, or can it be programmatically adjusted? Is it possible to somehow raise the voltage to blue in a software way?

    bug help wanted 
    opened by buzyn 6
  • Add support to Alienware 15 R1

    Add support to Alienware 15 R1

    System Information

    • Distribution name: Arch Linux
    • Distribution version: 5.0.11
    • Python3 version: 3.7.3
    • akbl version: 2019.01.13
    • Computer model: Alienware 15 Early 2015 (R1)
    • Daemon status: False

    Bug Description

    • Running command akbl gives a GTK dialog-box showing the error The GUI can not start because the daemon is off.
    • Running akbl --start-daemon gives the following error,
    ERROR from `/usr/lib/python3.7/AKBL/Engine/Controller.py` on method `__init__`:
    The computer is not supported.
    

    Log Dumps

    [tgl@thegeekylad ~]$ lsusb
    ...
    Bus 002 Device 002: ID 187c:0528 Alienware Corporation
    ...
    [tgl@thegeekylad ~]$ 
    
    [tgl@thegeekylad ~]$ sudo lsusb -D /dev/bus/usb/002/002
    Device: ID 187c:0528 Alienware Corporation 
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               0.02
      bDeviceClass            0 
      bDeviceSubClass         0 
      bDeviceProtocol         0 
      bMaxPacketSize0        64
      idVendor           0x187c Alienware Corporation
      idProduct          0x0528 
      bcdDevice            0.00
      iManufacturer           1 Alienware
      iProduct                2 AW1517
      iSerial                 3 16.0
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength       0x0029
        bNumInterfaces          1
        bConfigurationValue     1
        iConfiguration          0 
        bmAttributes         0xe0
          Self Powered
          Remote Wakeup
        MaxPower                0mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           1
          bInterfaceClass         3 Human Interface Device
          bInterfaceSubClass      0 
          bInterfaceProtocol      0 
          iInterface              0 
            HID Device Descriptor:
              bLength                 9
              bDescriptorType        33
              bcdHID               1.01
              bCountryCode            0 Not supported
              bNumDescriptors         1
              bDescriptorType        34 Report
              wDescriptorLength      56
              Report Descriptor: (length is 56)
                Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
                                (null)
                Item(Local ): Usage, data= [ 0x01 ] 1
                                (null)
                Item(Main  ): Collection, data= [ 0x01 ] 1
                                Application
                Item(Global): Usage Page, data= [ 0x0c ] 12
                                Consumer
                Item(Local ): Usage, data= [ 0x06 ] 6
                                (null)
                Item(Main  ): Collection, data= [ 0x02 ] 2
                                Logical
                Item(Local ): Usage Minimum, data= [ 0x00 ] 0
                                Unassigned
                Item(Local ): Usage Maximum, data= [ 0x66 ] 102
                                Still
                Item(Global): Logical Minimum, data= [ 0x00 ] 0
                Item(Global): Logical Maximum, data= [ 0x01 ] 1
                Item(Global): Report ID, data= [ 0x01 ] 1
                Item(Global): Report Size, data= [ 0x08 ] 8
                Item(Global): Report Count, data= [ 0x08 ] 8
                Item(Main  ): Input, data= [ 0x02 ] 2
                                Data Variable Absolute No_Wrap Linear
                                Preferred_State No_Null_Position Non_Volatile Bitfield
                Item(Main  ): End Collection, data=none
                Item(Global): Usage Page, data= [ 0x14 ] 20
                                Alphanumeric Display
                Item(Local ): Usage, data= [ 0x2b ] 43
                                Character Report
                Item(Main  ): Collection, data= [ 0x02 ] 2
                                Logical
                Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                                Alphanumeric Display
                Item(Local ): Usage Maximum, data= [ 0x66 ] 102
                                (null)
                Item(Global): Logical Minimum, data= [ 0x00 ] 0
                Item(Global): Logical Maximum, data= [ 0x01 ] 1
                Item(Global): Report ID, data= [ 0x02 ] 2
                Item(Global): Report Size, data= [ 0x08 ] 8
                Item(Global): Report Count, data= [ 0x08 ] 8
                Item(Local ): Usage, data= [ 0x2c ] 44
                                Display Data
                Item(Main  ): Output, data= [ 0x02 ] 2
                                Data Variable Absolute No_Wrap Linear
                                Preferred_State No_Null_Position Non_Volatile Bitfield
                Item(Main  ): End Collection, data=none
                Item(Main  ): End Collection, data=none
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x000a  1x 10 bytes
            bInterval              10
    can't get debug descriptor: Resource temporarily unavailable
    Device Status:     0x0000
      (Bus Powered)
    [tgl@thegeekylad ~]$ 
    

    Thanks in advance!

    enhancement 
    opened by theGeekyLad 6
  • Add support to x14

    Add support to x14

    System information

    • Distribution name: Ubuntu

    • Distribution version: 22.10

    • Python3 version: 3.10.7

    • akbl version: 2019.05.26

    • Computer model:

    • Daemon status: False

    Bug description

    When running setup script, I'm getting this exception :


    *** Installing AKBL v2019.05.26 ***


    [1/5] Removing previous versions..

    Disabling the systemd daemon... Removed "/etc/systemd/system/basic.target.wants/akbl.service".

    Removing the software links.. python3 directory removed python3.10 link removed python3.11 link removed

    Removing the software files and directories.. removed.f: /usr/share/applications/AKBL.desktop removed.f: /usr/bin/akbl removed.d: /usr/share/AKBL removed.d: /usr/share/doc/AKBL removed.d: /usr/lib/python3/AKBL

    [2/5] Installing the software files... Copying the software files... installing: /usr/bin installing: /usr/share/applications installing: /usr/share/AKBL install: omitting directory '/home/nasredine/apps/akbl-stable/usr/share/AKBL/computers' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/share/AKBL/launch' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/share/AKBL/test' installing: /usr/share/AKBL/computers installing: /usr/share/AKBL/launch installing: /usr/share/AKBL/test installing: /usr/share/doc/AKBL install: omitting directory '/home/nasredine/apps/akbl-stable/usr/share/doc/AKBL/BusData' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/share/doc/AKBL/ImagesPreview' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/share/doc/AKBL/Licenses' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/share/doc/AKBL/Programming' installing: /usr/share/doc/AKBL/BusData install: omitting directory '/home/nasredine/apps/akbl-stable/usr/share/doc/AKBL/BusData/Data' installing: /usr/share/doc/AKBL/BusData/Data installing: /usr/share/doc/AKBL/ImagesPreview installing: /usr/share/doc/AKBL/Licenses installing: /usr/share/doc/AKBL/Programming install: omitting directory '/home/nasredine/apps/akbl-stable/usr/share/doc/AKBL/Programming/class_diagrams' installing: /usr/share/doc/AKBL/Programming/class_diagrams installing: /usr/lib/systemd/system installing: /usr/lib/python3/AKBL install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Addons' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Data' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Engine' installing: /usr/lib/python3/AKBL/Data install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Data/Computer' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Data/Theme' installing: /usr/lib/python3/AKBL/Data/Computer installing: /usr/lib/python3/AKBL/Data/Theme installing: /usr/lib/python3/AKBL/Engine installing: /usr/lib/python3/AKBL/Addons install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Addons/BlockTesting' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Addons/GUI' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Addons/Indicator' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Addons/ModelChooser' installing: /usr/lib/python3/AKBL/Addons/GUI install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Addons/GUI/ColorChooserToolbar' install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Addons/GUI/images' installing: /usr/lib/python3/AKBL/Addons/GUI/ColorChooserToolbar installing: /usr/lib/python3/AKBL/Addons/GUI/images installing: /usr/lib/python3/AKBL/Addons/BlockTesting installing: /usr/lib/python3/AKBL/Addons/Indicator install: omitting directory '/home/nasredine/apps/akbl-stable/usr/lib/python3/AKBL/Addons/Indicator/images' installing: /usr/lib/python3/AKBL/Addons/Indicator/images installing: /usr/lib/python3/AKBL/Addons/ModelChooser Replacing variables...

    [3/5] Creating the python links... linked python3 linked python3.10 linked python3.11

    [4/5] Choosing the computer model... Choose the configuration file from the GTK window that will appear.. Traceback (most recent call last): File "/usr/lib/python3.10/AKBL/Engine/Driver.py", line 143, in take_over self._device.set_configuration() File "/usr/lib/python3/dist-packages/usb/core.py", line 915, in set_configuration self._ctx.managed_set_configuration(self, configuration) File "/usr/lib/python3/dist-packages/usb/core.py", line 113, in wrapper return f(self, *args, **kwargs) File "/usr/lib/python3/dist-packages/usb/core.py", line 159, in managed_set_configuration self.backend.set_configuration(self.handle, cfg.bConfigurationValue) File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 812, in set_configuration _check(self.lib.libusb_set_configuration(dev_handle.handle, config_value)) File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 604, in _check raise USBError(_strerror(ret), ret, _libusb_errno[ret]) usb.core.USBError: [Errno 2] Entity not found

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/usr/share/AKBL/launch/model_chooser.py", line 21, in main() File "/usr/lib/python3.10/AKBL/Addons/ModelChooser/ModelChooser.py", line 206, in main ModelChooser() File "/usr/lib/python3.10/AKBL/Addons/ModelChooser/ModelChooser.py", line 93, in init self.upadte_detected_as() File "/usr/lib/python3.10/AKBL/Addons/ModelChooser/ModelChooser.py", line 124, in upadte_detected_as driver.find_device() File "/usr/lib/python3.10/AKBL/Engine/Driver.py", line 70, in find_device self.take_over() File "/usr/lib/python3.10/AKBL/Engine/Driver.py", line 145, in take_over self._device.detach_kernel_driver(0) File "/usr/lib/python3/dist-packages/usb/core.py", line 1121, in detach_kernel_driver self._ctx.backend.detach_kernel_driver( File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 920, in detach_kernel_driver _check(self.lib.libusb_detach_kernel_driver(dev_handle.handle, intf)) File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 604, in _check raise USBError(_strerror(ret), ret, _libusb_errno[ret]) usb.core.USBError: [Errno 2] Entity not found

    [5/5] Enabling the daemon... Created symlink /etc/systemd/system/basic.target.wants/akbl.service → /lib/systemd/system/akbl.service.


    *** AKBL v2019.05.26 is installed ***


    USB Data :

    Device: ID 187c:0550 Alienware Corporation LED controller Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.10 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x187c Alienware Corporation idProduct 0x0550 LED controller bcdDevice 2.00 iManufacturer 1 Alienware iProduct 2 AW-ELC iSerial 3 00.01 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0029 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 25 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0021 1x 33 bytes bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0021 1x 33 bytes bInterval 100

    opened by Nasreddine 0
  • Zonescan not working Alienware Auora R6 Desktop

    Zonescan not working Alienware Auora R6 Desktop

    /!\ IF YOU WANT YOUR BUG TO BE TREATED FILL THIS TEMPLATE AND DO NOT MODIFY IT. /!\

      Also, before submitting any bug download and
            install the last version of akbl.
    

    System information

    Alienware Aurora R6 (07DB) product: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz product: Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers product: 6th-10th Gen Core Processor PCIe Controller (x16) product: GP104 [GeForce GTX 1070]

    • Distribution name:
    • Distribution version:
    • Python3 version: python3 --version
    • akbl version: akbl -v
    • Computer model: Alienware aurora R6
    • Daemon status: akbl --daemon-is-on

    Bug description

    I am trying to perform a zonescan and I am encountering this error. I am also unable to open the gui because if says no supported alienfx controller found.

    When i type "sudo alienfx" I receive this error below...

    You are running alienfx under Python-Version: 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0] ERROR:root:No Alien FX controller, defined by a supported model, found! would you like to perform a zonescan? (y/n):y Performing zonescan... Welcome. This will help you to scan for alienfx-controllers and their lighting zones. Traceback (most recent call last): File "/usr/local/bin/alienfx", line 33, in sys.exit(load_entry_point('alienfx==2.4.0', 'console_scripts', 'alienfx')()) File "/usr/local/lib/python3.10/dist-packages/alienfx-2.4.0-py3.10.egg/alienfx/ui/console/main.py", line 81, in start File "/usr/local/lib/python3.10/dist-packages/alienfx-2.4.0-py3.10.egg/alienfx/ui/console/main.py", line 64, in doZonescan File "/usr/local/lib/python3.10/dist-packages/alienfx-2.4.0-py3.10.egg/alienfx/core/zonescanner.py", line 134, in scan TypeError: 'NoneType' object is not iterable

    opened by Ocean572 0
  • Alienware 17R5 support?

    Alienware 17R5 support?

    DELL has supposedly changed their USB protocol. AKBL does not support it yet. Is there some progress going on to manage this problem? AlienFX on Windows 10 sucks by the way.

    opened by dgpr1337 0
  • Add support to Alienware X17 R1

    Add support to Alienware X17 R1

    Hello, thank you for this great contribution to the community.

    System information

    • Distribution name: Manjaro Linux
    • Distribution version: Ruah 21.3.7
    • Python3 version: Python 3.10.5
    • akbl version: 2019.05.26
    • Computer model: Alienware x17 R1
    • Daemon status: True

    Bug description

    I try install akbl, my laptop was recognized as 15R4, no USB detected data. image

    output lsusb -D /dev/bus/usb/003/003

    image

    Even, i try use the block testing window but no success. image

    opened by jj-devs 0
  • Add Support for Alienware m17 R5 (with per key lighting?)

    Add Support for Alienware m17 R5 (with per key lighting?)

    System information

    • Distribution name: Gentoo
    • Distribution version: 2.8
    • Python3 version: Python 3.10.6
    • akbl version: 2019.05.26
    • Computer model: Alienware m17 R5
    • Daemon status: True

    Bug description

    ❯ lsusb -D /dev/bus/usb/003/003 Device: ID 187c:0550 Alienware Corporation LED controller Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.10 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x187c Alienware Corporation idProduct 0x0550 LED controller bcdDevice 2.00 iManufacturer 1 Alienware iProduct 2 AW-ELC iSerial 3 00.01 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0029 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 25 Report Descriptor: (length is 25) Item(Global): Usage Page, data= [ 0x00 0xff ] 65280 (null) Item(Local ): Usage, data= [ 0x01 ] 1 (null) Item(Main ): Collection, data= [ 0x01 ] 1 Application Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255 Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Report Count, data= [ 0x21 ] 33 Item(Local ): Usage, data= [ 0x01 ] 1 (null) Item(Main ): Input, data= [ 0x00 ] 0 Data Array Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x01 ] 1 (null) Item(Main ): Output, data= [ 0x00 ] 0 Data Array Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Main ): End Collection, data=none Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0021 1x 33 bytes bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0021 1x 33 bytes bInterval 100 Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 0x0021 bNumDeviceCaps 1 Platform Device Capability: bLength 28 bDescriptorType 16 bDevCapabilityType 5 bReserved 0 PlatformCapabilityUUID {d8dd60df-4589-4cc7-9cd2-659d9e648a9f} CapabilityData[0] 0x00 CapabilityData[1] 0x00 CapabilityData[2] 0x03 CapabilityData[3] 0x06 CapabilityData[4] 0x48 CapabilityData[5] 0x00 CapabilityData[6] 0x01 CapabilityData[7] 0x00 Device Status: 0x0001 Self Powered

    Other Information

    I've tried using the block test and it just locks up, I am concerned that the per-key RGB keyboard may not be supported.

    Anyways, lemme know.

    Thanks.

    opened by SuperFes 0
  • Add support to X15 R2

    Add support to X15 R2

    $lsusb -D /dev/bus/usb/003/003

    Device: ID 187c:0550 Alienware Corporation LED controller
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.10
      bDeviceClass            0 
      bDeviceSubClass         0 
      bDeviceProtocol         0 
      bMaxPacketSize0        64
      idVendor           0x187c Alienware Corporation
      idProduct          0x0550 LED controller
      bcdDevice            2.00
      iManufacturer           1 Alienware
      iProduct                2 AW-ELC
      iSerial                 3 00.01
      bNumConfigurations      1
    

    thank you.

    opened by fukaoi 0
Owner
rsm
rsm
Python implementation of ZMP Preview Control approach for biped robot control.

ZMP Preview Control This is the Python implementation of ZMP Preview Control app

Chaobin 24 Dec 19, 2022
Programming of Robotics Systems course at the University of Aveiro, Portugal, 2021-2022.

Programação de Sistemas Robóticos Miguel Riem Oliveira Universidade de Aveiro 2021-2022 Projeto AtlasCar Projecto RACE IROS 2014 AtlasCar2 ATOM IROS 2

Miguel Riem de Oliveira 22 Jul 13, 2022
A script that publishes power usage data of iDrac enabled servers to an MQTT broker for integration into automation and power monitoring systems

iDracPowerMonitorMQTT This script publishes iDrac power draw data for iDrac 6 enabled servers to an MQTT broker. This can be used to integrate the pow

Lucas Zanchetta 10 Oct 6, 2022
Example Python code for building RPi-controlled robotic systems

RPi Example Code Example Python code for building RPi-controlled robotic systems These python files have been compiled / developed by the Neurobionics

Elliott Rouse 2 Feb 4, 2022
Hook and simulate global keyboard events on Windows and Linux.

keyboard Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.

BoppreH 3.2k Dec 30, 2022
[unmaintained] WiFi tools for linux

Note: This project is unmaintained. While I would love to keep up the development on this project, it is difficult for me for several reasons: I don't

Rocky Meza 288 Dec 13, 2022
Python Keylogger for Linux

A keylogger is a program that records your keystrokes, this program saves them in a .txt file on your local computer and, after 30 seconds (or as long as you want), it will close the .txt file and send you an email with everything that has been recorded. once the program is run, this cycle will last infinitely if you don't stop it.

Darío Mazzitelli 4 Jul 31, 2021
Add filters (background blur, etc) to your webcam on Linux.

webcam-filters Add filters (background blur, etc) to your webcam on Linux. Video conferencing applications tend to either lack video effects altogethe

Jashandeep Sohi 480 Dec 14, 2022
This is the remake of the program PYOBD. It works on Python3 and all new libraries. It was tested on Linux, Windows, and it should work on MAC too.

This is the remake of the program PYOBD. It works on Python3 and all new libraries. It was tested on Linux, Windows, and it should work on MAC too. You just need an ELM327 USB or bluetooth device and a PC(laptop preferably).

null 127 Jan 6, 2023
Lenovo Legion 5 Pro 2021 Linux RGB Keyboard Light Controller

Lenovo Legion 5 Pro 2021 Linux RGB Keyboard Light Controller This util allows to drive RGB keyboard light on Lenovo Legion 5 Pro 2021 Laptop Requireme

null 36 Dec 16, 2022
A PYTHON Library for Controlling Motors using SOLO Motor Controllers with RASPBERRY PI, Linux, windows, and more!

A PYTHON Library for Controlling Motors using SOLO Motor Controllers with RASPBERRY PI, Linux, windows, and more!

SOLO Motor Controllers 3 Apr 29, 2022
A module for cross-platform control of the mouse and keyboard in python that is simple to install and use.

PyUserInput PyUserInput is a group project so we've moved the project over to a group organization: https://github.com/PyUserInput/PyUserInput . That

Paul Barton 1k Dec 27, 2022
Alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at

Alternative firmware for ESP8266/ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability

Theo Arends 59 Dec 26, 2022
Quasi-static control of the centroid of quadruped robot

Quasi-static control of quadruped robot   This is a demo of the quasi-static controller for the centroid of the quadruped robot. The Quadratic Program

Junwen Cui 21 Dec 12, 2022
raspberry pi servo control using pca9685

RPi_servo-control_pca9685 raspberry pi 180° servo control using pca9685 Requirements Requires you to have the adafruit servokit library installed You

null 1 Jan 10, 2022
I made this so I can control my Tapo L510 light bulb and Govee H6159 light strip using the PyP100 module and the Govee public API

TAPO-And-Govee-Controller I made this so I can control my Tapo L510 light bulb and Govee H6159 light strip using the PyP100 module and the Govee publi

James Westhead 0 Nov 23, 2021
Alarm Control Panel component for Zigbee Keypads using action_transaction field

hass_transaction_alarm_panel Alarm Control Panel component for Zigbee Keypads using action_transaction field. Works together with zigbee2mqtt Supporte

Konstantin 4 Jun 9, 2022
Poupool is an overflow swimming pool control software

Poupool - The swimming pool controller Poupool is a swimming pool control software. It is based on Transitions, Pykka and Paho MQTT. The user interfac

Cyril Jaquier 8 Jul 18, 2022
A simple small scale electric car was build which can be driven by remote control and features a fully autonomous parking procedure.

personal-autonomous-parking-car-raspberry A simple electric car model was build using Raspbery pi. The car has remote control and autonomous operation

Kostas Ziovas 2 Jan 26, 2022