Hi PJR,
now it is working with this code in the MyTransportRS485 without any changes on MySensors.h:
#if defined(MY_RS485_SWSERIAL)
SoftwareSerial& _dev = MY_RS485_SWSERIAL;
#elif defined(__linux__)
SerialPort _dev = SerialPort(MY_RS485_HWSERIAL);
#elif defined(MY_RS485_HWSERIAL)
HardwareSerial& _dev = MY_RS485_HWSERIAL;
#else
AltSoftSerial _dev;
#endif
As far as I can interpret the peace of code, the
#include "hal/transport/MyTransportRS485.cpp"
is active as soon as the MY_RS485 layer is defined.
This is a great step, I can use all my nodes from now on!
Thank you very much for your support!
By Kduino
@krisztian
Hi krisztian,
the singleLED board - as its name suggests - features only one LED output. If you want to have a setup with multiple LED strips you need to design a board with multiple outputs. I have already designed a board with 4 outputs, but I haven't built it.
In terms of software you need to register multiple sensors in your program like this:
#define numCh 4 //the number of outputs
const byte ledPins[] = {9,6,5,3};
byte ledLevel[numCh];
boolean ledDimWay[numCh];
//in the setup function request the dim levels from the gateway
for(byte i=0; i<numCh; i++) request(i, V_DIMMER);
//in the presentation function register multiple lights
for(byte i=0; i<numCh; i++) present(i, S_DIMMER);
//if you receive a signal, you need to check for the sensor id
setLED(message.sensor, requestedLevel);
//to set the LED level (function: setLED) you need to use the sensor id to determine brightness and pin
//Fade LED to set level
int delta = (level - ledLevel[child]) < 0 ? -1 : 1;
//Write to LED
analogWrite(ledPins[child], map(ledLevel[child],0,100,0,255));
I will probably publish the whole code once I have built and tested the 4LED controller (i call it "MySensors rainbowLED")
Hope I could help you
ThetaDev
Hi,
for everyone who reads all of this, forget about the last few posts.
I don't know why it works even when the Interrups are masked out on the radio, but it works now.
The error I had occured because of the config of the OrangePi-Gateway.
I removed:
--extra-cxxflags="-DMY_RF24_DATARATE=\(RF24_250KBPS\) -DMY_RF24_BASE_RADIO_ID=\(0x00,0xFC,0xE1,0xA8,0xA8\) -DMY_DEBUG_VERBOSE_RF24"
and wrote:
--extra-cxxflags="-DMY_RF24_DATARATE=\(RF24_250KBPS\) -DMY_DEBUG_VERBOSE_RF24"
Now I think I have an working OrangePi-Gateway without signing but with interrupt enabled.
If there are new problems I will come back here.
The next step for me is to activate signing again and bring the node into homeassistant.
Hello, i'm making some progress; received the components this week.
Unfortunately it doesn't work... yet
For now i have SanityCheck failure in to logs.
I'm afraid my soldering of all these little components is not good. I tested with a multimeter the 4 pins and i have continuity on one of them but maybe not the others so i guess i will have to try remelting all these small regulators ???
There are also other solutions that have I2C bus pins on the shield and if you are going to make a battery powered node, I'd suggest to use an I2C sensor as it will be much more battery friendly
@MiKa
Hi.
oki, in case i'll add some explanation.. I'll be busy for this week but you can simply use the serial gw example from MySensors for getting started, this should work. I didn't need to create a special board in arduino for this board, so if you're using it, you'll need to install&use the mattairtech SAMD21 board definition for the pin mapping.
https://github.com/mattairtech/ArduinoCore-samd