# LED Matrix Modules

**URL:** <https://community.frame.work/t/led-matrix-modules/65403>\
**Category:** Framework Laptop 16\
**Tags:** framework-laptop-16-amd-7040\
**Created:** [March 2, 2025, 2:03am UTC](https://community.frame.work/t/led-matrix-modules/65403 "2025-03-02T02:03:07Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ATVB1](https://avatars.discourse-cdn.com/v4/letter/a/f17d59/32.png) [@ATVB1](https://community.frame.work/u/ATVB1)\
**Post date:** [March 2, 2025, 2:03am UTC](https://community.frame.work/t/led-matrix-modules/65403/1 "2025-03-02T02:03:07Z")

</div>

I have the LED Matrix modules but am struggling to get them to work. I’ve downloaded a project from github but I can’t get it to work. The python script that is I think official is really bad. I don’t know exactly what I want to do with them, but it would be nice to at least have them on! Thanks

I tried this one: [GitHub - FrameworkComputer/inputmodule-rs: Framework Laptop 16 Input Module SW/FW](https://github.com/FrameworkComputer/inputmodule-rs)

---

<div class="post-metadata">

**Author:** ![TheWebMachine](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/thewebmachine/32/30957_2.png) [@TheWebMachine](https://community.frame.work/u/TheWebMachine)\
**Post date:** [March 2, 2025, 6:04am UTC](https://community.frame.work/t/led-matrix-modules/65403/2 "2025-03-02T06:04:05Z")

</div>

I’ve been using this to make use of my Matrix modules. I rather like the at-a-glance for my system status.

> **[FW\_LED\_System\_Monitor](https://code.karsttech.com/jeremy/FW_LED_System_Monitor.git)**
>
> A system monitor for the Frame.Work 16 led matrix modules.

It’s all written in python, so you can tweak and modify it as you see fit. It’s also robust enough that, with it running as a system service all the time, you can remove and reinstall the modules whenever (I sometimes swap in my numpad when working) and they begin reporting again properly right away.

---

<div class="post-metadata">

**Author:** ![Alex\_Morozov](https://avatars.discourse-cdn.com/v4/letter/a/bc79bd/32.png) [@Alex\_Morozov](https://community.frame.work/u/Alex_Morozov)\
**Post date:** [March 2, 2025, 7:20pm UTC](https://community.frame.work/t/led-matrix-modules/65403/3 "2025-03-02T19:20:30Z")

</div>

A script to display battery percentage, quick and dirty:

```auto
#!/usr/bin/env python

import time
import serial

bat_dir = '/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:4b/PNP0C0A:00/power_supply/BAT1'
W = 9
H = 34

def send_command(command_id, parameters, with_response=False):
    with serial.Serial('/dev/ttyACM1', 115200 * 8) as s:
        s.write([0x32, 0xAC, command_id] + parameters)

        if with_response:
            res = s.read(32)
            return res

def read_i(name):
    try:
        with open(name) as f:
            return int(f.read())
    except:
        return 0

def read_als() -> int:
    with open('/sys/bus/platform/drivers/hid_sensor_als/HID-SENSOR-200041.11.auto/iio:device0/in_illuminance_raw') as f:
        return int(f.read())

class Bitmap:
    def __init__ (self):
        self.bitmap = [0] * 39

    def clear(self):
        self.bitmap = [0] * 39

    def set_pixel(self, x, y):
        i = x + W * y
        self.bitmap[i//8] |= 1 << (i % 8)

i = 0
while 1:
    batt_c_now = read_i(bat_dir + '/charge_now') / 1000000
    batt_c_full = read_i(bat_dir + '/charge_full') / 1000000
    v = batt_c_now / batt_c_full
    b = Bitmap()
    for x in range(W):
        for y in range(H):
            if (x + y * W) <= v * H * W:
                b.set_pixel(x, y)

    als = read_als()
    brightness = min(30, max(1, int(als/10)))
    if v < 0.1:
        brightness = 100 if i % 2 else 1

    print(als, brightness, v)
    send_command(0x00, [brightness])
    send_command(0x06, b.bitmap)
    time.sleep(2)
    i += 1

```

---

<div class="post-metadata">

**Author:** ![jwilkins88](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/jwilkins88/32/35103_2.png) [@jwilkins88](https://community.frame.work/u/jwilkins88)\
**Post date:** [March 17, 2025, 3:52pm UTC](https://community.frame.work/t/led-matrix-modules/65403/4 "2025-03-17T15:52:14Z")

</div>

Hey there! I’m also working on a tool for managing these. It’s still pretty new, but I’ve been making some decent progress. It’s still in its early development stages, but it works well for me. It’s tested on Ubuntu/Mint and python 3.9+ and it’s been fairly stable after the last few updates.

Would love to get your feedback if you give it a try!

> **[GitHub - jwilkins88/flem\_tool: It's a work in progress](https://github.com/jwilkins88/flem_tool)**
>
> It's a work in progress

---

<div class="post-metadata">

**Author:** ![TheWebMachine](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/thewebmachine/32/30957_2.png) [@TheWebMachine](https://community.frame.work/u/TheWebMachine)\
**Post date:** [March 17, 2025, 7:08pm UTC](https://community.frame.work/t/led-matrix-modules/65403/5 "2025-03-17T19:08:08Z")

</div>

Awesome! I’ll check it out this week.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex001/uploads/framework3/original/1X/64c81a89f963ddb07633887baceb642a4b056046.png) [@system](https://community.frame.work/u/system)\
**Post date:** [September 13, 2025, 7:09pm UTC](https://community.frame.work/t/led-matrix-modules/65403/6 "2025-09-13T19:09:04Z")

</div>

Closed on September 13, 2025, 7:09pm UTC

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
