How much do I love you all?  (No,

How much do I love you all? (No, not enough to push the 2.1 branch to master, don’t be silly).

I’ve just pushed the initial SmartMatrix support to the 2.1 branch along with an example. You can use the SmartMatrix example with the stock SmartMatrix library from here https://github.com/pixelmatix/SmartMatrix ) - although it won’t show off the moving ball.

If you want to see the moving ball, and or you want higher frame rates, you can grab my modified version of the SmartMatrix library (not yet ready to submit a pull request for it) here - https://github.com/focalintent/SmartMatrix/tree/fasterled

Many thanks to @Louis_Beaudoin for providing @Mark_Kriegsman and I with boards which enabled me to quickly add in this support.

Also - supporting SmartMatrix gave me a chance to play with something i’ve been wanting to for a while - writing lightweight shim LEDControllers to interface with other LED libraries out there. You may see more of those, soon :slight_smile:

I wanted to play with this, so I downloaded the 2.1 branch, and your version of SmartMatrix… and it doesn’t compile.
pastebin of the error: http://pastebin.com/zUZkcwaV

And this is with the SmartMatrix example sketch included.

In file included from C:\Users\Twyst\Documents\Arduino\libraries\FastLED/…/FastLED/FastLED.h:26:0,
from C:\Arduino\libraries\SmartMatrix/SmartMatrix.h:34,
from SmartMatrix.ino:1:

You still have someone else’s version of the smart matrix library installed, as neither the original version nor my version of the SmartMatrix library include FastLED.h

Ahah, that was it. Forgot to clear out the extra libraries when I copied over an arduino install. Thanks. :smiley:

Well, I have got some definite weirdness going on.

I have a simple digital clock routine set up, using the RTC. I changed it to use the pSmartMatrix pointer, and, well… it looks screwed up.

Here’s the code: http://pastebin.com/PCsT6sYW

What it should look like is white numbers in the middle of a black rounded rectangle, with the background being white, and red from the middle down.

Instead, it looks like this: http://imgur.com/5mf9JFQ

It almost looks like the display is being treated like a 16x32 display, and copying the top half to the bottom.

Repull - there was a bug that my other tests wasn’t showing off - I’ve fixed the SmartMatrix code.

awesome! works like a charm!

Are these panels quite affordable and easy to use?

They can be. I got mine from Adafruit for $40, so I’m sure they can be found elsewhere for cheaper. Example: http://www.aliexpress.com/wholesale?SearchText=RGB+P6+module&catId=0&initiative_id=SB_20140806224857

I’m having a problem and I don’t know why. When I try and use your SmartMatrix library, for example with @Noel_Bundy 's matrix clock code, I get these errors (for lines 27, 28,29)

SmartMatrix/MatrixConfiguration.cpp:27: error: expected primary-expression before ‘.’ token

Where did I go wrong? (No, not in life, just in Arduino!).

@Mike_Thornbury - what version of the arduino build environment are you using, and what are you building for? Note that this device is teensy only, I suspect the libraries won’t even build for arduino/avr/due.

That’s what I found - it’s for a 328-based Arduino - Pro Mini and Nano.

Bummer ;(

What do you expect? The Teensy 3.1 is a 48-96Mhz 32-bit arm core processor that has a DMA engine to push SPI data out in the background and the 328 based arduino is a 16Mhz, 8 bit processor that can barely tie its own shoelaces :slight_smile:

(This is actually part of the reason why I took out all the MCU-side PWM managed chipsets, the HL1606, *595 shift register, and LPD6803, when I re-wrote the library, I was tired of burning the CPU cycles to manage PWM).

Of course, with what I"ve learned about the availability/pricing of Cortext M0 systems that run rings around the atmel AVR chips while, in some cases, being even cheaper … it is unlikely that any of my personal projects will ever be AVR based again once I go through the controllers I have lying around here.

Daniel - I’m of the same opinion. Having used a Teensy 3.1 for this project, I can’t justify paying more for an arduino that just doesn’t have the same oomph.

the problem for those of us outside the US is that Teensy just doesn’t exist - unless you pay usurious amounts to import them.

I just bought 30 Arduino Nano’s for $3.40 each, including shipping. I appreciate that the Teensy is technically superior, but in my maker space, the Nano does everything I ask of it.

I will do some digging for M0-based boards - At heart I am a Unix geek, so something small and fast that uses Unix would warm my heart. The Raspberry Pi, even the B+ is becoming too expensive to buy here - by the time shipping, etc. is factored in…

There’s an 8pin M0 I’m looking at that’s about the same price as the attiny85 - lower power usage but performance wise blows it out of the water.

The avr just doesn’t have the clock cycles to drive the smart matrix at a decent frame rate (forget memory - 32x32 board is 1024 LEDs, that’s at least 3k just for rgb led data, and because of the background data pushing it has to do to drive the matrix’s PWM it actually needs at least two copies of the data.

Sadly, I’m unlikely to put much effort into the Linux based systems anytime soon - I need too much control of the system and Linux doesn’t give that. The beaglebone’s pru is interesting to me, though.

actually, I somewhat take that back - it might be possible for me to get a decently performing driver on AVR - but memory is still the problematic part - so it’d really need to be a mega. Also, you might end up spending 60-80% of the CPU time pushing data to the matrix just to get a decent refresh rate. Finally, you’d need some extra hardware to do the switching between the high 16 rows and low 16 rows. I need to think about this some more.

Found the thread… @Daniel_Garcia I just bought a couple of these - think they are going to work?

http://leaflabs.com/docs/hardware/maple-mini.html

Not with the smart matrix library as written (every ARM manufacturer uses different registers/interfaces for things like GPIO, SPI, and DMA configuration/usage). For that matter, not with FastLED at the moment, either.

The STM32 (the arm chip in the maple mini) is on my list of platforms to support, as it is also the chip in the rfduino and sparkcore systems.

So not totally a waste, then. I will try and chuck some sort of unix on it and see what I can do with it… thanks :slight_smile: