Neotrellis missing diode, button not working

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
boowilbury
 
Posts: 10
Joined: Thu Aug 29, 2013 5:06 pm

Neotrellis missing diode, button not working

Post by boowilbury »

Anyone know what type of diode is on the neotrellis board. One is missing. I don't have any surface mount components, but could I use a through-hole diode of some type?

I will order a new board, but this is a Christmas project, and wanted to get it done
PXL_20221205_143437689.MP.jpg
PXL_20221205_143437689.MP.jpg (168.1 KiB) Viewed 136 times

User avatar
dastels
 
Posts: 15653
Joined: Tue Oct 20, 2015 3:22 pm

Re: Neotrellis missing diode, button not working

Post by dastels »

According to the schematic they are 1N4148, a very cheap and common signal diode. And, yes, you could carefully solder a through-hole part in place of the missing one.

Was the board like this when it arrived?

Dave

User avatar
boowilbury
 
Posts: 10
Joined: Thu Aug 29, 2013 5:06 pm

Re: Neotrellis missing diode, button not working

Post by boowilbury »

I don't know if it was on when I recieved it, and it popped off, or if it wasn't there to begin with. I just received the board and only noticed it when coding with it.

User avatar
dastels
 
Posts: 15653
Joined: Tue Oct 20, 2015 3:22 pm

Re: Neotrellis missing diode, button not working

Post by dastels »

Regardless, it would seem to be a fault in the board's construction.

Go ahead an replace the diode to get up and running. but email [email protected] with a link to this thread, your order number, and request the replacement of one NeoTrellis PCB.

Dave

User avatar
boowilbury
 
Posts: 10
Joined: Thu Aug 29, 2013 5:06 pm

Re: Neotrellis missing diode, button not working

Post by boowilbury »

Thanks, I wonder if the missing diode is also affecting another issue I am having.
Using latest Arduino IDE 2.02 and latest NeoTrellis 1.3.1 library, I am getting lockup after pressing random buttons, between 10 - under 100 times. Staying in within one grid or not. Even when using the basic example from the library. It just stops responding to presses after awhile.
I am using a Feather M0 Express (with latest 1.711 package), as M4s have been out of stock.

User avatar
dastels
 
Posts: 15653
Joined: Tue Oct 20, 2015 3:22 pm

Re: Neotrellis missing diode, button not working

Post by dastels »

Possibly, the diode is part of the key matrix.

Dave

User avatar
boowilbury
 
Posts: 10
Joined: Thu Aug 29, 2013 5:06 pm

Re: Neotrellis missing diode, button not working

Post by boowilbury »

I managed to solder on a through hole 1N4148 I had, and the button now works!

However, I am still having a lockup /crash using the basic example. I did find a pattern. I have 4 neotrellises put together and am getting continuity between the 5 pins everywhere. I am getting a pattern of Fail and Good buttons, with still no pattern of number of presses on a Fail button for it to lockup (a "Fail" button will work for a few presses). A "Good" button will never cause a lockup.

7---------63
FFGGFFGG
FFGGFFGG
............
FFGGFFGG
0----------56

I double-checked the wire&solder links I made between each board, and seems ok - but I will continue examining my connections. That must be the problem, right?
-------------------
Using latest Arduino IDE 2.02 and latest NeoTrellis 1.3.1 library (and trying earlier ones),
I am using a Feather M0 Express (with latest 1.711 package), as M4s have been out of stock.

User avatar
dastels
 
Posts: 15653
Joined: Tue Oct 20, 2015 3:22 pm

Re: Neotrellis missing diode, button not working

Post by dastels »

Nothing sounds suspicious. I would expect an issue with connections to not be specific to a predicable set of buttons. The line of dots indicates that the FFGGFFGG pattern continues for all rows? The fact that it's replicated across all 4 boards is weird.

You have the address jumpers set appropriately? What does an I2C scan result in?

Dave

User avatar
boowilbury
 
Posts: 10
Joined: Thu Aug 29, 2013 5:06 pm

Re: Neotrellis missing diode, button not working

Post by boowilbury »

Yes, the pattern continues for all rows.
I ran the I2C scanner and it reports:
Scanning...
I2C device found at address 0x2E !
I2C device found at address 0x2F !
I2C device found at address 0x30 !
I2C device found at address 0x31 !
done

I have it soldered/addressed like in the online documentation here. and the code addresses:
#define Y_DIM 8 //number of rows of key
#define X_DIM 8 //number of columns of keys

//create a matrix of trellis panels
Adafruit_NeoTrellis t_array[Y_DIM/4][X_DIM/4] = {

{ Adafruit_NeoTrellis(0x2E), Adafruit_NeoTrellis(0x2F) },

{Adafruit_NeoTrellis(0x30), Adafruit_NeoTrellis(0x31)}

};


I also tried the single-board "basic" sample code, and it fails with the same row pattern on the one quadrant.

I then tried using the "interrupt" sample pin code, and wired up INT to pin 10, and it WORKS without fail!

However, the sample code is only for a single board. When I tried merging the two, the Adafruit_MultiTrellis does not have a read(bool) function, like the Adafruit_Neotrellis does - so it errors:
void loop() {
if(!digitalRead(INT_PIN)){
trellis.read(false); <---here
}
delay(2);
}

Anyway, if I can figure out how to use multitrellis with interrupt, I might be on my way.

BTW, I couldn't use circuit python with the M0 and the trellis library. It continued to give compile errors.

User avatar
dastels
 
Posts: 15653
Joined: Tue Oct 20, 2015 3:22 pm

Re: Neotrellis missing diode, button not working

Post by dastels »

There's probably not enough room on the M0. If you want CircuitPython you can try a beefier Feather, nRF52840, ESP32-S2 (or S3), or RP2040.

Using the single NeoTrells sample code with each of the 4 boards/addresses gives that same fail pattern? And all 4 boards individually with the interrupt sample work?

Dave

User avatar
boowilbury
 
Posts: 10
Joined: Thu Aug 29, 2013 5:06 pm

Re: Neotrellis missing diode, button not working

Post by boowilbury »

Indeed, using the single NeoTrellis code from the seesaw example library, the "basic" code fails (right two rows always work, left two rows will eventually fail) - trying with all 4 boards singularly addressed.
And, each board works fine with the single "interrupt" code - testing all 4 boards singularly addressed.

As an aside, I could not change the default 0x2E address using Adafruit_NeoTrellis trellis(0x2F); It would always go to the default 2E board, no matter what I put in the function. Don't know what I was doing wrong.
It seems to be hard coded in the library (probably not)? Anyway, I got around that by just pasting in the library code and changing the #define NEO_TRELLIS_ADDR 0x2F there.

I will try to look into the library more to see about getting interrupt working with multitrellis.

User avatar
dastels
 
Posts: 15653
Joined: Tue Oct 20, 2015 3:22 pm

Re: Neotrellis missing diode, button not working

Post by dastels »

Try passing the address to trellis.begin().

Dave

User avatar
boowilbury
 
Posts: 10
Joined: Thu Aug 29, 2013 5:06 pm

Re: Neotrellis missing diode, button not working

Post by boowilbury »

Thanks, yes, passing the address to trellis.begin() works. :) 😳

I ended up making 4 instances of the Adafruit_NeoTrellis object, addressing them uniquely, making 4 unique blink events for each object, and using the interrupt check in the loop. It now works without fail everywhere on the board. It is rather sloppy, but it is just for a simple button paint app for my son.

I might try figuring out the Adafruit_MultiTrellis call with the interrupt, but at least it works now.

Thanks for your help!

User avatar
dastels
 
Posts: 15653
Joined: Tue Oct 20, 2015 3:22 pm

Re: Neotrellis missing diode, button not working

Post by dastels »

Odd. So it's definitely not a hardware problem, then.

After looking over the Seesaw/NeoTrellis library and examples I don't see why you couldn't use the int pin. The way it works doesn't really use interrupts, it just reads the int pin as an input, and reads keys & make callbacks when int is active.

Dave

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”