Wednesday, August 2, 2017

New 3D Printer Project

|My poor little 3D printer has been busy for the last week or so printing parts for its big brother.  The AM8 design is based on a bunch of mods to the Anat A8 copy of the Prusa I3.  There have been several different versions of parts created to build the AM8 by different people.  Just looking at the files, I was not able to determine which would work the best for my build.  I ended up printing several different versions of several parts and then will decide which version I wanted to use for my project.  As I stated before, the original AM8 design used 2040 Aluminum extrusion for its frame. I did not have any of that profile, but did have some 2020 and decided to go with that.  Because I did not want to redesign a lot of the parts, I will sister two pieces of 2020 to get the desired profile.  Unfortunately I did not have enough Aluminum extrustion, so I printed some 2020 profile out of ABS.
  
After 4 days of 18 hour prints, I had enough 2020 profile finished to build the pieces I need.  After Acetone welding them together, I was pleased with how they looked and also how strong they were.
After cutting them and the Aluminum extrusion to length, I started the assembly.  The combination of Aluminum and ABS profiles went together very easily, and fit with the other printed parts very well.  After trying some of the different versions of parts I printed, I came up with what will work best for my project.  Because of some of these choices, I had to design and print several additional parts.  


After assembling the frame and gantry, I am very pleased with how it looks and how strong it is.  The size is just right to sit on the file cabinet next to my computer desk.
Now I am waiting on several other parts to arrive to complete the assembly of the X axis and Extruder carriage.  After that I can start on the motors, and electronics.  So while I am waiting on them, I can work on the boards for the SNA Jr 2.8 that came in last week.

Tuesday, July 18, 2017

Building a new 3D Printer update 7/20/17

While I am waiting on the boards for the SNA 2.8 I decided I want to build a larger 3D printer.  When I designed the case for the new SNA, I was limited by the size of my 3D printer.  As I mentioned in one of my earlier posts, the main problem with getting a 3D printer, is that I now have another new hobby.  The largest things I can build with my printer is abut 6" x 6", and I would like to go up another coupe inches.  I looked around and found a clone of the Prusa I3 called the Anet A8 that would be the right size.  There are several kits on EBay that can be bought for under $175 including shipping.  I checked several of the user groups on Google and Facebook to see what users thought of these kits.  It looks like they are  basic machines, but with some  work and modifications they can perform quite well.  One of the 3D printing sites I frequent is Tom3d.org, he recently did several You Tube videos on building a I3 clone from scratch.  After watching them I decided to build my own instead of getting a kit.  Looking at some of these kits and mods, I found a mod called the AM8. This uses many of the Anet A8 parts, but replaces the acrylic frame with one made from 4020 aluminum extrusion.  I have many of the parts, and some 2020 extrusion that should work.  I was able to download the  files for all printed parts and several mods from thingiverse.com , now to print the parts.

Some of the parts can be printed in PLA, but most need to withstand more heat and need to be printed in ABS or PTEG.  My printer works well with PLA but I have had problems working with ABS.  Originally this printer only used cartridges, but a recent software hack of the firmware enables the use of bulk filament.  I modified several used cartridges to feed filament directly from bulk reels, and tried several things I had found on-line to help when printing ABS.  My printer does not have a heated bed, and that was the main limiting factor for using ABS.  I added a thin PEI sheet to the build plate, and found that if I put several heavy coats of hair spray on the bed I could get the print to stick.  
I also designed some simple 20 x 1 mm. discs that when added near the corners of the object being printed, helped hold the part down to the bed.   

Without the heated bed, there was still some curling of the part when it cools.  From what I found on-line it looks like it might help to increase the temperature in the build area.  I found that by simply placing a plastic trash bag over the printer, the temperature was increased enough to prevent most of the curling, and also seems to help with layer adhesion.

Now that the printer is working better, I am in the process of printing the parts I need for a  printer based onthe Anet A8 and several mods I want to incorporate in my design. 
I have finished some of the larger pieces, and find very little curling, and what is there is not on any of the mounting surfaces. The pieces are very solid, and show no signs of layer separation. Wonders what a trash bag can do.

Update 7/20/17


Looking at the instructions for the modified printer now being called the AM8, the aluminum extrusion being used is 20 x 40 size. I have some 20 x 20 extrusion so will be using that instead. I do not want to have to re-design all of the parts, so I will mount two pieces together to get the profile I need.  I do not have enough aluminum extrusion, so I looked on thingiverse.com and found some files for printing some of the desired  profile.  My printer only has a print height of 150 mm. so I have to print in sections.  I printed several sections along with some extension support  pieces, and Acetone welded them together.  The resulting piece was stronger than I had thought it would be.  I guess now I just have to print up a few more batches and put them together.  Then I can cut them to length and mount to the Aluminum extrusion.

Friday, July 14, 2017

Lets call it SNA Jr version 2.8 for now

I have been trying to get a 3.2" TFT 8 bit parallel interface display working with the STM-32 board, but have had several problems.  So I decided to temporarily go with the Nano version, and a 2.8"  display with a SPI interface.  I had much of this working previously, so that part should go along quickly.  The previous board had a lot of additional circuitry on board that had been giving me problems.  I did a simple layout with just the Nano , display with simple voltage divider level translation, Ad8307 log detector, and a Adafruit SI351 board.  I usually make my own boards, but saw an offer from a Chinese board house that I wanted to try.  The board layout was under the 10 x 10 cm. size they had on special, 10 boards for $5 plus about $14 for postage.  At less than $2 per board, I decided to place the order.   Generated a set of Gerber files, uploaded them to their web site and placed the order.  Three days later I got an e-mail notifying me that the boards had been completed and were being mailed that day.  It has been about a week now, so expect them to show up some time late this week.  

While waiting on them, I decided to work on the packaging I wanted to use.  I had designed several 2 piece clam-shell type boxes that 3D printed quite well.  I changed the overall size ,and added cutouts for the display and joystick.  I was also able to design in mounting posts for these components, and added a bezel for the display.  It took a couple minor design changes and test prints to get everything exactly as I wanted it. 

It is still a lot easier than making a design on paper, transferring to  a box, then drilling and cutting out all the holes. Then you hope you have everything right, or you might have to start over with another box.  



I like being able to just do the design, send over to the printer, and in a few hours grab it off the printer sitting next to my desk.  The wife also likes the fact that I do not have metal filings all over the place anymore.




Sunday, June 11, 2017

Multiple project update 6/11

I had a wonderful time at FDIM and a great visit with my daughter.  Now I am back and need to get working on some of the projects I had on the bench.  The two main ones were the Spectrum Analyzer and version 3 of the SNA Jr.  After looking at the two, I have decided to make a few changes to my original idea and go with a more modular approach.  I now plan on making one board with the processor, display, AD8307, and SI5351 clock generator on one board.  This will be able to be used stand alone as a SNA or with one of several other boards to provide additional functionality. This will only have square wave output, so will be more like Farhan's Sweeperino.  I will see if I can add the code so I can use his PC 'Specan' software as well  as use it stand alone.  I had planned on having relay switching under software control to change functionality, but will probably just go with  SMA connectors and jumpers to change functions.  This should more easily allow the unit to be built and test itself as you go along.  
I also found that I was quickly running out of memory, both SRAM and FLASh.  This pretty much means that I will defiantly have to go to the STM32 'BluePill'. I had previously gotten many of the libraries and routines working with the 'BluePill', now it should not take too long to get the rest of what I need working.

When I got back home I spent a lot of time catching up on the e-mail and posts for the groups that I follow.   I did get a couple e-mails  from  Tony G4WIF, and Nick G8INE with  information and pictures of the SNA Jrs they had built. Tony also sent me a link to his web site with a post he wrote about the SNA Jr. http://fishpool.org.uk/snajr.htm .  To think that Tony, who is a co-autor of  'Simple Test Equipment for the QRPer' built one of my projects is a great honor indeed.  Since Tony and Nick are both interested in the SNA Jr. III, I guess I will have to get back to work.

Thursday, May 25, 2017

FDIM 2017

Again this year I was able to schedule a trip to visit my daughter with a stop over in Dayton for FDIM.  I had a wonderful time, and got to meet many people that I have met on the air or through e-mail and on many of the e-mail groups I subscribe to.  The highlight was getting to meet and speak with Ashar Farhan.  His BITX and other projects have been an inspiration to me and countless other home brewers all over the world.  Because of the speed with which hotel rooms filled up at the Holiday Inn where the FDIM event was held, I ended up staying a few miles away.  I was not able to spend any time on Wednesday to get to meet anyone there.  

Thursday was pretty much filled up with  speakers presentations, but afterwards there was ample opportunity to meet and talk with many other people who are active home brewers. A bunch of  us had a chance to sit down and talk with Farhan as he showed and explained the circuitry in some of his projects he had brought with him.  Among them was his 'Sweeperino' , 'Specan', and the uBITX design he is working on finalizing. 

I have been having some problems with a knee for a little while now. And after the long drive up Wednesday, and sitting around most of Thursday it let me know that walking around the Hamvention would not be appreciated.  So I spent most of the day Friday at the hotel and took my wife out for dinner before I went over to 'Club Night'  and the home brew contest.  I had a short time to talk to some of the Club members at different tables and several of the others in the home brew contest.  I spent the next couple of hours doing demos and explaining the AD8307 power meter probe I had entered.  I had been hoping to get either the Spectrum Analyzer or SNA Jr. V3 finished in time, but had to go with one of my earlier project.  After the contest was over I had a better chance to talk to the other in the contest and look at their entries.  

I also met Dave  VE3OOI , and several other members of the Peel Amateur Radio Club in Brampton Ontario at their club table.  I had exchanged several e-mails with them after I posted building my version of the Norcal S9 Signal Source.    Dave showed me the version they had kitted based on my project for their home brew group. 

It is extremely gratifying to know that others think your work is of enough interest that they will go and build something based on what you had done. 
 He later sent me a a copy of the manual they had produced for the kit. They went into a whole lot more detail in their manual than I had ever considered for the kits I had put together for my club. I guess I will have to put more effort into my documentation next time. 
  
He also sent a picture of some of the 30 club members that attended their 'build a thon' earlier this year.  It looks like they have a very active group of home brewers.

My knee told me that it still did not want to do much walking around, so Saturday was much like the day before. That evening we went to the QRP ARCI banquet and had a wonderful time.  We listened to the presentation by Ashar Farhan about his history in Amateur Radio and the steps that led up to the BITX design. After that there was the awarding of the door prizes and the drawings for the KX2s and other main prizes.  Last the awards to the winners of the home brew contest.  I am pleased to say that I took the award in the Test Equipment, Construction Aid category with my power meter.

All in all it was a very nice few days.  Even though I did not get to go and wander around the 'Hamvention', I did manage to purchase a VNA kit from the Austin QRP group during club night.  That and my own projects should keep me busy for a while.  We will spend about another week up with our daughter then the long drive back home.  Then I guess I should get back to some of my other projects.



Sunday, May 7, 2017

Quick SNA Jr V3 update

With  FDIM only a couple weeks a way, I am hurrying up with the build and programming of the SNA Jr. version 3.   This uses a mixer and simple crystal filter to eliminate many of the problems with  with harmonics when using a square wave signal generator.  I have a bunch of 4.9152 Mhz. crystals that I had purchased for another project.  I use the SNA Jr version 2 and simple test fixture to match several in frequency, and having a similar response curve.
I put them in the new board and directly wired the output of the signal generator circuit directly to the crystal filter circuitry.  Then using some of the new software I am writing for the version 3 system, I checked the response curve of the filter.  I found it to have a 3db response of around 100 Hz. and an over all response of about 1.2 KHz.  Since I am running out of program space in the NANO, I also used the software to find the center frequency of the filter.  I will program this directly into the software instead of writing a calibration routine.  For not It looks like this should work OK. 

Using this signal for testing purposes, I added a pop up menu with additional functionality.  One option allows me to normalize the waveform after it is acquired, instead of having a separate normalized sweep like the version 2 software.  Another thing I added was a marker to display difference in frequency and amplitude between the marker and cursor.  This picture shows the response of the filter and the new software features.
I had added pads on the circuit board for several attenuators, but found that I am gong to be a little short on gain even with out them. I also found that with the single sided board I could not get the low level noise floor that I had with other power meter circuits I had built.  I am going to quickly make a couple changes to the board and etch up a double sided version.  Hopefully I can shield the AD8307 and get another 10 dB dynamic range in the power meter part of the circuit itself.

Thursday, April 27, 2017

SNA JR V3 Case UPDATED 4/30

I was working on the SNA  Jr. version 3 circuit board, and did something really stupid.  I had been checking linearity using several in line attenuators.  Just set the different values I was not using at the time down on the desk.  Then I sat the still powered up board down on top of them, there it was the "MAGIC SMOKE'.
I guess it is time to build a case for the boards, before I do something stupid again.  
I had  a design for the side panels I had used for other projects.  It has slots for a top and bottom made from circuit board material that just slide in.  It also has a board slot for holding the circuit board at the correct height in relation to the top. It was just a matter of changing some dimensions and printing them.  I also designed and printed simple end pieces with a lip to help protect the SMA connectors for RF in and out signals.

I wanted a bezel around the display, and something to cover the hole where the Joystick comes through the top panel. 
 After a little playing around with the design software, I came up with one that would do both.  I then decided to also add mounting posts for the Joystick to the bottom of the bezel. 

 This is the reason I bought a 3D printer in the first place.  No more looking for and trying different stand-offs or other bits of hardware to make some thing kind of fit.  Just design exactly what you need and then print it. It might take a couple of tries but, I can usually come up something that works and looks nice. The first try almost worked, except that I could no longer get at a connector mounted on the main board.  So I moved the Joystick mounting posts a little and change the orientation, and the second part worked just like I wanted it to.  


The display mounted to the bezel correctly,  and I have a lip on the bezel to cover the hole in the top panel for the display. The Joystick comes through the top of the bezel at the height I wanted, when screwed down to the printed mounting posts. 


This was so much easier and cleaner looking than my original attempt using standard length stand off hardware.  The chamfer I built in around the Joystick opening also does a nice job of covering up the mechanicals of the Joystick.


I stuck the display assembly on the SNA  Jr. circuit board, and loaded in a sample sketch to check the display and the Joystick operation. Everything works well and looks great. 








UPDATE 4/30/2017
I cut the opening for the display and Joystick in the piece of PCB material,I am using for the top panel. I mounted the bezel with the display and joystick to it. Checked how every thing fits, epically how well the main board and top panel fit in the slots in the side panels.  I think it will look nice when finished.  I need to do some sanding and painting on the top and bottom panel parts, but for now I can work on the software without worrying about sitting the board down on  anything again.


Now to get back to working on the software and finish putting all the parts in the cabinet.  I want to see how it looks with just the printed parts, or if I want to do a little sanding filling and touch up painting on them.  Will keep keep you updated on the progress.



Saturday, April 15, 2017

The SA becomes the SNA jr.V.3 for now UPDATE 4-17

I have been working on the Spectrum Analyzer, and had hoped to get it done in time for the FDIM  'homebrew' contest. Between wrong parts shipped , or not arriving in time, along with software problems it did not look like I could get it finished in time. So on to plan B.  I have gotten great response for the SNA Jr version 2, and even quite a few from people who have built their own version.  The most common requests for changes, are a larger screen, and higher frequency coverage.  I have the nice 2.8" screen and basic display routines from the SA, and I still have a couple Adafruit si5351 modules left from several other projects. The si5351 would give me frequency coverage to over the 2 meter band, but it has a square wave output.  From early experience in a simple K6BEZ style antenna analyzer I built a couple years ago, I had found problems with harmonics from the square waves. 

Looking around the web, I saw some information on an antenna analyzer by IW2NDH.  It used two clocks on the si5351, one at the test frequency, and the second offset by the frequency of a simple crystal filter.  This second clock is fed to a mixer, and the output goes through a crystal filter before being measured by an AD8307 LOG detector. This should remove the harmonic problems I had found with the earlier circuit.  It also had a built in directional coupler, instead of using an external RLB like I used with the SNA Jr II.  I made a few changes and came up with this block diagram.

Looking at the block diagram, I realized by just using the second clock, the mixer and crystal filter, it could also be used as a basic measurement receiver.  This might be adequate for measuring the harmonic output of a home brew transmitter.  

Basic functions to include
SNA  1 to 150 Mhz.
Antenna analyzer (SWR only)  1 to 150 Mhz.
Measurement Receiver  1 to 150 Mhz. there will probably be some unusable area around the IF frequency I select.

Since I still have some problems with some of the libraries for the stm32 board, I will go back to the old reliable Nano.  This will mean adding some level translation between the Nano and the display, and having a slower update on the screen.  But, I will live with that.  I added a couple of relays to change functions and to add a switched input attenuator.  I went with a 3 crystal filter, and added pads for several attenuators that I might need to properly terminate the filter and mixer stages.  I laid out and after a couple of tries I etched a single board that should do the job.  

The software is coming along nicely, I could use most of the display routines I had for the stm32 board, and also pulled in some of the code from the SNA Jr II.  Still going with the joystick instead of a rotary encoder for the input device,  It is much faster and easier to use than the encoder.


Here is a picture of the partially populated board being tested with just the display and si5351 connected.  Things looks fine so far, so I will probably have something for FDIM

UPDATE  4-17-17 

I had a little trouble getting the si5351 library to work after I copied some of my earlier code into this sketch.  The version I had been using is almost 2 years old, and the newer version has some major changes.  After making them most things looked OK except the frequency was off.  My frequency selecting code uses a resolution of 1 Hz., and after re-reading the documentation for the latest version of thesi5351.h file I saw that it has a resolution of  0.01 Hz. Just a quick multiply by 100 from the computed value to the value used to set the 5351 frequency took care of that. 

I needed to make a directional coupler, and used the instructions for making a VNA directional coupler at   www.oh6hgn.net/Miten_kaamia_VNA_muuntaja.pdf
Except for the number of turns through the core, this is basically the same as I used in my SWR/Power meter.  After building it, and installing on the PCB, I made some measurements to check how it worked.  
The small AD8307 power meter probe I built last year worked great for the job.   The difference function I added to the software made it very easy to check the coupling loss. I measured a  unloaded output level of around 12 dBm. in the center of the frequency range. Depending on frequency I measured around 15 - 18 dB. coupling loss from the through signal with no load,and around  40 - 44 with a 50 ohm load.  These values look usable, and probably are affected by the harmonics in the square wave, and possibly an impedance miss match on the input to the coupler.  I built in pads on the board for a small attenuator before the directional coupler.  I will solder in resistors for about 6 dB. and see if that makes a difference.
I checked the AD8307 log amp output with a voltmeter, and the values look very similar to what I found with other power meter circuits I have built.  Next to copy some of the code from the SN A Jr 2 software to get that working and do a simple sweep of the output of  the si5351.  Then to build the mixer/filter circuitry and test them





Wednesday, March 15, 2017

Spectrum Analyzer display and control board

I gave a lot of consideration to the size I wanted for the finished instrument, and designed and printed a first try at a partially 3D printed case.  It consists of printed sides with guides for the top and bottom , which will be made from circuit board material.  I also added a guide in center for most of the RF part of the S.A. The first thing I need to build is the control and display board.  This will have the STM32 board, the display, a AD8307 power meter, and a Adafruit Si5351 PLL board. This will first be used as a SNA to help in the alignment of the filters in the RF board as it is assembled.  I should be able to use much of the software from the SNA Jr., and later may be refined into a version 3 of the SNA Jr.



The board is double sided, with the top being mostly a ground plane.  I did some playing around with different methods of adding a solder mask to the board. I refined my earlier procedure using IR curable paint, and am very happy with the results I was able to obtain.   This will make it much easier when it comes to building the RF board, which will be some of the  tightest SMD layout I have ever tried.

After assembling the board, and doing a quick functionality test, most everything worked as expected. I did have to add a jumper on the board to bring 5 volts out to the Joystick, and found I will have to make a couple slight changes in positioning some of the connectors on the final board.  But, this will be adequate for testing, and writing the SNA software.
I cutout a opening for the display , and added a cutout for the Joystick in a piece of copper clad board.  Then mounted the board and display, and installed the assembly in the 3D printed case.
Looks like everything will fit, but may have to change some of the dimensions a little and reposition the guides for the RF circuit board.
Now to write the SNA software and do the layout for the RF board.
Shouldn't take too long, unless I spend too much time playing with the 3D printers.




Saturday, January 28, 2017

The problem with gettibg a 3D printer

When I first got my 3D printer, it was with the intention of making parts for my electronics projects. After I found an inexpensive 3D design package, and getting used to it, I was very pleased with what it could do.  Then I made a big mistake, I went to thingiverse.com. This is a huge repository of different 3D printed projects that have uploaded by3D Printer enthusiasts.  After browsing the projects, and a lot  "That's Neat" or "I should try printing that", I realized that I was hooked and now have another hobby.

My printer worked well for what I had wanted it for.  But since it used propriety software I was not able to change the settings to what I would require for some of the things I downloaded from Thingiverse.  While on one of a 3D printing Blogs I was following, I saw mention of a very small inexpensive printer by Monoprice.  
The Monoprice select mini, is a very small printer, but uses most open source slicers such as  "Cura" or "Slic3r".  It comes fully assembled and with a recent price reduction is less tan $200 including shipping.  That day I received an e-mail with a coupon that would bring the price down to around $185, so I ordered one.  It arrived in 3 days, and I quickly unpacked it.   The  machine is almost all metal, and appears to be very solid.  It came with a sample of filament that is too small to do much of anything, you will have to purchase a full spool to do anything useful. 
Using some filament from my other printer, I printed the sample print that came on the micro-SD card along with a couple different software packages.  The print turned out to be very high quality, much better than I had expected from such an inexpensive printer.  Also the printer is very quiet compared to some others I have seen.
Searching the Web I found a series of beginners guide to the printer and some help on initial setup of "Cura" for the machine.  Also found several useful items to print to make the printer a little nicer. 

 I printed up a filament guide and a couple other simple things to use with it.  This printer has a heated bed, so I could use a "PEI" plastic film to cover the print area.  This gives better adhesion to the print surface, and makes it easier to take finished parts off the bed than the blue printers tape that is usually used.
Printing 5  CW paddles at a time
Since I had full control of all the settings, I could use some of the different filaments that I could not use with the first printer. I could also change layer and print options to make some of the items I had designed stronger.  So far the only drawback to the printer I have found is its print volume.  It is only 120mm x 120mm x 120mm, but most thing I want to print will fit in this area.  This might mean that a print job that made 8 pieces at a time, I had to re do and could only print 5 at a time.  

I found a fairly active Facebook Group that covers this printer, and have been finding some useful information on possible modifications I will probably make in the near future.  All in all after less than  a week I am very happy with the little printer.  If someone wants to try 3D printing this would be a inexpensive option to try.
DARN now I have to find time for the electronics projects that are stacking up.

Monday, January 23, 2017

Back to working n the Spectrum Analyzer UPDATE 2/4/17

Now that the BITX is nearly finished, I decided to get back to the Spectrum Analyzer project.  I had did some work on the display and controller using a Arduino Mega and a  3.2" , 320 x 480 display.  It worked well, but was quite large, and the display covered most of the pins on the Mega.  I found a little smaller  2.8" .320 x 240 display that uses a SPI interface instead of a parallel interface.  I wired this up with a Teensy LC micro-controller and started writing some graphics routines.
I decided to keep the waveform display as 300 x 200 to give room for text and cursor values.  The 300 pixel width will work well to give overlapping display ranges in a 1,3,10,30 format.Since the overall range will be around 100 db, using 200 vertical pixels will make it easy to display wave-forms to a .5 dB resolution.
Because I want to have various sweep widths available, I will store the acquired data in a large integer array of 900 elements.  Using this format I can allocate data as one large sweep, or several smaller ones.  Then by designating the starting point in the array and number of points per sweep, I can store multiple sweeps in the same array.  The wave-form drawing routines will work the same way, specify starting point in the array and number of points to display.
 I will be using the same basic data format for storing the acquired data as in the SNA Jr.   The AD8307 log detector has around a 90 dB. dynamic range, and I want to have a 0.1 dB resolution.  I store the data as the dB. value times 10, so all the display routines can work on integer values.  Since I want to have several switched  10 dB attenuators in the system, this will make it very easy to correct the data values.  Just add or subtract 100 to the value to adjust up or down 10 dB. as attenuators are switched in or out.


video To test out the drawing routines, I initialized the array with a triangle wave with values equivalent to 0 to -100 dB.
Then in a loop I display several wave-forms based on that data. These wave-forms start at different points in the array, and display different sweep widths. I am very happy with the display speed I get using the 48MHz. 'Teensy LC', compared to what I had with the Nano in the SNA Jr.  Next to work on the basic controls and menu system.

UPDATE 2/4/17

Did a little work on  the waveform drawing routines to limit to waveforms to the 200 x 300 pixel drawing area.  I plan on using a cheap joystick for the input device instead of a rotary encoder.  Re-wrote a joystick routine I had been working on.  It reads the joystick pots and switch, then sets a flag if a change has occurred. 
It also sets some global variables with the values of these changes,
I use + or - 1 for horizontal and vertical movement depending on direction.  Also set values for either a short or long press of the push button.  I found this to give much faster and easier control than I had with a rotary encoder.
I had been using a 'Teensy'instead of the Arduino Mega that I had started with. I recently bought several cheap stm32 boards I purchased on eBay.  I wanted to see how this ~$3 board compared to a $13 'Teensy'. Speed at 72MHz. is more than adequate for my needs.  It has 8K of SRAM and 65K Flash memory, also enough for my needs.  I pulled out the 'Teensy' and wired in the stm32 board ( usually called the 'blue pill' on the stm32 blogs).  It is just a little bit larger than the Teensy, but brings out more I/O pins.  As they come, they do not have a Arduino compatible boot loader installed.  Programing must be done through a serial converter or a STlink programmer, about $3.  I used the STlink method, and found it very easy and fast.  I changed the Adafruit graphics driver to one modified for the STM processor.  Everything worked as well or better than with the 'Teensy'.  I wrote a little display test routine to scroll through the initialized data buffer.  Scrolling was very smooth with no flicker or hesitation.  By changing the increment I used to step through the data, I could change the rate of scrolling.

All in all I am very pleased with the results, and looks like I will be using the 'blue pill' instead of the 'Teensy' 

A picture of the bread-board using the 'blue pill' with the display running. The stm-32 'blue pill' is just a little bit bigger than the Nano  on the other side of the bread-board.    For about the same price and much more powerful, this might be my choice for any new projects.