I also recommend QLC+, in fact I run it on a raspi 3b /7inch touch lcd and a generic rs485 ftdi adapter from amazon, it works fantastic and supports a lot of fixtures and setting up new fixtures is easy.
bonus is qlc also supports artnet and Open Sound to light protocols so support for external controls are there, as a example I control qlc via Virtualdj 2024 over the open sound to light via lan cable(to the pi) , that then controls a wifi to dmx box over artnet(esp32 and a rs485 transceiver, code on github).
with this setup I am able to have lights in front of my DJ booth and lights at the back of the venue without trailing dmx/power cable across the public area.
At first QLC might seem daunting with all the scenes/protocols/pages/controls and DMX numbers but there are some very good guides on the QLC forums and raspi forums. Here too.
One tip, Fixtures files is just a list of what BANDS of dmx channels a light (or anything else) covers in the available 512 channels with a icon attached for easy reading.
a example is a RGB pan light which lets say has 8 channels used (dmx 0-7) 0 is RED brightness, 1 green bright , 2 blue, 3 modes (sound activate, trigger mode ,pulse etc) 4-7 would cover the flashing modes of each channel plus brightness, this means your next fixture can use dmx 8(if you wish to control a new fixture separate) .
If you dont know what channel does what then set each device to zero and plug one in at a time, then use QLC dmx slider page to trigger each channel from 0 to what ever it stops responding to , also note some devices might have a over all brightness control on a higher number so you might raise red to max and get nothing then drop red and max blue but again nothing, this is because the total brightness control (also known as blackout value) is set to zero.
once you have a fixture added you then goto pages, new page and then drag drop a control for your new fixtures functions , example slider for red and brightness and then assign dmx 0 to one slider and dmx 7 to the other and once you drag both up your light will go red. other options like buttons fox example can be assigned to a DMX channel , eg DMX7 and then between states (on/off) can send preset DMX value based on state eg off DMX7=0, on DMX7=255 this turns that button into a blackout button.
Scenes are just pre-recorded states of the DMX channels , a example would be if you had pan/tilt lights and wanted to shine them on the center mic using all colours at max you would goto the page you created or the DMX slider page and set the light to where you wanted them and what state then goto scene's and create new scene , then you move your light to the new positions and colour and save a new scene. once you have multiple scenes you can insert behaviors between on how it transitions between each scene , example you be slow or fast or jump to another scene and come back, it's quite flexible.
hope that helps,
darkspr1te