Color display not working

I have been following the color display progress thread to get a color display working for my tricorder.

I got and adafruit 5206 (280x240) display, and converted some mp4 to pqf. I reversed one with dpqoi to make sure they were successful.

I made a bare bones config and uploaded it. I connected the screen eyespi to a bread board with jumpers as described here:

The green led lights up on the board, but the screen never lights up. All I have connected is the battery and the 7 jumpers for eyespi display.

Here is the config:

#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BUTTONS 2
#define NUM_BLADES 11
#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
#endif

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

#ifdef CONFIG_PRESETS
Preset presets[] = {
	
	{ "tng;common", "tracks/tng.wav",
	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //1
	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //2
	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //3
	StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Green,White>,AudioFlicker<Green,White>>,White>,300,800>>(), //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
    ""},
	
};

BladeConfig blades[] = {
 { 0,
     SubBlade(8, 15, WS2811BladePtr<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(11, 12, WS2811BladePtr<13, bladePin, Color8::GRB, PowerPINS<bladePowerPin2> >()), // b5 top exterior lights
     SubBlade(6, 9, NULL),  // b6 alpha beta gamma delta
     SubBlade(3, 5, NULL),  // b7 geo met bio
     SubBlade(0, 2, NULL),  // b8 green up dn meter
	 SubBlade(10, 10, NULL),// b9 pwr light
     SimpleBladePtr<CH1LED, NoLED, NoLED, NoLED, bladePowerPin4, -1, -1, -1>(), // b10 lower lights (two red leds)
	 SimpleBladePtr<CH1LED, NoLED, NoLED, NoLED, bladePowerPin3, -1, -1, -1>(), // b11 front dim lights (warm white)
     CONFIGARRAY(presets) },
  };
#endif

//#ifdef CONFIG_BUTTONS
//Button FireButton(BUTTON_FIRE, powerButtonPin, "fire");
//Button ModeButton(BUTTON_MODE_SELECT, auxPin, "modeselect");
//#endif

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

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

On the sdcard is just biocircuitry.pqf and 280x240_idle.scr

Here is the contents of 280x240_idle.scr:
file=biocircuitry.pqf

Maybe I did something wrong with the scr file? I am only testing, so I simply wanted it to loop that animation at idle.

The proffie is on a pogo pins, but they look like they connect well.

Is the backlight on?
Did you connect CS to data4?
What version of arduino-proffieboard? (Displays may work better with 4.1 than 3.6)

Also, you have two WS2811BladePtr that both use bladePin. That will cause problems (not sure if it would interfere with the display or not though.)

If you add the ENABLE_DEVELOPER_COMMANDS define, then there is a command called displaystate which gives you a fair amount of information about what the display is trying to do at least…

PS: I highly recommend turning up the optimization levels when using color displays, especially when using one with a fair number of pixels, like this one.

The screen does not light up, so I do not think so.

No, I did it as listed in the posted link. CS (or TCS) connected to GND.

I do have 3.6, should I try our 4.1?

Fixed

How do I do that? Also, do you mean the number of pixels in the display?

Guess you missed this part then:

Try the CS wire thing first.

Yes, I mean the number of pixels on the display.
To increase optimization go to Arduino->Tools->Optimization and change it to “fastest” (or “faster” if “fastests” doesn’t work.)

Sure did. Bad reading comprehension and probably poor understanding of the display. Sorry about that.

I changed the arduino optimization to fastest and re-uploaded. Still nothing on the display. I am getting 3.2V way out at the display pcb, so I think the wiring is fine. It seems strange that the display looks dead. Should I try plugin 4.1?

Should I change optimization back to smallest code when doing regular saber installs?

Did you connect CS to data4?

Generally speaking, “fastest” is better, if it fits in memory.
However, the extra speed make very little difference on most sabers.

Yes, I did this as well.

Regardless of everything else, the backlight should come on. It can be difficult to tell if there is nothing on the display, but there should be a small amount of light leakage around the edges. If the backlight isn’t coming on, then either the code isn’t actually trying to turn on the display… (check with “displaystate”) or, it could also be a problem with the wiring, in particular check the “lite” wire. If the backlight is off, it can be very hard to see if the rest of the display is working correctly or not, but a strong light can still show what is on the screen if the backlight isn’t behaving.

Also, I just noticed this:

If I remember correctly, idle.scr is supposed to be in a subdirectory called “280x240”, and those are supposed to be in your font directory, so
“tng/280x240/idle.scr”.

Use the “effects” command to make sure it finds your files.

PS: You can also use “show FILENAME.pqf” to test a file directly from the serial monitor.

Well, when looking at the serial monitor, it says
Motion chip ... Motion chip timeout, trying auto-reboot of motion chip!

over and over, so maybe there is something wrong with the board?

It’s possible.
Shouldn’t affect the display though.
Do you have V3 selected in Arduino->Tools->Board?
Check SDA/SCL for shorts?
It’s also possible that optimization breaks something, does it work better if you go back to “smallest” ?

Here is what serial monitor says after displaystate:

Motion chip ... Motion chip timeout, trying auto-reboot of motion chip!
Motion chip ... Motion chip timeout, trying auto-reboot of motion chip!
Motion chip ... Motion chip timeout, trying auto-reboot of motion chip!
Motion chip ... Motion chip timeout, trying auto-reboot of motion chip!
Motion chip ... Motion chip timeout, trying auto-reboot of motion chip!
to_send: 0
PCLK1: 40000000 PCLK2: 40000000
frame = 0 rownum_ = 0 next state: 502 buffered rows: 1
*** Layer 0 ***
STOP File: 
play time: 12038ms POS: 0 EOF: 1 KBPS: 0.00 Bufsize: 0 next state: -2
 frame drop fps: 
*** Layer 1 ***
STOP File: 
play time: 12038ms POS: 0 EOF: 1 KBPS: 0.00 Bufsize: 0 next state: -2

I now have the folder structure sorted out on the sdcard.

v3 is selected. No shorts I can see, It is all pogo-pins. and I have now quadruple checked the jumpers to the eyespi.

I went back to smallest, and uploaded. I turned off my bench light and when power is connected to the board, I do see the backlight flash upon boot up, then turn off. It also flashed briefly when I disconnect power. Because of my bright bench light, I don’t know if the backlight also flashed before these changes.

This means that it is not trying to play anything right now.

I tried another proffie board and have the same result. The backlight flashes on power up, but that’s it. It even the serial monitor states the same motion chip error.

I also made scr files in folder "tng\280x240" for “boot”, “font” and “on”, all referencing the same pqf.
file=biocircuitry.pqf

Anything else I can look at? Perhaps I do need plugin 4.1?

Does “displaystate” say something else now?
Did you try the “show” command?
And yes, maybe try the 4.1 plugin. (You can have both installed, and switch between them in Arduino->Board.)

I tried again tonight, and now the serial monitor isn’t working. Its just blank. nothing I type shows up. the led on the proffie board is solid and dim.

The board is connected, I even re uploaded the config. Only thing that is different is that I tried to install the experimental 4.4 plugin, but it failed. Could it have installed something in conflict anyway?

One weird thing is that the backlight on the display stays on the entire time now.

show biocircuitry.pqf does nothing, displaystate returns nothing in the serial monitor (because its blank).

Any ides?

It could mean that it’s finally trying to show something, but then it crashes for some reason. Unfortunately it’s hard to tell without a debugger.

You could try the 4.2 plugin. It has bugs, but I think it handles the display code fairly well.

Instead of 4.4? Do you think it would have the same windows directory conflict?