05/19/2017 at 21:59 •
So one of the features I absolutely have to have is what's called a card edge connector. Inspired heavily by the Nintendo cartridges of old. My first system was Atari with the only game of ET.... so we don't count that. Either way it's a feature I really wanted for... reasons. Now after having several default footprints in KiCad be anything but friendly when i go to fit check everything I decided to skip looking hard for anything that might work and instead get my calipers and just do some observation work. Then I had a fun time juggling top and bottom layers while placing pads. Then off to the OtherMill!
Starting to look like the breadboard friendly test piece.
Side one is done, now to flip and cut side two.
And on to side two. The cool thing in the Othermill software is just a toggle switch in the UI fro front/back. Also there are toggles for Traces, Holes, and Edgecuts. This is important to note because cutting out edges from board on first cut will cause for many a bad time.
And the first impression looks good.
Bring together parts I'll be mating.
And success! I metered out continuity and everything tests out beautifully.
Just look at it!
Time to cut out more for testing.
This is a better shot of first side cut. Notice that i recessed one tab, that is the +5v so that i'm better ensuring GND is connected before applying power.
Time to cut second side.
And i made an oops. Two large holes on left side are do to the v bit not making contact on the flat part of the platform on homing. Seems homing position had been changed since I last used the machine, and has since been resolved, But I'm the guy to find out all the issues. Lucky me. :)
And here is a happy family of breadboard friendly edge connectors.
05/04/2017 at 09:09 •
I have always had the need to take things apart and see how they work... imagine the most curiously destructive 2 year old. That may be close to how i was and still am. Although now i know electricity can hurt, and one can accidentally weld multimeter probes to objects. And since a lot of this project is going to be not only replacing what we define as a button and actually educating people how to observe what already exists, it's about time I do a tear down with intent to educate.
Below we see a few buttons. Different shapes, sizes, and mounting methods yet all of these have the same purpose. To momentarily compete a conductive path across the legs of the button when the top it pressed down. (i hate saying depressed... sounds silly even when talking about buttons). All of these buttons happen to be "Normally Open" which means that the legs are not all connected when no force is applied to the button. Thereby making an "open" circuit.
Now to see how this works mechanically we need to open one up and try to take note of nearly every detail. It's not super import to note everything as long as we note the important parts, like how connections are managed between pushed and not pushed, and maybe what pushes back to return to a open state when not pushed. After all those are the features of this particular component that define it's usefulness. First thing we do is cut the plastic rivet tabs on the top holding the white piece in place so that we can pull it up and off.
This then make it possible for us to simply pull the part of the push button that we make contact with out. Take note of the shape of this piece because it gives us info on how it distributes force when we press down on it. There is a center piece that extends right below where we press, as well as two legs on the sides of the button as well. The legs are slightly longer than the middle piece. Just an interesting observation at the moment.
After we pulled the button we also notice a round piece of metal. One immediate thing to note is the shape. it is not flat, it's dome shaped facing upward towards the plastic piece we just pulled. This means that at rest the dome piece of metal pushes upward on the button contact and when we press down we are in fact making the dome piece of metal invert. At least in the center. Since we can see a slight change in the dome's edge I would make the assumption that the edge itself might very well not invert, but only the center. Reason i say that: with all of the things I've taken apart, it's very rare that some detail has not reason or history for being there. This is no exception.
Now it gets to the fun part. I can either melt away the plastic in a potentially harmful out gassing process (curious how i'm still alive with all the experiments) or I can lean on another skill plus the use of a multimeter to do what is called continuity testing to find out where all conductive surfaces are, and then with the use of calipers and my favorite modeling tool Blender, model out observations. We'll save that for my next lengthy post.
See you then!
05/04/2017 at 09:07 •
Diving into connectors was somewhat easier and more difficult than expected. But luckily I got some unexpected help on this front. See I knew that i wanted to explore the different JST (Japanese Solderless Terminal) connectors. I'm sure most of you have already had some interaction with at least 2 different types or "series" of jst connectors. Be it the LiPo battery connector, the power connectors for RC cars, or something like the Seedstudio Grove Kit. These things are everywhere! But without knowing the different series it could be most interesting ordering blindly online or just finding connectors based on number of contacts.
Left to Right: header pin connectors, stepper motor cable, JST XH to header, and then JST GH (So tiny)
Lucky for my I happen to follow a fellow maker in instagram by the name of Neurotinker who at one point posted a really tiny GH series connector during one of their builds. I asked the series and that led into the offer of help crimping some cables. I put in the order and sent them the parts directly, where they put some cables together and even created a test rig! This community is amazing and I strongly recommend following them on instagram. The moment I knew i was among peers was the moment they posted this gem of a 0-Layer Teensy!!!! Seriously love that this exists.
For anyone curious about all the different series of connectors that exist Go Here.
05/04/2017 at 08:43 •
and possibly penguins.
Say hello to tiny make-my-hand-hurt controller. Admittedly I did not think this one through. Well not at least in the usability department. Mostly it was just to have buttons i can connect later and use for a pocket sized test rig roughly based off of the SNES controller from days with some minor changes for extended testing. Like having switches that act like latching buttons in execution. And potentiometers for.... well something I have not come up with yet. That's a puzzle for Future Metal.
I've also made a more robust Teensy dev build with GND and VCC/5V/3V rails for quick testing of sensors. Admittedly all of the header female sockets bunched up like this has on occasion made for a blunder or two. But that's reason #17 why i like the Teensy so much. I've done many a dumb thing to them and yet they still keep kicking.
And a bottom view to better show what i mean by the GND and power rails.
I really like soldering and putting things like this together but we are already viewing a threshold stopping many from diving into this kind of build. I've taught many classes for something as simple as soldering to students that have never soldered, or have but felt super self conscience of their work. And after every class, every single student has left feeling confident that they can tackle most projects like this and after our discussion on how to use the multi-meter, feel like they can at least observe issues and have a chance at fixing issues. Sadly though I am not able to sit with everyone I meet, or friends from different stated to provide the same reassurance enabling them to continue forward. So how do we make these kinds of projects accessible? What are all the pitfalls that hinder people just starting, or getting past their first issues. That in part is a goal to be addressed through this project.
05/04/2017 at 07:29 •
There are so many to choose from.
This is something reiterated time and time again by most of my mentors and friends. So let me walk you through an example of what I mean and the oh so common feeling of starting a project and stopping short due to fear of not doing it the "right way".
Given that I would like to set up a no code jump into game controllers I decided it would be smart to buy several controllers and see if there is a standard button layout to build off of. The two main reasons this is important to me would be allowing for a 1 to 1 comparison example build allowing people to make slight adjustments to different dimensions to make a nearly perfect controller be exactly what they want, and to minimize code changes in the software of many preexisting games.
I picked up some controllers from "Hack Me" boxes at local hackerspace like Crashspace or Burbank Makerspace and made some purchases from Amazon. Then i took all of the controllers I had and through windows device management i could check controller settings. This brings up a screen for seeing what number or axis is sent to the computer when a button is pressed or a joystick is moved.
The first one was an old Axis Pad. My computer did not recognize the device. Most likely i would have to install drivers. Since this is already the opposite experience i want for anyone else I decided to move on. The reason i chose the Teensy to build off of was it's ability to be understood as a joystick when plugged in. Nothing else need be installed.
This gem was found in the Hack Me box at Crash. so all bets are off to say the least. Also not recognized by my computer... well not entirely. The name Playstation (R)3 Controller showed up in device name. even though SplitFish was want was on the side.
This one i purchased on Amazon. It's the ZD+N controller labeled for computers and mobile devices. It immediately worked out of the box. just plugged in and it knew it was a joystick AND it observed all button changes without any issue. This is a lot more like the experience i want for my clients. This being the first controller to pop up in this list of experience I did notice a few things on the joystick settings that was new to me. The number of buttons updated to match number of buttons on the controller. All button signals and joystick values are solid and without detectable noise. In tandem to buttons and joystick axis values I could now see something called "Hat" referring to the D-Pad in the bottom left. All things to test and look up more later.
This little guy simply labeled VR 3D was from Burbank Makerspace for testing. Only acted and a mouse on the computer regardless of what mode i placed it into. I think more for presentations than games, But i do remember playing with this some on my android for a unity test build many months ago. The no joystick mode for computer quickly ended my time testing this one out as well.
This one was yet another Amazon purchase after simply searching "VR Controller" and buying the cheapest one at the time. This one had mostly responsive buttons and joystick. One button was very iffy. The most interesting thing about this little guy was the button layout. Four buttons set next to each other have a joystick address of 2, 1, 11, 9. Where as the other controller I liked above went 1, 2, 3, 4.
Then there is the possibility of the Teensy. Just connects, and any pin i switch to i can map to any button value/address. Same goes for axis data and once I flashed it with the demo joystick code by Paul, it just connected and worked. Both for computer and phone. Although without anything tying my axis analog pins to any value, it did showcase all the noise so leaving no option for a disable or static pulled down position, this could show up and have undesired effect in games. So optional jumpers to pull pins to GND will be entertained as a solution.
All in all I have observed more of what i don't like about how things are currently than things i do like. I've seen that in regards to layout, all bets are off in most cases. One interesting thing to note, button layout observed from computer and mobile devices can be seen differently even if it's the same controller. And all of that anxiety most of us have when learning a new thing, and the apprehension sharing and showing our builds to others needs to just go away. We have spent so much time in systems that train us that if we don't have a certificate, many years experience, or someone telling what "the right way" is, that we are not allowed the option to start. Or worse yet, that our opinion of observations are somehow invalid. That way of thinking is complete garbage in my opinion. As Hutch always tells me, "One test often beats a thousand expert opinions" And with the onslaught of opinions out there, how many of those could even be considered "experts"?
Test everything, and for the sake of everything that makes life amazing and impossible, please stay curious.