## Step 52: Software: Mode Selection and Random Seed

When we first started writing effects and debugging them, we noticed that the functions using random numbers displayed the exact same animations every time. It was random alright, but the same random sequence every time. Turns out the random number generator in the ATmega needs to be seeded with a random number to create true random numbers.

We wrote a small function called bootwait(). This function serves two purposes.

1) Create a random seed. 2) Listen for button presses to select mode of operation.

It does the following:

1) Set counter x to 0.

2) Start an infinite loop, while(1).

3) Increment counter x by one.

4) Use x as a random seed.

5) Delay for a while and set red status led on.

6) Check for button presses. If the main button is pressed, the function returns 1. If the PGM button is pressed it returnes 2. The return statements exits the function thus ending the infinite loop.

7) Delay again and set green led on.

8) Check for button presses again.

9) Loop forever until a button is pressed.

The loop loops very fast, so the probability that you will stop it at the same value of x two times in a row is very remote. This is a very simple but effective way to get a good random seed.

Bootwait() is called from the main() function and its return value assigned to the variable i.

If i == 1, the main loop starts a loop that displays effects generated by the ATmega. If i == 2, it enters into RS232 mode and waits for data from a computer.

hex file ???????????
<p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/7XtjsIys6w0" width="500"></iframe></p><p>RGB CUBE </p><p> <iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/Pe7EmXuinjQ" width="500"></iframe></p>
hi nezinau<br>file hex for pcb u send emil me tanx<br> Dark_gory@yahoo.com
<p>Beautiful PCs. Could you share the PCB files for etching?</p>
<p>PCB</p>
hi<br>please file hex for pcb u send me email <br>dark_gory@yahoo.com<br>tanx
<p><strong>Best And Easy Way To Make Led Cube 8x8x8</strong></p><p><a href="http://www.tricksandhacks.com/make-led-cube-8x8x8/" rel="nofollow">http://www.tricksandhacks.com/make-led-cube-8x8x8/</a></p>
<p>hello all of you, I have an idea to replace 16 BJT by ULN2803, it would save up for your area, and it works very tot.Toi did 2 cube leds and it all works fine however, I did not design the RS232 connection on my circuit. and here are some pictures about it:</p>
<p>Nice homebrew PCB, can you share PCB files?</p>
<p><iframe allowfullscreen="" frameborder="0" height="400" src="https://www.youtube.com/embed/4gNiDprbUPc" width="600"></iframe></p>
<p>can u help me to make the cube<br>can u send me some photos<br>and the list of things used to make the cube</p>
<p>Hi I see you got the cube working.</p><p>I have everything soldered together meaning all parts are on the PCB board, and all LEDs are connected in a 8x8 MATRIX and inserted into the PCB. I am not sure how to proceed with the final steps. Which side goes into the PCB board and which gets soldered to the RED wires in the diagram. </p><p>One version of the Welding guide contradicts the other. One shows the MATRIX going along the X-Axis (PICTURE #4, which is what I have), and the other shows the each MATRIX going along the Y axis (PICTURE #5).</p><p>Here are some images of what I have so far.</p><p>Now I have two options</p><p>1. Bend the NEGATIVE on the right side of each 8x8 MATRIX, and solder them together, then connect each ROW with the board.</p><p>2. or, follow the fourth image and switch all MATRICES to follow the Y-AXIS on the PCB</p>
<p>And in case it matters I have THIS cube kit from GikFun3D 8x8x8 CUBE with the blue PCB #11129F71578</p>
<p>đẹp lắm thanh ni&ecirc;n. m&agrave; cậu c&oacute; t&agrave;i liệu về led xoay n&agrave;o c&oacute; thể l&agrave;m được kh&ocirc;ng vậy. m&igrave;nh đang l&agrave;m m&agrave; n&oacute; kh&ocirc;ng chạy mới khổ. đang l&agrave;m đồ &aacute;n :D</p>
<p>send me pls PCB documentery sunayyildiz1989@gmail.com</p>
Circuit diagrams<br>Or kits details me <br>Also thes programmes code
<p>cho mình sin file hex của bạn với</p>
<p>You can use even less space using SMT 2N2222 type transistors. My board will take either.</p>
<p>Great idea!</p>
<p>Thanks. Most components on the board allow for SMT or through-hole.</p>
<p>hi sir, can you send me the circuit and diagram.</p><p>my mail qdat1202@gmail.com</p>
<p>Can you please kindly send me the circuit and diagram.</p><p>MAy mail add<br>isurutharanga019@gmail.com</p>
Can you please kindly send me the circuit and diagram.
<p>The circuit diagrams for this project are in this instructable.</p>
<p>Neat.</p>
<p>Hello DongP1, <br>Can you share a more clear schematic how did you used the ULN2803 and explain what changes have you done to the code ?</p><p>Thanks</p>
<p>OK you, I'm very fun when help you. You can use Proteus to open file schematic and PCB, and i did fixed code. all in here:<br>https://drive.google.com/file/d/0BzXbfPpoHKV5eWQxU1VQODZhTTA/view?usp=sharing<br>when you use atmega32 you must set fuse for it. <br></p><p>and when you solder PCB solder you should note carefully and did not miss any legs, as this is the second circuit face, you can also book for someone trained to do it to ensure circuit reliability. And my final non-electric circuits become restricts motherboard area, it absolutely does not affect the led. And can not forget that it is a 5V supply. Wish success. I look forward to seeing your circuit here.</p><p></p><p>Inside the downloaded folder: principle diagram, schematic print, inside a simulated 3d opened by Proteus, the revised code with external hex file, inside the code can edit custom and standard you, use WINAVR (recommended recommended). and images to set the fuse for ATmega32.</p>
<p>Hi!!<br>Do you know hoe to flash the EEPROM of Arduino just like we do in normal non-arduino boards..<br>i.e. we flash .eep file directly into the micro controller.. do you know any similar or equivalant thing in Arduino...?</p>
<p>I sorry you, because I do not use Arduino, so I did not go through the difficulties you face, but you can read more online material on its use. I can only help you in terms of hardware. Good luck. I believe you will succeed! : D</p>
Your led cube <br>Whitch kits using<br>
<p>Hello, </p><p>Now I got it. The idea to use the ULN2803 is to avoid using transistors correct ?<br>What do you mean that I need to set the fuse for the ATMEGA32 ?<br>I will be using arduino board, either Nano or mega. </p><p>Thanks for your reply </p><p>Jose </p>
You don't need changes in code
<p>Sorry for answers will tell you now, when using ULN2803 then your program absolutely nothing changes, we simply optimized hardware only. Good luck! soon see your results here. : D</p>
<p>Cho e xin sơ đồ mạch in đc ko ạ</p>
<p>Hi DongP1, I am so like the Cube and I want to make it and give to my girl friend as a big surprise. Can you send all schematics ,programs and other files to me . Thans so much.</p><p>My e-mail address: dongliang.ma@matrixopto.com </p>
<p>Hey guy, if i use STK500 device to set up for atmega32 then plug it to the board , so, can i remove RS232 and AVR Isp?</p>
<p>sir, i have successfully made my cube, now the problem is with the code... im using arduino uno and the code given in this article i.e for arduino user is working fine for me... but other codes which are used for AVR is not compatible with aduino ? does coding for both arduino uno and AVR are different ?</p><p>i got a error as &quot;compilation terminated </p><p> exist status 1</p><p> error compiling &quot;</p><p>if there is solution for this plz post . </p><p>and the code in the link which u gave is compatible with arduino uno ? </p><p> Thanks :)</p>
<p>You likely need an older, or possibly a newer copy of the IDE.</p>
<p>sir presently im using latest version of IDE i.e 1.6.7</p><p>can i know the the exact version of IDE ??</p><p>and sir how can i make others codes compatible with IDE?</p><p>Thanks :)</p>
mail me.. 233himanshu@gmail.com
This is here. https://drive.google.com/file/d/0BzXbfPpoHKV5eWQxU1VQODZhTTA/view?usp=sharing and don't need chager in program .
<p>Hi Phamd4 , thank you so much. I have another question, I can not open the CUBE schematic and pcb files with Protues Desing Suite 8.0 , my computer is Win 7 system. whether the version of the Protues is not matching? Can you help me .</p>
<p>hello everyone, I have an idea to replace 16 BJT layers by ULN2803, it will save your area, and it works very well I did 2 LED cube and all activities well however, I did not design the RS232 connection on my circuit.</p>
<p>My last 8x8x8 cube</p><p>animations is in *.dat format and it played from microSD card</p>
Hi,<br>Please can you guide me to make the rgb cube? i have 12 weeks from now to end it<br>Email me: rahimabdenasser@gmail.com
<p><br>Hi. I have saved the .SCH files and downloaded several programs which are supposed to open these files - both failed. </p><p><br>Can someone please let me know of a program that will open the .SCH files?<br><br>As I am hoping to expand my electronic work, I don't even mind buying a decent piece of well-programmed software as opposed to freeware - but I would appreciate some advice on a program that actually WORKS?<br><br>If you have some good advice, can you check your software works to open the above files?<br><br>Thanks guys. </p>