Jump to content

[1.12.x] Simpit Revamped (Simpit 2.0)


Rogor
 Share

Recommended Posts

What is this mod?

This mod is a revamp of Simpit, a mod initially created by Stibbons . This mod enables KSP to connect to an Arduino (using the companion Arduino lib) to exchange data between KSP and Arduino. This allows for the creation of custom controllers.

 

Installation from CKAN (should be available shortly)

If you want to install it manually, download here from here and follow the instructions from the README.

Source code on Github

Online documentation


Show me what I can do with it!

This mod is only a building block to use to create your own controller. Here are some examples of controllers to give you and idea of what is possible:

Original video by stibbons

 

A compilation of several controllers by Mulbin

Some other controllers posted on reddit

Special thanks to several users of this mod:

How can I build one myself?

As with all things Kerbal: start small, play around until it works, then aim bigger! And when in doubt, ask the community for help.

Here is an instructable written by members of the Simpit Revamped team to help you start out. There is also several examples included in the Arduino lib.

Here are some useful communities:

You can also find several builds with documentation online with a quick Google search.

What functions are available?

Here is the list of all messages available, from the official documentation

In particular, you can get from KSP:

  •     Altitude data (sea level and surface)
  •     Velocity data (orbital, surface, and vertical).
  •     Orbit info, including apoapsis and periapsis. (expended in the revamp)
  •     Time to next pair of apsides.
  •     Resource levels for all fuel from community resource pack. (expended in the revamp, need ARP to work even for stock resources)
  •     Current Action groups, CAG status, SAS mode. (expended in the revamp)
  •     Target information (distance, and relative velocity).
  •     Current SoI.
  •     Current DeltaV (stage or total) and burntime (new in the revamp)
  •     Current Timewarp (new in the revamp)
  •     Current Maneuver (new in the revamp)
  •     Information on the ship (number of crew, etc.) (new in the revamp)

You can control :

  •     Custom action group commands, with full support for Action Groups Extended actions.
  •     Regular action groups (staging, abort, RCS etc).
  •     Main throttle.
  •     Vessel rotation and translation.
  •     Wheel steer and throttle.
  •     Camera (new in the revamp)
  •     Timewarp (new in the revamp)
  •     Emulate any keypress (new in the revamp, only on Windows)

 

What devices are supported?

KSP 1.12 is supported (it was tested on previous versions with success, but there might be some undetected issues).

It has been tested on Win10 by the team, and various members of the community have reported success on MacOS.

Arduino boards are supported (Uno, Mega, Nano).

License

This project is licensed under the Simplified BSD License.

 

The Simpit Revamped team (LRTNZ, Rogor, Codapop).

Edited by Rogor
Add the dependency to ARP
Link to comment
Share on other sites

  • 1 month later...

downloaded this and currently fiddling with some basic examples, seems very easy to use.

 

only have a crude joystick but have some actually useful ones on order so will be playing more soon.

Q: is it possible to get the current craft acceleration? only really asking as I was fiddling with KSPSerialIO, though these seems a lot more flexible and usable, just curious on acceleration to port one of the examples over.

testing currently using two altitude levels, which is working nicely

Excellent work

Link to comment
Share on other sites

having a play with this more now the decent joysticks have arrived, I've got a button hooked up and a red & green LED for the SAS mode

can activate and deactivate SAS, read the state back, very nice and very useful.

however the game always sets SAS to the default "heading hold" mode, I'm trying to change this but so far having no luck, e.g. I think the following should work but it doesn't

 

mySimpit.activateAction(SAS_ACTION);		// turn on SAS - this works

uint8_t dat[1] = {AP_PROGRADE};				// Select Prograde Hold
mySimpit.send(SAS_MODE_MESSAGE, dat, 1);	// Set SAS mode - this bit does not work

I can read back the current mode and available modes just fine, I would expect the above to turn SAS on in heading hold if prograde hold is not available, but even when it it the mode doesn't change.

 

the doc suggests  "The payload should be a single byte, possible SAS modes are listed in the AutopilotMode enum.", which is what I think the above is doing.

presuming I'm doing something wrong but not sure what it is?

Link to comment
Share on other sites

Have found a fix for this, the problem appears to be related to how the messages are sent to the game. It seems when you send them in the code they join a stack and are sent as when possible.

so my code adds a message to activate the SAS then immediately adds one to set the mode, because its a stack if the activate message hasn't gone this means the mode message will be sent first.

the game logs back this up showing the mode message arriving first, doing nothing as SAS is inactive, then the activation message arriving which sets SAS on in its default mode.

the fix in the Arduino code is reasonably simple.

firstly call

mySimpit.activateAction(SAS_ACTION);

and then immediately set a flag variable but do not try to set the mode, then in your message handler wait to see if you get an SAS mode change notification, and within that check to see if your flag variable is set - if so now call the code to set the mode, then clear your flag.

this makes sure things happen in the correct order.

this could be sorted in the library but to be honest this isn't a massive issue once you are aware of it and I don't think it will occur with other controls as SAS seems to be the only one you switch on/off and separately set a mode for

 

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...