Analogue stick without addon board
#1
Hi, I'm a bit of a long time lurker and have never felt I had anything worth contributing to this forum but have been grateful for much of what I've seen and enjoyed seeing people's fantastic builds. Other than a no frills Freeplay Zero and a couple of PocketPi FEs I haven't built anything particularly ambitious before. 

I've bought myself a Boxypixel CM3 and I'm wanting to add a single joystick of some kind to it but I've hit a roadblock. I plan on using the BoxyPixel addon board for L2 and R2 inputs through the shoulder buttons but I also want to add one joystick.

Asking anyone who's used both the standard and BP addon boards in builds, is it possible to use both addon boards on a single CM3 board or will they need the same pins to be soldered to? Or could I cut away any unneeded parts (fan, back R2/L2 inputs) of the standard board to leave only the analogue stick parts? Or, ideally, is it possible to solder the wires for a joystick to the freeplay board directly without the need of an addon board? I'm totally uncertain if the addon board is designed as an all-in-one solution for fans, L2R2 and dual sticks or if it's the only way to add any of these. I'm hoping a single stick, rather than dual, could be added more directly.

To be honest, there seems to be little information around on how to actually add these to Freeplay boards and without step by step guides my abilities are pretty dwarfed by this task. I was thinking of going the 3DS slider or Switch joycon route but, other than a few forum posts mentioning converter PCBs (which seem to result in four connection points similar to a PSP 1000 stick) for a Switch joycon, I've had no luck finding any info on how any of the options connect. Hipcat's stunning builds, that combine shoulder L2R2 iinputs with dual sticks, give me hope that it can be done, but I'm hoping that the BP addon board recently released will make it easier for a newbie like myself to do. 

I'm hoping anyone who has any information on how to go about this might be of use to more people than just me and thank you to anyone who can provide any info!

Thanks!
Reply
#2
Hello,
The problem with the standard addon board is its size, it can't fit Boxy Pixel shell :S
To connect a joystick, you need at least 2 analog inputs, this is done on the addon board using MCP3021A ADC chips.
The current GPIO driver is also able to use ADS1015 ADC chip, so I think the easier solution could be to use this (or its Chinese counterpart): https://www.adafruit.com/product/1083
Note: The Chinese version is smaller but make sure to not take ADS1115 version, theses are too slow.
Reply
#3
Hi Porcinus!

Thanks for your reply!

If I were to buy this ADS1015 chip, what type of joystick would work with it? PSP 1000, Vita or Switch Joy-Con?

And, while I'm stealing your expertise... Where and how would I connect this chip to a joystick and to the freeplay board? Can it be used in conjunction with the boxypixel R2/L2 add on board?

I've seen that the psp 1000 stick has four pads to solder to, the two axis, ground and vcc, and that the vita stick can be converted to this from its ribbon cable using a 6-pin connector but I'm unsure on the specifics.

Thanks

I'm a total novice at working on electrical boards themselves and have stuck completely to all in one boards up to now. I've honestly only just learnt how to solder and I'm not even sure what type of wire to be soldering between these chips haha
Reply
#4
Something really important to take in consideration is your ability to solder small things, Vita/Switch/3DS require you to use a FPC connector, there are some board out there but these are a bit big.
PSP1000 sticks doesn't require a FPC connector so it is the easiest way to go, since you can directly solder wires on its back.

Aside of this, it is a bit difficult to recommend any stick, it mostly depend on you.
Personally, I prefer "pivot" type (Vita/Switch) but some persons prefer slider type (PSP/3DS), the best I can recommend you is to order one of each, these are pretty cheap in China (1$ to 3$ per pcs).

I will take Adafruit board as exemple:
- VDD need to be connected under the compute module on the pad +3V3
- GND to GND
- SCL to 45
- SDA to 44
- ADDR is a bit tricky, you can connect it to VDD,GND,SCL or SDA, I recommend GND.
- ALRT is not connected
- A0 to A3 are analog input

On stick side: https://www.adafruit.com/product/444 as a example
- VCC to +3V3
- Ground to GND
- Left/Right to A0
- Up/Down to A1

You can also "thekindofstick pinout" on Google Image, aside of the pinout thing, it can also provide you some additional visual on what peoples do (Sorry, English is not my main language and this part sound weird to me)
Reply
#5
Thank you so much! I think I understand.. I've read what you've written a few times over and I think I'm making sense of it..

Do you know where I can find a map/pinout diagram of the Freeplay CM3 board? I don't know where GND, 45, 44 or the others will be on there. Are they labelled on the board? I've searched the freeplay website and google but not found much.

Thanks
Reply
#6
Hey guys. This is actually something we've researched and put some time into already. Our take on it was that almost nobody would want to cut a hole in their Boxy Pixel shell to add an analog stick.

That take on it was a bit of a guess, so now I don't know if you are one of "almost nobody" or if our assumptions were way off.

I don't want to dissuade you from doing it the way Porcinus has laid out. Plenty of people use the ADS1015 chip to do analog inputs, and Porcinus definitely has a lot of experience with this stuff.

At the moment, Andrew (who does the PCB layout) isn't around. He just had his first baby, so he's pretty unavailable. BUT, he did put some effort into how we could get the analog chips into the BP shell, and he may have a solution for you. I'll ask him to look at this thread when he has a chance and either tell me something or chime in here.
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#7
(10-26-2019, 02:19 AM)DavidRaid Wrote: Do you know where I can find a map/pinout diagram of the Freeplay CM3 board? I don't know where GND, 45, 44 or the others will be on there. Are they labelled on the board? I've searched the freeplay website and google but not found much.

+5, GND, 44, and 45 are all easily available on the Freeplay CM3.    In the attached photo, there are 2 spots that each have a 6-pin header.  The left one has GND and 5V.  The right one has 44 and 45.

[Image: Screen-Shot-2019-06-16-at-9.10.40-PM.jpg]

The only tricky part is that the BP L2R2 addon board would cover up some of these.  You'd just have to run wires around to the other side of the main FPCM3 board if you wanted to use the current BP L2R2 board in conjunction with the analog.
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#8
Hey Flavor, sorry for the lateness of my reply, I've just finished a work shift.

I probably am in the "almost nobody" catagory haha. I've always had Pi Zeros in my builds and this will be my first powered by a CM3. The thought of having a unit powerful enough to play Mario 64 and Ocarina of Time makes me feel like I'd be mad not to try and add a stick, freeing the d-pad for use as C buttons. Big Grin

I couldn't justify the buying a CM3 board when I had a Freeplay Zero already (though I'd regretted not going the CM3 route back then) and the lack of a joystick option had kept me from investing in a BoxyPixel Shell (which was enough of an eyecatcher to justify a CM3 upgrade.) However, in a conversation with a long time customer (I work in a local grocery store) who worked in a nearby factory working with metals, he offered to make the hole for me if I marked the placement and size. He seemed confident that he could do so without damaging or warping the aluminium. This changed everything for me and gave me the push Big Grin

Sorry for the life story haha, Thanks so much for the board picture, that really helps! Thank god it's so perfectly labelled haha. I've been mulling your sound advice in my head throughout my shift.

It sounds like I could follow Porcinus's route and order the ADS1015 12-Bit ADC chip, follow his instructions to wire it to the adafruit PSP-1000 stick, then follow your idea to run the wires around to the other side of the Freeplay board to access the holes on the back, as the BP L2R2 will be preventing access to them from the front.

(@Porcinus When reading a sudomod post about joysticks, they mentioned that a Vita stick could be converted from the ribbon connection to the same four outputs (left/right, up/down, VCC and Ground) using this converter https://www.walmart.com/ip/Unique-Bargai.../135068700 Is that the FPC connector you spoke about? And would this work with a Switch stick? I think a switch stick would be my choice if easy enough to do.)

I'm embarassed to ask but.. I am a fair bit out of my depth on a basic level here, though I intend to be patient and careful. Specifically, what kind of wire should I be buying from Adafruit? And to use these holes, so I need to solder the ends of the wire directly to them or do I insert male pins into the holes (as I see in the standard freeplay L2/R2 board instructions) and then solder those in and then solder wires to them? Or do the wires themselves have pins on the ends?

...I'm really trying not to sound like an idiot saying this, heh. Thank you for your patience guys. The last thing to work out, I think, is where the stick would fit inside the shell best (presumably beside start and select) and how to keep it from moving around. And I guess insulate it from shorting anything? Kapton tape over it, perhaps? I might be in over my head with this but I'm hungry to learn. Smile

Thank you both for taking the time to read my posts and to respond with such thought and detail. You're both amazing.

As for Andrew, when/if you do read this.. Congratulations on your baby! That's amazing news.

I'd love to hear your input and suggestions on how to avoid roadblocks if you have time but I'd totally understand if you didn't.
Reply
#9
I have to admit, the more I look at the picture of that board.. the more I begin to wonder if a Switch or Vita stick will fit. Won't it cover the Start and Select pads? Is the PS1000 pad the only one small enough to fit in that space? All the (amazing) stick mods I've seen have Start and Select moved.. is this why?
Reply
#10
I hope I will not miss too much thing :S

This FPC connector should be compatible with the Joycon stick, I think Vita too Smile

For the wires, Magnet wire is a bit tricky to solder and fragile, the best option I see on Adafruit website could be 30AWG wire.
You can solder theses wires end on theses holes. but Flavor may need to correct me on this, do you plan use the Boxy Pixel L2R2 Add-On Board?

But making a hole on the shell is not the only thing you will need to make, to keep the price as low as possible, Boxy Pixel guys remove as less material as possible.
This introduce a big problem, it is easy to cut and adjust a plastic shell, on the Boxy Pixel you will have to play with a dremel.
The best I can recommend you is to buy 2 analog sticks, one that you will keep for the final build, the second one you will have to use to test the fitting (on this one, you will have to remove/cut the stick).
If you do it right, the analog stick shouldn't be able to move, what I did on my build was to put a piece of kapton tape on the back and a tiny piece of foam.

If you are really to make this project, patience is key, don't try to rush.
If you make little mistakes on the inside on the shell, don't worry, nobody will see it Smile
Masking tape is really helpful to avoid scratching the exterior of the shell Wink
Once fully finished, clean the whole shell (interior/exterior) as best as possible to avoid any shorts.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)