* Adding support for sk6822 timing
This isnt complete, but should be a good starting point for others to learn from.
1) Here is where the led device source is located:
cd libsrc/leddevice
2) Find the files that need changing:
root@loungepi:libsrc/leddevice# grep -ri 2812spi *
CMakeLists.txt: ${CURRENT_SOURCE_DIR}/LedDeviceWs2812SPI.h
CMakeLists.txt: ${CURRENT_SOURCE_DIR}/LedDeviceWs2812SPI.cpp
LedDeviceFactory.cpp: #include "LedDeviceWs2812SPI.h"
LedDeviceFactory.cpp: REGISTER(Ws2812SPI);
LedDeviceSchemas.qrc: <file alias="schema-ws2812spi">schemas/schema-ws2812spi.json</file>
LedDeviceWs2812SPI.cpp:#include "LedDeviceWs2812SPI.h"
LedDeviceWs2812SPI.cpp:LedDeviceWs2812SPI::LedDeviceWs2812SPI(const QJsonObject &deviceConfig)
LedDeviceWs2812SPI.cpp:LedDevice* LedDeviceWs2812SPI::construct(const QJsonObject &deviceConfig)
LedDeviceWs2812SPI.cpp: return new LedDeviceWs2812SPI(deviceConfig);
LedDeviceWs2812SPI.cpp:bool LedDeviceWs2812SPI::init(const QJsonObject &deviceConfig)
LedDeviceWs2812SPI.cpp:int LedDeviceWs2812SPI::write(const std::vector<ColorRgb> &ledValues)
LedDeviceWs2812SPI.h:class LedDeviceWs2812SPI : public ProviderSpi
LedDeviceWs2812SPI.h: LedDeviceWs2812SPI(const QJsonObject &deviceConfig);
3) Copy the existing files as a starting point:
cp LedDeviceWs2812SPI.cpp LedDeviceSk6822SPI.cpp
cp LedDeviceWs2812SPI.h LedDeviceSk6822SPI.h
cp schemas/schema-ws2812spi.json schemas/schema-sk6822spi.json
4) Do some search and replacing:
:%s/Ws2812SPI/Sk6822SPI/g
5) edit the other files (see the diffs in this commit)
* Added wait time and reset time
* Fixed up debugging output and commented it out.
* Started work on DMX512 rs232 device
cloned from sedu - no actual changes yet
* Implemented DMX protocol
Added baudrate debugging to ProviderRs232
* Added support for multiple DMX fixture types
* fix amlogic for newer kernels
crosscompile stay on 32bit aml with kernel 3.10
* add new platform amlogic64. This is used e.g. for new wetek boxes hub and play2
* commit debug code to save it due to merge
* migrate first devices to new device registry and configure on runtime
* fadecandy and rs232 resets device if config is set
* try to hunt crash on osx
* test commit if this works with osx
* refactor spi devices
* cleanup
* refactor leddevices file, tinkerforge and ws2812b
* refactor raw usb devices
* refactor udp devices
* - add tpm2net driver
- remove old udp driver from build (files left in place for reference for new udp driver)
- json serverinfo shows available leddevices
* finish rework part 2 of leddevices
* add schemas for leddevices.
currently only compiled in, but not usedx
* Started on support for sACN/E1.31/DMX512
Just a clone of udpraw for now
* It's ALIVE!!
This adds somewhat working DMX512/sACN/E1.31 support.
I've tested it against an ESPixelStick but have no other "real" hardware
TODO:
configure universe#
configure universe and led offset
configure source names (all hard coded now...)
* oops.... forgot that dmx element 0 isnt rgb data but needs to be zero
* added universe support in the config
assorted code cleanups
* switch to new logger for folowing led devices:
LedDeviceAtmo
LedDeviceFactory
LedDeviceFadeCandy
LedDeviceHyperionUsbasp
LedDeviceLightpack-hidapi
LedDevicePiBlaster
LedDeviceWS281x
LedRs232Device
leddevice base class defines logger already as protected member _log
* migrate to new logger for led devices.
still todo:
LedDeviceWS2812b
LedDeviceWs2812SPI
LedDeviceTinkerforge
LedDeviceLightpack
LedDeviceMultiLightpack
* Fixed compile error when no grabbers are defined
* Remove stupid avahi warning...
* Started on the new integrated UDP listener to replace the python effect.
Cloned boblight server and rename it to be UDP listener
It compiles!, It starts! it seems to work as a second boblight protocol server...
* moving from the exsting TCP to UDP.
i can catch packets now.. need to consider ditching the connection handling
* It kinda works right now.
UDP packets are received, led data is sent and hyperion displays them.
.... for a moment before going back to what it was doing
* It works!
looks like the default priority of 900 was fighting with something else that was also 900
commented out some udp packet debugging
* oops, forgot to add the changes the the previous commit
* resolving merge conflicts
* Fixed random http port due to uninitialized _port
* cleaning up compiler warning
* cleaned up CMakeLists to remove warning:
Note: No relevant classes found. No output generated.
* migrate serialport to qt5 serialport
* remove old serialport
add logging to serialport
* remove try catch - qt serialport uses plain return values
* tiny fix, but not working atm
* make it work, tested with adalight
* cleanup: remove ambiled device
as written at the forum this is no longer supported. All people should move to adalight. They just need to flash a new sketch.
* fix typo
* make hyperion to singelton.
remove arguments for config and hyperion - both are gettable via Hyperion::getInstance
* refactor hyperiond
* remove qt4 comapt
make zeroconf mandatory
refactor hyperiond
* xbmcchecker is now a singleton
* cleanup in hyperiond
zeroconf switchable between static and shared linking
* fix xbmcchecker
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config
Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process
* reversing errant change to hyperion.systemd.sh
* cleaned up a couple of compiler warnings
* moved bitpair_to_byte initialiser to (hopefully) work with older GCC
* compiler warning in udp driver
removed some tabs in ws2812b.cpp
* formatting - spaces to tabs
* moved rpi_281x to tag sk6812-v1.0
* moving to my fork of rpi_281x
* half way thru re merging the newudp support
* Whoops.... dont know how it compiled before..
* Removed debugging that was commented out
Former-commit-id: ac4330422f93f3d594dfcba5593759288298d25e
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config
Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process
* reversing errant change to hyperion.systemd.sh
* This add a new device type - ws2812spi.
I've (ab)used the SPI interface to send the correct timing pulses to keep the ws2812 happy.
THE RATE IS IMPORTANT!
A FIXED CORE_CLK IS IMPORTANT!
Attach the SPI MOSI pin on the Pi to the DIN pin on your ws2812
"device" :
{
"name" : "MyPi",
"type" : "ws2812spi",
"colorOrder" : "grb",
"output" : "/dev/spidev0.0",
"rate" : 3800000
},
* updated hyperiond.test-binary
* Updated default SPI speed to the "correct" value.
My Pi was undervolted so was dropping the core clock confusing everything
* Code cleanups
explicitly set the final 3 bytes to 0
* Removed latchtime option - not applicable
* updated test binary
Former-commit-id: d3c19c8374999f7a554bb25ca181a8a483f86289
No functional changes, but
- files have been renamed
- the device name is now "file" not "test"
Former-commit-id: 3fbc03c3fe1d764654c1d28ebb80562ce6276ab1
This reverts commit ae218b85ff [formerly b57904d64f0fbdd2e97f0326de4378489206e357], reversing
changes made to cda2232080 [formerly 6949fe847d9c4181c924a13ed0715ecd71b98499].
Former-commit-id: 0261bc7735663dba45681a5c0e4026b4c1fddeba
Add a new WS281x driver which is a wrapper around jgarff's ws281x library which
works on Pi B+, Pi 2, Pi Zero and probably Pi 3 as well.
jgarff's ws281x library is included as a submodule
Former-commit-id: e473dfd36d31b14598da5e56e4b8bf9f2aa7bb24