WS281x, SK6812 driver for the Omega2? [Solved]
-
Mr @luz! Can you write full tutorial? It's very difficult for beginners like me.
I want to control RGB LED strip WS2813.
-
@luz
@Jakofff-Parker said in WS281x, SK6812 driver for the Omega2? [Solved]:@luz does it work for the omega 2+ version with kernel 4.4.6?
When I did the opkg install, I got the error:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-p44-ledchain: * kernel (= 4.14.81-1-5c1ea8a282d7395b1a2c86bf6b1669fc) *
then, after:
echo-en '\ xFF \ x00 \ x00 \ xFF \ x00 \ x00'> / dev / ledchain0
Omega immediately hung, omega wifi dropping, yellow led turns off, and I did her a power reset.
Is this problem happening because the module is for another kernel?
I have Omega 2+ with 4.4.74 kernelroot@Omega-1D19:~# ls -l -rw-r--r-- 1 root root 940 Jan 14 2019 greeting.py -rw-rw-r-- 1 1000 1000 6936 May 16 2019 kmod-p44-ledchain_4.14.81+2.0-7_mipsel_24kc.ipk root@Omega-1D19:~# opkg install --force-depends kmod-p44-ledchain* Installing kmod-p44-ledchain (4.14.81+2.0-7) to root... Configuring kmod-p44-ledchain. Collected errors: * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-p44-ledchain: * kernel (= 4.14.81-1-5c1ea8a282d7395b1a2c86bf6b1669fc) * root@Omega-1D19:~# root@Omega-1D19:~# insmod /lib/modules/4.14.81/p44-ledchain.ko ledchain0=0,5,1 root@Omega-1D19:~# echo -en '\xFF\x00\x00\xFF\x00\x00' >/dev/ledchain0 packet_write_wait: Connection to 192.168.3.1 port 22: Broken pipe
-
@Nikolay-Vetrov Yes, it is!
-
@Nikolay-Vetrov Yes, upgrade to the very latest available firmware:
oupgrade -l -f
and the ledchain kernel module will work right away.That's actually what controls the notification LED on the Omega2 Pro
-
@luz said in WS281x, SK6812 driver for the Omega2? [Solved]:
./scripts/feeds update -a
What plan44@plan44.ch's password???
Create index file './feeds/telephony.index' Updating feed 'plan44' from 'ssh://plan44@plan44.ch/home/plan44/sharedgit/plan44-public-feed.git;master' ... Cloning into './feeds/plan44'... The authenticity of host 'plan44.ch (5.148.180.31)' can't be established. ECDSA key fingerprint is SHA256:2MTxsEAWz1HLbiYcN9wufc0e0pLraCZHbizwVXat0RE. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'plan44.ch,5.148.180.31' (ECDSA) to the list of known hosts. plan44@plan44.ch's password: Connection closed by 5.148.180.31 port 22 fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. failed.
-
You seem to have the wrong repo URL for some reason. Where did it come from? Probably a mistake on my part publishing that URL somewhere (it's the url to my private staging repo for preparing stuff before I push to github - and obviously not publicly accessible). If you can point me to where you got that url from into your feeds.conf, I'll correct it, of course
Anyway, just use github URL: https://github.com/plan44/plan44-feed.git , in your feeds.conf (or feeds.conf.default in case you modified that one) then it will work.
-
@luz said in WS281x, SK6812 driver for the Omega2? [Solved]:
add the plan44 feed to feeds.conf.default by adding a line
src-git plan44 ssh://plan44@plan44.ch/home/plan44/sharedgit/plan44-public-feed.git;masterHere.
And what we can to write in feeds.conf.default?
This:src-git plan44 https://github.com/plan44/plan44-feed.git
?
-
If you install a new build system and run make, ledchain is included correctly in the Omega2Pro firmware. No other configuration is required.
-
@crispyoz As @Lazar-Demin wrote above practically every recent firmware already has the ledchain kernel module.
Probably for most of us this is simpler to use (and change its configuration only) than build some custom firmware.
-
@Alexandr-Didenko thanks for pointing me to that old post! Apparently that was a cut&paste error of mine back in 2017
I just edited it to have it point to the github repo now.And what we can to write in feeds.conf.default?
This:src-git plan44 https://github.com/plan44/plan44-feed.git
?Yes, I think that would work (master branch should be the default) but to make sure I usually specify the branch explicitly:
src-git plan44 https://github.com/plan44/plan44-feed.git;master
Note that if
feeds.conf
does not exist already, first copyfeeds.conf.default
tofeeds.conf
and then append the new line.(Side note: It's a widespread error to directly edit
feeds.conf.default
, altough one should not!feeds.conf
is the mechanism intended to customize your build , like.config
or the contents offiles/
. All of these are NOT in the openwrt git repo, and belong to you.feeds.conf.default
however belongs to openwrt)
-
@György-Farkas Yes of course, but it seems @Alexandr-Didenko is building firmware otherwise why would he be using feeds.conf
-
@luz Sorry to dragging you back in the past to remind you about this beautiful creation of yours!
I am using p44-ledchain on the Omage 2+ on the pwm0(Pin 18) with 5 ws2812 LEDs with my Custom PCB board.
I used the below command line to insert the driver(as mentioned in the readme);insmod p44-ledchain ledchain0=0,5,1,10,5100
Here the issue I am facing is that when i give command to update all 5 LEDs, it does not control all five LEDs. Sometimes it glows 3 and sometime 2.
Eg. To glow all 5 LEDs in Bright Blue color; I applied below command but it turned on only first 3 LEDs in Green, 1 bright blue, 1 dim blue.echo -e "\x00\x00\xFF\x00\x00\xFF\x00\x00\xFF\x00\x00\xFF\x00\x00\xFF" > /dev/ledchain0
I am pretty sure that the driver if okay in terms of controlling the LEDs.
Can you help me to make this work by pointing to the points I might have missed.TAI
-
@dixit What configuration parameters have you set for the ledchain module? I expect this is a timing issue, WS2812x seem to vary a bit depending on the manufacturer,
-
@crispyoz What do you mean by
What configuration parameters have you set for the ledchain module?
I am using p44-ledchain driver as it is and providing the above mentioned parameter while inserting the module.
Which means;
use ledchain0(pwm0) in non-inverted mode, for 5 leds in chain, ws2812 ledtype, 10 retries, 5100ns Maxretries value(default suggested for ws2812 on readme Github)
Let me know what other information would be helpful?
-
@dixit If you read the documentation for the ledchain module you will note that it takes some configuration parameters, you can place these parameters in a text file: /etc/modules.d/91-p44-ledchain
Here is an example of mine:
p44-ledchain ledchain0=0,4,1,20,15000
Here is the documentation:
https://github.com/plan44/plan44-feed/tree/master/p44-ledchain
-
@dixit said in WS281x, SK6812 driver for the Omega2? [Solved]:
5100ns Maxretries value(default suggested for ws2812 on readme Github)
Not actually default, but explicitly for a difficult WS2812 chain.
The problem with the idle time between bits is that while a too long idle time will not work with some WS2812, a too short idle time might be very hard for the Omega2 to meet at all, depending on interrupt load caused by other drivers.
So while in my experiments back then, 5100nS were usually fine, it might be too low in your case. I'd first try without specifying a time at all (having the driver use its internal default, which is 10000nS), and if that does not work, try values between 10000 and 5100.
Another thing: do you have a level shifter between the (3.3V) Omega2 pin and the (5V) input of the first WS2812 chip?
Without it, it very much depends on the exact voltages on the 3.3V and 5V rails. For example if 5V is a bit higher (say, 5.1V), the threshold on the input also rises a bit, and the 3.3V output's "high" might be not always be enough for a clean "high" input to the WS2812.
I had exactly this problem with the first version of the Pixelboard table, it started working reliably not before I put a 74AHCT1G125 (single gate version of the more common 74AHCT125) in between Omega2 and WS28xx input.
[Update: also see here]
-
@luz Thanks.
5100ns Maxretries value(default suggested for ws2812 on readme Github)
by this I meant the same as you said, could not convey though.
I checked the hardware design, we dont have level-shifter emplied. I will try with level shifter and let you know here.
I appreciate your prompt attention. Thank you @crispyoz @luz .