Tuesday, March 24, 2015

More Tasks for the Raspberry

As shown in the previous post, I have been working with the Raspberry PI 2 Computer Board. Thus far I have Connect a Camera and Servos to point the camera. In time, this will become a Roving Robot (more on that in a future post).

Also, I have been waiting for the Raspberry to grow large enough to run the OpenCPN Navigation software for my Boat. Previously, it was ran on a LapTop (which is now old and klunky).

Previous hardware Raspberry PI configurations (A, B, B+) did not have enough RAM nor CPU speed to make any of that that really possible. The Raspberry PI 2, with its 2x RAM, 4x Processors (which provide about 6x Speed). is a good match for the Boat's Navigation requirement. I do not have all of the details worked out yet, but it appears do able (that will be a subject of another blog post).

To make Boat Navigation and Rover Robot possible I need a network connection between the Raspberry PI and my Tablet. The boat navigation software runs on the PI and displayed on the Tablet. The PI will be in the Roving Robot with Camera display and Controls at my Tablet.

There are several pieces of software need to make all of this possible, most are readily available.  The Center piece is the  WIFI Access Point, with it I can connect Tablet directly (ah, . .  via WIFI) to the Raspberry PI, and when the PI is connected to my home Internet (i.e., during development) I can enjoy normal Internet access. Obviously, on the Boat and while Roving as a Robot, the Internet connection may not be available.

Adafruit has a nice tutorial which is helpful when setting up the Raspberry PI as a WIFI Access Point. With only a little head scratching, I got it and the attending DHCP up and running.  My internal home private is 192.168.2.xx, the new PI private address is 192.168.4.xx.  The PI routers between the two. Once set up, it was easy to attach my Cell Phone and Tablet to the new PI WIFI network.

Access to the devices and files on the Raspberry PI private network from my home network can easily be accoumplished with the "sshuttle" command, "rp22" is the name of my Raspberry.





$ sshuttle -DNHr rp22 192.168.4.0/24




The OpenCPN Navigation Software is ran on the PI, in a virtual "vncserver" window. The window is configured to match the aspect ratio (600x900) of the Tablet.

I use "ssh" to access the PI and execute the "vncserver" command. Once set up, what ever is running, will continue to run even when a viewer is disconnected, the next connection just continue the previous session. With the "-alwaysshared" option, multiple viewers can be connected simultaneously. This will be very convenient for both the Boat and the Rover.





$ vncserver -alwaysshared -geometry 600x900 :3




I use "vncviewer" on the Tablet (and/or cell phone) to view the results.

OpenCPN running on The Raspberry PI
and Displayed on the Tablet

As can be seen below with "xosview", the Raspberry PI 2 is just idling along.

Xosview
System Resource Report
For the Roving Robot I will use the PI to operate the Camera pointing Servos and eventually control wheels. Currently I am streaming the camera's video to my Tablet.

All of this functionality is useful and will be used on several of my projects, including my Minima Transceiver (see many previous posts). I plan to write software to provide a Remote Panel for the Minima.


Boat Camping

During last years Boat Camping trip to the San Juan Islands,  I had 8 adults and their attending kids on board my Boat. Most camped overnight on shore.

They all had there personal devices and after the first night, they all needed to be re-charged. We had a few USB Chargers in the Boat, but there was a line waiting to gain access, I had little time on the charger myself.

For this next year, I plan to install MotorCycle USB Chargers in several places on the Boat. One will be installed on the Bridge, where I can use it with the Tablet and Navigation Software.

MotorCycle USB Charging Ports



More details to follow - while having fun with the Raspberry PI !


--

A Lurking Raspberry PI 2

I have been playing with the Raspberry PI 2, connecting a PI Camera and Servos to it. To provide articulation, I used an optional 12" Camera Cable for the connection.

After several hours of research I have figured out how to capture and stream images. Recently I have also figured out how to use the Servos Hat (servo adaptor board) via the Adafruit's I2C Libraries.

So with the combination of Camera and Servos, I now have a "Lurking Raspberry PI".

 I have bits and pieces of programs to control the camera and adjust the servos over the Internet, I just need to assemble the pieces together for a convenient Internet controlled system. Most of the programming will be in python, as contributed libraries are readily available.

The Raspberry PI is currently tethered via a Network Cable, and Power Cord.  But, by adding Wheels, (a big) Battery, and WIFI, is should be able to roam as desired.

My goal is complete control from my Tablet (and from any place on the Internet). Currently, simple Servo Commands can be sent via "ssh" and "telnet" on a private Public IP Address, Private Port, and Private Password. Video is also streamed to a Browser, with and a similar network connection. When completed, a single interactive Web Browser session will control the Camera Servos and future Wheel motors.

One of my goals is to, make the "Lurking Raspberry PI" available to the public with limited control, but that will be in the future.

Raspberry PI 2

I added the Servo Hat, and of course the Adafruit Case was full.

Full Case

Note: it appears that I did not have the Raspberry PI completely snapped in place.

There is not a space to mount the Camera and the Case Lid no longer fit on. So, I cut the bottom out of another one of a Ladyada's cases, which with just a little cutting and adjusting fits perfectly stacked (it almost snaps together). But it may not be an easy task for someone with two left (or right) thumbs. To make things easier, I believe Ladyada is planning an extension case similar to this.

Stacked Cases, The Bottom was Removed from Top Case

The removed (cut out) bottom is being used as an insulator between the Raspberry PI and the Servo Hat, otherwise the Servo through hole pins touch the metal HDMI connector, and it helps stabilize the Hat without special screws and spacers. The Nibs were left on the plastic to help hold-up the far side of the Servo Hat. A slot was cut to accommodate the Camera Cable.

Salvaged Case Bottom

The Two Ganged Servos are mounted on the Case cover.

Servos Mounted

The Case is closed and the Camera is installed, now it is almost ready for Action. The Bands ensure that it does NOT spring apart, and provides anti-skid feet.

Ready For Action
It's Lurking, . . . at me?

It looks like I could have use a little shorter 8" Camera Cable, but 12" Camera Cable will work fine.

More details of this project will follow, I plan to post some photos and/or captured video.

--

Sunday, March 15, 2015

More, CloseUp Tablet Photos

After thinking about the photos taken for the previous post, I was wondering how photos compare; when taken with the Tablet "Magnify App", and when taken through the Microscope Lens with a Tablet or Cell phone Camera?

Here is a photo taken with the Cell Phone Camera (at the Eyepiece Lens) through the Microscope at 15x Power (30x Eyepiece and with a 0.5 Diopter Object Lens).


Cell Phone Photo
through the Microscope Lens
(2.6MB)
The following photo shows the same area, taken with just the Tablet Camera with the "Magnify App".

Tablet Photo using "Magnify App"
(1.5MB)
And the same area with just the Normal Tablet Camera.

Tablet Photo using Normal Camera App
(2.5MB)
The following is the set up, as can be seen, I am just holding the Tablet, using the Microscope LED Ring Light for lighting. The photo was taken with a Cell Phone. The mouse-PCB (the photo subject) is in the spot light.

Set up Configuration
Photo take with Cell Phone
(3.7MB)
By the sizes of the saved photo files, it is obvious that the Magnify App is using Digital Zoom. but for my blogs the photos are large enough and have enough resolution.

Conclusion: I think until I get a better Microscope Mounted USB Camera, I will be using the Tablet with the "Magnify App" for most of my blog photos.

To make taking photos easier, I plan to build a stand to hold the Tablet steady. The Microscope Ring Light works fine for my photos.

--

Saturday, March 7, 2015

Mouse Surgery

Several weeks ago my Computer Mouse started acting up.  It would sometimes Double-Click on a single left button Click. This is very frustrating as unexpected functions results.

I had recently updated the OS and was thinking that the update had tweaked the Mouse Drivers and inappropriately set the de-bounce timing in the software. But Nope, replacing the mouse solved the problem.

Because I had a similar junk box mouse, I decided to see if I could replace the left button switch and solve the problem.

Right Button Switch Salvaged
From Junk Box Mouse
I successfully removed and reinstalled the mouse switch, I used the right switch from the junk box mouse, thinking that it had "less use" than the left switch. De-soldering the switch was a pain, because it was constructed with Lead Free solder.

I hate Lead Free solder ! And now, my local source for good 62/36/2 is going away, that is RadioShack is going out of business.
62/36/2 Solder

This Mouse surgery was done under heave sedation (battery removed) and with the aid of a Microscope :-)

After surgery, I decide to take some Microscope photos, but my standard microscope USB Camera is OLD and with a bare minimum resolution, I think it is 3Meg Pixel Photo Frame. For modern photos, a minimum is 9 to 12Meg Pixels would be ideal, but high resolution Microscope USB Cameras are expensive.

Recently I had read that reasonable photo can be taken through the Microscope (or telescope) with a cell phone camera, just place the phone camera at the eyepiece. Holding the my tablet steady and in focus was a real problem. Adaptors and fixtures are available on-line.

Microscope and Tablet Camera Photo
The photo resolution is 3264 x 1836 pixels (1.8Mbytes).

The tablet has a Camera "Magnify" Application, just for fun I decided to try it on some small parts. The following were taken with just the tablet camera. Most photos are about 2MBytes in size. I am pleased with the simple results.

The first part is the dis-assembled bad mouse switch, I was wondering if I could spot the problem, I thinks so, "crud" on the contact causing switch bounce.


The following were take just for fun. Note: all of these were taken with just the Tablet Camera. The dime in the corner for scale, note: at this scale, everything appears with "crud" attached. It is no wonder that "clean rooms" are necessary for manufacturing.


For me, this switch is amazing, beautiful, and a marvel of Engineering and Manufacturing.

Just for fun, more photos were taken of other miscellaneous parts.

I Think this is a 1206 size Capacitor
BTW: The Mouse will live, to Run another day :-)

--

Saturday, February 28, 2015

Pi's and Install Configuration

UPDATED:

My Raspberry Pi 2's have arrived!  Two of which are now running on the Internet.  I have three locations that I want to install and run them from.

New Raspberry Pi 2's
The initial installations will be running Raspbian (wheezy) serving simple Ham Radio Blog pages and running some HF Beaconing or Receiver code. See: http://dc01.ebcon.com:8040/

As a system administrator for large employers, I have installed and configured many Linux (UNIX) systems, I now have it down to quick trivial process.

For Raspberry Pi, First:

On the Raspberry Pi, I immediately execute the following commands:




$ sudo aptitude install ssh sshuttle
$ sudo aptitude install xosview htop tree wicd apache2 php5
$ sudo aptitude install vnc-server vnc-viewer




Note: if these are already installed, no harm. See the man pages as necessary.

Then I add users as necessary, with:



$ sudo adduser <user_name>




And then, add the appropriate admin "user_name" to the "sudo" group


$ sudo adduser <user_name> sudo




Then:

There are several things I DO NOT like about most default UNIX installations.

The first is the default command "prompt", which is typically a long string of characters that is; the user and system name, and the current working directory. The information is good, but the format is terrible. While in a directory way down in the directory structure, typing space on the displayed command line is very limited, and wraps around and is difficult to use. For example, change to the directory as shown:



$ cd /usr/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Control/



This will result in a Command Prompt of:



pi@rbpi3 /usr/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Control $ 




Note: there is little typing space on the line to the right of the "$". There is little wonder why most users get turned OFF with the Linux Command Line environment.

I personally like the same information, only in a different prompt format. For example (see below), the "date" command was entered at the prompt, and then executed, a new prompted followed:




/usr/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Control
rbpi3$ date
Sat Feb 28 12:32:40 PST 2015

/usr/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Control
rbpi3$




In this example the prompt starts with a blank line, followed by the current directory, and then on the next line, the name of the system, followed by the "$" prompt. Regardless of the length of the current directory, the user starts typing at the same location on the command line (and with space to spare).

Modifying or Adding this type of Prompt is simple, but I have done it "too" many times, see shell script below.



PS1='\n$PWD\n\h\$ '



Also, I set the default "command line editor" to "vi", this allows the use of "vi" key commands to "edit the command line", and access "command history stack". As in; "h" and "l" (cursor Hop-left and Leap-right), "j" and "k" (history Jump-down and Klimb-up). Also, see shell script below.



set -o vi



I now add a simple script (/etc/bash.bashrc.local) to each system I install. It contains all of my favourite system modifications. The script is as shown below, details are not provided, but maybe you will find bits-of-it you would like also.

Note, depending on the initial OS installation, each user may want to remove the ".bashrc" and ".profile" from their home directory, or adopt parts of this script in their files. I like the system wide approach, an yet, while knowing that it is a little dictatorial.




#
# Usage in /etc/bash.bashrc
# Add the following two lines to the end of /etc/bash.bashrc, uncommenting the "test" line.

   # Start up /etc/bash_localrc for Local Stuff
   # test -f /etc/bash.bashrc.local && . /etc/bash.bashrc.local

# Local Startup files for Bash

   #echo "Start: /etc/bash.bashrc.local"
   #set -xv

   TZ='PST8PDT'; export TZ
   PATH=/usr/local/lbin:$PATH

# Show System Key

   # KEY="$(ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub)"
   # KEY="${KEY#* }"
   # echo
   # echo "System Key: ${KEY% *}"

# Setup the default editor
   export EDITOR='vi'
   set -o "$EDITOR"

# Setup History
   HISTSIZE=10000
   HISTCONTROL=ignoreboth:erasedups
   shopt -s cmdhist histappend lithist execfail

# Add extended globing
   shopt -s extglob

# Set the Terminal Tab value
   # If this is an xterm set the title to user@host:dir
   case "$TERM" in
   xterm*|rxvt*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"'
     ;;
   esac

# Prompt # for root, $ otherwise
   PS1='\n$PWD\n\h\$ '


# Local Aliases
   alias ll='ls -l '
   alias bdf='df '
   alias is='ps -ef | grep -v grep | grep -- '

   #set +xv
   #echo "End: /etc/bash.bashrc.local"


# Some Interesting Shell Stuff
   alias ralias='. $HOME/.alias'; # reread HOME aliases
   alias ...='cd ../..'
   alias ..='cd ..'

# Local GitHUB Aliases
# Git related
   alias gco='git checkout'
   alias gci='git commit'
   alias gst='git status'
   alias gbr='git branch'
   alias gls='gbr'
   alias gsbr='git show-branch'
   alias gmg='git merge --no-ff -v --progress'

   alias gad='git add'
   alias gdf='git diff'
   alias glg='git log'
   alias ggp='git grep'
   alias gpu='git push'
 
   alias gk='gitk --all &'
   alias gr='git rebase'
   alias gri='git rebase --interactive'
   alias gcp='git cherry-pick'
   #alias grm='git rm'

# End



I use "scp" to grab the script from a previously installed system.


Security Tip

If you going to put a Raspberry Pi on the Internet:
  • Remember to set a new passwd on the pi login
  • Do not open the ssh port 22 directly to the Internet, use a router to NAT and route another port to the Raspberry Pi. Note: if you DO open port 22, your system will be hammered by break-in attempts. Check your logs often.
  • Open only the ports that are necessary for your applications.
  • Also, I recommend doing something similar for port 80.

Be careful, the Internet is full of malicious hackers and "script kiddies" that will take over and eat your Raspberry Pi.

The following is a script that I wrote many years ago, as "taillogs", it "lists" and "follows" the system logs, showing new log events as they occur. I know it is somewhat cryptic, but does a nice job.

I saved this in a file: "/usr/local/lbin/taillogs".

Note: "/usr/local/lbin" is where I save all of my authored scripts.




#! /bin/sh
# Author: Eldon R. Brown, eldonb@ebcon.com

        cd /var/log &&
        find . -type f -print |
        egrep -v "\.[0-9][0-9]*$|OLD|mbox|\.offset$" |
        xargs ls -tr |
        xargs file |
        sed -n '/ text/s/:.*//p' |
        xargs tail -n2 -f

# End



With this script, it is easy to check your system logs.

--

Minima - My Coding Efforts Resumes

After a long delay (due to surgery), I am returning my attention to my Minima Controller Alternate Tuning Method coding effort.

My previous (i.e. current) revisions as available on GitHub "radiono_erb" will remain as-is, with little or no further development for now.

I will "Fork" (GitHub speak for clone) my current Minima Controller GitHub Repro and give it a new name, currently the planned name will be "radiono_PNW_Exp". This Fork will initially be used to experiment with some new Minima Controller software and hardware strategies. Later, "radiono_PNW" will be published for general use. Note: PNW denotes Controller coding efforts that some Minima Builders around the "Pacific NorthWest" are considering. See: http://groups.yahoo.com/group/pQRP/

Goals

One Goal is to reduce the front panel switch and knob foot print, that is, maybe reduce the number of switches and knobs, but at the same time increase the Controller functionality. Maybe this can be done by optimising the circuit and supporting code. The standard Minimal Volume control could be eliminated with a change of the circuit to add an I2C Quad POT. The Quad POT has four sections; 1) for volume control, the three others could be assigned other tasks, for example: 2) LCD backlight control, 3) LCD Contrast control, 4) and maybe a future Automatic Level or Gain Control (ALC or AGC). Others could be added as required or wanted.

My personal Goal is to reduce my Minima to a small hand-held unit by using very small SMT parts, yet, maintain compatibility with the majority of Builders using their Through-Hole and/or Ugly style of construction. I am a fan of Ugly Style of construction, but for my Minima project small(est) is better.

I plan to maintain circuit and software flexibility to potentially use and include a computer interface, via bluetooth or direct cable connections. Current (readily available) software programs could control and provide a familiar user environment for the Minima.

My overall Goal, which is similar to the main idea of the "Minima", is to; "Use Less Hardware, and Do More with Software".


--

Friday, February 20, 2015

Back to My Projects - Remote Desktop Protocal (RDP)

OK, it has been almost eleven weeks since my surgery - So now I can get back to; My Blog,  Electronic, Programming and Ham Radio Projects. I have been working on them, but in very short sessions.

The last few days I have been updating all of my Workstations to/with LinuxMint 17.1 (Cinnamon). I gave up on Ubuntu due to bloat and continual lack of support for problems that continued to bug me.

But LinuxMint (17.1) appears to have one of the same problems as Ubuntu - that is, Lack of "easy to use" Remote-Desktop-Protocal (RDP) configuration.

My desire is to connect and control other remote workstations and a few Raspberry Pi's from my Main Workstation. RDP is designed to display the remote Consoles on the main workstation, but people on the web have complained that after the last few system updates, it does not work as advertised, and I found that to be the case.

Disclaimer: There are many aspects of X Display, VNC and Remote Consoles that I do NOT know, nor understand. Information provided here has be found experimentally or after much online reading, your mileage may vary.

After many long hours of web research, trial and error, I now have a possible solution, which is really simple, once the magic is known. The solution is different for the remote Raspberry Pi (wheezy) than a remote LinuxMint (17.1) or newer Ubuntu system. The following examples assumes you have ssh, vnc-server and x11vnc installed as needed.

Using Remote Console of a Raspberry Pi is very easy, but several solutions are available depending on whether the Pi has a HDMI attached console or not, and whether or not there is an active logged in session.

Different methods are used to create, or use existing, Frame Buffers, and its address is denoted by the ":N" in the following examples. Any unused number can be used, but ":0" is normally reserved for the real graphic console (hardware monitor).



Pi systems "without" an HDMI attached Console (headless)

For Pi systems without an HDMI attached Console a "Display Frame Buffer" (fb) will not have been automatically created. The "vncserver" command creates a virtual Frame Buffer ":2", as seen in the following example. Also, note: ":2" is an alias for the value of the last two digits of "port number 5902".

Execute the following on the local system:

$ ssh remote_pi_sys_address 'vncserver -geometry 900x600 :2'
$ vncviewer remote_pi_sys_address:2

Note: the Geometry can be any size you like, I like 900x600 because it does not completely fill my local display.

Remote Virtual Console
Enjoy remote access to the PI, if the local window is deleted, it can be re-entered by re-executing the second command.



Pi systems "with" an HDMI attached Console, with Active Session

On remote system, run "Share Desktop", then on the local system execute:

$ vncviewer remote_pi_sys_address:0



Or, Pi systems "with" an HDMI attached Console, with Active Session

$ ssh -xCf -L 5900:localhost:5900 remote_pi_sys_address -l root \
        'x11vnc -q -auth /var/run/lightdm/root/:0 -display :0 -N'

$ vncviewer :0

Note: The required "-auth /var/lib/mdm/:0.Xauth" parameter is dependent on your remote_system and display manager used, which normally can be found via a remote "ps -efl | grep auth" command.



LinuxMint, Ubuntu and other Debian derived systems with RDP and VNC Console bugs.

See the Note above, regarding "auth". The following is accessing a remote LinuxMint system at the login prompt, supplying user name and passwd starts a normal remote session. Note: the displayed window will be the size and resolution of the remote monitor, scrolling may be necessary.

$ ssh -xCf -L 5900:localhost:5900 remote_sys_address -l root \
        'x11vnc -q -auth /var/lib/mdm/:0.Xauth -display :0 -N'

$ vncviewer :0

Remote Login
Note: failure can occur if the Local and Remote ports (5900) (as being requested here) are already in use, some of the following commands can be executed on the Local and Remote systems to help find port collision problem, killing the offending processes will free the port.

$ netstat -ta
$ lsof | grep 5900
$ ps -efl | grep 5900
$ ps -efl | grep vnc

The use of a "virtual" Console would be much better, one that allows you to specify the window size. But alas, it does not work as expected, the default configuration does NOT provide an interactive window manager.

This example does not work as well as it should.

$ ssh -xCf -L 5908:localhost:5908 remote_sys_address \
        'vncserver -geometry 900x600 :8'

$ vncviewer :8

I plan to continue to explore for a usable solution that provides a specified size of window for LinuxMint, Ubuntu and other Debian Derived systems. Currntly only the Raspberry Pi (wheezy) works as expected.


--

Wednesday, November 5, 2014

Confession of Arrogants

This is a confession of an Arrogant Engineer.

I may not be posting much more to this blog for a while. Although, I will still be thinking of electronic projects and software solutions for interesting problems. But, . . . most of my attentions will be elsewhere.

For the last few weeks (months) I have been feeling weak, it was getting difficult to climb the 32 steps to my Loft Apartment. I am 68, and I was just thinking I am getting older. But then, when going down the stairs was getting difficult, I decided something was wrong and decided it was time to see my Doctor again.

After some blood test, they found low-red-cell-count and low-Iron. Iron is necessary to make more NEW red blood cells. The Doctor suspected I was leaking blood into my intestines and iron was being depleted trying to replace lost blood. Note: Normally it takes about 90 days to replace your own blood.

My Arrogance

Two years ago, I ignored my Doctors advice to get a Colonoscopy. For those that do not know, the Colon is the name for the entire Large Intestine.

A colonoscopy is the process of viewing the colon from the inside. It sounds terrible, but completely painless with drugs. Unfortunately, there is several days of prep which requires you to drink some awful tasting clear liquid the day before.

To make a long story short; Last Monday my colonoscopy found a "growth" within my Colon that is leaking blood. Even without the pathology test, it is suspect to be Cancer. The good news is it appears to be only associated with one short section of my colon, maybe 6cm (2 inches). Hopefully, a resection of my colon will remove it all. I have appointments later this week for review and surgery planning.

If my problem would have been found earlier, it would have been a simple in-office procedure to remove a polyp or two. That was done from another location during my current colonoscopy.

My advice, Hobbyist-to-Hobbyist, Engineer-to-Engineer;

Get a Colonoscopy as soon as your Doctor recommends.

I am planning a New Blog to posts my colon adventures, I know it will not be as interesting as Ham Radio and Electronic Projects, but it is what I can do to encourage others to follow Doctors orders, I will edit here and add the URL when it is established. And of course, as usual, I will try to provide clinical photos and details.


--

Wednesday, October 29, 2014

Minima - User Options


On Mon, Oct 27, 2014 at 11:36 AM, John <****@*******> wrote:
Hello Eldon
I know that you said that you want to stop coding and get on with construction,  I was just about to upload BS02 again but with various options turned off to suit my way of operating , which is a bind, as I have to make the changes, upload again every time I make a small change,     So I was wondering if it would be possible to have some of the more popular options available on the menu like you have the 60m (yes /No), possibly     Tune 2500 khz,    CW beacon,    Scanning, they could all be Yes/No options
Would save a lot of trouble,   Just a suggestion !!!! get the minims going first
73
John


John,

I decide to respond to your questions via a blog post, and CC to the Minima email reflector, so my answers can be leverage by others.

Yes, I need to finish my Minima build.

And YES, most options could (or should) be added to the menu option.

Although, I wrote the menus as it is, in hast, as a trial to see if it was valuable. In hast, means that the menu system is very inefficient and requires much code space than it should. It needs to be rewritten with space, performance, and optimisation in mind.

In previous revisions of the Arduino IDE, my Minima Alternate Tuning Method (MATM) Sketch was running out of space and therefore user compile-time USER_OPTIONS was the only method available for allowing users to pick and choose their desired functions. As you know, with the NEWER Arduino IDE 1.5.8, the MATM uses much less of the available space and therefore most (if not all) current USER_OPTIONS will fit, at the same time.

John, I think you have said that you take your ATMEGA328P processor out of the Minima circuit and place it in an Arduino UNO to reprogram it. If so, yes, I can see how compile and modifications would be a pain - and therefore menus would be much better. First, I suggest that you upgrade and use a USB to Serial Converter connected to a four pin header on the edge of your controller board. There are NO components necessary to use this header. Although personally, I always put a 1nF cap on all processor pins that leave the processor board, especially when used in an RF environment. Downloading a Sketch and Restating the processor with this set up is automatic.

PropPlug and Four Pin Header
There are several USB-to-Serial Converters available from different manufactures, most are created using the same FTDI FT232R chip.  I use the "PropPlug" from Parallax. The required four header pins from the processor are; GND, TX, RX, and Reset. The PropPlug works very nicely with the Arduino IDE.

As most readers of my blog know, I like to build electronic project with the smallest parts that I can find (small is my thing). For example, for the Minima I did not use the ATMEGA328P-PU, I used the ATMEGA328P-MU which is a small MLF-32 package. The downside is, it can not be taken out of the circuit to be programmed, nor can it be easily replaced.

Top: ATMEGA328P-PU
Bottom: ATMEGA328P-MU

For me, using the original suggested large DB9 Serial connector for programming on the back of my project was a non-starter, but a simple four pin header is acceptable. Also, the original suggested level translation parts are not necessary with a FTDI interface.


So Yes, new revisions of my MATM software will include more menu items to make option selection easier. Note: "menus" will always be a compile time USER Option.


--

Sunday, October 26, 2014

Julian - G4ILO

This weekend I learned of the loss of my friend and fellow blogger, Julian Moss - G4ILO.
Julian Moss - G4ILO
Julian has succumb to an incurable brain tumour, which he gallantly fought, and has blogged about at: http://onefootingrave.blogspot.com/ . Like most, I will miss him and his Ham Radio Blog entries at: http://blog.g4ilo.com/

My blog is a direct result of Julian's encouragement, he convinced me to start my own blog. He encouraged and guided my initial efforts. Over the years, we exchanged posts, comments, email, programs, and even some small QRP hardware projects.
 
So, I think, A blog entry is the best possible tribute to my friend - Julian.

RIP - Julian - G4ILO, you will be missed.

--