Pandora Nubs Acting As A Switch?


MWeston said:
Using the nubs as buttons doesn't really work...

When i play N64 with a dual shock like controller I'm used to map the right analogs stick as the C buttons, so how is the N64 controller mapped at Pandora?
 
Last edited by a moderator:
brunox69 said:
MWeston said:
Using the nubs as buttons doesn't really work...

When i play N64 with a dual shock like controller I'm used to map the right analogs stick as the C buttons, so how is the N64 controller mapped at Pandora?
This is a perfectly acceptable way to use the nubs as "buttons" the question at has was can just by resting a thumb on the nub register enough data to act as a button press in and of itself - no travel needed. Like the L3 and R3 buttons on the PS2 controller, but without the clicking in part.

You can certainly map the axises of a nub to buttons, as long as the emulator supports it. Which it more than likely will.
 
Last edited by a moderator:
[edit] stupid double post. Why can't I make more than 1 post in 30 seconds...? If I wanted to spam I would just make a bot that waited 30 seconds between posts and register a couple of them...
 
rabidpoobear said:
[edit] stupid double post. Why can't I make more than 1 post in 30 seconds...? If I wanted to spam I would just make a bot that waited 30 seconds between posts and register a couple of them...
I suspect it's to take away a lot of the accidental multi posting. I've done things that would normally cause a double or triple (or more) post due to screwy internet connectivity, only to be stopped (saved?) by the 30 second rule. 30 seconds isn't a long time, and I suspect I'm not the only person that would've multiposted by accident a lot more often without that restriction.
 
Last edited by a moderator:
rabidpoobear said:
[edit] stupid double post. Why can't I make more than 1 post in 30 seconds...? If I wanted to spam I would just make a bot that waited 30 seconds between posts and register a couple of them...
Because a spammer that didn't have to wait 30 seconds could fill the board within seconds and grind the entire thing to a halt. Forcing every 30 seconds at least imposes some form of control that would help a mod keep such a wave at a bay.
 
Last edited by a moderator:
Could some one elaborate on how the nubs sense that they have pressure on them with out movement?
 
greendots said:
Could some one elaborate on how the nubs sense that they have pressure on them with out movement?
It's a firmware glitch feature where it sends a stream of 0's when it gets that ever so slight indication of noise from a thumb resting on the cap. Normally an analog device will not send anything at all when there isn't more than just a smidge of movement. But the Pandora nubs send 0's when filtering out the noise instead of nothing. Devs can use this stream of 0's to detect when the user has their thumb on the analog stick.
 
Last edited by a moderator:
It's not a valid option. I don't know the amount of vibration it would take, but you might get a good amount of false positives for "L3" "R3". Also, for many games it would be *mostly* useless. God of War series requires you press in both L3 and R3 at the same time to enter into a fury mode, which I can understand or centering the camera. But, most people will get confused. Because in the Halo series, L3 is used to crouch and in MW R3 is used for melee.

The problem is, these buttons cannot be pressed while you are moving. I think you would create more problems by leaving this *feature* in and be better off setting up a good deadzone to dump a certain range of values to /dev/null.

I mean, this is the Pandora. We are certainly not lacking in the amount of input keys we have at our disposal.
 
The noise could still be used in games. Like a minigame in pandora-panic requires analog-usage and will wait for the user to touch them. Or a dual-analog shooter might automatically pause/unpause.
 
The main problem is that (if this glitch is to be used as an input) it wouldn't be useful all the time. Sure, it'd be a fun addition to some games (take your thumbs off the nubs to duck ala Time Crisis's pedal), but it could not be considered a L3 or R3. Think about it. it would be active all the time, except when you deliberately take your thumbs off.
 
brunox69 said:
MWeston said:
Using the nubs as buttons doesn't really work...

When i play N64 with a dual shock like controller I'm used to map the right analogs stick as the C buttons, so how is the N64 controller mapped at Pandora?

Simple:
Left Nub - Analog stick
O (Key) - B
P (Key) - A
A,X,B,Y (Buttons) - C-buttons
L (Shoulder) - Z
R (Shoulder) - R
Dpad - Dpad
1 (Key) - L

-God Ginrai
 
Last edited by a moderator:
I don't think OP was asking about pressing down on the nubs, he was asking if deflecting them shorter / longer distances could be used in an emulator to walk / run.

And that was answered.
However, despite the terribly stupid interesting discussion on the internals of Unix cat, the nubs still have no use as buttons, but their analog axes can be used to affect emulated buttons.

So that's that.
 
Not every game can make use of it and probably no emulator. Still, user's finger on the thumb is useful information to have for homebrew games and maybe some ports.
Could we even detect little hits? A thumb-bongo-game for pandora-panic comes to my mind :)
 
MWeston said:
The controllers output both relative and absolute data.

Could it be possible to use both nubs like mice with different control logics?

One as relative Input Device, the other as absolute Input Device?

That way the right nub position could be mapped statically to a pointer position on the screen.
Center = pointer at middle of screen, 12 o'clock full up = pointer at top of screen, 50% up = middle between center and top of screen.

The left nub could be a vector control for the pointer, giving a relativ movement in the direction of the moved nub.
The speed depending of the nub movement. 12 o'clock full up = pointer moving at 100% speed to up. 50% up = moving at 50% speed to up. (100% speed should be obviously adjustable ;) example: 100pixel/second)

The right absolute position nub have to be activated by movement only and the pointer position must be "frozen" if a button input is done. Or may be that mode must be activated by a button pushed. Then a "fine tuning" with the left nub could be done.

That way you will have perfect possibilities depending to your application and own personal preferred input style.
 
Last edited by a moderator:
mindlord said:
greendots said:
Could some one elaborate on how the nubs sense that they have pressure on them with out movement?
It's a firmware glitch feature where it sends a stream of 0's when it gets that ever so slight indication of noise from a thumb resting on the cap. Normally an analog device will not send anything at all when there isn't more than just a smidge of movement. But the Pandora nubs send 0's when filtering out the noise instead of nothing. Devs can use this stream of 0's to detect when the user has their thumb on the analog stick.
I think he was asking more "how"dows the nub knows... not "what" it does when you touch them. E.g. the mechanics of the nub, what mechanism in it allows it to sense being touched. You're basically answering how the OS knows... because the nub tells it, but how does the nub to to tell it, know that it is touched.
 
Last edited by a moderator:
BackAssward said:
I think he was asking more "how"dows the nub knows... not "what" it does when you touch them. E.g. the mechanics of the nub, what mechanism in it allows it to sense being touched. You're basically answering how the OS knows... because the nub tells it, but how does the nub to to tell it, know that it is touched.
That's just it. The nub isn't really supposed to. Any analog input device works by mesuring a potential across a the range of the sensor. When the user isn't inputting anything it should register 0 on the X axis, and 0 on the Y axis. Push the stick left and you get a negative number registering on the stick the farther you push the farther the number gets from 0. Push right, and the number goes up, higher numbers the farther you push. The normal behavior for a joystick is to send absolutely nothing when the joystick is centered, even if there's a thumb on it. Not even the fact that it's at 0. But the Pandora nub firmware for some reason sends streams of zeros when the thumb is resting on the stick. The tiny vibrations from a person's thumb aren't significant enough to put the sensor completely to -1 or +1, but still enough to cause the firmware to send a 0. Again most joysticks won't even bother sending the zero that's created by the tiny vibrations of a thumb resting on them, but the Pandora nub does.
 
Last edited by a moderator:
mindlord said:
That's just it. The nub isn't really supposed to. Any analog input device works by mesuring a potential across a the range of the sensor. When the user isn't inputting anything it should register 0 on the X axis, and 0 on the Y axis. Push the stick left and you get a negative number registering on the stick the farther you push the farther the number gets from 0. Push right, and the number goes up, higher numbers the farther you push. The normal behavior for a joystick is to send absolutely nothing when the joystick is centered, even if there's a thumb on it. Not even the fact that it's at 0. But the Pandora nub firmware for some reason sends streams of zeros when the thumb is resting on the stick. The tiny vibrations from a person's thumb aren't significant enough to put the sensor completely to -1 or +1, but still enough to cause the firmware to send a 0. Again most joysticks won't even bother sending the zero that's created by the tiny vibrations of a thumb resting on them, but the Pandora nub does.
Most joysticks are analog devices that constantly send out two voltages between 0 and X, where 0 means far left/down, and X means far right/up (or the opposite). This voltage then needs to go through some kind of ADC to convert it into something the CPU can use. The ADC must always output something: if it is 0, it spits out 0. If it is X, it spits out 255 (for an 8 bit ADC. They may use 4, 10, or 16 bit instead, but I digress). The CPU then polls this signal, and uses it to determine the orientation of the joystick. If it is right in the middle, it is a stream of 128,128 which the CPU interprets as centered. It takes these numbers, does some subtraction, and comes up with a scale from -Y to +Y which the program in question uses.
The nub on the Pandora is slightly different. It still has the analog and ADC, but instead of sending that signal directly to the CPU, it has one more layer. It goes through some microcontroller that reads the digital signal and does the thinking for the CPU. Instead of the CPU checking what the ADC is constantly, it asks the microcontroller for an update. The conversation kinda goes like this
Code:
// not touching the nub at all, so it is perfectly centered
CPU: Status report
NUB: no change
CPU: Status report
NUB: no change
// person touches the nub, but doesn't move it.  Thumb vibrates ever so slightly, causing slight shift in the ADC, but not enough for the nub to think it's useful
CPU: Status report
NUB: position 0,0 and has moved 0,0 since last time you asked
// then person moves to the right
CPU: Status report
NUB: position 10,0 and has moved 10,0 since last time you asked
// then person moves it to the top
CPU: Status report
NUB: position 0,10 and has moved -10,10 since last time you asked
// person then lets go of the nub
CPU: Status report
NUB: position 0,0 and has moved 0,-10 since last time you asked
CPU: Status report
NUB: no change
...
So to summarize, an ADC cannot output "nothing", there is always a signal. In tradition joysticks, the CPU polls the ADC and knows exactly where it is from that. In contrast, our nub with its semi-intelligent microcontroller can send a "nothing" signal. "Nothing" means it doesn't detect any movement at all from the ADC, it is sitting at what the CPU would interpret as dead centre. It sees "0, 0, 0, 0, 0..." and doesn't bother to send it if the CPU asks. If a person puts their thumb on the nub, however, their thumb causes it to twitch ever so slightly: -1, 0, -1, 1, 0, 1, -1... The microcontrol says "that's basically 0, I should tell the CPU about it". And that's how a string of 0s indicates that someone is touching the nub but not moving it, while a "nothing" signal indicates it is not being touched at all.
 
Last edited by a moderator:
I wonder if it's possible to alter the dead zone to something incredibly small?, if you could it may be possible to use the nubs as a basic accelerometer, the inertia/mass of the nub pads themselves may deflect the sensor enough to give a reading if you shake or tilt the device, you could then use the data to operate a game like Marble Madness, just a thought, then again they may be mechanically stiff enough too not do that, or lack sensitivity around the centre position, but it might work, it's cool to use standard devices in none standard ways, I always liked using the thermal noise in a PC's audio circuits to seed true random numbers, it may not actually matter, but I like the thought that an application is using genuine random values, seems more ..... real, somehow.
 
No, I don't think it's sensitive enough. The nubs probably have a pretty strong spring / friction set-up so that humans can use them comfortably, so the weight of the nub won't possibly be enough to deflect it.
 
brunox69 said:
MWeston said:
Using the nubs as buttons doesn't really work...

When i play N64 with a dual shock like controller I'm used to map the right analogs stick as the C buttons, so how is the N64 controller mapped at Pandora?
Me too!

Does anyone know if the sensetivity of the nubs can be changed in the settings? Doesn't matter if it's globally, but just for example, to make mario tip toe (since many people complained about that in a recent N64 video) or to increase it for easy FPS gaming.
 
Last edited by a moderator:
Back
Top