Nubs

From Pandora Wiki
Revision as of 02:31, 14 September 2013 by Levi (talk | contribs) (Using compressed air to remove dirt: ...and again)
Jump to: navigation, search

The Pandora has 2 analogue controllers 'nubs', which were custom designed.

Nub Calibration

Backside

The nubs need time to calibrate at startup. Often this can be achieved by moving the nubs around once the Pandora has fully loaded (moving them while the OS is still loading may cause a calibration error). Re-calibration of the nubs can be achieved via 'Pandora Menu -> Settings -> Nubs', and selecting either configure <nub> or 'Restore default settings for both nubs'

Nub Dance

The 'Nub Dance' or 'Magic Nub Dance' is a technique used to calibrate the Pandora's nubs by exercising the nubs to their hardware limits.

Some of the older nubs required this calibration technique periodically, however newer nubs (since 2011) do not need as much calibration as the older ones. Push them up, down, left, right to the edge, then let go of them so they spring back by themselves. i.e. push up, as far as it will go, then let go (it must spring back). Do that for each direction. Then do some circles. That should set them up. If you don't do this they can go wrong during that session until reset.[1]

Nub firmware

The proprietary algorithm for calibrating the nubs is contained within 8KB of flash ROM. More information here.

Using compressed air to remove dirt

If you feel that you might be getting some nub problems caused by dirt having gotten inside, you can try blasting compressed air into the niche where the nubs meet the case. [2] [3][4][5]

Nub Configuration

(As of Zaxxon HF5)
Nubs can be configured in software under Settings -> Nubs in the Xfce 4 menu system and can also be managed through the filesystem in the /proc/pandora/(nub0/nub1 for left and right nubs respectively). Most files in that folder (mbutton_threshold, mouse_sensitivity, scroll_rate, scrollx_sensitivity, and scrolly_sensitivity) are fairly straightforward, containing a number determining the value of the attribute.

The only different field is in mode, which contains a string to determine how each nub behaves-

mouse     - The nub is treated as a mouse, the default configuration of the left nub. 
mbuttons  - The nub is used as the buttons of the mouse, the default configuration of the right nub. 
scroll    - The nub scrolls the screen vertically/horizontally as a pair of scroll wheels would. 
absolute  - The nub is treated as a joystick for the purposes of gaming. 
mbscroll* - A combination of mbuttons and scroll. Up/down for scrolling up/down, left/right for according mouse buttons.

*Note: As of 2013-01-01 mbscroll is only available in an experimental kernel image. Concept by porg, realization by urjaman (download & instructions, source code).


The easiest way to alter a nub's mode in the console is to use the following code-

echo "(mode)" > /proc/pandora/nubx/mode

Where (mode) is one of the above modes and the x in nubx is 0 or 1.

For example, if we wanted to set the left nub to scroll, we'd use

echo "scroll" > /proc/pandora/nub0/mode

All information pulled from [6] and may be subject to change due to updates.

Nub Disassembly



You need[7]:

  • High quality soldering iron
  • Solder Wick
  • Shim Blade (Edsyn RB641)
  • Isopropyl Alcohol cleaner
  • Size 0.00 cross-head screwdriver

Removing the nubs from the PCB is difficult. They are mounted using cut-off plated through holes butted onto pads (fairly standard SMT technology). Just using solder wick will not be sufficient, and if you are not extremely careful, you will rip the pads off the nub or the board.

shows the under side of the nub, which has a small PCB screwed on, and 2 locating pins

Full sized versions of these photos can be found here. Original pics from Claude, discussion http://www.gp32x.com/board/index.php?/topic/54073-the-one-nub-club/page__view__findpost__p__874378 here].

Top left is the micro-joystick which serves as both a spring and the sensing element. when re-assembling this must fit perfectly into the plastic, and be perfectly clean.

More info on how the nubs work

Some words from MWeston here: "The nubs were designed to work when thumb pressure is applied. They will not work right if you try to slide them with your finger tip or finger nail or anything like that."

Early Nub Problems

One example of a faulty nub.

The nubs on some of the first units suffered from a myriad of issues. The issues include bad traces, bad resistance in the joystick, looseness, grittiness, nubs not centering, and nubs sticking in one direction.[8] Much of this was caused by the nub manufacturer not having strict enough tolerances[9] and not 'bare board' testing the PCBs used in the manufacture. Probably the most serious problem is that the nubs can break mechanically, resulting in a nub which cannot centre itself. This causes drifting while in-game, rendering the nub completely unusable.

Because of these problems, a few "one nub" units were made available to people who wished to accept one and skip the queue. The faulty nub is not covered under warranty for these units. Reports[10] suggest that many of these were reasonably functional, and problems relate to either the calibration process or dirt inside the nub. There is a risk that these nubs might fail with extended use. Soon after the first units were shipped, 100% testing was arranged for the nubs by the supplier and OpenPandora Ltd. (This applies to units shipped after July 27,2010 which are expected to all start with known good nubs)

Configuring nubs

Controls available through /proc/pandora/nub{0,1}/ , see dedicated page.

reset

The nubs can be reset to restart their calibration process by writing 1, then 0 to:

/sys/bus/i2c/devices/3-0066/reset

It is not recommended to keep them in reset state (write 1 and no 0), this will use more power.

config

Kept in /etc/pandora/conf/nubs.state, GUI tool available in firmware.