Subscribe: WA0UWH - HAM Radio Blog
Added By: Feedage Forager Feedage Grade A rated
Language: English
home page  https uwh  https  key  line  long  new  number  numbers  page https  page  secret key  sms  uwh blogspot  uwh 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: WA0UWH - HAM Radio Blog

WA0UWH - Electronics & HAM Radio Blog

Eldon Brown My Amateur Radio Station and Project Blog. Home: - Grid: CN88xcLocated Near Seattle in Puget Soundand I Love to Build HomeBrew Ham Radio Projects

Updated: 2018-04-11T20:20:07.286-07:00


Hands Free Jig


Added Details and Links

In the past I successfully have used "Hands Free Soldering Jigs", but I wanted more functionality.

I found on ebay Machinist Magnetic Indicator Dial Gauge Holders, with a little 3D Printer Designed Adaptor they could be used as a Hands Free Soldering Jig.

A single Knob adjust and locks all three major joints.

In this case, the yellow alligator clip adapter was 3D Printed.

Also, another adapter (black) was printed, and a "Hat Pin" heated and inserted. This makes for a very nice PCB probe, an Oscilloscope probe can be attached to the top of the pin.

Once adjusted, these Dial Indicator Holders are "Rock Solid", once positioned they stay put, allowing for precise probing.  I use tape to hold board under test to the bench (thanks, Jeff - KO7M).

If used, the Magnet Base needs a stable steel attachment point, in my case, my bench edge is metal and provides as necessary.   The Magnet Base could be abandoned for something that could be attached to a wooden bench.

-- Home Page:


Test Lead Rack - For my eShop


In my Electronics Shop, space and organization is always a challenge.  The following 3D Printed Test Lead Rack will help.

An Interactive Link To The Design

I designed the Test Lead Rack with Fusion 360 as one of my efforts to learn this new (to me) software.  I had been using Sketchup for most of my previous projects, but the lure of Parametric Design is to great to NOT switch to Fusion 360.  Also, a lot of public available designed parts are available from Fusion 360.

Now 6.5 hours later after design, the 3D Printer provides the Results:

And now, it is in use:

-- Home Page:


3D Printer - MY Noob Mistakes


As posted before, I have been playing with a new TEVO Little Monster 3D Printer, I have made a LOT of Noob mistakes that could have been avoided if I had only knew.

The following are notes to myself.

o. Do not turn off the power to the 3D Printer unless you are certain that the Hot-End has cooled down. if not, removing power to the 3D Printer will cause the filament to melt within the Cold-End and then a complicated repair method will be required to fix the problem.

o. Remember, 3D Printing is very SLOW, it is much slower than waiting for paint to dry.

o. Remember the hot-end is VERY HOT, I have several burns to remind me.

o. Learn how to set the Z zero Height to within a paper thickness of the print bed, or nothing will work correctly until you do, no mater how hard you try.

o. Buy several sets of Print Head replacement parts, for the; Cold-End, Thermal Break, and Hot-End.

o. Consider buying some Tetrahydrofuran (THF) , it is the only effective thing that will dissolve PLA (for Hot-End  clean and repair), and it can be used to glue PLA parts together. Or at least that is what google suggests.

o. Note, MOST often Hot-End repair work will be done while it is HOT (about 210 C, or more), other wise PLA will be hard and not easily removed.

o. For my use, Blue Painter Tape works best for the Printer Bed, it has some texture that will show up on the printed part, but PLA stick very good to it. A roles of Blue Painters Tape (10 inches wide) are available on-line for about $50, and worth every penny, it makes bed prep very easy.

o. If the Hot-End is disassembled, for cleaning or repair, remember it has to be re-assembled and tightened while at intended operating temperature, for me that is about 215C.  If not, it WILL leak.

Note: I will add to this list as I learn more.

-- Home Page:


Reduction Gears


Sorry, this is not an Amateur Radio post.

After many months of working with a 3D Printer, I have finally successfully created a working set of interlocking reduction gears, each section provides a 7:1 reduction. This device is about 2 inches in diameter, the total reduction is 14:1.

The original Ring Gear from Thingiverse was modified to create this multi-stage Reduction Gear. My contribution was to modify it as necessary and join two sets together.

Sketchup Model
The transfer plates (with the connecting pins) were assembled by adding the center HEX pin after printing.  Each of the two Reduction Cluster were printer as an assembled single object on the printer. No cleanup or filing was necessary.

Silicon grease is used for lube.

I may increase the size (and with other modification) this could be used as a Light Weight Field Day Antenna Rotor.

-- Home Page:


Lost Friends


This week has not been a good week, very sad, two of my Ham Radio Friends have passed away.

Doug Phillips - W7RDP  (SK) a good friend from the local Pacific QRP Group (pQRP).

Don Sehulster - K7QYP / W7LSC  (SK) - a very good Navy Buddy (1968-1972).

73 - My Friends . . .  K

-- Home Page:


First 3D Printer


I purchased a 3D Printer, and just now learning how to use it, there is a lot to learn.After many trials and failures, I have successfully printed the equivalent of "Hello World" for 3D Printers, which is the "3DBenchy". This online part was designed to be a torture test for a 3D Printer, with many under-cuts, over-hangs and fills, that are somewhat difficult. This part is about 2.5 inches long.My Printed 3DBenchy Results3DBenchy was actually about my 10th attempt at print anything, the first few parts went horribly wrong.Here are a few of my initial prints of a part of my own design, obviously I did not know what I was doing.Things got better with practice and understanding of the 3D Print process and control parameters.The above is a replacement part for an Orbital Sander, this part is no longer available from the manufacture, it will eventually be printed with Black ABS Plastic, which is similar to the original. I designed this part with FreeCAD and used Slic3r for the G-Code output for the 3D Printer.  For me, FreeCAD has a steep learning curve.And, then . . .On the next part, a Cable Chain of my own design, I must have lost the magic !!But finally, things got better with practice.Cable Chain LinksThe First Two Links of a Cable Chain.I am currently printing four Cable Links with newer/better design, I will report the results. For these link design, I have used Sketchup and Slic3r. For simple designs Sketchup is easy to use, as long as you only need "Union" style of object creation, that is, objects that touch are automatically joined together (union'd) when exported as an STL file. STL files are needed by Slic3r.Four Cable Chain LinksAbout 2/3 CompleteThis is fun, I think I am going to enjoy my new 3D Printer.-- Home Page:[...]

Esp8266 WebServer Farm - Again


After several long months, I have reactivated my Esp8266 WebServer Farm.

Use this links to all of my Esp8366 project blog posts.

Esp8266 WebServer Farm

Currently, one of my WebServers can be accessed as:

The main reason that it has be off-line, is lack of interest, and recently, I could only get the code to compile on the old Arduino IDE (Rev 1.6.x).  The code is quite large and I took advantage of many "tabs" for code fragments, which are concatenated before presented to the compiler.  The new Arduino IDE Revision (1.8.1) is much more strict regarding Header Files, code files, and program structure. There were just TOO MANY errors to correct to keep my interest in solving the problem.

Once started to solve the problems and not getting much accomplished, my Friend Jeff - Ko7m, suggest another IDE, he suggested "PlatformIO IDE".

With little work, I found and installed PlatformIO, but alas, I found similar problems and concerns with it.  But little-by-little after much on-line reading, Jeff and I worked out the best file structures that worked with PlatformIO.

I have not moved the new code structure to GitHub, but maybe soon.

-- Home Page:


My Soldering TIP #1


Several years ago my trusty Weller Soldering Iron failed, knowing that most of my projects were going to use small SMD parts, I ordered a fancy replacement, a Hakko FX-888 Soldering Station (about $90.00) with several assorted tips, some really small tips for SMDs. The tracking information, revealed that it would be in my hands in about three weeks.

But, I needed a replacement Iron NOW, to finish a project. I went to Frys, and found a cheapy Iron that I thought I could use (about $29.00), it was a Hakko Presto 980-V12/P. It had only one smallish chisel tip, but I thought it could be used for some larger SMDs.

Well, now several years later, the expensive Hakko FX-888 with its small tips is VERY seldom used (maybe about 3%), while the cheap Hakko Presto 980-V12/P is used for most (if not all) of my projects, and I am still using the original TIP. If you have seen my projects (typically on a 0.5in x 0.7in PCB boards) you might think the FX-888 would be more appropriate, but I fould it is not.

The following are some of my projects where the Hakko Presto 980-V12/P was used:

HomeBrew Double Sided
Si570 Board
HomeBrew Double Sided Project
These are 0805 Caps, and SOT-223 Voltage Reg
I like and use the Hakko 980-V12/P, it has "Two Temps, 20W normal, and 130W push button switch", very seldom have I used the 130W button.

I have recently purchased a second Hakko 980-V12/P for my tool box.

Today I think the Hakko 980-V12/P is priced about $60.00, if you are interested in online purchase, google is your friend. see:

I think you will like it.

BTW: I use a "wall outlet timer" to supply power to my soldering irons, if I forget, the timer turns off power to them after about 45 minutes, which saves the soldering TIPs.

-- Home Page:


A Small Experimental Receiver Circuit


I have finally found some time to "melt some solder" at my new location and new eShop bench. The bench is not finished yet, but I needed a Solder FIX.

This, like all of my project, is an attempt to make projects as small as my abilities allow.

New eShop Bench
The project that I am working on is some boards I just received back from OSH Park. The boards are a small and part of an experimental HF Receiver. The boards edge connectors are "Castellated" to allow them to be used within a larger PCB circuit, and with attached Headers, they can be used with/on a Solderless Proto Board.

The size of these boards are:
Left: 0.8x1.0 inch,
Right: 0.5x1.0 inch

This is my experimental design, it is a circuit that contain the:  HF VFO Mixer, Band Pass Filter (BPF, 40MHz), and BFO Mixer.

The bigger boards on the left are similar to those on the right, except they also contains the Oscillators for both the VFO and the BFO, along with the voltage regulator for the oscillator chip.

The components on the lower half are installed
Ready for some testing
Unpopulated is the VFO/BFO and Voltage Regulator
LTSpice suggests this circuit will work, but assessing the actual performance is the real reason for building this experimental circuit.

Additional circuits will be needed, to make this a real receiver, like: Band Select Filters, Automatic Gain Control, Audio Circuit, a Microcontroller, and Display. Likewise, I will make each as small as I can.

Testing will start when I have some (more) time.

-- Home Page:


My new eShop


UPDATED: 11/21/2016

I have NOT posted anything for several (6) months, my life has been in somewhat of turmoil (maybe, I am getting too old for this), but now, maybe things are starting to get back to normal.

Regardless, I have been thinking of many HomeBrew projects that I want to build and blog. But first I have to set up my eShop in this new (and better) location.

This is the beginnings of my new eShop setup:

My new eShop Bench
I just finished building the wooden shelves. My previous eShop shelves were about the same but fixed, these shelves are movable, and therefore this setup should be more effective for varying sized electronic equipment.

Adjacent to that,  is my current MS 10 WorkStation, Raspberry Pi, and Orange Pi set ups:

Computer Workstation
The three bottom screens are connected to the MS WorkStation, and the three uppers are for the PI's.

Note: and the refrigerator is only about 15 feet away, hihi.

Unfortunately, I have not started my Ham Station and Antenna System yet.

I have some small Ham Radio related PC boards out for manufacturing at OSH Park, if they works as expected, I may be blogging about those, soon.


The day after installing my shelves and turning on the Oscope for the first time in a long while, the (calibration) trace is going bonkers, with a short bright spot at the beginning of the trace. Trace INTEN has little control.  DANG, now something else to repair.

FORD Rant - Oil Cooler Bypass Valve - is a non replaceable part.


UPDATED: Tue May 17 11:19:46 PDT 2016This is post not about Electronics, it is a RANT about FORD.For the last few weeks, my Son and I have been working on his F350 6.0L Diesel Engine, to replace; the Exhaust Gas Recirculation (EGR) Heat Exchanger, and the Oil Cooler. This work is a pain because most of the top of the engine, including the Turbo Charger has to be removed to get to the parts being replaced. There are several good Youtube video showing the details.We ordered parts and gaskets bases on information available. This repair is somewhat of a difficult task due to engine compartment large size and the long reaches necessary to access everything.  There is one very dirty mess when the Oil Cooler cover is removed, where about a quart of oil spills over the engine valley, but that cleanup marked the beginning of the actual part replacement and rebuild.Most of the previously dis-assembled parts where replaced in the order they were removed without difficulty.But ThenFORD FailedOil Drain Back and Oil Cooler Bypass Valve AssembleOn top of the Oil Cooler Cover there is a small assemble which is held in place with two screws within the Oil Filter Case (Can). This small assemble is about 3 inches wide.This small assemble holds two valves; one to Drain Back oil from the Oil Filter Case (helpful during oil and filter changes), and the other is the Oil Cooler Bypass Value (OCBV) which opens in case the Oil Cooler get clogged up. These two valves are very simple; the first is held shut by gravity and can pressure; the other is a spring loaded Brass Plunger with a small flat plastic/rubber (of some sort) washer (flapper) that opens at 25lbs of Oil Cooler pressure.Spring Loaded Oil Cooler Bypass ValueThe Brass Plunger shows scoringThe Wood Chip holds open the washer at the failure.The ProblemAccording to FORD, these two small values are NOT replaceable parts !!And therefore, normal Auto Parts stores do not have the parts, nor does FORD.Our OCBV plastic/rubber seal is damaged, and the Brass Plunger is scored showing that it had failed long ago.The values can only be replaced with a NEW Oil Cooler Cover, which is about $180.00, the plastic/rubber part, if available, should only cost about $2.00, even though it is about $0.10 worth of plastic/rubber.My ConjectureI suspect that the OCBV failure contributed to the EGR Cooler failure and therefore the need to repair this engine - it is a $0.10 part ?Our Planned FixGoogle searches provided very little help or suggestions of a solution.Our current plan is to create a new Teflon washer (value flapper). A Teflon rod is now on order. Experiments with different on-hand materials failed to hold up in a gas/oil environment.  Teflon appears to have the right properties; inert and high temperature resistant.Thanks FORD, my Son's truck has be on blocks for about three weeks now, while finding a workable solution.End RantIf this works as planned, I will be selling Teflon washer, and or Teflon Plunger with integrated Teflon Value seat, . . . soon :-).Teflon WasherUpdate:The engine has now been running with the new Teflon Value Seat for several weeks, when the oil is changed it will be removed and inspected for ware.Here is a photo of the Bypass Valve Assembly reinstalled ( I had forgotten I took this photo). The Oil Filter Tower and Canister have not been reinstall yet, as can be seen, two screws hold the assembly in place. Inspection for ware at the next oil change, will be easy.--- Home Page:[...]

ASCII Strings within the Largest Known Prime Number


Someone on the Youtube Numberphile Channel was wondering if after converting the Largest Prime Number  to base 26 (see previous post) would there be any interesting ASCII strings within the Number.

I think I have created a Unix Function that will do the conversion.

( echo "obase=16;"; echo "obase=26; 2^74207281-1" | bc | tr -d '\n\\' | sed 's/ /;65+/g' ) | bc | xxd -r -p

This will take a while (maybe several hours, or days), but if I find something interesting, I will report the results.

-- Home Page:


The New Largest Prime Number Found


Added Details and Links

Recently (Jan 7. 2016) the next and Largest Prime Number has be found (so far), it has about 22 Million Digits long, See, YouTube at:

The number can be expressed as a small-simple math function, that is: "2^74207281-1"

The previous Large Prime Number (17 Million Digits) was found about 3 years ago on Jan 25, 2013, see:

Hopefully, and if history hold true, we will see the next Largest Prime sometime within the next 3 to 5 years.

Just for fun, I decided to see how long it would take my 3.4GHz Workstation to perform the calculation and print the full 22 Million Digits to the screen - it took about 154 minutes - it was like watching paint dry.  :-)

Note: To verify that it "is actually prime" would probably take several months (or more actually several years) on my computer.

Here is the linux command that I used to print this New Prime, and a few of the Beginning and Ending Digits of the results:

$ time echo "2^74207281-1" | bc

. ( 22 Million More Digits )


real 153m50.931s
user 92m34.588s
sys 0m13.496s

Note: To capture the number on the screen, a large display buffer of more than 22 Meg Bytes (of RAM) was necessary.

I need to check with YouTube and/or Numberphile to see if my calculated number is correct  :-)

My computer is current checking four large numbers to see if they are Prime, this consumes about 100% of the Quad Core CPU, but it runs at a very low priority so it does not effect my use of the computer. Each is expected to finish at different times, Below shows the number being tested, and number of days until I should have the results:
As you may have expected, . . . I am a fan of Very Large Numbers !

-- Home Page:


Simple Complexity - By Proxy


UPDATED:Added Details and LinksFor sometime I have struggled with how to allow public access to my home web servers and Esp8266 modules without opening up my network to abuse. In the past I have managed public access via my Router, by changing its configuration of Port Forwarding and NAT.  This works, but it is a pain to manage and generally requiring a re-boot of the network for each change.Recently, I have discovered (actually re-discovered) that an Apache2 Web Proxy Server is much easier to manage, but it has a bit of a steep learning curve, with a lot of manual pages to read. One key concept is that Apache2 ReWriteRules are a super-set of the functionality of ProxyPass, each have their own documentation web pages.After building the Required Config filesNow, on my Router I allow only Ports: http 80, 8040, 8160, and a private ssh port for access from the Internet. Ports 8040, and 8160 are still open for historical reasons, that is, they are used for my published Web Pages at:, and my Esp8266 Server Farm devices.The Apache2 Web Server supports: Virtual Host Names with Proxy Redirects, ReWriteRules, and ProxPass. By setting up "*" as a CNAME (an aliases) to "" at my DNS Provider, I can use any "device name" I would like in the config files to initiate a proxy process. For example: I can now use and publish "" for one of my Esp8266 Web Server modules. The actual connection details and security are all hidden behind the proxy curtains.The normal web page port 80 is setup with a default virtual host page of; "Error 404", only configured virtual hosts and named devices are let through the proxy.Note: The service and/or host that is selected is a combination of both Port Number and Host Name (or alias). For an incoming connection, the file is scanned from top to bottom, only the first match is used to select the service.The following are excerpts from my Apache2 Default Virtual Host configuration file.ServerName default.wa0uwh.comLogLevel alert rewrite:trace1 ServerAdmin webmaster@localhost DocumentRoot /var/www/DEFAULT/Public ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined# EndThe following are excerpts from my Apache2 Named Virtual Host configuration file.## Main Web Pages## Loft Raspberry PI ServerName RewriteEngine on ServerSignature Off RewriteRule /(.*)$ http://192.168.___.___/$1 [P,L] ServerName RewriteEngine on ServerSignature Off RewriteRule /(.*)$ http://192.168.___.___/$1 [P,L]# Esp8266 Node on Published Port 8160 ServerName ServerAlias node*.wa0uwh.* ServerAlias localhost RewriteEngine on RewriteRule /(.*)$ http://192.168.___.___/$1 [P,L]## Loft Esp8266 Nodes ServerName ServerAlias node* RewriteEngine on ServerSignature Off RewriteCond %{HTTP_HOST} ^node(129|162|164|168|169|170|172)\.wa0uwh\.com [NC] RewriteRule /(.*)$ http://192.168.___.%1/$1 [P,L] RewriteRule /(.*)$ - [R=404,L]## Loft WA0UWH Web Server ServerName ServerAlias * ServerAlias localhost 192.168.__.__ DocumentRoot /var/www/WA0UWH/Public Alias /gallery /var/www/WA0UWH/Public/Gallery# EndNote, the ab[...]

Got a Round TUIT



As previously posted, I just needed a Round TUIT.

I receive the replacement CDSH270 Diodes for my Antenna Tuner today, with a little work and with a TUIT they were installed. The Tuner now works as before.

While during the surgery on the tuner, I installed some sharp pointed spark gaps at the SO-239 connectors, and between the Balanced Line Terminals. Maybe they will help save the Diodes the next time I forget to disconnect the Antenna during the an Electric Storm.

For the spark gaps, I soldered one end of a heavy copper wire directly to the SO-239 RF center connector, and then bolted the other end directly to ground (at the connector mount point). After the "Short" was installed, I cut it at the center with dull side-cutters, leaving sharp points on each side. The gap was adjusted to about 1/20 of a inch. The same was done between the Balanced Terminals.

With another TUIT, I installed a 6 AWG ground wire to the Tuner, but waiting for a large spade lug to make the final connection. My available lugs are not big enough for 6 AWG.

Today was nice and sunny, so I also raised the Long Wire Antenna to it normal height. Yesterday when I was repairing it, it was too cold and wet to futz with it to bring it to full height at 90 feet AGL.
Two years ago I tried to work on the antenna, but could not get the 3/32 support line to slide back down the tree. I suspected it had "grown" into a limb, or was pitched into a warren slot. My friend Jeff - KO7M and I was able to pull together hard enough to finally break it free. To avoid the same problem again, I slipped the line into a 20 foot piece of 1/4 inch polypropylene ice-make tube. which we pulled up into the tree where the support line goes over the branches.  Now two years later the line was easy to pull down and then back up.

So far I have made a few SSB contacts with the current antenna configuration. Now I am anxious to work some WSPR - but another TUIT is in the way.

-- Home Page:


Some Antenna Work and Repair


UPDATED: Tue Dec 22 21:38:59 PST 2015I removed the 9:1 BalBal from my Off-Center-Fed Long Wire Antenna, as described below, it did not work as well as expected. More testing and measurement needed.There has been a lot of chatter on the local Yahoo pQRP email list about building some 9:1 Ununs as a group project. I already have the Toroids and Wire and had planned to make several of my own - I was just waiting for a Round-TUIT (TUIT).For the last several (6 or so) years, I have been using a 300 foot Off-Center-Fed (OCF) Long Wire antenna. It is strung up near the top of some nice tall trees with the feed point at about 90 feet AGL. It has worked very well on all bands for WSPR, QRSS, CW, and general Ham use. The antenna is fed with 450 ohm ladder line fed from a Tuner with an internal Balun. I rarely have to provide much L or C adjustment for reasonable performance.With a crippled antenna (see below), last night I worked Sandy - KG7FFP as she is new General License Ham - Good going Sandy! We were on 80m, 3.885MHz.There are several things that I have wanted to try, to see if I could improve performance.The first, is a no-brainer; Ground the Tuner and the Rig, something that has always been waiting for another TUIT.The second, may be more controversial, I have wanted to put a 9:1 BalBal at the feed point of the OCF Long Wire.  With 450 ohms ladder line in, the output should approximate 4050 ohms, which I think would more closely match typical OCF Long Wire feed impedance. In my case the short end of the Long Wire is about 20 feet. The Feed Line drops straight into my Loft's window, across the celling to the Ham Rig, I think more impedance is desirable, in reality, I thing everything in close proximity becomes the antenna, that is; the long wire, feed line, metal roof, and the moss soaked wet-trees, and I don't think they are typically just 450 ohms  :-)Another "nit" that I wanted to improve (or remove) is the "egg" insulator at the feed point. I have never really liked this centre point set up, but it is what I had when it was first installed. The new set up is a now a 14 inch long, 3/4 inch PVC (conduit) with three holes in each end. The antenna wire goes through a "Z" bend at each end of the conduit, then "V's" down to my new 9:1 BalBal, which is about 18 inch lower. The antenna wire is standard, solid copper 12 AWG conduit wire.My antenna tuner is still in my eShop waiting replacement diodes (CDSH270), they are on order and should arrive soon.  The antenna and Tuner took a near hit during one of the last electric storms. I was near the radio and heard a snap or spark across the terminals or somewhere inside, the radio did not suffer any ill effects, the tuner TOOK it ALL.So, now what?My newly configured OCF Long Wire Antenna is now up and ready for use, but still waiting tuner repair.I am expecting some VERY GOOD to EXCELLENT performance from this antenna configuration, because it was installed exactly as per the weather-man specification - that is, it was raining all the time I was outside working with; support lines, antenna wire, BalBal, and feed line. I got soaked ! Everyone knows, that the best antennas always go up during inclement weather.But, time will tell, I will post my impressions, measurement, and results, when available.-- Home Page:[...]

More Fun with Cyclops Numbers


Added Details and Links

I created a fun function to compute Cyclops Numbers, see previous post.

D=9; C=0; L=27; 
echo "obase=${D}+1;(${D}+1)^(2*${L}-1) -1 -(${D}-(${C}%${D}))*(${D}+1)^(${L}-1)" | bc

  • D = Is the side Digits, 1 to 9
  • C = Is the single Cyclops Eye Digit, must be < D, or C mod D will be used
  • L = The Cyclops Eye Location (width)

D=8; C=3; L=2; => 838
D=8; C=3; L=3; => 88388
D=8; C=3; L=4; => 8883888
D=4; C=8; L=5; => 444484444
D=9; C=0; L=6; => 99999099999

The results for the above function:


It is all fun and games, until someone pokes the Cyclops Eye   :-)

-- Home Page:


More Large Numbers


Added Details and Links

Update: Jan 7, 2016 - New Largest Prime found: echo "2^74207281-1" | bc, which is 22 Million Digits, the function takes 77.25 minutes to compute on a 3.4GHz Processor. See, youtube at:

See previous post.

The largest known prime number is: 17,425,170 digits long, it can be computed with this very short function:

echo "2^57885161 -1" | bc

On my Workstation (2.2GHz) it takes about 82 minutes to compute, but with more than 17M digits, it takes much longer to display or print.

To print, it would require 7.7 Reams of paper; single sided, 80 character per line, 56 lines to a page, and 500 pages pre ream.

Note: The person that finds the "next" larger prime number will be famous.

-- Home Page:


Large Numbers


Added Details and LInks

As noted in previous posts, I am a fan of Large Numbers, I am especially interested in small functions that compute Large Numbers.

Recently I watched a Numberphile Youtube video, which captivated my interest. The numbers that I found most interesting are large "Cyclops Numbers".

The following Linux function will compute a large Cyclops:

echo "10^(2*253-1) -1 -9*10^(253-1)" | bc

Can you spot the Cyclops Eye?


-- Home Page:


Email from Raspberry PI or the Esp8266


UPDATED:Added Details and LinksIf you have been following my recent blog post, I posted about using "curl" to send SMS messages to a Cell Phone Number, I have also created a software function to send a similar SMS messages from Esp8266, and/or using the same strategy this could be used on a Raspberry PI. The SMS messages are transferred to the "" Open SMS Gateway. Access is via a HTML URL post, or via a command line "curl" command which simulates a HTTP post. The server imposes some limits, that is; no more than 3 messages per 3 minutes, and no more than 75 messages per day from a single IPA.The folks at Textbelt are gracious to allow us "small-time" users to access their gateway for FREE, - SPAMMERS  are not welcome.But, if you want your Raspberry PI or Esp8266 to send an actual "email", that is another problem. Accessing an "Open" Simple Mail Transport Protocol Gateways (an SMTP) is normally a problem for most users. The reason an "Open" SMTP is desirable for our Internet-of-Things (IoT's) is that authentication is NOT required on Open SMTP's, and therefore there is NO need for a "clear text" password saved in a file, nor is it transferred over the Internet.There are a few Open SMTP available, where services are purchased by SPAMMERS to do their thing. A few of these SMTP gateways allow low-volume users access to their services for FREE, with some restrictions.  I have tried several Open SMTP gateways, and found most have additional requirements that I did not agree, like; sign up with a credit card.I am currently using "" which has a FREE Option and does not require a credit card to sign up. For low volume users like myself, it has a limit of 25 emails per hour, and/or 1000 emails per month, - which is more than enough email for my IoT's to report status, and/or other reports to me via email.I have implemented a Mail Transfer Agent (MTA) which "talks" to the Open SMTP to send my messages. Messages can be sent to my normal Gmail Account, or to my Cell Phone as an SMS text message, or to any other email address that I desire.I have written complete MTA function for my use with my ERB-EspWebServer Farm, but provided just some excerpts here for discussion. At some point I will post the complete listing on my GitHub.Sorry, I did not include the "set up", but I think the upper case "#define" are obvious. // ###########################################################//////////////////////////////////////////////////////////////////boolean_MTA(WiFiClient client, String aStr, String aPat, unsigned long aTimeout){ boolean myStatus = false; if (aStr.length() ) client.println(aStr); yield(); // Wait For Response unsigned long ts = millis(); while (true) { if ( ts + aTimeout < millis() ) { myStatus = false; break; } yield(); #if (OPT_MONITOR_DEBUG_OUTPUT) > 0 DEBUG_INDENT; Serial.println(sE(" Waiting: ") + aPat + E(" . . . ") ); #endif String line = client.readStringUntil('\n'); #if (OPT_MONITOR_DEBUG_OUTPUT) > 0 DEBUG_INDENT; Serial.println(sE(" ") + line); #endif if(line.indexOf(aPat) >= 0) { myStatus = true; break; } } return myStatus;}// ###########################################################////////////////////////////////////////////////////////////////// Provides easy access to page via Email Gateway//booleaneMTA( String aDomain = MY_DEFAULT_NODE_DOM[...]

Playing with Diffie Hellman


UPDATED:Added Details and LinksNote: I am not a cryptographer, I just like playing with large numbers.There are no secret information provided in this blog post, it is all available online, this is just my added two cents, take it for what it is worth.The Diffie-Hellman Key Exchange method is used to share a "Secret Key" between two users, without sending the shared Secret Key across the network.See: Google Diffie Hellman.The idea is simple, and the maths can be simple:k=g=p=A new Shared or Secret Key: G = (g ^ k) mod pWhat can make it difficult and secure is that VERY large numbers can be used, and therefore making it very difficult for an observer (villain) to use brute force to discover the Shared Secret Key.If you read the available documentation about Diffie Hellman Key Exchange, you will no doubt learn all about; Alice, Bob (the good guys), and Eve (the villain). I suggest it for some bed time reading.Note: the online documentation suggest that Alice and Bob must first each know some public numbers for "g" and "p". But, there is nothing preventing a proper and secure Key Exchange when Alice initiates the process by sending Bob three numbers; "g", "p" and "g2B" (g to Bob) values.Bob would need to use these three values to compute the "Shared Secret Key".  Bob also returns to Alice a computed "g2A" (g to Alice), now Bob is finished, he now knows the Shared Secret Key. Alice will also know the Shared Secret Key when she completes her next calculation.Alice uses the returned "g2A" value to compute the same "Shared Secret Key".It looks like magic, but it is simple when you look at the maths with small numbers, and knowing:g^(ab) mod p  ==  g^(ba) mod pwhere: "a" is Alice's secret key ("kA"), and "b" is Bob's secret key ("kB").See the online documentation. You will also learn from online documents, that "p" should be a Large Prime Number, and "g" should be greater than "0", but less than "p", and "k" is a Secret Key that should NOT be shared.Which is all good advice, if you are implementing a banking system, or saving the world via encrypted text messages. But the Diffie Hellman function works regardless of the numbers used, so in the examples below, some small and maybe inappropriate values are used.What started my interested in Diffie Hellman Key exchange is the UNIX provided, and neat little and powerful, utility called "bc". The "bc" command can deal with VERY large numbers without difficulty.An Example:A Diffie Hallman Example, with small numbers.Assume that Alice, Bob and Eve will know and/or use the following:gP =16pP = 101As stated above, these numbers could be suggested by Alice or Bob, or both. Or, the numbers could be hard coded into a application that they both use. If large enough, the knowledge of these numbers does NOT detract from security.Note: For this example, I will use the upper case "P" to denote a number is "Public", "pP" is normally prime. I will use "kA" for Alice secret key, and "kB" for Bob's secret key. Also, "g2B" and "g2A" are the computed exchanged values. Then finally, "gS" becomes the value of the "Shared Secret Key".Note: "g2B" and "g2A" are just like other "g" values that can be used in the same Diffie Hellman formula.Eve can eavesdrop on all of the network data exchanges between Alice and Bob, but will NOT be able to compute the Shared Secret Key, because Eve is not privy to Alice's or Bob's Secret Keys.----------------------- Alice's[...]

Esp8266 - Interactive SMS from the Web Page


UPDATE: Mon Nov 30 21:34:56 PST 2015Added Links and DetailAdded RAW HTML listing In the previous post I listed a code snippet that provides non-interactive SMS from the Esp8266. But sometime it is desirable to provide a simple interactive SMS interface for the Web User. An interactive SMS interface could be used to "page the SysAdmin" with the web user's supplied message.Example Interactive Web SMS InterfaceThe interactive SMS interface is simple and requires only some HTML code to be inserted within a web page. Note: the previous post was a SMS method where user interaction was not needed nor desired.Note: the Open SMS Gateway domain name that is used in the example is "", read their web page for details for Canadian and International use.The following are excerpts from my ERB-EspWebServer.Note: the RAW HTML code could be extracted from the example below and used with any Web Server. The Setup: // The Setup #define OPT_MONITOR_DEBUG_OUTPUT 1 // ERB - Force format stings and string constants into FLASH Memory // I use E() as an Alias for F() so that DEBUG code can be inserted #define E(x) F(x) // Used as an F() when being used as the first Element // of a Multi-Element Expression #define sE(x) String( F(x) )// Defaults for Pager #define DEFAULT_PAGER_GATEWAY "" #define DEFAULT_PAGER_NUMBER "202-555-1212" #define SYSTEM_ADMIN_PAGER_NUMBER DEFAULT_PAGER_NUMBERWeb Server Code Arduino Sketch Snippet: // Pager - User Interactive Web Interface sz += wprintln( E("\r\n") ); sz += wprintln( E("
") ); sz += wprintln( E("
") ); sz += wprintln(sE("
") ); sz += wprintln( E(" Page SysAdmin with ") ); sz += wprintln(sE(" ") ); sz += wprintln( E(" Message:") ); sz += wprintln(sE(" ") ); sz += wprintln( E(" ") ); sz += wprintln( E("
") ); sz += wprintln( E("Or
") ); sz += wprintln(sE("
") ); sz += wprintln( E(" SMS Number:") ); sz += wprintln( E(" ") ); sz += wprintln( E(" Message:") ); sz += wprintln(sE(" ") ); sz += wprintln( E(" ") ); sz += wprintln( E("
") ); sz += wprintln( E("
") );Note: I use my own custom "wprintln" function within the above example, modify as necessary.For reference and to make things simple, I have extracted just the HTML from the above Sketch, as shown below.HTML:

Page SysAdmin with Message:

Esp8266 - with SMS


UPDATE: Sun Nov 29 22:14:04 PST 2015Added details and Links For my Esp8266 I wanted a easy way to send to my Cell Phone an SMS message.For example: On a normal computers (Workstations and Raspberry PI) it is a simple mater of using "curl" to access an Open SMS Gateway (see previous post). I used this feature to report simple things like "reboot" and "backup finished" messages.One such Open SMS Gateway is "", which is the one that I use. But, recently they were "black listed" by some of the Phone Carriers (my carrier) for abuse, apparently there was too much illegal traffic by the Gateway's users.Textbelt has recently fixed the abuse and their Gateways is up and running again, or at least for my carrier.For the Exp8266, I have created some functions that implements the "curl" protocol, (the heavy lifting), so now paging to my Cell Phone is a snap.I am providing the functions here as just application snippets, hopefully you find them useful. I will put this in my ERB-EspWebServer GitHub (eventually).The Setup:// The Setup #define OPT_MONITOR_DEBUG_OUTPUT 1 // ERB - Force format stings and string constants into FLASH Memory // USE WITH CAUTION ! // I use E() as an Alias for F() so that DEBUG code can be inserted #define E(x) F(x) // Used as an F() when being used as the first Element of a Multi-Element Expression #define sE(x) String( F(x) )// Defaults for Pager #define DEFAULT_PAGE_GATEWAY "" #define DEFAULT_PAGE_PORT 80 #define DEFAULT_PAGE_NUMBER "202-555-1212" #define DEFAULT_PAGE_MESSAGE "Test" boolean gPageStnReady = false;The Functions:// Pager// ###########################################################////////////////////////////////////////////////////////////////// Provides easy access to page via SMS Gateway//boolean//ICACHE_FLASH_ATTRpage( String aMesgText = DEFAULT_PAGE_MESSAGE, String aNumber = DEFAULT_PAGE_NUMBER, String aHost = DEFAULT_PAGE_GATEWAY, int aPort = DEFAULT_PAGE_PORT ){ digitalWrite ( gBluLED, ON ); #if (OPT_MONITOR_DEBUG_OUTPUT) > 0 Serial.println ( ); Serial.println ( E("Starting Pager Client ...") ); #endif String timeUTCBuf = ""; String mesgTextHeader = String(gDeviceName) + E(": ") + String(gRev) + E(", ") + timeUTC(timeUTCBuf, gTimeZONE) + E(" - "); String mesg="number=" + aNumber + "&message=" + mesgTextHeader + aMesgText ; #if (OPT_MONITOR_DEBUG_OUTPUT) > 0 Serial.println( sE(" Connecting to: ") + aHost ); #endif // Use WiFiClient class to create TCP connections WiFiClient client; if (!client.connect(aHost.c_str(), aPort)) { #if (OPT_MONITOR_DEBUG_OUTPUT) > 0 Serial.println(" Connection Failed"); #endif return false; } #if (OPT_MONITOR_DEBUG_OUTPUT) > 0 Serial.println( sE(" MESG: ") + mesg ); #endif // This will send the request to the server client.print( sE("POST /text/ HTTP/1.1\r\n") + E("User-Agent: Esp8266/") + gRev + E("\r\n") + E("Host: ") + aHost + E("\r\n") + E("Accept: */*\r\n") + E("Content-Length: ") + String( mesg.length() ) + E("\r\n") + E("Conten[...]

Email sent from Raspberry PI


UPDATE:Added details and Links Sending Email from a Raspberry PI (or any typical Linux workstation) is NOT normally configured. But with the help of some optional commands it can be done with ease.Also, see my previous post.Some HistoryIn the early days of Unix Workstations and Server, "sendmail" was typically configured by default, and therefore sending email was easy. In fact, it was "too easy", which allowed the bad guys to anomalously send SPAM. To combat SPAM most ISP's started requiring mail be "signed" (user name and password) by the originator, so it could be traced back to the point of origin.Today Often it is useful to send a simple status report, information, attachments, or a quick SMS messages from; a Linux Workstation, a small Raspberry PI, or a Beagle Bone.Today "most" email must be signed, and because of that it has become more difficult to use email for sending mail even to oneself.Note: There are a "few" Open Mail (SMTP) Gateways that can be used. But the gateways can not, and will not guarantee any kind of performance, or can not provide any reasonable expectations. These Open SMTP's  are often used by SPAMMER.Google'ing "Raspberry PI email" will provide several solutions.But, most (if not all), require you use/save your EmailAddress and EmailPasswd as clear open-text on the command line or within a configuration file. I do not like that idea. There has got to be a better way?One of the suggested solutions is "sendEmail", unfortunately it has a (some what) "complex" command line interface, and as above it normally requires the user to type an email password as clear open-text on the command line.Note the upper case "E" in the sendEmail name.To simplify, I have created a "Wapper Script", that can be used similar to those used in the early days of UNIX.Examples:      $ date | mysendgmail some_user@gmail.comor,      $ mysendgmail < textfileor, SMS      $ echo "Meet me for Lunch" | mysendgmail phonenumber@vtext.comor, with an attachement      $ echo "Here is my report" | mysendgmail -a myfileor      $ mysendgmail -s "My Status" -m I am driving, Do you want a ride. Note: in the above example, is the Verizon SMS gateway, others could be used as necessary.For the above examples, using my "Wapper Script", the users Gmail Password is prompted for, but does not display, see help text.Also, see the included Help text for install instructions. This Script makes my life easy, I hope you also find it useful. It is a little long for a blog post, but I wanted to provide it here before going to the trouble of setting up its own GitHub.Note: some of the options of "sendEmail" have been used/perverted by this script to make the user interface easy and simple, which I find is a good compromise for functionality and usability.Note: there is a BUG in the Raspberry PI implementation of "sendEmail",  Again, see the Help text.If all else fails, "sendEmail" is a useful tool even when used by itself.This following is mysendgmail script:#! /bin/bash# mysendgmail - Command line mail interface for Linux users,# often on Raspberry Pi and other similar# This script is a user friendly wrapper for "sendEmail"# Because this script requires customization for each user,# it should be save in ea[...]

More 10m WSPR


Added details and Links

Here is my: Today's 10m WSPR Report:

My 2015/11/14 10m WSPR Report
Info from Database
Most of the USA spots were logged during daylight hours, and then late in the day Australia and Japan spots were logged.

Sadly, even though I got up very early (2am local) to start my 10m WSPR Beacon, I did not receive any spots from Europe. Maybe I will get a Europe-Spot later next summer when we will share more daylight hours.

-- Home Page: