Sure Electronics new 32x16 bi-color display: 3216 RG -Cont. from read only forum

Hi team, I have two Sure 3216 displays and there is no way to have them working OK.
I have tried several codes I found on the forum (and elsewhere) but there is allways something wrong with characters being displayed at the wrong position.

Can any of you tell me where can I find a simple code that works flowlessly with 2 displays?

I just want to be able to plot dots on a 32x32 matrix, no funcy graphics and/or characters, just dots!!!

Many thanks in advance for any kind of help...

Hello,

the issue with this displays is not that the code most people are using is wrong ... I got a couple of displays from a friend today and I had the same issues explained by @eslin. After reading the code and realizing there was nothing bad in it, I realized that the 74hc164 chip is sending the output from pin QD directly to CS_OUTPUT. This means there is no delay between CS_OUTPUT in one SURE display and the CS_INPUT in the next when you daisy chain the displays.

The proper way of doing this would have been if the manufacturer had used QE as the CS_OUTPUT. Once you have the display, there is actually a patch for this without cutting anything. I also realized that the capacitor C1 is not mounted on the board. Adding a 1nF capacitor there did the magic for me. It delayed the load of the CS_INPUT enough to stop the bug of happening.

/d

See the attached picture

This is what Don (a customer) said in an email regarding the same issue:
I did look at the clocking relationships on the scope.
The clock to data hold timing on the HC164 was marginal, 2ns, versus -2ns typical and 4ns minimum. Meaning it will probably work, but it's not certain. CLK, DATA and WR are buffered through 2 sections of an HC04, with a delay of 11ns, but CS_OUT is not, so with every successive board in a chain this timing degrades. They ran out of HC04 gates. Installing the 10pf capacitor at C1 might help, but it's not ideal.

Thanks David and Florinc, i'm going to try your suggested solution and will post my findings.

Cheers!

Dear David and Florinc, the missing 1nF on C1 was the problem, once I installed it as per David suggestion everything is working fine. Many thanks!

Worth to notice is the (ridiculous) message I got from Sure Electronics Customer Support when I asked them about David's suggestion:

Dear Sir,
Thank you for your purchase.
It can solve the problem by the way you said. The item has problem, we will update the version.
Have a nice day.

Best wishes,
Customer Service and Sales
Sure Electronics Co., Ltd.
East zone, 3F, Building 6

Hey all, I'm surprised to see this thread still on the first page =). I've been away, work has taken up most of my time, and I am getting laid off due to a reduction in force, but as soon as I get a new job I'll be revisiting this page, and continuing work on my bluetooth code. Florinc, thanks for the nod on your site, just noticed it today. I had issues with my circuits working 100% in the past (custom boards, had issues with usb working) but I'll be grabbing another arduino uno and working everything out again in to make sure everything works 100%. I've also been busy on another android project for a client, but when that wraps up I'll work on my github repo to update all code/examples.

Glad to see the community is still active in this thread, take care all!

I have to mention this, because I've been banging my head against this for days: The latest version(s) of this library will not work on the Arduino Leonardo! I have a Duemilanove and it works fine on that. Until the lightbulb popped up over my head and I decided to try it on the Duemilanove I was ready to pull out what little hair I have left!

Thanks very much for all the hard work put in by everyone here.

redlegoman:
I have to mention this, because I've been banging my head against this for days: The latest version(s) of this library will not work on the Arduino Leonardo! I have a Duemilanove and it works fine on that. Until the lightbulb popped up over my head and I decided to try it on the Duemilanove I was ready to pull out what little hair I have left!

Thanks very much for all the hard work put in by everyone here.

Same goes for the arduino micro, I have been trying to get it to work now, but then remembered this post about the leonardo.
Im guessing but could it be that the Leonardo and Micro has shared pins with Analog pins?

--
eslin

eslin:

redlegoman:
I have to mention this, because I've been banging my head against this for days: The latest version(s) of this library will not work on the Arduino Leonardo! I have a Duemilanove and it works fine on that. Until the lightbulb popped up over my head and I decided to try it on the Duemilanove I was ready to pull out what little hair I have left!

Thanks very much for all the hard work put in by everyone here.

Same goes for the arduino micro, I have been trying to get it to work now, but then remembered this post about the leonardo.
Im guessing but could it be that the Leonardo and Micro has shared pins with Analog pins?

--
eslin

So its about this portmanipulation.

Im trying to figure this out, but lacking super skills in c/c++ my hope is kinda low.

It's been almost a year since I've touched this library, and while I was using 3216 displays before, I am doing a new project using 2x 3208 displays. On the 3208 displays, there is a switch to indicate which CS the display is (1,2,3,4). I was wondering how you would configure the library, along with the boards, to support >1 display.

It is my understanding that you initialize the display as follows:
ht1632c ledMatrix = ht1632c(&PORTD, 7, 6, 4, 5, GEOM_32x16, 2);

this is constructed as follows: port, data pin, wr pin, clk pin, cs pin, geom, and number (number of displays)

While the 3216 displays have hex inverters to distribute the CS signal around, and there is only one CS line, am I correct in assuming that I need to hook up 2 CS lines to the Arduino, for CS1 and CS2, and if so, then how do you specify the line above for 2 displays?

Would you specify the constructor as such:

ht1632c ledMatrix = ht1632c(&PORTD, 7, 6, 4, 5, GEOM_32x8, 2)

or would it be some other method? The CS1, CS2, CS3, CS4 on the connector confuse me, and unfortunately the sample project here: http://scuola.arduino.cc/en/content/interfacing-arduino-uno-sure-electronics-led-dot-matrix-based-ht1632c-controller only shows one display, even though the sample image shows 2 3208 displays... I don't know if i still only use 1 CS line, or if I need to run 2 CS traces to the connector, and don't want to waste $ and time trying to build a controller for these just to have it done wrong :frowning:

Thanks!

@eslin and other Arduino Leonardo/Micro user

eslin:
Same goes for the arduino micro, I have been trying to get it to work now, but then remembered this post about the leonardo.
Im guessing but could it be that the Leonardo and Micro has shared pins with Analog pins?
eslin

The Leonardo and Micro have an other chip then the old Atmega368, where the port pin number aren't the same as the normal pin number, similar to Mega2560:
For configuration, ht1632c dotmatrix = ht1632c(&PORTD,7,6,3,4,GEOM_32x16,2), the PD4 is missing, you should use:
Digital Pin 6 (PWM) as PD7
Digital pin 12 as PD6
Digital pin 1 (TX) as PD3
Digital pin 4 as PD4

But I think it would be easier if working to use ht1632c dotmatrix = ht1632c(&PORTF,7,6,5,4,GEOM_32x16,2)
Analog In 0 as PF7
Analog In 1 as PF6
Analog In 2 as PF5
Analog In 3 as PF4

I hope this works.

Hello,
as there is always a need to use normal images for the matrix, I made a C# program (Visual C# 2010 Express) which imports images and where you can map the colors for using the bitmap with the matrix. Also all kind of installed fonts could be used. The program writes an Arduino sketch which could be uploaded with the Arduino IDE. Additional all functions could be first tested and the whole sketch scripted like a movie.
The sketches are based on Lonewolf's ht1632c library, GitHub - wildstray/ht1632c: HT1632C dotmatrix display library for Arduino (and AVR/ARM/PIC clones)

Feel free to download the source code from GitHub - canosso/MatrixSkripter: Use a C# programme to create Arduino Sketches for the Sure Electronics 32x16 bicolor matrix

Hi,

I am new in the forum. I have been messing with the display and this library: GitHub - gauravmm/HT1632-for-Arduino: A powerful library that allows an Arduino to interface with the popular Holtek HT1632C LED driver.

I managed to scroll some text but the scrolling doesn't look smooth like others. After a while it gives you a headache. I tried to turn off the display before showing the next scrolling line. I think it has to do with the refresh rate but I dont know how to figure it out.

Thanks.

Hi people,
I'm tryng to use this display with arduino 2650 but there is a big problem

Probably is a bug

If I write with a colour ( i.e GREEN ) One string and than I change this string but not the colour the next string doesn't appear complete: some dot are off.

If I change the colour of the second StRING all is OK

So I don't know where is the problem probably inside the code or library

I think that a full clear is need or in some ram of display or variable I don't know.

So someone knows if there is a solution ?
Could someone post or link the LATEST library and the latest sketch working ?
I've just read the old forum and the new but now I've my folder full of file but I'm not sure which is the latest or the best.

Thank you so much

Daniele

Is it possible to use this library to combined 4 16x32's to use a dimension of 32x64 for more height rather than width?

pinMode:
Is it possible to use this library to combined 4 16x32's to use a dimension of 32x64 for more height rather than width?

GitHub - wildstray/ht1632c: HT1632C dotmatrix display library for Arduino (and AVR/ARM/PIC clones)

Hello,
that's is quite easy. Change at ht1632c.cpp, line 257-258:

x_max = (32 * number) - 1;
  y_max = 15;

to

x_max = (32 * number/2) - 1;
  y_max = 31;

Hello everyone!

What better library for 32x16 matrix RG (Sure)? I tested some libs, but which one would be better?

Thanks!

I'm back, I have some free time again. Thank you very much for caring about my personal situation... unfortunately I always find occasional jobs. My absence was not due to missed payment of bills, rather I was pissed off (eg. with IT CEOs... also with Arduino staff...) after some job interviews, lost work opportunities, the consequent need to close my VAT registration, depression, etc... so I leaved the forum and Arduino development (and nearly the informatics at all...) till some time ago... I still need to work in the IT sector (indeed, to pay rent and bills) but I wish to totally change career, infact I'm studying as dog trainer (educator).

Excuse me for the really personal divagation.

About the hd1632c library, if somebody still uses it, I moved from Google Code to Github. There is a minor change to work with Arduino 1.x (tested with 1.6.1 and 1.6.2).
Moreover, having aside from long time ago a 6432 display (never used), I wrote a library for that display (based on the ht3216c library, essentally the major changes involve the io code and framebuffer addressing, eg. sendframe() ). The code of this second library is in early development stage, a (semi) working proof of concept. It works only on AVR Arduino for now. I hope in a feedback for the 6432 because my display seems to be defective (green is not working), so I cannot test the code in a decent manner.

I expect to add some fonts (copyright permitting) for both libraries, to complete and optimize (also for ARM "Arduino" and PIC32 ones) the 6432 library. I don't consider multi display with 6432 due to the lack of further displays (and money to buy it) and due to the need to use 11 pins (and 1~2 pins for every additional display) per display.
PS: About using 2+ 1632 displays, I apologize but I don't remember if there were issues. The last version of the library I'm sure were working with 2 displays. I tried also with three. Anybody tried with 4? Was it working?

lonewolf:
PS: About using 2+ 1632 displays, I apologize but I don't remember if there were issues. The last version of the library I'm sure were working with 2 displays. I tried also with three. Anybody tried with 4? Was it working?

Hi @lonewolf. Thanks for the library update! You are doing so great staff!
Looks like two 1632 displays really have issues. I can successfully display data on the first connected display, but the next one doesn't work. If I replace displays by each other, I have the same problem. I.e. both displays are not broken.
I'm trying to understand the problem by reading the library source code, but no luck yet.
Can you take a look, please?
Thanks!

PS: I had to add the following in ht1632c.h, since the error message generated by compiler: "'prog_uint16_t' has not been declared". I guess it's just a misprint.

typedef uint8_t prog_uint8_t;
typedef uint16_t prog_uint16_t;