this is lolserial. first proposed by fail0verflow in 2013 as part of their attempts to get serial communication with the Wii U to aid in hacking.

code to do it just hit the linux-loader repo

I don't think I've hosted code this cursed before and I love it

@quarky I didn't believe the picture, so I took a peek…

static ALWAYS_INLINE void set_sensorbar(int s)

…a serial console (well, output) over the Wii U sensor bar connection? This is cursed, but.. cool. I didn't realize the sensor bar connection was that high-speed. 🙃

@digitalfox we've only been running it at 9600bps; but as you can see in the pic there's stories of 115200
it's pretty neat! the sensor bar is just a GPIO to the Wii U (other gpios include the fan speed and power button) so y'know, if your code can flick the bits fast enough..

@socks @quarky Imagine trying to get a sufficient amount of data in a very short period of time from what basically amounts to an LED blinking

I'm pretty sure that's the implemention that's being described here, they just turned the sensor bar plug into a serial port and are presumably turning on and off the power to the port really, really quickly to send data as if it were a serial port

@Frinkeldoodle @quarky That just seems like a really creative solution to me, not exactly cursed

Isn't that also how infrared remotes work anyways

@socks @quarky I mean, it works, and we're not saying it's absolutely a waste and horrible, but it's stupendously slow

It works well with remotes because TV remotes don't have to send much data. Sending information over serial the way described in the post? Sure, if you have zero other options this is fine, but... consider the fact you've got USB among other such inputs on the console that would run magnitudes faster, and having that as an option and choosing to use the silly serial over sensor bar option? That's what cursed is all about and it's the kinda thing I live for

@socks @Frinkeldoodle counterpoint: 115200bps is pretty good for a serial link
also, on the software side, USB is rather complex compared to this, which is just setting and clearing a single bit in a register to drive the line high and low
I think the cursedness comes from.. y'see Wii Remotes don't work like a TV remote, where the IR is sending data from the remote to the TV

@socks @Frinkeldoodle instead the sensor bar literally just has always-on LEDs in it; at a certain distance apart, and the Wii Remote has some kind of IR camera that can detect the two bright spots and use that to determine its position w/r/t the TV
this data gets sent back over Bluetooth along with the button presses, which is why the remote needs syncing and works without line-of-sight

@socks @Frinkeldoodle if you have a Wii, go find the "sensitivity" adjustment in the settings, it'll show you the raw data from the remote and it's pretty cool

@Frinkeldoodle @socks does this mean 115000 baud? because that sounds pretty fast to me, after being stuck with 9600 baud for so long >_>

then again it matters coding and whatnot, but 115000 bps ain't bad for the most naive stuff

@foxiepaws @socks Oh I might've had 11500 on the mind, I just remember trying two different baudrates with serial with my Arduino and being astonished with how much faster my arduino was in comparison to it

I think I remembered having to put a delay of, like, 30-35 milliseconds between sending packets of 5 bytes or else the Arduino would start overwriting the data I was trying to send out, essentially ruining it and thinking how painful it'd be trying to send a fair bit of data with a speed like that

Sign in to participate in the conversation
Feather City