Color display not working

I found something. While watching the serial monitor, when I switch fonts, I saw this:

Activating polyphonic font.
Current Preset: Preset: 1
unit = 0 vol = 0.50, Playing tng/font.wav
channels: 1 rate: 44100 bits: 16
Playing tng/280x240/font.scr
File  not found.
File  not found.
File  not found.

The pqf’s are in the same directory as the scr files.

tng/280x240/font.scr
tng/280x240/biocircuitry.pqf

So are they supposed to be somewhere else?

Hum nor idle will play.

I added a regular saber font for testing, and it seems to work except the hum doesn’t play either. Also, the pixels don’t seem to be lighting, but I need to test that more.

What does font.scr say?

This would indicate that it’s getting an empty filename from somewhere.
Not sure how that is happening though.

They can be anywhere, the scr file specifies which file to play.
The filenames in the scr file are relative to the scr file itself, so “in the same directory” is usually the right answer.

file=biocircuitry.pqf

That’s it

Odd, that should work.
I wonder if maybe something happens to reset the file name between font.scr is parsed and it actually tries to read the file…

I will do some testing.

Thank you, like you said “a step in the right direction”, hopefully.

I uploaded a really basic config with no display, and managed to get pixels and hum playing. I then added the spi define and config bottom back in, and they stayed working. Only thing not working (I think) is it finding the pqf file.

I figured out why the filenames are empty.
There is a bit of code that resets all the layers when EFFECT_NEWFONT occurs, and that will cause those weird error messages. However, it should play the pqf file after that. Feels like it should work in spite of those error messages.

If you run “displaystate” right after switching to this font, what does it say?

I got this

to_send: 0
PCLK1: 40000000 PCLK2: 40000000
frame = 0 rownum_ = 240 next state: 502 buffered rows: 1
*** Layer 0 ***
STOP File: 
play time: 40154ms POS: 0 EOF: 1 KBPS: 0.00 Bufsize: 0 next state: -2
 frame drop fps: 
*** Layer 1 ***
STOP File: 
play time: 40153ms POS: 0 EOF: 1 KBPS: 0.00 Bufsize: 0 next state: -2
 frame drop fps: 
*** Layer 2 ***
STOP File: 
play time: 40153ms POS: 0 EOF: 1 KBPS: 0.00 Bufsize: 0 next state: -2
 frame drop fps: 

I found (and fixed) two bugs in the display code.
See if will work better for you now…

I downloaded the latest and, well, it seems to have gone backwards. The motion chip error is back, I lost hum.wav and pixels again. I uploaded it 2x just in case there was some sort of upload issue.

Same behavior as before.

show /tng/280x240/biocircuitry.pqf shows the working animation

That doesn’t make much sense, because I haven’t changed those things.
Instead of uploading 2x, I would recommend going back-and-forth between different versions to see what triggers problems and what doesn’t. If the problem persists when you go back to the previous version, then the source of the problem must lie somewhere else…

ok, I installed 3.6, Just got a screech from the speaker

3.7, only screech from the speaker

4.1, same results as before, no hum, no pixels, “show pqf” works

4.2, same results, no hum, no pixels, “show pqf” works

4.4 failed install. Couldn’t test

4.5 failed install. Couldn’t test

4.6 fastest code, gave a lot more warnings but same results, no hum, no pixels, “show pqf” works
I also tried play /Unstable/hum.wav and it worked

I went back 4.6 smallest code again and same results as before, no hum, no pixels, “show pqf” works, also play /Unstable/hum.wav and it worked

So I am really at a loss. I only had one successful upload, and it was after removing the display refs in the config file, but after adding them back in, it seemed to keep working.

shouldn’t that be tng/hum.wav?

Problems with the motion chip tends to lead to problems with the chip though, as the sound code adjusts the volume of the hum in the motion event callback.

Btw, using 3.6 tends to lead to screech from the speaker for me too.

I’ve also noticed that some combinations tends to hang. Presumably because of compiler bugs, but I suppose it could also be my bugs. Either way, going into bootloader and uploading resolves it.

I have 2 “fonts” on the sd for testing, my tng, and a professional font, unstable. I tested the unstable hum incase the tng had issues. I can try that too.

Also, I switched back to v7.14, uploaded a known working proffie v3 config, and I still have issues with the board. Activating the blade played hum, but no pixels. Retracting did not stop hum, and it started the motion chip error. I am beginning to think the board has issues.

I am using a pogo pin break out board with a clamp, so maybe the clamp damaged the motion chip? No idea, because sometimes it doesn’t have the error until I activate the blade then the motion error starts.

Motion chip problems comes in four flavors:

  • shorts between SDA/SCL and something else. This is by far the most common.
  • Problems with the actual motion chip.
  • Power problems. (The 3.3v power is noisy or overloaded, sometimes this can be because of a bad SD card.) A way to test this is to hook up an external 3.3v power supply to the 3.3v pad and see if that helps.
  • Software problems. (If a config that works on another board doesn’t work on this board, then it’s most likely not a software problem.)

It’s not always easy, or even possible to find the difference between these things though.
If it comes down to the actual motion chip, replacing it with another one isn’t super-difficult, but does require a hot-air station, magnification and some patience.

I tried this, doesn’t seem to help.

  • none that I can see
  • not sure yet
  • I have tried usb powered and batt powered
  • I have done a few configs with the same results

I guess I will contact the vendor and see about a replacement board.

Fwiw “see” is the worst phrase/assumption. Multimeters tend to be more trustworthy.

Yes, I agree. It was sort if a figure of speech. I am using a pogo pin board of my own design. I have metered every pin multiple times. I don’t think I messed anything up, unless just having those pins connected to pogos do anything.

I have come to the conclusion that both these boards are flawed, however unlikely that is. It could have been the pressure of the clamp pushing down the board. I have now made a frame to push on the edges of the board for when I get a new one.

1 Like

ok, I have a weird one here.
When I upload this config, the one I am trying to get working, I get the motion chip error:

#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, 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(0, 2, WS2811BladePtr<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

If I upload this one, a trimmed config of a working config for testing, I get no error

// ProffieOS7 Config File
#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 4
#define NUM_BUTTONS 2
const unsigned int maxLedsPerStrip = 144;
#define EXTRA_COLOR_BUFFER_SPACE 60
#define VOLUME 1200
#define CLASH_THRESHOLD_G 1.8
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define MOTION_TIMEOUT 60 * 15 * 1000  
#define IDLE_OFF_TIME 60 * 15 * 1000
#define ORIENTATION ORIENTATION_USB_TOWARDS_BLADE
#define FETT263_DISABLE_CHANGE_FONT
#define FETT263_DISABLE_CHANGE_STYLE
#define FETT263_DISABLE_COPY_PRESET 
#define DISABLE_BASIC_PARSER_STYLES
#define DISABLE_DIAGNOSTIC_COMMANDS
#define ENABLE_ALL_EDIT_OPTIONS
#define NO_REPEAT_RANDOM
#define COLOR_CHANGE_DIRECT
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#define FETT263_MULTI_PHASE
#define FETT263_TWIST_ON 
#define FETT263_TWIST_OFF    
#endif

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

#ifdef CONFIG_PRESETS

Preset presets[] = {

  { "Unstable;common", "tracks/KyloRenTLJ.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),  
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),  
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),  
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "KRTLJ"},    
};

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(0, 2, WS2811BladePtr<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

I do not see why that would be. I even have the spi enable remarked out. Any one see why that might be?

This is with experimental plugin v4.6. Proffie is just plugged into the pc. It’s not in my test bed, so I didnt test pixels or sound.

I will investigate. If the problem reproduces on my side, then I should be able to figure out what’s causing it.