1 / 6
SpaceMouse with NO WIRES! — zdjęcie 1
1 / 6

SpaceMouse with NO WIRES!

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

I designed a PCB to take care of the wiring

Ocena
5 / 5
Polubienia
238
Pobrania
563
Wydruki
1
Wyświetlenia
7554
Oceny
2

Aktualizacja u źródła:

Informacje o modelu

Źródło
Printables
Kategoria
Computers
Licencja
Creative Commons — Attribution — Noncommercial — Share Alike

Based upon the V2 Space Mouse/Mushroom design with a printed circuit (PCB) board to take care of the wiring having the joysticks plug into sockets on the PCB.

 

Update #3 - updates moved to an update section at the end (good news - issues fixed :-)  )

 

Printed Circuit Board (PCB)

The Arduino is soldered onto the PCB using the pins supplied with it (trim any excess off from the bottom of the board as I only allowed a 2mm gap beneath the board). 

Every pin on the Arduino is "broken out" on the PCB to allow for wiring in switches etc.

5 pin 2.54mm single row female PCB headers are the sockets used to connect to the joysticks.

Getting your PCB 

You don’t need to know anything about PCB design & manufacture – just upload the PCB Gerbers Space-Mouse.zip file when you order the PCB.

I used jlcpcb.com to make the printed circuit board – usual disclaimer: “other PCB manufacturers are available”. I have used JLCPCB for many PCB designs and have always been very pleased with their quality and value. (The total cost of manufacturing, shipping and tax for 5 of these boards sent to the UK was £3.33! (can vary slightly due to exchange rate fluctuations). 

You will end up with a 78mm X 78mm 1.6mm thick double-sided PCB by default (or rather, 5 of them for $2!). The only choice you then have to make is PCB colour (defaults to green). 
 

 

If you use JLCPCB – check the shipping options – they tend to default to an expensive option first!

 

Firmware

I updated the V3 firmware (taken from @LivingTheDream's button remix) to take into account the pin assignments and direction changes needed because the joysticks have been rotated from their V2 positions.
 


Getting a nice & smooth action

I found that lightly sanding the ball joints and their channels through the dome made a great difference to how smoothly the ball joints moved in the channels. 

You are not aiming for major material removal, but rather giving a smoother finish than what came off the printer – go by feel – you can get a great result with layer lines still visible, but with the high spots removed. 

To help with sanding I have included two tools: “Ball Gripper” and “Sanding Stick” to allow you to hold onto the ball joints and spin them with a drill for sanding and wind a piece of sandpaper round the stick and spin it with a drill.

An alignment notch on the top and bottom domes allows them be put together in the same orientation before and after sanding.

240 grit sandpaper followed by 400 grit sandpaper gave me good results.

Hardware required (in addition to the PCB, Arduino, joysticks and USB cable)

  • M1.4 X 8mm self tapping countersunk screws - 4 required
  • M2.0 X 8mm self tapping hex head screws - 4 required
  • M2.6 X 10mm self tapping hex head screws - 16 required
  • M3.0 X 8mm self tapping hex head screws - 16 required
  • M3 Fibre washers - 6mm diameter - 16 required
  • 5 pin 2.54mm single row female PCB header - 4 required

I purchased the screws, washers, PCB sockets, Arduino, joysticks and USB cable from Ali Express (using their “Choice” 7 day shipping). (Again, “other suppliers are available”)

Search links for the hardware above:

Tools

  • Phillips size 00 screwdriver (I use a Wera 118020 - its 2.5mm diameter shaft fits perfectly down the hole in the joystick ball)
  • Hex screwdrivers
    • 1.5mm
    • 2.0mm
    • 2.5mm (with ball end for the screws securing the joysticks)

 

Order of assembly

  1. Solder the Arduino and pin sockets to the PCB (make sure the pin sockets are square to the PCB).
  2. Attach the balls to the joysticks using M1.4 X 8mm self tapping screws (Phillips size 00 screwdriver needed).
  3. Attach the joysticks to the joystick frame using M3.0 X 8mm self tapping hex head screws also use M3.0 fibre washers (protects the joystick PCB and stops the screw coming out the other side of the frame!).
  4. Attach the knob to the top dome using M2.0 X 8mm self tapping hex head screws.
  5. Fix the top & bottom domes round the joystick balls using M2.6 X 10mm self tapping hex head screws.
  6. Attach the lid using M2.6 X 10mm self tapping hex head screws.
  7. Attach the PCB mount to the joystick frame using M2.6 X 10mm self tapping  hex head screws.
  8. Plug the USB cable into the Arduino and plug the PCB into the joystick pins (check that all pins are in their sockets).
  9. Attach the base using M2.6 X 10mm hex head self tapping screws.
     

Updates:

My previous concerns about calibration and ball/dome geometry are not concerns any more.  

It came down to  a bad solder joint on the PCB (that was me) and after sleeping on it and investigating fresh in the morning I found joystick B to be giving erratic performance.

I swapped out joystick B and all is working great!

That is not to say that there could be room for improvement, but for now it is working as intended :-)

 

Future Developments

Whilst sourcing the components on Ali Express. I came across Hall Effect joystick modules. I have ordered some and will experiment with them on arrival.