Color display not working

No problem! At least it’s not my hardware (or me going crazy), so that helps!

I have been trying to find the time to do some testing by eliminating things in the config until I didn’t have the error, but haven’t had time yet.

Thanks!

I figured it out… This line:

Should be:

 SubBlade(8, 15, WS281XBladePtr<16, bladePin, Color8::GRB, PowerPINS<bladePowerPin1>>()), // b1 front green scanny thing
//                   ^-- note X

Apparently bad things happen when you mix these two things up…

3 Likes

Oh, interesting. I usually copy paste code, so I wonder where that even came from.

Thanks for chasing that down! I will try to do more testing on the display now.

WS2811BladePtr and WS281XBladePtr really shouldn’t be compatible this way. It would be way better if this generated a compiler error. I’m not sure if there is anything I can do to make that happen, but I will check.

Well, that fixed all the funkiness! The sound and pixels work as they should, but still no display.
show /tng/280x240/biocircuitry.pqf no longer works

Please post your latest config file and I’ll take a look.
Also, what does “displaystate” say now?

Here is my config now:

#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BUTTONS 2
#define NUM_BLADES 4
#define VOLUME 2000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define ENABLE_SPIDISPLAY
#define ENABLE_DEVELOPER_COMMANDS
#endif

//EYESPI 	PBV3 	function

//TCS 	data4 	Chip Select
//DC 	Free3 	Command Select
//MOSI 	Data3 	Data
//SCK 	Free1 	Clock
//Gnd 	GND 	power
//Lite 	Free2 	Backlight control
//Vin 	SD_VDD 	power

#ifdef CONFIG_PROP
#include "../props/saber_fett263_buttons.h"
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
	
	{ "tng;common", "tracks/tng.wav",
	StylePtr<Layers<Black,Cylon<Green,5,20,Red,5,20,1>>>(), //1
	StylePtr<Layers<Black,Cylon<DeepSkyBlue,5,20,Red,5,20,1>>>(), //2
	StylePtr<Layers<Black,Cylon<Green,5,20,Red,5,20,1>>>(), //3
	StylePtr<Layers<Black,Cylon<Red,5,20,Red,5,20,1>>>(), //4
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //5
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //6
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //7
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //8
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //9
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //10
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //11
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //12
    ""},
	{ "Unstable;common", "tracks/KyloRen.wav",
	StylePtr<Layers<Black,Sequence<Cyan,Black,100,37,0b1010101010101,0b111000111000111,0b100000000000000>>>(), //1
	StylePtr<Layers<Black,Sequence<Red,Black,100,37,0b1010100011100,0b111000111000101,0b100000000000000>>>(), //2
	StylePtr<Layers<Black,Cylon<Green,5,20,Red,5,20,1>>>(), //3
	StylePtr<Layers<Black,Cylon<Red,5,20,Red,5,20,1>>>(), //4
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //5
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //6
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //7
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //8
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //9
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //10
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //11
//	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //12
    ""},
	
};

BladeConfig blades[] = {
 { 0,
     SubBlade(8, 15, WS281XBladePtr<16, bladePin, Color8::GRB, PowerPINS<bladePowerPin2>>()), // test change
//     SubBlade(8, 15, WS281XBladePtr<16, bladePin, Color8::GRB, PowerPINS<bladePowerPin1>>()), // b1 front green scanny thing
     SubBlade(0, 3, NULL),  // b2 big blue scanny thing
     SubBlade(4, 5, NULL),  // b3 side by side green
     SubBlade(6, 7, NULL),  // b4 up down red
//     SubBlade(0, 2, WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2>>()), // b5 front 3 green
//     SubBlade(3, 5, NULL),  // b6 geo met bio
//     SubBlade(6, 9, NULL),  // b7 alpha beta gamma delta
//     SubBlade(10, 10, NULL),  // b8 front power red light
//     SubBlade(11, 12, NULL),  // b9 upper front green lights
//     SubBlade(13, 13, NULL),  // b10 upper front red light
//     SimpleBladePtr<CH1LED, NoLED, NoLED, NoLED, bladePowerPin4, -1, -1, -1>(), // b11 lower lights (two red leds)
//     SimpleBladePtr<CH1LED, NoLED, NoLED, NoLED, bladePowerPin3, -1, -1, -1>(), // b12 front dim lights (warm white)
     CONFIGARRAY(presets) },
  };
#endif

#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
Button AuxButton(BUTTON_AUX, auxPin, "aux");
#endif

#ifdef CONFIG_BOTTOM
SPIDisplay_AdaFruit5206<3> display;                                                                                         
StandarColorDisplayController<280, 240> display_controller(&display);
#endif

“displaystate”:

Battery voltage: 4.15
to_send: 0
PCLK1: 40000000 PCLK2: 40000000
frame = 0 rownum_ = 0 layer = 0 base = 0 top = 0 next state: 520 buffered rows: 1
*** Layer 0 ***

Is that really the entire output of “displaystate” ?
What version of arduino-proffieboard are you using?

Your config file works with no modifications for me, and I can show the biocircuitry.pqf file successfully. Maybe some wire has come loose?

Maybe I didn’t grab it all. Here is another:

Welcome to ProffieOS $Id: ce12a06a1e236b5101ec60c950530a9a4719a74d $
For available serial commands, see:
https://pod.hubbe.net/tools/serial-monitor-commands.html
I2C init..
Motion chip ... 106 found.
EVENT: Clash millis=1322
Amplifier off.
Unmounting SD Card.
to_send: 0
PCLK1: 40000000 PCLK2: 40000000
frame = 0 rownum_ = 0 layer = 0 base = 0 top = 0 next state: 520 buffered rows: 1
*** Layer 0 ***
STOP File: 
play time: 9841ms POS: 0 EOF: 1 KBPS: 0.00 Bufsize: 0 next state: -2
 frame drop fps: 
*** Layer 1 ***
STOP File: 
play time: 9842ms POS: 0 EOF: 1 KBPS: 0.00 Bufsize: 0 next state: -2
 frame drop fps: 
*** Layer 2 ***
STOP File: 
play time: 9842ms POS: 0 EOF: 1 KBPS: 0.00 Bufsize: 0 next state: -2
 frame drop fps: 
Battery voltage: 4.12

I am using arduino 2.3.2, with plugin v4.6 experimental. Should I try the main channel v4.6?

I tried again, and now “show” works, but it doesn’t play any animations any other time. Did it play them for you? I must have something wrong with the scr and pqf files.

This shows no indication that it’s even trying to show something.
Usually when something fails, it’s trying to show something, but is stuck, and displaystate looks the same if you run it multiple times in a row.

4.6 is 4.6, regardless of which channel you get it from.
You could try an older version, but so far it seems like 4.6 has less bugs than earlier versions.

I didn’t try any scr files, just “show”.
Since “show” works, that basically means that your PQF file works.
Fixing problems with the display, and fixing problems with scr files are basically different things.
I did find the PM that had the biocircutry.pqf file, and it has a scr file in it. That file has the wrong name, and also lacks a newline at the end of the file.

Basically there are two helpful things you can do:

  1. You can use “show” on an scr file and see what happens.
  2. You can use “effects” to show what SCR files it has found.

I did end up fixing the file naming earlier. I have had these files for the last couple rounds of testing:

/tng/280x240/boot.scr
/tng/280x240/font.scr
/tng/280x240/idle.scr
/tng/280x240/on.scr

Effects did find these files:

Found 280x240/idle.scr files: one unnumbered file in tng
Found 280x240/on.scr files: one unnumbered file in tng
Found 280x240/font.scr files: one unnumbered file in tng
Found 280x240/boot.scr files: one unnumbered file in tng
Found vmend.wav files: one unnumbered file in common
Found vmbegin.wav files: one unnumbered file in common
Found mnum.wav files: 1-20 in subdirs in common
Found mclick.wav files: one unnumbered file in common
Found ccchange.wav files: one unnumbered file in common
Found ccend.wav files: one unnumbered file in common

However show /tng/280x240/on.scr still displayed nothing.

I am not sure what this means. I looked again at the layer controller info and changed on.scr from:

file=biocircuitry.pqf

to:

file=biocircuitry.pqf
layer

Now, show /tng/280x240/on.scr does show the pqf, however turning the saber “on” still does not display anything.

also, show /tng/280x240/on.scr seems pretty picky. Right on boot, it will display the pqf, but after that it will not display again.