As always, feedback on these is much appreciate - especially if you have extra tips and tricks to share.
Well done! Rather than having to read through numerous discussions and opinions, you’ve summed it up very well. This kind of doc is what will accelerate the adoption of the EI platform by those with less experience. I ended up using a Flora for a fun project due to a bit of uncertainty with neopixels on the EI. After reading your article, I would likely have used a C3V0 (it’s a battery powered project), albeit at a somewhat higher cost.
A slight edit suggestion–the paragraph above the 6 pixel strip that begins with “However the line of…” may have an error in the fourth sentence that reads, “Instead the ordered of data in the frame provides the addressing…”. I believe it should read “Instead, the order of …”. FWIW.
How about this kind of documentation to help those of us who are somewhat intimidated by the prospect of developing an iOS BlinkUp app for the production side of things. I’ve become less dependent upon the IDE logs by posting more data to GroveStreams. The move to the production platform is more palatable without that dependency.
At the moment, all i2c.write() calls error with -2. I’ve tried lowering the clock rate, switching the power source to 5V (from 3V3), playing with the address, etc. No matter what I do I can’t raise the driver
Excellent documentation. Well done.
Just a suggestion for inclusion in character LCD display display doc… there is a 3.3V serial enabled LCD display from sparkfun which should work with imp too… for those who want easy life coding to get text on an LCD display via UART, https://www.sparkfun.com/products/9067
@asm. Not sure what to suggest other than double-check you’re passing the correct data sheet I2C address - or that you’ve changed the address using the pads on the back of the display if you have another I2C device that may also be set to 0x70.
Also, the 8x8 matrix you’re using is unusual in that it’s actually an 8 x 16 matrix - ie. two columns for every row: one red, one green. My class is fixed for 8 x 8, so you’ll need to do some re-writing to accommodate the ‘extra’ pixels (two pixels per LED on the grid).
@smittytone hrm, I just have one device on the bus (I tried both of the Imp’s buses). I haven’t bridged any of the address pads so the address should be 0x70.
I can’t even get the device to respond to the “device on” command so it’s not a pixel issue.
Do you remember if you powered the matrix with 5V or 3V? The spec sheet indicates a 4V min but things seem to indicate it works with 3V. Did you swap the pull-ups (they appear to be 10K)?
@smittytone sorry to bother you. My issue ended up being a bad jumper wire. Sigh. I’ve fixed it now and will send you a PR for the bicolor matrix in the next day or so
No problem, @asm. I’m glad you got it working. As I say, the class I wrote was intended for Adafruit’s single-colour 8x8 matrix, so you may still need to modify the code a little. I powered - still power; it’s mounted on the wall at home - the matrix with 3V3 from the imp, and the pull-ups remain untouched.