multi Neopixels on a Mega

I have a model of a 3 cylinder 2 stroke engine. I’ve made to show my students how a 2 stroke works, with the 3 types of induction systems. I have some RGBW Neopixels showing the different stages of the 2 stroke cycle. I have an Absolute Rotary Encoder setting the degrees of crank shaft rotation and this sets the Neopixels off at the different stages of combustion.
Because of the size of the code (5000 lines) I have to use an Arduino Mega with a motor shield and a 470 ohm between the signal to the Neopixels and the Mega on the three separate cylinders, as well as a 1000 Capacitor on the power lead to the pixels
I had them working separately to program them, but when I joined them together the first cylinder stopped working.
I have swapped the cylinders around and the first cylinder will work on another cylinders code.
I’ve changed the Mega in case I killed the pin, still the same.
Checked the pin with the "Blink" program and pin OK.
Also changed the pin from 6 to 2.
I have looked everywhere and I should be able to run the 3 sets of Neopixels / cylinders at the same time.
Am I missing something?
Thank you in advance.
Gerry

#include <Adafruit_NeoPixel.h>

const int PIN_DATA = 10; 
const int PIN_CS = 9;    
const int PIN_CLOCK = 8; 

int Timing; // variable to store timng value for NeoPixels
       // or you could just turn the encoder / crankshaft pulley
#define Solenoid     7  //  solenoid
#define LED_PIN_A    2  //  crankshaft port
#define LED_PIN_B    5  //  piston port
#define LED_PIN_C    4  //  vacuum port
#define TIMING_PIN   A1 //  POT for adjusting NeoPixels timing
#define SPEEDPIN     A5 //  POT for adjusting Motor Speed

                 // These pins are hardwired in the motor shield
const int MotorDir = 12;      //  output pin for the Motor Direction
const int MotorSpeed = 3;     //  output pin for the Motor Speed 

int MotorPot = 0;       //  variable to store the value coming from the Motor POT
int TimingPot = 0;      //  variable to store the value coming from the Timing POT

#define LED_COUNT_A  34 // Number of Neopixels in each Cylinder
#define LED_COUNT_B  30
#define LED_COUNT_C  33

Adafruit_NeoPixel CrankPort(LED_COUNT_A, LED_PIN_A, NEO_RGBW + NEO_KHZ800);
Adafruit_NeoPixel PistonPort(LED_COUNT_B, LED_PIN_B, NEO_RGBW + NEO_KHZ800);
Adafruit_NeoPixel VacuumPort(LED_COUNT_C, LED_PIN_C, NEO_RGBW + NEO_KHZ800);


void setup() {
  Serial.begin(9600);
  
  pinMode(PIN_CS, OUTPUT);
  pinMode(PIN_CLOCK, OUTPUT);
  pinMode(PIN_DATA, INPUT);
  
  pinMode (MotorDir, OUTPUT);
  pinMode (TimingPot, INPUT);
  pinMode (MotorPot, INPUT);
  
  pinMode (Solenoid, OUTPUT);
  
  digitalWrite(PIN_CLOCK, HIGH);
  digitalWrite(PIN_CS, LOW);
  
  CrankPort.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
  PistonPort.begin(); 
  VacuumPort.begin(); 
  CrankPort.show();  // Turn OFF all pixels ASAP
  PistonPort.show();
  VacuumPort.show();

 }

void loop() {
  // This bit for the speed control for the Electric Motor
  
  digitalWrite(MotorDir, HIGH); // Motor direction
  int SpeedPin = analogRead(SPEEDPIN);
  int Speed = map(SpeedPin,0,1024,0,255);
  analogWrite (MotorSpeed, Speed);
  
  // Serial.print ("  Motor Direction  ");  Serial.print (digitalRead (MotorDir));
  // Serial.print (" SPEEDPIN  ");  Serial.print (analogRead (SPEEDPIN));
  // Serial.print (" Speed  ");  Serial.println(Speed);
  
  // This bit for the Absolute Rotary Encoder
  
  digitalWrite(PIN_CS, HIGH);
  digitalWrite(PIN_CS, LOW);
  int pos = 0;
  for (int i=0; i<10; i++) {
    digitalWrite(PIN_CLOCK, LOW);
    digitalWrite(PIN_CLOCK, HIGH);
    
    byte b = digitalRead(PIN_DATA) == HIGH ? 1 : 0;
    pos += b * pow(2, 10-(i+1));
  }
  for (int i=0; i<6; i++) {
    digitalWrite(PIN_CLOCK, LOW);
    digitalWrite(PIN_CLOCK, HIGH);
  }
  digitalWrite(PIN_CLOCK, LOW);
  digitalWrite(PIN_CLOCK, HIGH);
 
  int EncoderAngle = map(pos,0,1024, 0, 360);
  
  // This bit to adjust the timing and 
  // keep the angle less than 360 degrees
   
  int AdjAngle = analogRead(TIMING_PIN);
  AdjAngle = map(AdjAngle, 0, 1024, 0, 360);
      
  int Angle = (AdjAngle + EncoderAngle);
  
  if (Angle >= 360)  {
    (Angle -= 360);
  }
    
  Serial.print("  Adjusted Angle  "); 
  Serial.print(AdjAngle);
  Serial.print(" Encoder Angle  "); 
  Serial.print(EncoderAngle);
  Serial.print(" Angle  "); 
  Serial.println(Angle);
  
   // This bit is for the NeoPixels
  if (Angle > 0 && Angle <= 10)  { 
                 // Pixel No. Green, Red, Blue, White
    CrankPort.setPixelColor(0, 0, 0, 0, 200);    // Spark Plug
    CrankPort.setPixelColor(4, 0, 0, 200, 0);    // Crank Port LED
            // Pixel No. Green, Red, Blue, White    
    CrankPort.setPixelColor(7, 10, 0, 0, 0);    // Lower top left
    CrankPort.setPixelColor(6, 10, 0, 0, 0);    // Lower top mid
    CrankPort.setPixelColor(5, 10, 0, 0, 0);    // Lower top right
    CrankPort.setPixelColor(1, 10, 0, 0, 0);    // Lower bot left
    CrankPort.setPixelColor(2, 10, 0, 0, 0);    // Lower bot mid
    CrankPort.setPixelColor(3, 10, 0, 0, 0);    // Lower bot right
            // Pixel No. Green, Red, Blue, White
//etc
    PistonPort.setPixelColor(0, 0, 0, 0, 0);    // Spark Plug
//etc
    VacuumPort.setPixelColor(0, 0, 0, 0, 0);    // Spark Plug
//etc

  CrankPort.show();  
  PistonPort.show();
  VacuumPort.show();
}
// I’ve cut the rest out

Found it!
Was a tiny bit of a wire strand caught up in the hot glue, holding the board down.
Yes some mothers do rear useless children.

Gerry is now an expert :wink:

First you shoudt mark this as solved if you can
then the Fastled lib is nutch more comfort on this picels
as well as all color cheme are present

you can use multiple port arangements up to a full matrix without setup on a nano
to drive 300 leds 42x7 full text based

[/cvoid setup() {
    //Controller 1 ARDUINO Nano pins 8-2 -> 8 is bottem then 2-7Top
  FastLED.addLeds<NEOPIXEL, 1>(LED, 0, NUM_LEDS_PER_STRIP);
  FastLED.addLeds<NEOPIXEL, 2>(LED, NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
  FastLED.addLeds<NEOPIXEL, 3>(LED, 2 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
  FastLED.addLeds<NEOPIXEL, 4>(LED, 3 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
  FastLED.addLeds<NEOPIXEL, 5>(LED, 4 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
  FastLED.addLeds<NEOPIXEL, 6>(LED, 5 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
  //FastLED.addLeds<NEOPIXEL, 7>(leds, 7 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
  controllerLED[0]= &FastLED.addLeds<WS2812B, 7, GRB>(LED,252,293);

  FastLED.setBrightness(gBrightness);
  FastLED.setMaxPowerInVoltsAndMilliamps(5,2000); ode]