Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 22:19 03 May 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : 8x8 Matrix LED Display Fun

     Page 2 of 3    
Author Message
Justplayin

Guru

Joined: 31/01/2014
Location: United States
Posts: 326
Posted: 08:32am 18 Sep 2015
Copy link to clipboard 
Print this post

  bigmik said  My problem is I have torn a hamstring and am in agony most of the day and struggling to walk so it may have to wait a week or so, although I am keen to get it working..


OUCH!!!! I hear that is REALLY painful! I hope you recover quickly.


I purchase a set of these modules and these.

When I first received the FC-16 modules I had no idea which way to assemble them, so I took two modules and soldered connectors on with one each way. I found the module with the 7219 facing the matrix LED worked.

So you can start playing with your modules, without modifying them, I have emailed you a copy of my first version of the message scroller and clock. It is brute force first attempt and is lacking comments, but it will scroll a message. With only 4 modules the clock will not display properly.

--Curtis


I am not a Mad Scientist...  It makes me happy inventing new ways to take over the world!!
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2944
Posted: 05:27pm 18 Sep 2015
Copy link to clipboard 
Print this post

Hi Curtis,

I also bought 5 of THESE but they havent yet arrived,

I see I can get the exact same module as yours for $2.30AUS each already built (about $1 less than the kits above) but it doesnt mean a lot at these prices.. I remember having to pay about 50c each for a standard LED nearly 40 years ago and I paid about $10 for my first BLUE LED and because it cost me so much I was never game to use it so it sat and gathered so much dust that I now don't even now if I still have it.

I cant wait to get a MuP powered `message board' going .. Might even use a NanoMite

Regards,

Mick


Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2944
Posted: 05:32pm 18 Sep 2015
Copy link to clipboard 
Print this post

Hi Curtis,

  Justplayin said   OUCH!!!! I hear that is REALLY painful! I hope you recover quickly.


Thanks, And YES!! It is really painful and there wont be any quick recovery about it... been 5 days now and I am still struggling with a crutch and lots of teeth gritting...

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
Justplayin

Guru

Joined: 31/01/2014
Location: United States
Posts: 326
Posted: 08:25pm 18 Sep 2015
Copy link to clipboard 
Print this post

  bigmik said  I cant wait to get a MuP powered `message board' going .. Might even use a NanoMite


Element 14 had some 3.3V modem modules with TTL interfaces on sale, so I purchased a couple. I'm thinking of using one to build a Matrix Clock that scrolls Caller-ID info when the phone rings. First thing I need though is a nice enclosure for one of these projects.

--Curtis
I am not a Mad Scientist...  It makes me happy inventing new ways to take over the world!!
 
Justplayin

Guru

Joined: 31/01/2014
Location: United States
Posts: 326
Posted: 09:35am 19 Sep 2015
Copy link to clipboard 
Print this post

I am 99% done with my Halloween project. Just need to affix the MicroMite board to the back of the tombstone.





This the video of the Halloween Decoration. The program can be downloaded from Here.




First off, I am not a animator and do not use or know the proper terminology. Second, this program is not eleqant in its approach, it is animation by brute force.

A few notes:

-WARNING!!!!! Large amounts of DATA statements (animation steps) take a LONG time to load. My animation sequence is made up of 119 characters and 932 animation steps. On a Micromite 170 it takes almost 5 minutes before the animation starts displaying.

- When looking at the front of the LEDs, Left eye refers to the LED matrix on your Left and Right eye refers to the LED module on your right. (verses looking at another person... Their left eye is on your right)

- Data is always be sent to both modules at the same time, so... The left and right eyes are both programmed together. If you want one eye to stay fixed while the other is animated, simply repeat the last settings for that eye while changing the values for the other. If you wish to pause the animation for both eyes simply use the pause setting for that step.

- To help reduce the amount of data required for the pupils, I created individual character for each step going from left to right on the bottom and have a animation setting to offset it vertically. I don't think the 150/170 Micromite is fast enough to work out offsets in both the X and Y axis's. (of course I haven't tried both yet)

- Do not try to move a pupil up out of the bounds of the LED module. An incorrect offset value will not work and will probably cause the LED matrix to go crazy and require a re-initialization. There is no error checking done for ANY data you input.

- When doing a blink sequence, the pupils must be centered for pupils that are more than 2 dots high. I only created a set of characters of partial pupils in the centered position. For pupils of 1 or 2 dots high you can take advantage of the eye and pupil are ORed together When the eyelid crosses the pupil and simply remove the pupil completely on the next step.

- There are 9 setting for each animation step:
Left Eye shape
Left Eye Pupil
Left Pupil y position
Left Eye brightness
Right Eye shape
Right Eye Pupil
Right Pupil y position
Right Eye brightness
Pause (use to slow down or stop animation)

It's not as complicated as it appears. Since each step normally only has small changes from the previous step you can copy, paste and edit a sequence fairly quickly. That is why you will notice I use 2 or 3 digits when a single digit would do. Keeping the columns even helps with making quick block changes.

Have fun!
--Curtis

-Edit - added image
Edited by Justplayin 2015-09-20
I am not a Mad Scientist...  It makes me happy inventing new ways to take over the world!!
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2944
Posted: 03:10pm 19 Sep 2015
Copy link to clipboard 
Print this post

I do NOT have to say how cool that looks Curtis..

And not a CFunction in sight (that I can see)..

My only suggestion might be some translucent grey cloth over the panels or maybe make some square(ish) glasses to go over the edges of the panels to hide the squareness a bit.

Of course at night time no one could see anyway,..

I have to applaud vigorously..



I only wish I wasnt too old to learn better coding skills.

Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
jman

Guru

Joined: 12/06/2011
Location: New Zealand
Posts: 711
Posted: 06:12pm 19 Sep 2015
Copy link to clipboard 
Print this post

Hi Curtis

Thank you for sharing you cool project.
I was thinking (now there's a miracle) that most of the
EBay RTC's have an EEprom on board so why not use it.

So here is a version of your clock that use's an EEprom for the
font data

2015-09-20_040714_MatrixClock.zip

Included in the zip file is a program to write the fonts to an EEprom
Of course you just need to do this once.

The advantage is speed the clock now starts really quickly. I also
managed to reduce the arrays and read the fonts only when required

Regards
Jman
 
Justplayin

Guru

Joined: 31/01/2014
Location: United States
Posts: 326
Posted: 07:12pm 19 Sep 2015
Copy link to clipboard 
Print this post

@bigmik - It really looks much better in real life. The over head light makes the cut through the brow ridge stand out. I did try covering the LEDs woth a light weight black fabric, but I didn't like how it darkened the displays. I haven't decided if I should try covering them with a charcoal pantyhose.

@jman - Thanks for the modifications. I did take note of the EEprom on my clock module but opted not to use it for two reasons:

#1) I didn't know how. On my list of things to try. Thanks again for the code, It will make it easier to understand since it directly relates to what I'm doing.

#2) The program really is a generic demo and I wanted to avoid other hardware requirements. The only reason I left the RTC code in was because my Mites lose about 2 minitues a day on their own.

For next Halloween... I'm thinking I need a nice big FRAM module to hold the animations. Then again, I will probably just switch to a 470-Mite with a SD card.

--Curtis
I am not a Mad Scientist...  It makes me happy inventing new ways to take over the world!!
 
jman

Guru

Joined: 12/06/2011
Location: New Zealand
Posts: 711
Posted: 09:22pm 20 Sep 2015
Copy link to clipboard 
Print this post

  Justplayin said  
I'm thinking I need a nice big FRAM module to hold the animations.


So I couldn't resist I just happened to have a big FRAM



Now that's pretty quick :)

Regards
Jman
2015-09-21_072212_Ani.zip
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 10:31pm 20 Sep 2015
Copy link to clipboard 
Print this post

JMan, that looks interesting.
But this is loading the data from FRAM to RAM
Could you try to skip that step and run the animation directly from FRAM?
This would allow for long/many animations.
What kind of FRAM are you using (i2c/spi)


Microblocks. Build with logic.
 
jman

Guru

Joined: 12/06/2011
Location: New Zealand
Posts: 711
Posted: 10:42pm 20 Sep 2015
Copy link to clipboard 
Print this post

  TZAdvantage said   JMan, that looks interesting.
But this is loading the data from FRAM to RAM
Could you try to skip that step and run the animation directly from FRAM?
This would allow for long/many animations.
What kind of FRAM are you using (i2c/spi)



Yip this one loads from the FRAM to RAM. The clock version runs from
EEProm directly.
The FRAM is I2C with a real time clock :)

I just did it for a quick test I will leave to Curtis do a new version that
runs from FRAM

Jman
 
Justplayin

Guru

Joined: 31/01/2014
Location: United States
Posts: 326
Posted: 06:10am 21 Sep 2015
Copy link to clipboard 
Print this post

jman, that is really great! But it leaves me with one big question that has been bothering me... Why does it take so long to read the data using regular READ/DATA statements? It seem like that should be very fast compared to connecting to an external device and reading the values.


--Curtis
I am not a Mad Scientist...  It makes me happy inventing new ways to take over the world!!
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 06:49am 21 Sep 2015
Copy link to clipboard 
Print this post

Curtis,

I tried to change your code by just loading the arrays directly but ran into memory problems.
I think the data reading is not optimized. This is a known problem in other basics from the 80's. In some cases moving the data statements to the top increased the speed. Here however it did not make much difference.
One thing to notice is that it get increasingly slower when getting closer to the end.
This suggests that the data statements are not 'indexed' and searching for the next data to read takes longer and longer.
Might be good to report this to Geoff as data statements are often only used for little blocks of data and not as much as you need here.
There are several optimizations you could try but those make reading the data a bit more difficult. You could however use the loop that reads the data to output code that you can copy and paste into your program replacing the data.
For instance leaving out all the leading zeros will save a lot of storage space.
For the animation data you could combine the first 8 values into a 8 character long string. This would increase the reading of the data almost 8 times as well.
So instead of Eyes(xxx,9) you use Eyes(xxx) as string * 8 and EyesDuration(xxx)

Microblocks. Build with logic.
 
Justplayin

Guru

Joined: 31/01/2014
Location: United States
Posts: 326
Posted: 07:19am 21 Sep 2015
Copy link to clipboard 
Print this post

Yep, there is a lot of wasted space in those Data statements which is in there for the human convenience. I should write a little routine to Read the write out new Data statements with at least the superfluous leading zeros removed.

I was mulling the idea of writing a program to help create the animations. Pick the options to build the animation frame and press a key to generate the data and save it. That would allow me to explore saving the data in a less human friendly format.

I just need more free to pursue this hobby! I'm thinking of switching to metric time so I have more time per day.

--Curtis
I am not a Mad Scientist...  It makes me happy inventing new ways to take over the world!!
 
Canada_Cold
Regular Member

Joined: 11/01/2020
Location: Canada
Posts: 41
Posted: 03:14pm 06 May 2020
Copy link to clipboard 
Print this post

Hi,

I’m new to this forum and to the Micromite.   I first saw Micromite (the 28 pin version) in a series of articles in the British publication EPE.  I am trying to run the Clock pgm in this post from Justplayin, but getting an error message that I don’t understand.

However first I would like to thank Geoff Graham for creating this great programming environment and for making it available to us hobbyists.  I have created a couple of small projects around the Micromite 28 pin version and using the LCD Backpack.   I look forward to working with the Micromite Plus on the EXP 64 board next.  I think the concept of a fully operational processor in a single chip including the MMBasic you have created is GREAT!  I can’t thank you enough for making this available.

Regarding the issue I am having I have loaded Justplayin’s original pgm into a Micromite 28 pin that is running Micromite MKII MMBasic Ver 5.05.02.  When I run the pgm I get the following error message.

[283] Pause govenor(dc) 'a variable delay so all digits scroll evenly
Error: Index out of bounds

I spent some time debugging the issue (Error: Index out of bounds) and found that if I just commented it out, the pgm would run.  The statement is just a pause and does not seem to effect the operation of the clock function.  However if anyone can give me some insight to what is causing the error msg, I would much appreciate it.

Thanks, Don
 
Justplayin

Guru

Joined: 31/01/2014
Location: United States
Posts: 326
Posted: 08:29pm 06 May 2020
Copy link to clipboard 
Print this post

I was afraid someone would ask a question about some old piece of code I once wrote. It all looks like gibberish to me now!

Unfortunately, due health and personal issues I have not played with Micromites in several years.  Translation, I don't no how well the program works with newer firmware.  I do suspect that the array is not dimensioned.  The program losing on this forum split to DIM statement leaving the govenor(6) on a separate line.

The govenor is not required, it simply masks the slow down when more digits scroll at once.

I will put together a test rig and take a closer look. It may take a day or two though.

--Curtis
I am not a Mad Scientist...  It makes me happy inventing new ways to take over the world!!
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3299
Posted: 11:36pm 06 May 2020
Copy link to clipboard 
Print this post

  Canada_Cold said  ... [283] Pause govenor(dc) 'a variable delay so all digits scroll evenly
Error: Index out of bounds


At the beginning of your code, insert "OPTION BASE 1"

The variable "govenor" is defined "govenor(6)" and used in a "For i = 1 To 6" loop. Without ""OPTION BASE 1", the base index is assumed to be 0; the highest one dimensioned with be "govenor(5)", and govenor(6) will be out of bounds. (Untested)

(By the way, if you're looking for a powerful and inexpensive MMBasic platform, check out the Armmite F4 based on the STM32F407VET6:
MM F4
Armmite F4
)

(Cold in this part of Canada (NS) as well, and the black flies just came out today.)

(And welcome to the forum.)
.
Edited 2020-05-07 09:49 by lizby
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
Canada_Cold
Regular Member

Joined: 11/01/2020
Location: Canada
Posts: 41
Posted: 01:57am 07 May 2020
Copy link to clipboard 
Print this post

Hi Curtis,

I had a feeling this might be just a compatibility issue newer firmware and I’ll check into that.   I understand if you haven’t been involved with the micromite for some time and that’s ok.  Your program still works GREAT even without the governor statement.  I have the clock up and running on my workbench, and I think the scrolling digits how they shift up and down is perfect.

Thanks, Don
 
Justplayin

Guru

Joined: 31/01/2014
Location: United States
Posts: 326
Posted: 04:33am 07 May 2020
Copy link to clipboard 
Print this post

I'm glad you like the program. After five years, I often sit back and watch the clock digits scrolling up and down.

I believe lizby "OPTION BASE 1" suggestion should fix the problem.  I'm still going to setup a test Mite to check the latest firmware.  Plus, I have a newer version of the program which uses a GPS module for the time, displays the temperature from a 18B20 and does Daylight Saving Time adjustments.  Also it has a CFunction to improve sending data out the SPI port. The code just needs some cleanup.  

--Curtis
I am not a Mad Scientist...  It makes me happy inventing new ways to take over the world!!
 
Canada_Cold
Regular Member

Joined: 11/01/2020
Location: Canada
Posts: 41
Posted: 08:05pm 07 May 2020
Copy link to clipboard 
Print this post

Hi Lizby,

I add the "OPTION BASE 1" at the top of the pgm, however it did not correct the issue.  I'll continue doing some testing.  I'm new to the Micromite programming and this is a great way to get familiar with the MMBaisc language.

The Armmite F4 looks like a very nice platform too.  Will need to look at that more in the future.

It's cold here in Ont and will be much colder on the weekend.  We don't get black flies, too close to Toronto but I hear they can be nasty.
 
     Page 2 of 3    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025