Author Topic: Normally-on ABXY LEDs? Also thoughts about Skull Ghost LED kit  (Read 921 times)

Offline emcintosh

  • Guppy
  • *
  • Posts: 6
  • Post quality +0/-0
  • Gender: Male
  • On the internet, everyone knows I'm a cat
AIUI the Xbox controller is common-ground - the ABXY buttons have level '1' (at what voltage?) on one side, which is pulled down to ground when the conductive pad presses onto the circuit board. There are also regulated voltage supplies e.g. 3.5V, which can be tapped into to power LEDs. I think I could get an LED to light when pressing a button by connecting its positive leg to +3.5V and its negative leg to the high side of the button contact - when pressed, this is connected to ground and powers the LED. But I don't think I could do the opposite - have the four face buttons illuminated but turn off any that are pressed (and therefore covered by my thumb anyway) - unless there is somewhere else on the board that is normally at 0V, but goes high when a face button is pressed. Is there such a point? My always-on wiring wasn't great and at some point by accident I ended up with the above situation of held buttons' LEDs turning off, with the acceptable (desirable?) side effect of the remaining ones getting slightly brighter.



I have added LEDs to my ABXY buttons (and put the spare LEDs across the rumble motors, with a translucent case) using the Project Design Skull Ghost kit (e.g. https://www.aliexpress.com/item/32924288352.html).

The kit has six white LEDs and replacements for the ABXY and Guide (which I didn't swap, leaving me two spare LEDs rather than one) buttons. The buttons are in three pieces - clear shell, black support and translucent coloured skull, with enough space to hold the LED inside the skull. As I got the controller for use with Nintendo consoles (using a Brook converter), I swapped the skulls to the arrangement of colours on the EU/JP SNES. Because the buttons have space for the LEDs inside and the support is at the level of the original button underside, I didn't have to drill out and re-fill the buttons with hot glue, as others here have done (also negating the need to judge how far to fill not to affect button travel).


There were no instructions or resistors included, so I experimented a bit and I reduced the 3.5V supply from TP7 to 2.6V using 4kOhm resistance per LED (2x 2k2 (red red red =22 x 100; gold = ±5%) in series with the individual ones that light up when the controller rumbles; several-resistors-in-parallel in series with the four parallel ABXY LEDs). The LEDs are visible but not terribly bright at this voltage, which is fine by me. I calculate the current as 0.2mA, which is ridiculously low… I used 30 AWG multi-strand wire to connect the LEDs and resistors to the appropriate supply points. I cut some of the carbon pads' rubber support away to make room for the wires.

I'm planning to disassemble the controller again and improve my wiring (and maybe add an on-off switch for the LEDs accessible from the battery compartment) as the buttons' LEDs have stopped lighting at all (presumably one of my solder joints has broken), and will take some photos of what I've done at that point. Does anyone else have any recommendations / pictures of how they arranged the wires to avoid interfering with the button presses?
« Last Edit: April 30, 2020, 08:18:25 AM by emcintosh »

Offline RDC

  • Administrator
  • Around the block
  • *
  • Posts: 2609
  • Post quality +90/-2
  • Gender: Male
  • The CGnome Project
Re: Normally-on ABXY LEDs? Also thoughts about Skull Ghost LED kit
« Reply #1 on: April 30, 2020, 11:53:41 AM »
The button lines sit at the 3.3v logic level when not pressed, drop to around 0.03v when pressed, but that should not be used as a 3.3v source for driving LEDs. You could use a Logic Buffer chip to tap onto your button lines, then let it drive the LEDs and keep them on when no button is pressed, then they would turn off when the button was pressed. Likewise using an Inverting Buffer would do the opposite and they would only light when the button was pressed. That way the chip handles the load of the LEDs, and you use the button line state to turn them on/off without messing them up.

Could also be done with a PIC/ATMEL chip and a handful of code, or be a simple little project to get into that kind of thing, if so inclined.

Code: [Select]
if(A == 0)       // If A button is pressed..
  {
  LED_A = 0;     // LED for A is Off
  }
else             //.. otherwise
  {
  LED_A = 1;     // LED for A is On
  }

Granted there's a bit more to it than that, but once you have setup everything that's about all it takes to do it, read the button line state from one pin and have that affect another pin the LED is connected to. The Logic Buffer chip is just wire up and done though.

It's a bit easier to use an online LED calculator, piles of them out there, versus going thru a lot or trail and possible error where an LED could fry. Just one of the many - http://led.linear1.org/1led.wiz
« Last Edit: May 09, 2020, 10:05:17 AM by RDC »
Screwing up is one of the best learning tools, so long as the only thing you're not learning is how to screw up.

Offline emcintosh

  • Guppy
  • *
  • Posts: 6
  • Post quality +0/-0
  • Gender: Male
  • On the internet, everyone knows I'm a cat
Re: Normally-on ABXY LEDs? Also thoughts about Skull Ghost LED kit
« Reply #2 on: May 09, 2020, 06:23:04 AM »
Thanks for the logic buffer advice. I have received the chip, and am just waiting for the on-off switch to arrive.

Can you recommend points to connect to for the 3.3 V button signals (the board is 1698 Elite)? TP21, 22 & 23 should get A, X & Y, but is there one for B? TP41? Presumably I shouldn't be soldering onto the places the buttons press onto, but I could scrape some of the insulation off one of the traces leading to them. Which side is signal and which is ground for each button?
« Last Edit: May 09, 2020, 09:06:43 AM by emcintosh »

Offline RDC

  • Administrator
  • Around the block
  • *
  • Posts: 2609
  • Post quality +90/-2
  • Gender: Male
  • The CGnome Project
Re: Normally-on ABXY LEDs? Also thoughts about Skull Ghost LED kit
« Reply #3 on: May 09, 2020, 10:04:30 AM »
There's no need to scrape traces and such, just use the TP spots. The one for B is on the MCU board.
« Last Edit: May 09, 2020, 10:05:55 AM by RDC »
Screwing up is one of the best learning tools, so long as the only thing you're not learning is how to screw up.

Offline emcintosh

  • Guppy
  • *
  • Posts: 6
  • Post quality +0/-0
  • Gender: Male
  • On the internet, everyone knows I'm a cat
Re: Normally-on ABXY LEDs? Also thoughts about Skull Ghost LED kit
« Reply #4 on: May 16, 2020, 04:21:13 AM »
Mission complete! It was fiddly and I can't really recommend it to anyone else.

If you only want to light up the buttons, rather than having them turn off when pressed, you may find it easier, as you won't have to deal with the buffers, and can join all the + and - wires and have only two coming around to the MCU board - I had one per individually-controlled LED, and three negative wires, based on how annoying it was to route wires around the ABXY buttons. Of course, you'll also need to have individual wires if you use different coloured LEDS needing different resistors - mine were all white.

I had to snip bits from the rubber mat supporting the carbon pads to leave room for the wires to come out, I used multi-strand wire wherever possible, using single strand wire to connect the negative terminals of A & X, as the thicker wire prevented the buttons from pressing properly. I used a loop of wire for that so it wouldn't stress the soldered joints. Even these thin wires needed me to cut out a length from the rubber ridge, not just notches as for the other places.

The solder ball at TP7 fell off, so I scraped some of the insulation off the board to the left of it. In general I would recommend soldering a short length of wire to any delicate points on the board to start with, then do all the re-soldering to that wire rather than the circuit board, to reduce heat damage to the board. Also taping that wire down so the solder joint to the board won't get pulled.

Here is where I put the wires, colour coded for standard Xbox buttons for anyone who wants to try this themselves. The switch is accessible from the battery compartment through the hole between the + and - contacts, but is just taped to the post with the four contacts - it's not electrically connected to them.

There isn't very much clearance between the MCU board and the back of the case, so I'd recommend having your chips/wires as far left as possible, in the right hand grip (we're looking at the back of the controller), or tucked under the MCU board. The wires could also be a lot neater, which would help things not to press on each other, but I left plenty of extra length to avoid pulling on any of the soldered joints.







Update: wiring somewhat tidied and rerouted (using thinner wire let me route them between the buttons to come out at the side of the board, so as not to interfere with the right trigger).



« Last Edit: August 14, 2020, 07:41:02 AM by emcintosh »

 

SMF spam blocked by CleanTalk
SimplePortal 2.3.5 © 2008-2012, SimplePortal