0

[SOLVED] NeoTrellis don't work with TrellisM4 (tilled)
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

[SOLVED] NeoTrellis don't work with TrellisM4 (tilled)

by arofarn on Sun Jan 27, 2019 5:33 pm

Hi !


As said on Discord, I've made a circuitpython module to be able to extend the Trellism4 board with neotrellis (seesaw). I soldered the 2 neotrellis together and used the JST plugs on the trellisM4 and one of the tilled neotrellis for coding it. Everything worked great (but I needed to limit to 50% brightness because the 3V power line is not made for 2 boards with so many pixels).

This week-end, I soldered the boards together, but the TrellisM4 board did not found the I2D devices after that. After some checks, I have found my mistake : I've solder the boards the wrong way.
I solder the 3 boards with the silkscreen text in the same direction : the USB port of the trellisM4 and the neopixel n°1 of the board are all in the upper left corner:
20190126_143513_800.jpg
20190126_143513_800.jpg (215.37 KiB) Viewed 396 times

Screenshot_20190127_214756.png
Screenshot_20190127_214756.png (282.14 KiB) Viewed 396 times


It seems to me so obvious, I only checked the documentation of the trellisM4 too late. The pads on the edges of the trellisM4 are inverted:
Screenshot_20190127_213722.png
Screenshot_20190127_213722.png (23.83 KiB) Viewed 396 times



I unsoldered the tilled neotrellis from the trellisM4 and before resoldering, I checked with the JST cable as before. It worked with the cable (ouf !) : the trellisM4 find the I2C devices (2 neotrellis) and my test code is running.

Now I solder back the board together in the right direction and it did not work : the trellisM4 boot but it does not find the seesaw I2C devices...

I checked the voltage regulator of both neotrellis board : 4.94V between VIN and GND and 3.29V between 3V (from Vi2c pad) and GND. So that seems alive.

I fear I burned something else but everything look OK : no missing or burned/exploded components and the two test I made say that the SAMD09 and voltage regulator of the neotrellis looks OK and I can connect to the REPL of the trellisM4...

What can I check or try to find the problem (and may be solve it) ?

Edit : [SOLVED] tag
Last edited by arofarn on Thu Jan 31, 2019 4:16 pm, edited 1 time in total.

arofarn
 
Posts: 17
Joined: Sat May 28, 2016 2:51 pm

Re: NeoTrellis don't work with TrellisM4 (tilled)

by adafruit_support_mike on Mon Jan 28, 2019 5:01 am

Reversing the connections would connect VDD to SDA, so it's possible the SDA pin of one or more I2C devices has been damaged.

You'll probably have to check the signals on SDA with an oscilloscope or a logic analyzer to find out.

adafruit_support_mike
 
Posts: 58856
Joined: Thu Feb 11, 2010 2:51 pm

Re: NeoTrellis don't work with TrellisM4 (tilled)

by arofarn on Mon Jan 28, 2019 5:30 pm

Thank you for your answer.


I unsoldered one more time the trellis m4 from de tilled neotrellis. As I do not have an oscilloscope at home, I tried again to plug the JST cable to connect the I2C. It worked.

I check the continuity of the I2C on the trellis board between the JST plug and the pad on the bottom edge. I founded that the two pads on the bottom are not the same, but symmetrical. I checked (one more time) the trellis M4 diagram, and this symmetrical pads are on it.

So finally, I soldered and mounted everything together the right way. And now It works.

Here is how to do tilled one trellis m4 and 2 neotrellis (seesaw) into a square :
  • solder the 2 neotrellis together as described in the tutorial (including pad for I2C addresses as needed) : https://learn.adafruit.com/adafruit-neotrellis/tiling
  • solder the tilled neotrellis to the trellis :
    • every text on the silkscreen in the same direction = the LED N°1 of the neotrellis and the USB port up
    • among the left pads on the bottom edge of the trellis m4 : solder ONLY the center one (GND)
      tilled_trellis_left_pad.jpg
      tilled_trellis_left_pad.jpg (95.01 KiB) Viewed 371 times
    • solder every 5 pads on the right
      tilled_trellis_right_pad.jpg
      tilled_trellis_right_pad.jpg (97.74 KiB) Viewed 371 times
  • enjoy !

Video of the boards together in a new enclosure

What I learned :
  • I need to read the doc more carefully and check everything, not just half of it.
  • Things that seems to go together, don't always go together. Check the doc...

What can be improve on the trellis board:
  • add some labels over the pads on the trellis m4 pads. They would have been very helpful.
  • keep making good stuff ! I have made so many mistakes, soldering and unsoldering several time, but nothing burned and the pads stayed on the PCB :-)

arofarn
 
Posts: 17
Joined: Sat May 28, 2016 2:51 pm

Re: NeoTrellis don't work with TrellisM4 (tilled)

by adafruit_support_mike on Tue Jan 29, 2019 4:08 am

It looks like you have two different versions of the NeoTrellis. The upper one is co-branded with Digikey and Analog, while the lower one is what we currently have in the shop.

All of the side connection pads on the newer one have silkscreen markings, so hopefully that won't be a problem going forward.

Glad to hear you got things working. Happy hacking!

adafruit_support_mike
 
Posts: 58856
Joined: Thu Feb 11, 2010 2:51 pm

Re: NeoTrellis don't work with TrellisM4 (tilled)

by arofarn on Tue Jan 29, 2019 1:14 pm

It's not two version of the Neotrellis, it is one NeoTrellis M4 mainboard (the upper one, without label for the pads) and 2 NeoTrellis keypad(seesaw) (the lower ones, with labels) :-)

arofarn
 
Posts: 17
Joined: Sat May 28, 2016 2:51 pm

Re: NeoTrellis don't work with TrellisM4 (tilled)

by johnpark on Wed Jan 30, 2019 1:05 pm

Thank you so much for figuring this out and sharing it -- I'm looking forward to building one.
Here's a Fritzing diagram I put together based on your work. Does that look correct?
trellisx3.png
trellisx3.png (982.65 KiB) Viewed 345 times

johnpark
 
Posts: 535
Joined: Wed Mar 25, 2009 2:15 pm

Re: NeoTrellis don't work with TrellisM4 (tilled)

by arofarn on Thu Jan 31, 2019 12:56 pm

Correct !

If you need an enclosure, I made is one that can be lasercut :
tm4ext_lasercut_full.zip
(9.22 KiB) Downloaded 48 times

It's largely inspired by the one in the ADABOX 010.

If you want to use CircuitPython for coding, check this: https://github.com/arofarn/Adafruit_CircuitPython_NeoTrellis/tree/extended
There is a module adafruit_neotrellis/neotrellism4.py and an example code (neotrellism4_multitrellis_simpletest.py) to use the neotrellis M4 as parts of an multitrellis object.

arofarn
 
Posts: 17
Joined: Sat May 28, 2016 2:51 pm

Re: NeoTrellis don't work with TrellisM4 (tilled)

by johnpark on Thu Jan 31, 2019 1:00 pm

Wonderful! Thanks very much for the resources and work you did on this.

johnpark
 
Posts: 535
Joined: Wed Mar 25, 2009 2:15 pm

Re: [SOLVED] NeoTrellis don't work with TrellisM4 (tilled)

by okyeron on Wed Jun 12, 2019 5:36 pm

Great post! Glad I found this before I started soldering my version together.

Question - how does the addressing work when using the M4 as the "first 2 trellis boards"? (I've not yet dug into the code)

okyeron
 
Posts: 4
Joined: Fri Nov 17, 2017 1:50 pm

Re: [SOLVED] NeoTrellis don't work with TrellisM4 (tilled)

by johnpark on Wed Jun 12, 2019 6:05 pm

Hi Okyeron! Oh yeah, I forgot this post existed : ]

johnpark
 
Posts: 535
Joined: Wed Mar 25, 2009 2:15 pm

Re: [SOLVED] NeoTrellis don't work with TrellisM4 (tilled)

by arofarn on Sat Jun 15, 2019 4:51 pm

okyeron wrote:Great post! Glad I found this before I started soldering my version together.

Question - how does the addressing work when using the M4 as the "first 2 trellis boards"? (I've not yet dug into the code)


The M4 board do not have address as it's not an I2C device. You just need to create the 2 "fake" neotrellis objects for each 4X4 half-keypad and use them in the list to create the Multitrellis instance.
Code: Select all | TOGGLE FULL SIZE
from board import SCL, SDA
import busio
from adafruit_neotrellis.neotrellism4 import NeoTrellisM4
from adafruit_neotrellis.neotrellis import NeoTrellis
from adafruit_neotrellis.multitrellis import MultiTrellis

#create the i2c object for the trellis
I2C = busio.I2C(SCL, SDA)

trellim4_left = NeoTrellisM4()
trellim4_right = NeoTrellisM4(left_part=trellim4_left)
trelli = [
    [trellim4_left, trellim4_right],
    [NeoTrellis(I2C, False, addr=0x2F), NeoTrellis(I2C, False, addr=0x2E)]
    ]

trellis = MultiTrellis(trelli)


You can look at the example code in examples/neotrellism4_multitrellis_simpletest.py

arofarn
 
Posts: 17
Joined: Sat May 28, 2016 2:51 pm

Re: [SOLVED] NeoTrellis don't work with TrellisM4 (tilled)

by arofarn on Sun Jun 16, 2019 3:53 pm

About the code, I just release a new library there :
https://github.com/arofarn/NeoTrellisM4/releases

It is 99% the same code, but in a new library that can be used with adafruit_neotrellis.multitrellis .
Examples code have been updated ;-)

It's my first library. Feedback is welcome !

arofarn
 
Posts: 17
Joined: Sat May 28, 2016 2:51 pm

Re: [SOLVED] NeoTrellis don't work with TrellisM4 (tilled)

by johnpark on Wed Jun 19, 2019 11:14 am

Excellent, thanks. I'm looking forward to trying this out.

johnpark
 
Posts: 535
Joined: Wed Mar 25, 2009 2:15 pm

Re: [SOLVED] NeoTrellis don't work with TrellisM4 (tilled)

by okyeron on Sat Aug 17, 2019 10:32 pm

Finally revisiting this...

Any suggestions on how to write the multi-trellis code for Arduino instead of CircuitPython?

I'm failing so far

Code: Select all | TOGGLE FULL SIZE
//create a matrix of trellis panels
Adafruit_NeoTrellis t_array[Y_DIM/4][X_DIM/4] = {
    { Adafruit_NeoTrellisM4(), Adafruit_NeoTrellisM4() },
    { Adafruit_NeoTrellis(0x2E), Adafruit_NeoTrellis(0x2F) }
    };

//pass this matrix to the multitrellis object
Adafruit_MultiTrellis trellis((Adafruit_NeoTrellis *)t_array, Y_DIM/4, X_DIM/4);


throws a bunch of errors:
Code: Select all | TOGGLE FULL SIZE
keypad_test2:14:159: error: conversion from 'Adafruit_NeoTrellisM4' to non-scalar type 'Adafruit_NeoTrellis' requested

and
Code: Select all | TOGGLE FULL SIZE
keypad_test2:26:11: error: 'class Adafruit_MultiTrellis' has no member named 'setBrightness'
   trellis.setBrightness(80);

okyeron
 
Posts: 4
Joined: Fri Nov 17, 2017 1:50 pm

Re: [SOLVED] NeoTrellis don't work with TrellisM4 (tilled)

by johnpark on Sun Aug 18, 2019 2:41 am

I'm getting the same errors doing a similar test. Will dig a bit deeper to see if we have any existing method of using extra NeoTrellis boards w NeoTrellis M4 in Arduino.

johnpark
 
Posts: 535
Joined: Wed Mar 25, 2009 2:15 pm

Please be positive and constructive with your questions and comments.