Eco Hero Master Wiring Question

I’ve made these changes and haven’t seen anything different, I’m assuming it’s a problem with my config?

Yes. Sort of. If you just invert the colors, ProffieOS is going to be a bit confused about when the blade is on and off. If you use InvertPWM instead of inverting the colors, that should work correctly.

Yes of course, this is basically what the free* pads are for. I thought that was well known, but now that I read my own pages I see that it’s not particularly clear…

No, this works with neopixels. The V3 has an extra timer that can be used to drive some more PWM pins.

Just remember that the free* pads don’t have FETs. Standard 20mA LEDs are fine, but don’t try to hook up something that needs more current than that.

3 Likes

Amazing stuff. Thanks for clarifying Prof. I knew the Free pads were configurable, but I thought it was limited to stuff like data lines, blade detect etc. Great to know we can use them for conventional accents too. (Understood on the limitations as well). I have a few installs in the portfolio which, if I ever need to do them again, just got a whole lot easier! :smiley:

Still no success, I think I’m nearly there with a new config, but I’m having issues with it. Any help would be enormously appreciated, just over a year on I’d love to finally have it working :,)

The config: // ProffieOS7 Config File#ifdef CONFIG_TOP#include "proffieboard_v3_config.h - Pastebin.com

The Errors:
In file included from C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\ProffieOS.ino:621:
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\config\myconfig.h:192:146: error: ‘freePin2’ was not declared in this scope
192 | WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS >(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin2, -1, -1, -1>(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin3, -1, -1, -1>()
| ^~~~~~~~
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\config\myconfig.h:192:168: error: no matching function for call to ‘SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, , -1, -1, -1>()’
192 | WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS >(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin2, -1, -1, -1>(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin3, -1, -1, -1>()
| ^
In file included from C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\ProffieOS.ino:585:
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\blades\simple_blade.h:278:18: note: candidate: ‘template<class LED1, class LED2, class LED3, class LED4, int pin1, int pin2, int pin3, int pin4> BladeBase* SimpleBladePtr()’
278 | class BladeBase SimpleBladePtr() {
| ^~~~~~~~~~~~~~
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\blades\simple_blade.h:278:18: note: template argument deduction/substitution failed:
In file included from C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\ProffieOS.ino:621:
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\config\myconfig.h:192:168: error: template argument 5 is invalid
192 | WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS >(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin2, -1, -1, -1>(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin3, -1, -1, -1>()
| ^
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\config\myconfig.h:192:239: error: ‘freePin3’ was not declared in this scope
192 | WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS >(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin2, -1, -1, -1>(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin3, -1, -1, -1>()
| ^~~~~~~~
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\config\myconfig.h:192:261: error: no matching function for call to ‘SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, , -1, -1, -1>()’
192 | WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS >(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin2, -1, -1, -1>(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin3, -1, -1, -1>()
| ^
In file included from C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\ProffieOS.ino:585:
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\blades\simple_blade.h:278:18: note: candidate: 'template<class LED1, class LED2, class LED3, class LED4, int pin1, int pin2, int pin3, int pin4> BladeBase
SimpleBladePtr()’
278 | class BladeBase *SimpleBladePtr() {
| ^~~~~~~~~~~~~~
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\blades\simple_blade.h:278:18: note: template argument deduction/substitution failed:
In file included from C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\ProffieOS.ino:621:
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\config\myconfig.h:192:261: error: template argument 5 is invalid
192 | WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS >(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin2, -1, -1, -1>(), SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, freePin3, -1, -1, -1>()
| ^

exit status 1

Compilation error: ‘freePin2’ was not declared in this scope

In the blade config change freepin2 to be bladePowerPin8 and freepin3 to bladePowerPin9

The file proffieboard_v3_config.h in the config folder has the labels for each of the pins

Thanks so much! Those blades are still not blinking and my main blade is only partially lit, but at least they’re doing something!!

Another day, an other error I can’t figure out.

In file included from C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\ProffieOS.ino:621:
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\config\myconfig.h:223:232: error: cannot convert 'BladeBase*' to 'Preset*' in initialization
  223 |     WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin1> >(),     SimpleBladePtr<CH2LED, NoLED, NoLED, NoLED, bladePowerPin8, -1, -1, -1>(),     SimpleBladePtr<CH1LED, NoLED, NoLED, NoLED, bladePowerPin9, -1, -1, -1>()
      |                                                                                                                                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      |                                                                                                                                                                                                                                        |
      |                                                                                                                                                                                                                                        BladeBase*
In file included from C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\ProffieOS.ino:591:
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\config\myconfig.h:224:17: error: invalid conversion from 'Preset*' to 'size_t' {aka 'unsigned int'} [-fpermissive]
  224 |   , CONFIGARRAY(presets) },
      |                 ^~~~~~~
      |                 |
      |                 Preset*
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\common\preset.h:6:24: note: in definition of macro 'CONFIGARRAY'
    6 | #define CONFIGARRAY(X) X, NELEM(X)
      |                        ^
In file included from C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\ProffieOS.ino:240:
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\common\common.h:18:28: error: invalid conversion from 'unsigned int' to 'const char*' [-fpermissive]
   18 | #define NELEM(X) (sizeof(X)/sizeof((X)[0]))
      |                  ~~~~~~~~~~^~~~~~~~~~~~~~~~
      |                            |
      |                            unsigned int
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\common\preset.h:6:27: note: in expansion of macro 'NELEM'
    6 | #define CONFIGARRAY(X) X, NELEM(X)
      |                           ^~~~~
C:\Users\olive\Downloads\ProffieOS-v7.14 (1)\ProffieOS\config\myconfig.h:224:5: note: in expansion of macro 'CONFIGARRAY'
  224 |   , CONFIGARRAY(presets) },
      |     ^~~~~~~~~~~

exit status 1

Compilation error: cannot convert 'BladeBase*' to 'Preset*' in initialization

Looks like you have NUM_BLADES set to 8, but you actually have 9 blade definitions in your blades array.

I found and removed the erroneous one, it uploaded, and now nothing. I’ve got the onboard indicator lit when the board is plugged in, but other than that it’s dead. Really not sure how I’ve managed that one.

It’s probably because you have the same WS281XPtr setup twice;

   SubBladeWithStride(1, 15, 2, WS281XBladePtr<295, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >() ),
    SubBladeWithStride (16, 294, 2, WS281XBladePtr<295, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >() ),

Both of these use bladePin, which isn’t going to work well.
I’m guessing the second one should be null.