UnoArduSimV1.7 README

HOST SITE: https://www.sites.google.com/site/unoardusim/home

PREFACE: 
Windows Defender HAD unfortunately been FALSELY declaring a "Trojan:Win32/Maltule.C!cl " detection in versions V1.6.1 through V1.6.3, and automatically "removed" (actually hid) the exe file, but you can still run UnoArduSim.exe if you TELL Windows Defender to ALLOW it to run. Open Windows Defender, click the "History" tab, then "All detected items", find and select the "Trojan:Win32/Maltule.C!cl" item, and then click "View Details" to see the removed UnoArduSim,exe. Now click "Allow Item" to allow it to run (you might also need to find it under "Quarantined items" from which you can "Restore" it). Please see my detailed notes about this unfortunate issue on the UnoArduSim Simulator Download page -- if you Google "windows defender false trojan detections" (and explore through the links), you will see that it has been getting false positive detections on quite a few safe applications. even some commercial software by big distributors! I have checked carefully using low-level digital tools that my posted zip files HAVE NOT BEEN HIJACKED/ALTERED since being posted, and there IS NO TROJAN in the contained exe files. I suspect Defender was detecting a byte pattern inside UnoArduSim.exe that was (accidentally) "close" enough to a byte pattern in the real Maltule.C!cl Trojan, and since UnoArduSim.exe was popping up on many machines around the world, decided to play it safe and "cried wolf". I have rewritten sections of Version 1.7.0 to hopefully avoid the byte pattern that had scared Windows Defender, and have done a manual Windows Defender scan of it, and it now accepts it. But who knows what will happen once V1.7.0 starts appearing on many machines around the world? -- the original copy of each of my earlier versions V1.6.1 - V1.6.3 on were initially also accepted as fine, but a week or two after being posted (and so being downloaded by many users), Windows Defender suddenly declared a threat and quarantined them on my very own computer! (NOTE: When I right-click on the exe file of each of those earlier versions and re-scan it now with Windows Defender, it has changed its mind and now finds it safe (which must be because of a recent Microsoft update to Defender's threat files).


INTRODUCTION to UnoArduSim:

When you first run UnoArduSim.exe, you will see a default set of I/O devices (one of each of eight of nine available "big" I/O devices, and several of each of the "small" I/O devices), and a dummy "simple.ino" default program which you can immediately run.  

You can use the Configure menu to adjust the set of I/O devices, and from the provided dialog "Save" that configuration for next time (as a named text file). That file name will be automatically added to the myArduPrefs.txt file that gets loaded at the next program startup -- to go back to the default startup configuration, delete the IODevs line in the myArduPrefs.txt file (or just delete that entire file).

When ready, you can load and try out the provided DemoProg1.ino demonstration program -- that program needs to have a particular set of I/O devices attached, so use "Configure->IO Devices" and "Load" the myUnoDevs_DemoProg1.txt file. That will load the devices (with pre-set pin connections and settings and values) that are needed by the DemoProg1.ino program. Run it to see the IO devices and program in action. Try double-clicking (or right-clicking) on the SERIAL I/O device to see an associated larger window pop up for easier monitoring/setting of RX/TX bytes/chars (SOFTSER, SPISLV, I2CSLV, and SD_DRV devices also have that popup window functionality).

Note that DemoProg1.ino has been updated since V1.5 to fix the inadequate drive on the DC motor DIR pin by adding pinMode(dirPin, OUTPUT). Without that, only the driver's internal 20K pullup was driving high, and the attached LED loading dragged down the output voltage to a level barely accepted as HIGH by the DC motor. Also note that myUnoDevs_DemoProg1.txt has been modified in V1.6 to make the PULSER's pulsewidth scalable (by adding an 'S' suffix). During execution, drag the new I/O Values Scaler slider found on the main toolbar to control the driven DC motor's speed.

You can then try out a more complex (and fun) program DemoProg2.ino that has musical playback and I/O devices moving to the music (my acknowledgment to the animated TV program, the Simpsons, for that one). This second demo program also shows that you can split your code (and included data) between multiple files for better viewing and navigation.

Finally, DemoProg3.ino demonstrates the newer 1SHOT I/O device, and generates waveforms which can be viewed in the Digital Waveforms window. Load DemoProg3.ino and then the myUnoDevs_DemoProg3.txt file. Now left-click on pins 2,3,4, and 5 in turn on the border of the Uno board -- four waveforms will be showing. Run the program to see the waveforms created by a loop() instruction repeatedly triggering the first 1SHOT device. You can manually trigger the second 1SHOT at any time by pressing and then releasing the PUSH I/O Device attached to pin 3 to cause a rising edge. You can halt the program at any point and use the blue and red cursors inside the Digital Waveforms window to measure the produced pulse widths and delays.

