
A look at inner workings of Joycon and Nintendo Switch - retSava
https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering
======
sgspace
I am really impressed by how the joycons and the switch itself “just work”. I
have never had any syncing issues. You can play the console with the
controllers attached to the switch or with the controllers wirelessly and you
can change at anytime you are playing the game. I’ve never had any issues with
syncing and changing playing style. Attaching/detaching the controllers never
takes more than a couple seconds even in the middle of a game.

~~~
dkersten
Is this a common issue on other platforms? I’ve basically been using my PS4
controller as you describe (although wired more often than not simply because
my setup has the console close enough for it to be convenient) and I’ve never
had any issues. It always seem leaky switches between wired and wireless.

~~~
w0m
I think his comment is more that the Joycon syncing is a bit more complicated;
as they have ~4 separate modes of operation - Attached, Attached to charging-
controller, separate-but-together, and separate.

You can get into scenarios where things are 'off', but nothing 10 y/o me
wouldn't have figured out quickly I think. It is pretty well done overall;
much better than the bottom charging port.

------
crankylinuxuser
Maybe someone smarter than me can explain this:

"Also, in a bizarre move, Nintendo didn't use the traditional "one side
pulled-up other side to ground" way of reading buttons, instead they used a
keypad configuration where buttons are arranged in rows and columns. They used
the keypad scanner built-in inside the BCM20734 with 128KHz clock for reading
the buttons. That means it would be extremely hard to spoof button presses for
TAS and twitch-plays. Maybe the Pro controller is different, need to buy one
though."

Why would a 128KHz polling prevent spoofed button presses? Seems like a NPN
transistor could easily spoof that - if TAS players are looking at that. Or am
I just missing something how TAS players do it now?

~~~
mikewhy
I didn't think TAS or Twitch Plays used real hardware anyways.

~~~
djur
They've been doing tool-assisted runs on real hardware for a while now:

[http://tasvideos.org/TASBot.html](http://tasvideos.org/TASBot.html)

In addition to TASBot, there's also a growing practice of using physical rigs
to "verify" tool-assisted runs:

[http://tasvideos.org/ConsoleVerificationGuide.html](http://tasvideos.org/ConsoleVerificationGuide.html)

This isn't generally regarded as necessary for a TAS to be valid, but it
allows it to work on TASBot and similar rigs, which can help it get in front
of a wider audience. It also helps figure out which TAS techniques are
theoretically possible in non-TAS runs.

~~~
aji
the importance of console verification is to make sure a TAS isn't relying on
any emulator bugs (such as timing, uninitialized memory, etc) and would
theoretically be possible on the actual hardware. it also speaks to the
accuracy of the emulations themselves

~~~
zzazzdsa
For a specific example of something like this being important, remember the
(very impressive) Watch for Rolling Rocks in 0.5 A presses video from a couple
years ago?
[https://www.youtube.com/watch?v=kpk2tdsPh0A](https://www.youtube.com/watch?v=kpk2tdsPh0A)
(For the uninitiated, this video presents a TAS of Super Mario 64 which beats
the level Watch for Rolling Rocks without pressing the A button outside of
keeping it held from entering the level.) It turns out that the route
presented in the video actually fails console verification, since the crazy
things he does trigger some annoying FPU crashes on console, but not on
emulator. There is a happy end, though: a fixed route was published after this
was discovered, and it passes console verification just fine (assuming the
inputs dont desync over the 13 hour run)

------
jakebasile
All I'm personally hoping for from the Switch modding community is the ability
to back up my saves. It is mind boggling to me that I cannot plug a USB drive
into my Switch dock and back up saves. I take this for granted on PC but this
should be a day 1 feature on any gaming device.

~~~
plandis
Doesn't the Switch provide an SD card input? Can you not save data to that?

~~~
jakebasile
It does have a microSD, but all game saves go to the internal memory of the
console. Even then, the saves are encrypted such that they cannot work on
other devices.

Citation: [http://en-americas-
support.nintendo.com/app/answers/detail/a...](http://en-americas-
support.nintendo.com/app/answers/detail/a_id/22289/~/data-management-faq)

------
generj
Nothing in the breakdown explains why the Joycons are so expensive at $80.

The MEMS accelerometer they use costs $1.88 each when buying 500 at a time.
Presumably the other chips are about that much as well. There are a lot of
connectors on the PCB, but in bulk they, the case, and the battery should be
fairly inexpensive.

The entire concept of the Switch as a multiplayer in-couch experience is
heavily undermined by the excessive cost of a controller.

~~~
tdb7893
Each joycon being 40$ seems pretty reasonable. If one component costs almost
2$ then it's not hard to see how after buying different components, designing
the system, assembling the components, packaging, shipping, and everything
else adds up pretty fast, especially when you consider that people also want
to make a profit on top of all of that

~~~
woodrowbarlow
i think the argument made by GP (which i agree with) is that the controllers
should be sold basically at the cost of materials in order to encourage the
"multiplayer in-couch experience".

i would expect most of the profit comes from licensing fees and royalties,
anyway. that's where they'll recouperate the engineering cost.

------
edpazu
The HD Rumble on these things is pretty amazing. It makes games like Super
Mario Odyssey and Golf Story a real treat to play.

~~~
dejawu
I've yet to differentiate the "HD" rumble from just normal rumble. It just
feels like there are more degrees of being "gentle" vs "strong". Is there a
hardware difference between what's in the Joycons and the standard
counterweight-on-a-motor?

~~~
minimaxir
There are several Moons in Odyssey which, in traditional Nintendo fashion,
make full use of the new system hardware by vibrating the joycons _with
increasing intensity_ as you walk around the area until you feel the strongest
vibration, which is where the Moon is located.

~~~
izacus
Is that so much different than what e.g. even older Xbox 360 / PS3 controllers
could do? I remember games like Tomb Raider and several others using similar
haptic feedback systems.

------
dboreham
Lack of silk screen doesn't have to be an obfuscation measure : silk screen is
an extra process step during PCB manufacture and if you don't need it,
omitting the step saves money.

~~~
Posibyte
Exactly. The test points don't need to be numbered either. The CAD tool they
use to design the boards can produce a bed-of-nails pattern that can be fed
back into QA testing machines. If something fails, they can pinpoint it
through the testing facilities and propagate the failures up the chain. At
least in my experience with modern manufacturing, unless you have someone
doing manual testing with a spring-nail, labelling the test points is
completely optional.

~~~
fiatpandas
Do you know the term for the QA setup/device to test multiple PCBs at once? Or
to e.g. write firmware to more then one more at once? What are some search
terms for that?

~~~
thesmok
That's done while the boards are already populated, but not de-panelized yet.
All boards in the panel are connected to the JTAG bus, that connection will be
broken when you remove them from the panel. JTAG traces run in the "frame" of
the panel. So you have a single connector on a panel that you use for flashing
firmware and doing boundary testing. Dave Jones @eevblog explains that in one
of his videos. I can't remember which one, but I'd start search from this
series
[https://www.youtube.com/watch?v=VXE_dh38HjU](https://www.youtube.com/watch?v=VXE_dh38HjU)

~~~
fiatpandas
Thanks for the guidance. His design for manufacturing series will be good for
me to go through.

