Rover Joystick

This is a project to track a new joystick setup.
New more up to date joystick required that can be a bit more responsive to the changing needs of the operator.
Current joystick is using a Basic Stamp 2 module to control not just the inputs, but also the wireless.  The wireless is communicated to with an I2C connection. The Basic Stamp 2 is only using 100khz connection and possibly less than that. It is set to use 100Khz, but the actual through put is less with the sequential methods that the chip operates. Looking to update the design to use an EFM8 and maybe even add some features. Insteal of a Rotary POT for throttle, looking to use a linear slide POT. Also looking to add extra buttons along with the Joystick.  Current method for determining the position of the joystick is to us RC code for the Basic Stamp. This by its nature tends to be a bit on the slower side. the ADC built into the EFM8 should be faster. I never fully understood how the basic stamp was able to determine the level unless it had an ADC on board also, but if it does, it is not able to be configured as the EFM8 can.  In addition, the Basic stamp needs to poll for changes to read everything.  This loop can take multiple milliseconds with the RC code in place. The EFM8 in comparison should be able to measure everything in a millisecond with the right setup.  Research is still on going here. Basic train of thought is that everything has a resistor to protect the MCU, but by doing that, the ADC takes longer to make a reading.  The buttons do not have to be polled however as they will be interrupt driven. I may look into dedicated ADC chips to get the position data as they should be able to have instantly available information on the positioning.  Then it’s just an I2C or SPI comm request away for all settings.  The MCU can handle it, but will need to carefully time the input response… especially if we add a screen to write to.
Debate is to have 2 thumb joysticks or a slide rail.  It is possible to make the setup modular, but only just now thought of it. That would require more 3d printing to make a reality. But what if you want both?  Back to square one.
Purpose of the Thumb joysticks? To add direction.  For a tank type vehicle, it may be desireable to be able to independantly move each of the machine’s treads. With a single joystick, the slide rail is used to set a throttle setpoint, and the joystick is used to steer. Getting both Joysticks in and a sliderail in this case is desireable and the original intent. Buttons and switches are needed to select states and when to activate something. Currently set for 4 state changers.  I was originally planning 4 buttons, but may go with 2 buttons and 2 switches if I can have the form factors match. Otherwise the MCU needs to keep track of the states.  Having switches would allow the control of a concept for a model rocket launcher/crawler.  Using switches to confirm system arming.  One switch to arm the system.  One switch to pull back restraining arms. And a button to launch.  Make the switches modular? might be doable.
Control board:
626e16fe94122d2cd32c53f6b1519ffc.png
74a7dc2f5792de60ee27251810ae66bd.png
Control board is on Version 2 as the pull up resistor was on the data line and not the clock line like it should be. Original version still usable with a discrete resistor and will be used. Project updated for future needs.
Power board:
7f8f422d609090da81cf300911e4fb68.png
The power board is also on Version 2.  The switch was initially mapped wrong and so the board was unusable. New board is on the way and should be here in a couple days.
7/18/18 – Got the V2 boards back and the soldermask was off a bit. It was within tolerances, just not spot on like usual.  As a result, the top copper pour was exposed and made it extremely easy to create a short. I created a V3 and ordered it. The difference being that the V3 top layer VIN copper pour only really covers the pins that need VIN. Anything else in the area was given a much larger spacing to try and counteract when these mistakes happen.  In addition, V2 was flat out wrong as when it was rebuilt, the power in header (2 pins) was listed as having the pins on top, instead of underneith, so the input pins were reversed and thus the copper runs were wrong.  Third times the charm! just a month of waiting …
8/17/18 – Got replacement boards back and they were spot on by all appearances. Its time to start working on these again.  The previous issue with the solder mask was actually my fault.  There was an expansion rating for the solder mask that is adjustable and while I don’t ever remember changing it from 0, it was set at 700 microns which was enough to reveal the underlying copper pours.  The new one doesn’t have that mistake as well as fixes the power connector.
Now it is time to start soldering and getting it put together and programmed.