Close

Does this project spark your interest?

Become a member to follow this project and don't miss any updates

Aerospace Control Interface

Controls and displays for Aerospace simulation control interaction

1.5k 0 24 15

This project was created on 03/24/2014 and last updated 7 months ago.

Description
Prototyping a high fidelity control system for use in aerospace simulation.

Starting with a known control scheme, build a knowledge base to further an understanding in these devices and provide a working example to build and refine the mechanical and electrical design also to have a bit of fun along the way.
All original electronics from the controller have been removed with the exception of support boards and all inputs accessed individually.
All of the controls need to be able to be remapped according to situation and host side variables.
Control schemes for different modes will need to be switchable with ease and no delay.
Minimal latency is a must.

Details

This project is the log of the design and challenges of building a custom USB controller. The hardware that I have chosen is only a good starting point and a solid platform to test ideas and enable me to learn what is needed before I decide to scratch build my own device.

This log or maybe guide of sorts will include details on how devices parse data, what the data means to host and device, what the device and host do with that data and how to fully implement a USB Descriptor in regards to a gaming peripheral.   

I am planning on collecting variables with high accuracy, this means I will need sensors with a high degree of fidelity, something that i will be researching and working on during the stages of the build.

I am also looking into a force feedback control system on all of the axis, I have in mind using stepper motors and encoders. If i went this route, the system is limited only by my engineering prowess in terms of how accurate i could make this. It could be a complete off shoot from this project though.

I hope that someone finds this information legible and useful and if  you see any corrections i can make please advise me.

Components
  • 2 × Arduino Leonardo Pro Micro Clone Cheaply sourced from that site you all know
  • 1 × Saitek X36f X36t Very nice controllers found for £1, rubber coating was perished but with a little brake fluid was nicely stripped back to clean plastic
  • 2 × ABS Enclosures
  • 1 × Digloe 126x64 Grapical LCD
  • 3 × MCP23017 I2C Port Expander
  • 5 × UGN3503 HALL-EFFECT SENSORS
  • 2 × Analog Thumbstick Sensors
  • 4 × KY-040 Rotary Encoder
  • 2 × Neopiel WS2812

Project logs
  • Skimming the HID surface

    7 months ago • 0 comments

    This last week, I have thrown myself into understanding how a host device captures data from a human input device through USB. 

    Note this is from my understanding, there may be inaccuracies and will be edited at future dates as my knowledge grows.

    First shall we start with what a USB Descriptor is and how it is used to tell the host device what driver to use and what information to act on. 

    When you plug a USB device into a host USB port, the host will request information about the device, information it needs to be able to install the correct drivers and configure the device for how it was designed to be used. The USB Descriptor tells the host, What the device is, what data to expect, how much to expect and what to do with it once it is collected.  

    Here is what happens when you connect a device to a host machine. When the device is plugged in, there is a pullup resistor on the data line which causes the host to register a connected device, the host then proceeds to send a reset signal to the device, that resets the device address back to a default of zero.

    Once the device has and address it is now reachable by the host but only by standard requests, Get descriptor, Get configuration descriptor, Get string descriptor. Once the host has received enough information it is then ready to load a driver, the driver will then send a Set configuration request to the device. The device is now set up and can be used as designed. The device will now respond to more specific and standard requests that are supported.

    The next post will be how to write a USB descriptor, soon you will be able to create a device all of your own and world domination will be yours. (cough) :)

  • We've only just started

    7 months ago • 0 comments

    Due to a silly mistake I now have to start a fresh with writing my HID report descriptor, Arduino program and supporting API Class.

    So this is where we will be logging as we go the ins and outs the tests a tribulation of complete control, maybe just, we shall get a awesome piece of hardware at the end.

View all 2 project logs

Discussions

Similar projects