Tuesday, April 29, 2014

Minima FN - Troubleshooting

I am still testing my Minima CPU Module, for some reason the FUNCTION (FN) switch will not work. The microscope was used for inspection, looking for shorts or open circuits.
This is the ATmega328 Processor
and Crystal Circuit
Note: I have mounted the 0805 bypass capacitors on edge so that they will fit on the 0605 pads. For this module space reduction was not really necessary, but  I generally use this technique by default.
ATmega328 - 32QFP
So far, nothing found that would cause the malfunction. Resistance and switch operations appear normal. The other switches and functions work as expected.

This is not considered to be the "Ugly Style" of Homebrew hobby construction. But, under a high power microscope everything is "Ugly", especially after it has been setting around for a while. It is a wonder that any modern high density electronic devices work at all, with all of the accumulated contamination that everything collects.

More circuit review, software program review, and testing is required.

UPDATE: Apr 30, 2014 15:09
Success, I got my FN switch problem solved. There were two problems.

The first, was a missing via on my board that should have provided a ground path for the FN switch.

The second, I have been working on the frequency Display and the associated Human Interface within the Sketch. My new modifications had not been properly integrated with the rest of the Sketch.

Now,  all is working as expected.



  1. Does the function button have anything to do with the configuration in the code and/or pullups? There was some discussion of "flaky" function button operation on freelist. Subject: " Alternate mode setups for FN Button and Analog Keyer input". From Aug 18 and 19th.

    When in doubt to determine if it is a hardware fault, write you own code/program to test the button input that sets a driven output pin. Probe with DMM or if there is an LED output available.

  2. Zesty, Thanks for the Comment. I will check out the ideas from the discussions.

  3. What could go wrong? It is an analogue input with pull-ups enabled and a switch to ground. The code just checks for an "analogue" value < 300...

    try this sketch:

    void setup()
    digitalWrite(A3, 1);

    void loop()

    run it and push the button. See if the number changes.

    (I have a grand way of stating the obvious, I know...)

  4. Thank Jeff,

    It worked, I think I have messed up the program operation while trying to re-do the Human Interface.

    I will hold off on the FN switch operation until finished mucking with the code.