Archive | Engineering RSS feed for this section

Conditional IF Operation with Logic Parameters

To evaluate the function and purpose of an IF statement, a true or false, or comparative operation is performed for external circuit hardware to act upon conditions or an input of some type. In this case, as a trim potentiometer control is rotated, an output voltage level changes between 0 and 5VDC at an input pin connected to the control. This pin is using an analogRead to get the changing voltage value present at the control within the circuit to perform new functions elsewhere within the Arduino UNO unit.

In this case, as the voltage level changes within the 0 to 5VDC scale, the level value is calculated within the Arduino code and displayed out onto the Arduino serial monitor. Moreover, that value is then compared to an argument, such as a maximum or minimum level, to illuminate an LED or turn it off again. The LED simply represents a circuit functions that could otherwise be something else such as a relay, actuator, solenoid, or another analog or digital function.

Hardware Setup:

Wiring of the potentiometer with LED at two separate GPIO Ports for independent control using Arduino code.
Added setup illustration to indicate connectivity.
LED indicator only illuminate when conditional statements are true. As a test condition, code checks for scaled voltage present at GPIO pin and turns on or off LED accordingly.

Code Setup:

int myPin=A2;
int readVal;
int redPin=9;
float V2;
int dt=500;

void setup()
{
Serial.begin(9600);
pinMode(myPin,INPUT);
pinMode(redPin,OUTPUT);
}

void loop()
{

readVal=analogRead(myPin);
V2=(5./1023.)*readVal;
Serial.print(“Potentiometer Voltage is “);
Serial.println(V2);

if (V2>2 && V2<3) // && –> Logical AND Operation
{
digitalWrite(redPin,HIGH);
} if (V2<2 || V2>3) // || –> Logical OR Operation
{
digitalWrite(redPin,LOW);
}


delay(dt);
}

The IF statement parameters that serve as an evaluation condition, could be simple less-than, or greater than, logic, equal-to (==), not equal-to (!=), and others by a constant or variable assignment. In this case, V2 is the value in memory that is checked while changes are made at the potentiometer controller to determine if an operating condition is true. Specifically, if the control voltage is between 2 and 3VDC, illuminate the LED. If the voltage is not between 2 and 3VDC, then turn the LED off.

Arduino IDE:

Code set up in the Arduino IDE (Sketch).
Continously scrolled voltage values presented as potentiometer wiper is rotated. To demonstrate the voltage scale and range as a function of analogRead operation.

Further Project Details: -Paul McWhorter

Jetson Nano Headless Setup and Operation

As a matter of convenience, it is better to operate the Jetson Nano without a dedicated keyboard, mouse, and monitor. The ability to log into Jetson without a concern of external connectivity is a capability necessary for the ease of development associate with program development involving AI related libraries and navigation through Linux without Ubuntu inhibiting matters.

To get connected to the Jetson, it is necessary to download, install, and configure a PuTTY for SSH client utility to get access. It is necessary to get the IP address of the Jetson on the local network through the ifconfig command prior to changing over to the headless setup.

Set Up of PuTTY Utility For Headless Login

Once connected and authenticated, a prompt follows to confirm headless access over WiFi or CAT-5/6.

Login Confirmation Prompt

To run a Python program, the nano editor program remotePy.py file is written to include simple code as given in this example.

Experimental Test Python Program Using Nano Editor

With all prior updates and the installation of Nano, the program execution of python3 remotePy.py returns the “Remote Operation Successful” message to indicate success.

Execution of Python Program to Confirm Operation

Voltage Control with analogRead Operation

With the use of a potentiometer (trim-pot), it is possible to control a voltage level presented to an external circuit from a reference supply voltage connected to an Arduino unit. Through the use of a trim-pot, a supply voltage scales up or down between 0V and the supply voltage (5VDC) by continuous rotation of its control shaft or wiper.

The three pins or leads of a potentiometer are connection points to a supply or circuit elements for purposes of voltage and signal control. Two outer leads are each end of the potentiometer’s total resistive element. The center pin serves as a connection for a wiper that internally travels between each outer point. As a potentiometer shaft or wiper is rotated, the resistance at the center point provides for a change in voltage level at that wiper connection. Where the resistance is the total between two points as given by the symbolic illustration below. Connections made between pins 1 and 2 or pins 2 and 3 are therefore always lower in resistance than connections made between pins 1 and 3. As the wiper shaft is rotated between pins 1 and 3, the resistance, therefore, changes between either of the two pins 1 or 3. So any voltage present across either pair of pins will become scaled to either the highest or lowest voltage. Since according to ohm’s law, resistance is directly proportional to voltage, the higher the resistance between two pins, the greater the voltage becomes present between those two points.

As a side matter of interest, it is necessary to recognize that the taper of the potentiometer affects the rate by which resistance or voltage changes as a wiper control is rotated. So, both linear or log continuously variable potentiometers or trim-pots are available to affect the rate in which control changes can occur. Potentiometers are also at times detented or non-detented depending upon what is selected. Detented pots are clicked into each rotated position as a control wiper is moved from one position to the next as it is rotated. More information about the theory and operation of potentiometers can be found here.

Schematic Symbol of Potentiometer
3D Rendering of Trim Pot Potentiometer

A demonstration of voltage control is demonstrated in the video below. As the wiper is rotated, the voltage level presented at the center pin of the trim pot is changed within the limits of 0VDC to the maximum voltage (5VDC). In this instance, an LED is connected to the wiper pin and its illumination level is increased or decreased as a function of voltage level.


To build the circuit and operate the control, simple connections are made between an Arduino UNO and its external components as depicted below. The purpose of the Arduino is to provide the source voltage and connections for voltage level readout using the analogRead command.

Hardware Setup:

Simple Connectivity of LED to Potentiometer / Trim Pot
Circuit Set Up of Arduino and Trim Pot for Voltage Readout and LED Illumination

The code set up involves the configuration as written about previously in a prior post. The setups involve the three areas of interest to include variable declarations by datatype, system communication rate (9600 BAUD) between a host computer, and the Arduino’s serial monitor via the Sketch IDE. Finally, the operating code provides the instructions and commands by which operations are performed.

Code Setup:

int myVoltPin=A2;
int readVal;
float V2;
int delayT=250;

void setup()
{
Serial.begin(9600);
}

void loop()
{
readVal=analogRead(myVoltPin);
V2=(5./1023.)*readVal;
Serial.println(V2);
delay(delayT);
}

Arduino IDE:

Code set up in the Arduino IDE (Sketch).
Continuously scrolled voltage values presented as potentiometer wiper is rotated. To demonstrate the voltage scale and range as a function of analogRead operation.

Further Project Details: -Paul McWhorter

Common Linux for Jetson Nano AI

The range of standard Linux commands to control and operate a Jetson Nano is listed here to serve as a reference in support of projects unique to simple AI applications. Further below is a comprehensive listing of all Linux commands if that should become of interest.

Basic

COMMANDDESCRIPTION
^C
(Ctrl-C)
Escape python (2.X) code environment
^d
(Ctrl-D)
Escape python (3.X) code environment
catUsed to concatenate files and print them on the screen.
cdChange Directory
cd ..Change Directory Up One Level
cd /Change Directory to Root Level
cd ~Change to Home Directory
cpCopy contents of one file to another
clearClear Screen
lsList Files in Current Directory
mvMove/rename files or directories
pwdReturn Current Path and Directory
apt-getCommand-line utility to install/remove/update packages based on APT system.
installUsed to copy files to specified locations and set attributions during the install process.
mkdirMake or create a directory.
sudoExecute a command as superuser.
nanoRun nano text editor.
removeRemove a program by sudo apt-get command.
rmRemove or delete a file.
rm -rRecursively remove directory and all of its contents.
rmdirRemove or delete a directory.

Advanced

COMMANDDESCRIPTION
>Commands set to a file with a file name.
>>Append (not overwrite) written contents of a directory as names into a file.
sortSorts to screen into alphabetical order the contents inside of a file.
sort -rSorts to screen into reverse (descending) order the contents inside of a file.
sort -mSorts to screen into date order the contents inside of a file.
find ~ -name "[filename]"Locate file and display to screen.
|Sends (pipes) operand object to another place.
|sortSorts files or directory for display onto a screen.
Example: ls |sort or ls |sort -r in reverse order
|teeSplits display or file contents to separate display or file contents.
grepFinds the contents of a file to display on a screen (case sensitive).
grep -iFinds the contents of a file to display on a screen (not case sensitive).
grep -r [contents] ~Finds recursively contents of a file from anywhere to display on a screen.

Comprehensive

Linux Commands – A
CommandDescription
acceptAccept or Reject jobs to a destination, such as a printer.
accessCheck a user’s RWX permission for a file.
aclocalGNU autoconf too
aconnectALSA sequencer connection manager.
acpiShow information about the Advanced Configuration and Power Interface.
acpi_availableCheck if ACPI functionality exists on the system.
acpidInforms user-space programs about ACPI events.
addr2lineUsed to convert addresses into file names and line numbers.
addressesFormats for internet mail addresses.
agettyAn alternative Linux Getty
aliasCreate an alias for Linux commands
alsactlAccess advanced controls for ALSA soundcard driver.
amidiPerform read/write operation for ALSA RawMIDI ports.
amixerAccess CLI-based mixer for ALSA soundcard driver.
anacronUsed to run commands periodically.
aplaySound recorder and player for CLI.
aplaymidiCLI utility used to play MIDI files.
apmShow Advanced Power Management (APM) hardware info on older systems.
apmdUsed to handle events reported by APM BIOS drivers.
aproposShows the list of all man pages containing a specific keyword
aptAdvanced Package Tool, a package management system for Debian and derivatives.
apt-getCommand-line utility to install/remove/update packages based on APT system.
aptitudeAnother utility to add/remove/upgrade packages based on the APT system.
arA utility to create/modify/extract from archives.
archDisplay print machine hardware name.
arecordJust like aplay, it’s a sound recorder and player for ALSA soundcard driver.
arecordmidiRecord standard MIDI files.
arpUsed to make changes to the system’s ARP cache
asA portable GNU assembler.
aspellAn interactive spell checker utility.
atUsed to schedule command execution at specified date & time, reading commands from an input file.
atdUsed to execute jobs queued by the at command.
atqList a user’s pending jobs for the at command.
atrmDelete jobs queued by the at command.
audiosendUsed to send an audio recording as an email.
aumixAn audio mixer utility.
autoconfGenerate configuration scripts from a TEMPLATE-FILE and send the output to standard output.
autoheaderCreate a template header for configure.
automakeCreates GNU standards-compliant Makefiles from template files
autoreconfUpdate generated configuration files.
autoscanGenerate a preliminary configure.in
autoupdateUpdate a configure.in file to newer autoconf.
awkUsed to find and replace text in a file(s).
Linux Commands – B
CommandDescription
badblocks Search a disk partition for bad sectors.
banner Used to print characters as a poster.
basename Used to display filenames with directoy or suffix.
bash GNU Bourne-Again Shell.
batch Used to run commands entered on a standard input.
bc Access the GNU bc calculator utility.
bg Send processes to the background.
biff Notify about incoming mail and sender’s name on a system running comsat server.
bind Used to attach a name to a socket.
bison A GNU parser generator, compatible with yacc.
break Used to exit from a loop (eg: for, while, select).
builtin Used to run shell builtin commands, make custom functions for commands extending their functionality.
bzcmp Used to call the cmp program for bzip2 compressed files.
bzdiff Used to call the diff program for bzip2 compressed files.
bzgrep Used to call grep for bzip2 compressed files.
bzip2 A block-sorting file compressor used to shrink given files.
bzless Used to apply ‘less’ (show info one page at a time) to bzip2 compressed files.
bzmore Used to apply ‘more’ (an inferior version of less) to bzip2 compressed files.
Linux Commands – C
CommandDescription
cal Show calendar.
cardctl Used to control PCMCIA sockets and select configuration schemes.
cardmgr Keeps an eye on the added/removes sockets for PCMCIA devices.
case Execute a command conditionally by matching a pattern.
catUsed to concatenate files and print them on the screen.
cc GNU C and C++ compiler.
cd Used to change directory.
cdda2wav Used to rip a CD-ROM and make WAV file.
cdparanoia Record audio from CD more reliably using data-verification algorithms.
cdrdao Used to write all the content specified to a file to a CD all at once.
cdrecord Used to record data or audio compact discs.
cfdisk Show or change the disk partition table.
chage Used to change user password information.
chattr Used to change file attributes.
chdir Used to change active working directory.
chfn Used to change real user name and information.
chgrp Used to change group ownership for file.
chkconfig Manage execution of runlevel services.
chmod Change access permission for a file(s).
chown Change the owner or group for a file.
chpasswd Update password in a batch.
chroot Run a command with root privileges.
chrt Alter process attributed in real-time.
chsh Switch login shell.
chvt Change foreground virtual terminal.
cksum Perform a CRC checksum for files.
clear Used to clear the terminal window.
cmp Compare two files (byte by byte).
col Filter reverse (and half-reverse) line feeds from the input.
colcrt Filter nroff output for CRT previewing.
colrm Remove columns from the lines of a file.
column A utility that formats its input into columns.
comm Used to compare two sorted files line by line.
command Used to execute a command with arguments ignoring shell function named command.
compress Used to compress one or more file(s) and replacing the originals ones.
continue Resume the next iteration of a loop.
cp Copy contents of one file to another.
cpio Copy files from and to archives.
cpp GNU C language processor.
cron A daemon to execute scheduled commands.
crond Same work as cron.
crontab Manage crontab files (containing schedules commands) for users.
csplit Split a file into sections on the basis of context lines.
ctags Make a list of functions and macro names defined in a programming source file.
cupsd A scheduler for CUPS.
curlUsed to transfer data from or to a server using supported protocols.
cut Used to remove sections from each line of a file(s).
cvs Concurrent Versions System. Used to track file versions, allow storage/retrieval of previous versions, and enables multiple users to work on the same file.
Linux Commands – D
CommandDescription
date Show system date and time.
dc Desk calculator utility.
dd Used to convert and copy a file, create disk clone, write disk headers, etc.
ddrescue Used to recover data from a crashed partition.
deallocvt Deallocates kernel memory for unused virtual consoles.
debugfs File system debugger for ext2/ext3/ext4
declare Used to declare variables and assign attributes.
depmod Generate modules.dep and map files.
devdump Interactively displays the contents of device or file system ISO.
df Show disk usage.
diff Used to compare files line by line.
diff3 Compare three files line by line.
dig Domain Information Groper, a DNS lookup utility.
dir List the contents of a directory.
dircolors Set colors for ‘ls’ by altering the LS_COLORS environment variable.
dirname Display pathname after removing the last slash and characters thereafter.
dirs Show the list of remembered directories.
disable Restrict access to a printer.
dlpsh Interactive Desktop Link Protocol (DLP) shell for PalmOS.
dmesg Examine and control the kernel ring buffer.
dnsdomainname Show the DNS domain name of the system.
dnssec-keygen Generate encrypted Secure DNS keys for a given domain name.
dnssec-makekeyset Produce domain key set from one or more DNS security keys generated by dnssec-keygen.
dnssec-signkey Sign a secure DNS keyset with key signatures specified in the list of key-identifiers.
dnssec-signzone Sign a secure DNS zonefile with the signatures in the specified list of key-identifiers.
doexec Used to run an executable with an arbitrary argv list provided.
domainname Show or set the name of current NIS (Network Information Services) domain.
dosfsck Check and repair MS-DOS file systems.
du Show disk usage summary for a file(s).
dump Backup utility for ext2/ext3 file systems.
dumpe2fs Dump ext2/ext3/ext4 file systems.
dumpkeys Show information about the keyboard driver’s current translation tables.
Linux Commands – E
CommandDesription
e2fsck Used to check ext2/ext3/ext4 file systems.
e2image Store important ext2/ext3/ext4 filesystem metadata to a file.
e2label Show or change the label on an ext2/ext3/ext4 filesystem.
echo Send input string(s) to standard output i.e. display text on the screen.
ed GNU Ed – a line-oriented text editor.
edquota Used to edit filesystem quotas using a text editor, such as vi.
egrep Search and display text matching a pattern.
eject Eject removable media.
elvtune Used to set latency in the elevator algorithm used to schedule I/O activities for specified block devices.
emacsEmacs text editor command line utility.
enable Used to enable/disable shell builtin commands.
env Run a command in a modified environment. Show/set/delete environment variables.
envsubst Substitute environment variable values in shell format strings.
esd Start the Enlightenment Sound Daemon (EsounD or esd). Enables multiple applications to access the same audio device simultaneously.
esd-configManage EsounD configuration.
esdcat Use EsounD to send audio data from a specified file.
esdctl EsounD control program.
esddsp Used to reroute non-esd audio data to esd and control all the audio using esd.
esdmon Used to copy the sound being sent to a device. Also, send it to a secondary device.
esdplay Use EsounD system to play a file.
esdrec Use EsounD to record audio to a specified file.
esdsample Sample audio using esd.
etags Used to create a list of functions and macros from a programming source file. These etags are used by emacs. For vi, use ctags.
ethtool Used to query and control network driver and hardware settings.
eval Used to evaluate multiple commands or arguments are once.
ex Interactive command
exec An interactive line-based text editor.
exit Exit from the terminal.
expand Convert tabs into spaces in a given file and show the output.
expect An extension to the Tcl script, it’s used to automate interaction with other applications based on their expected output.
export Used to set an environment variable.
expr Evaluate expressions and display them on standard output.
Linux Commands – F
CommandDescription
factor Display prime factors of specified integer numbers.
FALSE Do nothing, unsuccessfully. Exit with a status code indicating failure.
fc-cache Make font information cache after scanning the directories.
fc-list Show the list of available fonts.
fdformat Do a low-level format on a floppy disk.
fdisk Make changes to the disk partition table.
fetchmail Fetch mail from mail servers and forward it to the local mail delivery system.
fg Used to send a job to the foreground.
fgconsole Display the number of the current virtual console.
fgrep Display lines from a file(s) that match a specified string. A variant of grep.
file Determine file type for a file.
find Do a file search in a directory hierarchy.
finger Display user data including the information listed in .plan and .project in each user’s home directory.
fingerd Provides a network interface for the finger program.
flex Generate programs that perform pattern-matching on text.
fmt Used to convert text to a specified width by filling lines and removing new lines, displaying the output.
fold Wrap input line to fit in a specified width.
for Expand words and run commands for each one in the resultant list.
formail Used to filter standard input into mailbox format.
format Used to format disks.
free Show free and used system memory.
fsck Check and repair a Linux file system
ftp File transfer protocol user interface.
ftpd FTP server process.
function Used to define function macros.
fuser Find and kill a process accessing a file.
Linux Commands – G
CommandDescription
g++ Run the g++ compiler.
gawk Used for pattern scanning and language processing. A GNU implementation of AWK language.
gcc A C and C++ compiler by GNU.
gdb A utility to debug programs and know about where it crashes.
getent Shows entries from Name Service Switch Libraries for specified keys.
getkeycodes Displays the kernel scancode-to-keycode mapping table.
getopts A utility to parse positional parameters.
gpasswd Allows an administrator to change group passwords.
gpg Enables encryption and signing services as per the OpenPGP standard.
gpgsplit Used to split an OpenPGP message into packets.
gpgv Used to verify OpenPGP signatures.
gpm It enables cut and paste functionality and a mouse server for the Linux console.
gprof Shows call graph profile data.
grep Searches input files for a given pattern and displays the relevant lines.
groff Serves as the front-end of the groff document formatting system.
groffer Displays groff files and man pages.
groupadd Used to add a new user group.
groupdel Used to remove a user group.
groupmod Used to modify a group definition.
groups Show the group(s) to which a user belongs.
grpck Verifies the integrity of group files.
grpconv Creates a gshadow file from a group or an already existing gshadow.
gs Invokes Ghostscript, and interpreter and previewer for Adobe’s PostScript and PDF languages.
gunzip A utility to compress/expand files.
gzexe Used compress executable files in place and have them automatically uncompress and run at a later stage.
gzip Same as gzip.
Linux Commands – H
CommandDescription
halt Command used to half the machine.
hash Shows the path for the commands executed in the shell.
hdparm Show/configure parameters for SATA/IDE devices.
head Shows first 10 lines from each specified file.
help Display’s help for a built-in command.
hexdump Shows specified file output in hexadecimal, octal, decimal, or ASCII format.
history Shows the command history.
host A utility to perform DNS lookups.
hostid Shows host’s numeric ID in hexadecimal format.
hostname Display/set the hostname of the system.
htdigest Manage the user authentication file used by the Apache web server.
htop An interactive process viewer for the command line.
hwclock Show or configure the system’s hardware clock.
Linux Commands – I
CommandDescription
iconv Convert text file from one encoding to another.
id Show user and group information for a specified user.
if Execute a command conditionally.
ifconfig Used to configure network interfaces.
ifdown Stops a network interface.
ifup Starts a network interface.
imapd An IMAP (Interactive Mail Access Protocol) server daemon.
import Capture an X server screen and saves it as an image.
inetd Extended internet services daemon, it starts the programs that provide internet services.
info Used to read the documentation in Info format.
init Systemd system and service manager.
insmod A program that inserts a module into the Linux kernel.
installUsed to copy files to specified locations and set attributions during the install process.
iostat Shows statistics for CPU, I/O devices, partitions, network filesystems.
ip Display/manipulate routing, devices, policy, routing and tunnels.
ipcrm Used to remove System V interprocess communication (IPC) objects and associated data structures.
ipcs Show information on IPC facilities for which calling process has read access.
iptables Administration tool for IPv4 packet filtering and NAT.
iptables-restore Used to restore IP tables from data specified in the input or a file.
iptables-save Used to dump IP table contents to standard output.
isodump A utility that shows the content iso9660 images to verify the integrity of directory contents.
isoinfo A utility to perform directory like listings of iso9660 images.
isosize Show the length of an iso9660 filesystem contained in a specified file.
isovfy Verifies the integrity of an iso9660 image.
ispell A CLI-based spell-check utility.
Linux Commands – J
CommandDescription
jobs Show the list of active jobs and their status.
join For each pair of input lines, join them using a command field and display on standard output.
Linux Commands – K
CommandDescription
kbd_mode Set a keyboard mode. Without arguments, shows the current keyboard mode.
kbdrate Reset keyboard repeat rate and delay time.
kill Send a kill (termination) signal to one more processes.
killall Kills a process(es) running a specified command.
killall5 A SystemV killall command. Kills all the processes excluding the ones which it depends on.
klogd Control and prioritize the kernel messages to be displayed on the console, and log them through syslogd.
kudzu Used to detect new and enhanced hardware by comparing it with existing database. Only for RHEL and derivates.
Linux Commands – L
CommandDescription
last Shows a list of recent logins on the system by fetching data from /var/log/wtmp file.
lastb Shows the list of bad login attempts by fetching data from /var/log/btmp file.
lastlog Displays information about the most recent login of all users or a specified user.
ld The Unix linker, it combines archives and object files. It then puts them into one output file, resolving external references.
ldconfig Configure dynamic linker run-time bindings.
ldd Shows shared object dependencies.
less Displays contents of a file one page at a time. It’s advanced than more command.
lesskey Used to specify key bindings for less command.
let Used to perform integer artithmetic on shell variables.
lftp An FTP utility with extra features.
lftpget Uses lftop to retrieve HTTP, FTP, and other protocol URLs supported by lftp.
link Create links between two files. Similar to ln command.
ln Create links between files. Links can be hard (two names for the same file) or soft (a shortcut of the first file).
loadkeys Load keyboard translation tables.
local Used to create function variables.
locale Shows information about current or all locales.
locate Used to find files by their name.
lockfile Create semaphore file(s) which can be used to limit access to a file.
logger Make entries in the system log.
login Create a new session on the system.
logname Shows the login name of the current user.
logout Performs the logout operation by making changes to the utmp and wtmp files.
logrotate Used for automatic rotation, compression, removal, and mailing of system log files.
look Shows any lines in a file containing a given string in the beginning.
losetup Set up and control loop devices.
lpadmin Used to configure printer and class queues provided by CUPS (Common UNIX Printing System).
lpc Line printer control program, it provides limited control over CUPS printer and class queues.
lpinfo Shows the list of avaiable devices and drivers known to the CUPS server.
lpmove Move on or more printing jobs to a new destination.
lpq Shows current print queue status for a specified printer.
lpr Used to submit files for printing.
lprint Used to print a file.
lprintd Used to abort a print job.
lprintq List the print queue.
lprm Cancel print jobs.
lpstat Displays status information about current classes, jobs, and printers.
ls Shows the list of files in the current directory.
lsattr Shows file attributes on a Linux ext2 file system.
lsblk Lists information about all available or the specified block devices.
lsmod Show the status of modules in the Linux kernel.
lsof List open files.
lspci List all PCI devices.
lsusb List USB devices.
Linux Commands – M
CommandDescription
m4 Macro processor.
mail Utility to compose, receive, send, forward, and reply to emails.
mailq Shows to list all emails queued for delivery (sendmail queue).
mailstats Shows current mail statistics.
mailto Used to send mail with multimedia content in MIME format.
make Utility to maintain groups of programs, recompile them if needed.
makedbm Creates an NIS (Network Information Services) database map.
makemap Creates database maps used by the keyed map lookups in sendmail.
man Shows manual pages for Linux commands.
manpath Determine search path for manual pages.
mattrib Used to change MS-DOS file attribute flags.
mbadblocks Checks MD-DOS filesystems for bad blocks.
mcat Dump raw disk image.
mcd Used to change MS-DOS directory.
mcopy Used to copy MS-DOS files from or to Unix.
md5sum Used to check MD5 checksum for a file.
mdel, mdeltree Used to delete MS-DOS file. mdeltree recursively deletes MS-DOS directory and its contents.
mdir Used to display an MS-DOS directory.
mdu Used to display the amount of space occupied by an MS-DOS directory.
merge Three-way file merge. Includes all changes from file2 and file3 to file1.
mesg Allow/disallow osends to sedn write messages to your terminal.
metamailFor sending and showing rich text or multimedia email using MIME typing metadata.
metasend  An interface for sending non-text mail.
mformat Used to add an MS-DOS filesystem to a low-level formatted floppy disk.
mimencode Translate to/from MIME multimedia mail encoding formats.
minfo Display parameters of an MS-DOS filesystem.
mkdir Used to create directories.
mkdosfs Used to create an MS-DOS filesystem under Linux.
mke2fs Used create an ext2/ext3/ext4 filesystem.
mkfifo Used to create named pipes (FIFOs) with the given names.
mkfs Used to build a Linux filesystem on a hard disk partition.
mkfs.ext3 Same as mke2fs, create an ext3 Linux filesystem.
mkisofs Used to create an ISO9660/JOLIET/HFS hybrid filesystem.
mklost+found Create a lost+found directory on a mounted ext2 filesystem.
mkmanifest Makes a list of file names and their DOS 8.3 equivalent.
mknod Create a FIFO, block (buffered) special file, character (unbuffered) special file with the specified name.
mkraid Used to setup RAID device arrays.
mkswap Set up a Linux swap area.
mktemp Create a temporary file or directory.
mlabel Make an MD-DOS volume label.
mmd Make an MS-DOS subdirectory.
mmount Mount an MS-DOS disk.
mmove Move or rename an MS-DOS file or subdirectory.
mmv Mass move and rename files.
modinfo Show information about a Linux kernel module.
modprobe Add or remove modules from the Linux kernel.
more Display content of a file page-by-page.
most Browse or page through a text file.
mount Mount a filesystem.
mountd NFS mount daemon.
mpartition Partition an MS-DOS disk.
mpg123 Command-line mp3 player.
mpg321 Similar to mpg123.
mrd Remove an MS-DOS subdirectory.
mren Rename an existing MS-DOS file.
mshowfat Show FTA clusters allocated to a file.
mt Control magnetic tape drive operation.
mtools Utilities to access MS-DOS disks.
mtoolstest Tests and displays the mtools configuration files.
mtr A network diagnostic tool.
mtype Display contents of an MS-DOS file.
mv Move/rename files or directories.
mzip Change protection mode and eject disk on Zip/Jaz drive.
Linux Commands – N
CommandDescription
named Internet domain name server.
nameiFollow a pathname until a terminal point is found.
nameifName network interfaces based on MAC addresses.
ncNetcat utility. Arbitrary TCP and UDP connections and listens.
netstatShow network information.
newaliasesRebuilds mail alias database.
newgrpLog-in to a new group.
newusersUpdate/create new users in batch.
nfsdSpecial filesystem for controlling Linux NFS server.
nfsstatList NFS statistics.
niceRun a program with modified scheduling priority.
nlShow numbered line while displaying the contents of a file.
nmList symbols from object files.
nohup Run a command immune to hangups.
notify-send A program to send desktop notifications.
nslookup Used performs DNS queries. Read this article for more info.
nsupdate Dynamic DNS update utility.
Linux Commands – O
CommandDescription
objcopy Copy and translate object files.
objdump Display information from object files.
od Dump files in octal and other formats.
op Operator access, allows system administrators to grant users access to certain root operations that require superuser privileges.
open Open a file using its default application.
openvt Start a program on a new virtual terminal (VT).
Linux Commands – P
CommandDescription
passwd Change user password.
paste Merge lines of files. Write to standard output, TAB-separated lines consisting of sqentially correspnding lines from each file.
patch Apply a patchfile (containing differences listing by diff program) to an original file.
pathchk Check if file names are valid or portable.
perl Perl 5 language interpreter.
pgrep List process IDs matching the specified criteria among all the running processes.
pidof Find process ID of a running program.
ping Send ICMP ECHO_REQUEST to network hosts.
pinky Lightweight finger.
pkill Send kill signal to processes based on name and other attributes.
pmap Report memory map of a process.
popd Removes directory on the head of the directory stack and takes you to the new directory on the head.
portmap Converts RPC program numbers to IP port numbers.
poweroff Shuts down the machine.
pppd Point-to-point protocol daemon.
pr Convert (column or paginate) text files for printing.
praliases Prints the current system mail aliases.
printcap Printer capability database.
printenv Show values of all or specified environment variables.
printf Show arguments formatted according to a specified format.
ps Report a snapshot of the current processes.
ptx Produce a permuted index of file contents.
pushdAppends a given directory name to the head of the stack and then cd to the given directory.
pvMonitor the progress of data through a pipe.
pwckVerify integrity of password files.
pwconvCreates shadow from passwd and an optionally existing shadow.
pwdShow current directory.
pythonRun Python 2.X instance.
Linux Commands – Q
CommandDescription
quota Shows disk usage, and space limits for a user or group. Without arguments, only shows user quotas.
quotacheck Used to scan a file system for disk usage.
quotactl Make changes to disk quotas.
quotaoff Enable enforcement of filesystem quotas.
quotaon Disable enforcement of filesystem quotas.
quotastats Shows the report of quota system statistics gathered from the kernel.
Linux Commands – R
CommandDescription
raidstart Start/stop RAID devices.
ram RAM disk device used to access the RAM disk in raw mode.
ramsize Show usage information for the RAM disk.
ranlib Generate index to the contents of an archive and store it in the archive.
rar Create and manage RAR file in Linux.
rarpd Respond to Reverse Address Resolution Protocol (RARP) requests.
rcp Remote copy command to copy files between remote computers.
rdate Set system date and time by fetching information from a remote machine.
rdev Set or query RAM disk size, image root device, or video mode.
rdist Remote file distribution client, maintains identical file copies over multiple hosts.
rdistd Start the rdist server.
read Read from a file descriptor.
readarray Read lines from a file into an array variable.
readcd Read/write compact disks.
readelf Shows information about ELF (Executable and Linkable fomrat) files.
readlink Display value of a symbolic link or canonical file name.
readonly Mark functions and variables as read-only.
reboot Restart the machine.
reject Accept/reject print jobs sent to a specified destination.
remsync Synchronize remote files over email.
rename Rename one or more files.
renice Change priority of active processes.
repquota Report disk usage and quotas for a specified filesystem.
reset Reinitialize the terminal.
resize2fs Used to resize ext2/ext3/ext4 file systems.
restore Restore files from a backup created using dump.
return Exit a shell function.
rev Show contents of a file, reversing the order of characters in every line.
rexec Remote execution client for exec server.
rexecd Remote execution server.
richtext View “richtext” on an ASCII terminal.
rlogin Used to connect a local host system with a remote host.
rlogind Acts as the server for rlogin. It facilitates remote login, and authentication based on privileged port numbers from trusted hosts.
rm Removes specified files and directories (not by default).
rmail Handle remote mail received via uucp.
rmdir Used to remove empty directories.
rmmod A program to remove modules from Linux kernel.
rndc Name server control utility. Send command to a BIND DNS server over a TCP connection.
rootflags Show/set flags for the kernel image.
route Show/change IP routing table.
routed A daemon, invoked at boot time, to manage internet routing tables.
rpcgen An RPC protocol compiler. Parse a file written in the RPC language.
rpcinfo Shows RPC information. Makes an RPC call to an RPC server and reports the findings.
rpm A package manager for linux distributions. Originally developed for RedHat Linux.
rsh Remote shell. Connects to a specified host and executes commands.
rshd A daemon that acts as a server for rsh and rcp commands.
rsync A versitile to for copying files remotely and locally.
runlevel Shows previous and current SysV runlevel.
rup Remote status display. Shows current system status for all or specified hosts on the local network.
ruptime Shows uptime and login details of the machines on the local network.
rusers Shows the list of the users logged-in to the host or on all machines on the local network.
rusersd The rsuerd daemon acts as a server that responds to the queries from rsuers command.
rwall Sends messages to all users on the local network.
rwho Reports who is logged-in to the hosts on the local network.
rwhod Acts as a server for rwho and ruptime commands.
Linux Commands – S
CommandDescription
sane-find-scanner Find SCSI and USB scanner and determine their device files.
scanadf Retrieve multiple images from a scanner equipped with an automatic document feeder (ADF).
scanimage Read images from image acquisition devices (scanner or camera) and display on standard output in PNM (Portable aNyMap) format.
scp Copy files between hosts on a network securely using SSH.
screen A window manager that enables multiple pseudo-terminals with the help of ANSI/VT100 terminal emulation.
script Used to make a typescript of everything displayed on the screen during a terminal session.
sdiff Shows two files side-by-side and highlights the differences.
sed Stream editor for filtering and transforming text (from a file or a pipe input).
select Synchronous I/O multiplexing.
sendmail It’s a mail router or an MTA (Mail Transfer Agent). sendmail support can send a mail to one or more recepients using necessary protocols.
sensors Shows the current readings of all sensor chips.
seq Displays an incremental sequence of numbers from first to last.
set Used to manipulate shell variables and functions.
setfdprm Sets floppy disk parameters as provided by the user.
setkeycodes Load kernel scancode-to-keycode mapping table entries.
setleds Show/change LED light settings of the keyboard.
setmetamode Define keyboard meta key handling. Without arguments, shows current meta key mode.
setquota Set disk quotas for users and groups.
setsid Run a program in a new session.
setterm Set terminal attributes.
sftp Secure File Transfer program.
sh Command interpreter (shell) utility.
sha1sum Compute and check 160-bit SHA1 checksum to verify file integrity.
shift Shift positional parameters.
shopt Shell options.
showkey Examines codes sent by the keyboard displays them in printable form.
showmount Shows information about NFS server mount on the host.
shred Overwrite a file to hide its content (optionally delete it), making it harder to recover it.
shutdown Power-off the machine.
size Lists section size and the total size of a specified file.
skill Send a signal to processes.
slabtop Show kernel slab cache information in real-time.
slattach Attack a network interface to a serial line.
sleep Suspend execution for a specified amount of time (in seconds).
slocate Display matches by searching filename databases. Takes ownership and file permission into consideration.
snice Reset priority for processes.
sort Sort lines of text files.
source Run commands from a specified file.
split Split a file into pieces of fixed size.
ss Display socket statistics, similar to netstat.
ssh An SSH client for logging in to a remote machine. It provides encrypted communication between the hosts.
ssh-add Adds private key identities to the authentication agent.
ssh-agent It holds private keys used for public key authentication.
ssh-keygen It generates, manages, converts authentication keys for ssh.
ssh-keyscan Gather ssh public keys.
sshd Server for the ssh program.
stat Display file or filesystem status.
statd A daemon that listens for reboot notifications from other hosts, and manages the list of hosts to be notified when the local system reboots.
strace Trace system calls and signals.
strfile Create a random access file for storing strings.
strings Search a specified file and prints any printable strings with at least four characters and followed by an unprintable character.
strip Discard symbols from object files.
stty Change and print terminal line settings.
su Change user ID or become superuser.
sudo Execute a command as superuser.
sum Checksum and count the block in a file.
suspend Suspend the execution of the current shell.
swapoff Disable devices for paging and swapping.
swapon Enable devices for paging and swapping.
symlink Create a symbolic link to a file.
sync Synchronize cached writes to persistent storage.
sysctl Configure kernel parameters at runtime.
sysklogd Linux system logging utilities. Provides syslogd and klogd functionalities.
syslogd Read and log system messages to the system console and log files.
Linux Commands – T
CommandDescription
tac Concatenate and print files in reverse order. Opposite of cat command.
tail Show the last 10 lines of each specified file(s).
tailf Follow the growth of a log file. (Deprecated command)
talk A two-way screen-oriented communication utility that allows two user to exchange messages simulateneously.
talkd A remote user communication server for talk.
tar GNU version of the tar archiving utility. Used to store and extract multiple files from a single archive.
taskset Set/retrieve a process’s CPU affinity.
tcpd Access control utility for internet services.
tcpdump Dump traffic on network. Displays a description of the contents of packets on a network interface that match the boolean expression.
tcpslice Extract pieces of tcpdump files or merge them.
tee Read from standard input and write to standard output and files.
telinit Change SysV runlevel.
telnet Telnet protocol user interface. Used to interact with another host using telnet.
telnetd A server for the telnet protocol.
test Check file type and compare values.
tftp User interface to the internet TFTP (Trivial File Transfer Protocol).
tftpd TFTP server.
time Run programs and summarize system resource usage.
timeout Execute a command with a time limit.
times Shows accumulated user and system times for the shell and it’s child processes.
tload Shows a graph of the current system load average to the specified tty.
tmpwatch Recursively remove files and directories which haven’t been accessed for the specified period of time.
top Displays real-time view of processes running on the system.
touch Change file access and modification times.
tput Modify terminal-dependent capabilities, color, etc.
tr Translate, squeeze, or delete characters from standard input and display on standard output.
tracepath Traces path to a network host discovering MTU (Maximum Transmission Unit) along this path.
traceroute Traces the route taken by the packets to reach the network host.
trap Trap function responds to hardware signals. It defines and creates handlers to run when the shell receives signals.
troff The troff processor of the groff text formatting system.
TRUE Exit with a status code indicating success.
tset Initialize terminal.
tsort Perform topological sort.
tty Display the filename of the terminal connected to standard input.
tune2fs Adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems.
tunelp Set various parameters for the line printer devices.
type Write a description for a command type.
Linux Commands – U
CommandDescription
ul Underline text.
ulimit Get and set user limits for the calling process.
umask Set file mode creation mask.
umount Unmount specified file systems.
unalias Remove alias definitions for specified alias names.
uname Show system information.
uncompressUncompress the files compressed with the compress command.
unexpand Convert spaces to tabs for a specified file.
unicode_start Put keyboard and console in Unicode mode.
unicode_stop Revert keyboard and console from Unicode mode.
uniq Report or omit repeating lines.
units Convert units from one scalar to another.
unrar Extract files from a RAR archive.
unset Remove variable or function names.
unshar Unpack shell archive scripts.
until Execute command until a given condition is true.
uptime Tell how long the system has been running.
useradd Create a new user or update default user information.
userdel Delete a user account and related files.
usermod Modify a user account.
users Show the list of active users on the machine.
usleep Suspend execution for microsecond intervals.
uudecode Decode a binary file.
uuencode Encode a binary file.
uuidgen Created a new UUID (Universally Unique Identifier) table.
Linux Commands – V
CommandDescription
vdir Same as ls -l -b. Verbosely list directory contents.
vi A text editor utility.
vidmode Set the video mode for a kernel image. Displays current mode value without arguments. Alternative: rdev -v
vim Vi Improved, a text-based editor which is a successor to vi.
vmstatShows information about processes, memory, paging, block IO, traps, disks, and CPU activity.
volname Returns volume name for a device formatted with an ISO-9660 filesystem. For example, CD-ROM.
Linux Commands – W
CommandDescription
w Show who is logged-on and what they’re doing.
wait Waits for a specified process ID(s) to terminate and returns the termination status.
wall Display a message on the terminals all the users who are currently logged-in.
warnquota Send mail to the users who’ve exceeded their disk quota soft limit.
watch Runs commands repeatedly until interrupted and shows their output and errors.
wc Print newline, word, and byte count for each of the specified files.
wget A non-interactive file download utility.
whatis Display one line manual page descriptions.
whereis Locate the binary, source, and man page files for a command.
which For a given command, lists the pathnames for the files which would be executed when the command runs.
while Conditionally execute commands (while loop).
who Shows who is logged on.
whoami Displays the username tied to the current effective user ID.
whois Looks for an object in a WHOIS database
write Display a message on other user’s terminal.
Linux Commands – X
CommandDescription
xargs Runs a command using initial arguments and then reads remaining arguments from standard input.
xdg-open Used to open a file or URL in an application preferred by the user.
xinetd Extended internet services daemon. Works similar to inetd.
xz Compress/ Decompress .xz and .lzma files.
Linux Commands – Y
CommandDescription
yacc Yet Another Compiler Compiler, a GNU Project parser generator.
yes Repeatedly output a line with a specified string(s) until killed.
ypbind A daemon that helps client processes to connect to an NIS server.
ypcat Shows the NIS map (or database) for the specified MapName parameter.
ypinit Sets up NIS maps on an NIS server.
ypmatch Shows values for specified keys from an NIS map.
yppasswd Change NIS login password.
yppasswdd Acts as a server for the yppasswd command. Receives and executes requests.
yppoll Shows the ID number or version of NIS map currently used on the NIS server.
yppush Forces slave NIS servers to copy updated NIS maps.
ypserv A daemon activated at system startup. It looks for information in local NIS maps.
ypset Point a client (running ypbind) to a specifc server (running ypserv).
yptest Calls various functions to check the configuration of NIS services.
ypwhich Shows the hostname for NIS server or master server for a given map.
ypxfr Transfers NIS server map from server to a local host.
Linux Commands – Z
CommandDescription
zcat Used to compress/uncompress files. Similar to gzip
zcmp Compare compressed files.
zdiff Compare compressed files line by line.
zdump Displays time for the timezone mentioned.
zforce Adds .gz extension to all gzipped files.
zgrep Performs grep on compressed files.
zic Creates time conversion information files using the specified input files.
zip A file compression and packaging utility.
zless Displays information of a compressed file (using less command) on the terminal one screen at a time.
zmore Displays output of a compressed file (using more command) on the terminal one page at a time.
znew Recompress .z files to .gz. files.

Voltage Measurement by analogRead Operation

A useful way of reading a voltage signal level is through an Analog Input port on the Arduino. With accompanied code to collect, interpret, calculate, display, and act upon a static of dynamic voltages from a circuit, discrete numerical values are presented to a user. In this project, those values are displayed via the Arduino Sketch Serial Monitor. As necessary to bring those values together, in an effort to read an actual voltage, it is necessary to build a circuit or tap an existing circuit, and write the code to get the readings desired. In this case, it is important to also perform a conversion of read values from binary equivalent numbers due to the Arduino UNO in this project that uses a 10-bin A/D converter (210 – 10-bit resolution or 1024 distinct values for a single point of measurement).

There are numerous basic applications from this function as a separate or partitioned segment of capability that pertains to other relevant purposes. The reason it is so important to understand this capability is because of its relevance as a fundamental building block elsewhere. Just as there are many other building blocks, this is a key capability that has a bearing on how projects come together using both a combination of hardware and software.

This code includes variables to initialize conditions by which the entire program operates. These variables must be declared using a data type that specifies how they are acted upon. In this example, integer and float data types get declared to establish precision for accuracy and proper computations or handling. Afterward, the program involves set up commands to configure the program and operate functions as intended. Finally, the void loop() function provides for the instructions to execute programmatically.

In this example, under the void loop(), the physical voltage read into the analog port is the value presented to the analog-to-digital converter. As this value is stored into variable memory readVal, it is multiplied by a coefficient (5./1023.). This calculation becomes necessary as the numerical value read into the readVal memory isn’t a voltage level as given by a meter. So, the calculation of 5VDC ÷ 1023 values gives a ratio of two maximum values as represented as voltage (numerator) and resolution (denominator). This calculation normalizes the digital value read at the analog port input to a voltage value read into memory (V2) or displayed as desired. V2, in turn, is read out at the serial monitor utility from the Arduino Sketch IDE to make tangible the entire operation. Meaning, a readout of voltage using an Arduino module and a host computer instead of a separate dedicated meter.

// declare variables
int readPin=A3;
int readVal;
float V2=0;
int delayTime=500;

void setup() {
// put setup code here, to run once while using any relevant variable declared above

pinMode(readPin,INPUT);
Serial.begin(9600);
}

void loop() {
// put main code here, to run repeatedly. runs in a continuous loop until interrupted or physically halted

readVal=analogRead(readPin);
V2=(5./1023.)*readVal;
Serial.println(V2);
delay(delayTime);

}

Stable Circuit Operating Voltage
Port Connections. Reference Voltage & Analog Input Voltage
Simple Voltage Divider Circuit (330Ω & 100Ω)
Code Implementation of Voltage Meter
Selected Voltage Value for Arduino AnalogRead
Serial Monitor Value Reading from Arduino AnalogRead

Further Project Details: -Paul McWhorter

Pulse Width Modulated (PWM) LED Illumination

To get a closer look at the analogWrite command supported by the Arduino platform, its internal pulse width modulation (PWM) function controls the duty cycle of an output voltage to drive an external circuit. More basically, you can assign argument values to the analogWrite command to affect a change in signal to an outside circuit. This is where the is a possibility of setting a discrete or continuously incremented or decremented values. Where a corresponding level is brightness intensity is observed.

int redPin=9;
int bright=127; // 0 = 0V 255 = 5VDC

void setup()
{
pinMode(redPin,OUTPUT);
}

void loop()
{
analogWrite(redPin,bright);
}

The output scale of 0 to 255 represents 256 unique values (28 = 256). Where 2 represents the two binary states 0 and 1 store in 8-bits of addressable data for registers to execute or process instructions in support 256 separate and unique values in RAM or ROM memory storage. In this case, the values selected along the scale between 0 to 255 provide increasing values of analog to digital conversion that eventually represent a full-scale value of an output voltage as a function of the available supply given to the controller.


Hardware Set Up:

Notice that the pin identifiers at each suitable port with the ” ~ ” indicator supports PWM analog functionality. This is in contrast with the digitalWrite pins without the ” ~ ” symbol that does not support analog read/write operation. 

PWM Waveform Explanation:

As depicted in this diagram, the waveform is at about a 50% duty cycle with an analogWrite argument value set to 127. Peak value is at 4.960V in the measurement as indicated by the cursor, but the illumination intensity is significantly lower than full brightness because the area under each pulse is reduced by about 50% or half. The cursor and statistics data in the screen capture gives the details about the change in behavior as compared to a 255 analogWrite argument value. In such a case, the waveform would appear as a straight line on an oscilloscope for 100% of available brightness. That is full available power presented to an output circuit, which in this case is an LED. 

Arduino IDE:

The simple code set up within the Arduino Sketch IDE to show the details of the operation. 

Further Project Details: -Paul McWhorter

Artificial Intelligence on the Jetson Nano – Setup & Configuration

The Jetson Nano AI system set up was completed in preparation for various projects ahead. The process was very involved as it included the physical construction of the AI system hardware to also correspond to the associated Linux OS and GUI (Ubuntu). All configurations were completed such as the necessary Linux and Ubuntu applications. To set up the operating system with a new microSD card, 128GB is recommended for plenty of capacity. To format the microSD card, download the SD card utility from the sdcard.org site and install it to initialize the card. Once the card is formatted, download and install the operating system image from the NVidia Jetson nano developers website. To install the selected image, install and use the balenaEtcher utility. The image file from NVidia remains in its compressed format (zip file) as installed onto the microSD card. Once the MicroSD card is ready, insert it in the Jetson Nano and boot up the system.

Once the system is up and running, open a terminal window to execute a sudo apt-get update to get the necessary Linux package updates. Thereafter, update the Ubuntu application itself as well.

It is certain that additional language setups are required as well such as Python and OpenCV.

There are numerous programs that will get written and made operational to involve object and facial detection, sensors, actuators, and so forth. In the days, weeks, and months coming various projects make use of this set up as a common platform of progress and advancement.

The Jetson Nano AI operating system originates from NVidia for developers to originate applications in deep learning and artificial intelligence. To that end, following posts after set up and configuration incrementally move towards grow and new discover.

Linux OS with Ubuntu Environment

Linux Operating System Ubuntu with NVIDIA GPU support. Superior graphical processing power necessary for camera sensor image capture, collection, and instruction handling.
External Header for GPIO Port Interface Connectivity
Raspberry Pi Camera with Ribbon Cable Connectivity
WIFI Antennas (external / optional capability with expansion card), Cooling Fan, Clear Acrylic Case, and Connections. To include HDMI, 10W Power Receptacle (5VDC 4A wall adapter), RJ45, USB-A and USB-B Micro ports.

LED Blink Illumination in Sequential Morse Code

This project involves a simple circuit that involves three LEDs that illuminate in succession to indicate the presence of an SOS signal in Morse Code. The physical set up of the physical set up involves a red, green, and blue LED connected to three separate ports on an Arduino Uno. All share the same ground path and are current-limited by separate 330-ohm resistors. We have here a hardware set up of code to support a (dot, dot, dot, dash, dash, dash, dot, dot, dot) repeating pattern of illumination as a visual indication of messaging (••• – – – •••).

Each dot is a shorter on/off period of time as compared to a longer period for a sequence of three dashes. Following another three dots until the cycle repeats itself after a short delay.


Arduino IDE:

Arduino Code:

int redLED=8;
int greenLED=9;
int blueLED=10;

float pi=3.14;
int dit=100;
int dah=500;
int LongW=2000;

String myName=”[Place Holder]”;

void setup() {
// put setup code here, to run once:
pinMode(redLED,OUTPUT);
}

void loop() {
// put main code here, to run repeatedly:

digitalWrite(redLED,HIGH);
delay(dit);
digitalWrite(redLED,LOW);
delay(dit);

digitalWrite(redLED,HIGH);
delay(dit);
digitalWrite(redLED,LOW);
delay(dit);

digitalWrite(redLED,HIGH);
delay(dit);
digitalWrite(redLED,LOW);
delay(dit);

digitalWrite(greenLED,HIGH);
delay(dit);
digitalWrite(greenLED,LOW);
delay(dit);

digitalWrite(greenLED,HIGH);
delay(dit);
digitalWrite(greenLED,LOW);
delay(dit);

digitalWrite(greenLED,HIGH);
delay(dit);
digitalWrite(greenLED,LOW);
delay(dit);

digitalWrite(blueLED,HIGH);
delay(dit);
digitalWrite(blueLED,LOW);
delay(dit);

digitalWrite(blueLED,HIGH);
delay(dit);
digitalWrite(blueLED,LOW);
delay(dit);

digitalWrite(blueLED,HIGH);
delay(dit);
digitalWrite(blueLED,LOW);
delay(dit);

digitalWrite(redLED,HIGH);
delay(dah);
digitalWrite(redLED,LOW);
delay(dah);

digitalWrite(redLED,HIGH);
delay(dah);
digitalWrite(redLED,LOW);
delay(dah);

digitalWrite(redLED,HIGH);
delay(dah);
digitalWrite(redLED,LOW);
delay(dah);

digitalWrite(greenLED,HIGH);
delay(dah);
digitalWrite(greenLED,LOW);
delay(dah);

digitalWrite(greenLED,HIGH);
delay(dah);
digitalWrite(greenLED,LOW);
delay(dah);

digitalWrite(greenLED,HIGH);
delay(dah);
digitalWrite(greenLED,LOW);
delay(dah);

digitalWrite(blueLED,HIGH);
delay(dah);
digitalWrite(blueLED,LOW);
delay(dah);

digitalWrite(blueLED,HIGH);
delay(dah);
digitalWrite(blueLED,LOW);
delay(dah);

digitalWrite(blueLED,HIGH);
delay(dah);
digitalWrite(blueLED,LOW);
delay(dah);

digitalWrite(redLED,HIGH);
delay(dit);
digitalWrite(redLED,LOW);
delay(dit);

digitalWrite(redLED,HIGH);
delay(dit);
digitalWrite(redLED,LOW);
delay(dit);

digitalWrite(redLED,HIGH);
delay(dit);
digitalWrite(redLED,LOW);
delay(dit);

digitalWrite(greenLED,HIGH);
delay(dit);
digitalWrite(greenLED,LOW);
delay(dit);

digitalWrite(greenLED,HIGH);
delay(dit);
digitalWrite(greenLED,LOW);
delay(dit);

digitalWrite(greenLED,HIGH);
delay(dit);
digitalWrite(greenLED,LOW);
delay(dit);

digitalWrite(blueLED,HIGH);
delay(dit);
digitalWrite(blueLED,LOW);
delay(dit);

digitalWrite(blueLED,HIGH);
delay(dit);
digitalWrite(blueLED,LOW);
delay(dit);

digitalWrite(blueLED,HIGH);
delay(dit);
digitalWrite(blueLED,LOW);
delay(dit);

delay(LongW);

}

Further Project Details: -Paul McWhorter

Project March

The micro-fan project is done. The march to another one continues. Once templates are set among various project elements such as BOMs, CAD files, libraries, account settings, etc., the rest comes easier project after project.


Stackable Modularity & Support of SBC Functions

This is the thermal management module stacked upon other free-standing modules. Each module that operates on its own, or together in an integrated fashion. With a small SBC based micro tower computer built from scratch (RPi), power, cooling, processing, sensor adaptation, and load control all integrated together perform functions in a stackable format.

These modules are interchangeable in terms of position and somewhat by function. There is a functional modularity that extends to other modules built together or separated to deliver isolated capabilities unique to various use-cases. Namely, cooling functionality, power support, and programmability with sensor integration. Other functions associated with common SBCs with GPIO ports include relays, actuators, sensors, drivers, routers, etc.


Harmonic Difficulties With High-Speed Clock

Here I am chasing harmonics to drain them to ground. Literally. This is what I spent time doing today. Set up a draft schematic by happenstance with a strong drink, sunglasses, and music too loud.

See that square wave on the scope? That’s exactly what’s supposed to happen given by the drawing. Only, the waveform is somewhat messy. Too many long leads, unstable harmonics, spurious noises, and other monkey business artifacts going on.

On one hand, it is completely unclear what the specific contributing causes are. Yet, on the other hand, it’s perfectly clear what likely needs the most attention in terms of clean up and the use of the specified reference design’s filters. I can see what’s on the other side before the trial concept is finished.

Voltage Controlled Oscillator Correction & Substitution

Well. It turns out that I ordered an XO crystal and not a VCXO crystal to build the design and prototype of the timing module. So retreated and went for both SMD and PTH to get things going. Probably play it safe with PTH (plated through-hole) to get things back on track.

Sort of a big deal and I’ll have to put my attention on the 556 one-shot and 1-second centered pulse with variability. It will probably take a week to get the VCXO. If I expect to have a continuous pulse supply from a single rail voltage, I must use a VCXO.