STM32CubeMX is a graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the corresponding initialization C code for the Arm Cortex-M core or a partial Linux Device Tree for Arm Cortex-A core, through a step-by-step process.
The first step consists in selecting either an STMicrolectronics STM32 microcontroller, microprocessor or a development platform that matches the required set of peripherals, or an example running on a specific development platform.
For microprocessors, the second step allows to configure the GPIOs and the clock setup for the whole system, and to interactively assign peripherals either to the Arm Cortex-M or to the Cortex-A world. Specific utilities, such as DDR configuration and tuning, make it easy to get started with STM32 microprocessors. For Cortex-M core, the configuration includes additional steps that are exactly similar to those described for microcontrollers.
For microcontrollers and microprocessor Arm Cortex-M, the second step consists in configuring each required embedded software thanks to a pinout-conflict solver, a clock-tree setting helper, a power-consumption calculator, and an utility that configures the peripherals (such as GPIO or USART) and the middleware stacks (such as USB or TCP/IP).
The default software and middleware stacks can be extended thanks to enhanced STM32Cube Expansion Packages. STMicrolectronics or STMicrolectronics' partner packages can be downloaded directly from a dedicated package manager available within STM32CubeMX, while the other packages can be installed from a local drive.
Eventually the user launches the generation that matches the selected configuration choices. This step provides the initialization C code for the Arm Cortex-M, ready to be used within several development environments, or a partial Linux Device Tree for the Arm Cortex-A.
This plugin is actually a realized in-game version of a previous tool I had written in Python for my personal use. When I started to really use Remote Tech, I became tired of all the "napkin math" I was doing to figure out the correct orbit elements needed to place my satellites where I wanted them, so I created said Python tool. This tool unfortunately was using hard-coded information from the wiki for the planets' physical and orbit characteristics, so if Squad were to make any changes to the planets, I wanted to play a RSS scaled version of the game, or I wanted to add planets such as those from Outer Planets Mod, I would need to manually make these changes.
I wrote this plugin to solve the above issues, and also to be a good way to learn modding for KSP. This not only is my first mod in KSP, it is also my first time dealing with Unity and first real project in C# (more familiar with Java and Python). Although I wrote this mostly for my personal use, I release it to the public in case anyone finds it as useful as I do.
Because the calculation will fill in other elements that you did not choose, you will be free to use those easily in other calculations. Just de-select the elements you do not need, and select the new ones. This is very useful for calculating Hohmann transfers.
It doesn't change anything in the game, like changing your current vessel's orbit or anything like that. It it just a calculator in which you input values, and it calculates the rest of the orbit for you. I use it for planning the placement of satellites in Remote Tech, for example.
Thanks to everyone so far! I'm going to try to find time to make improvements over the next day or two. I got the mod in a functional state and I wanted to get it released before I call it quits for the remainder of the weekend.
My next goal is to have the calculator automatically calculate the delta-v between the two orbits. Right now, that can be manually done by using the periapsis and apoapsis speeds that my calculator outputs, but requires three separate orbits calculated (the original orbit, the Hohmann transfer orbit, and the final orbit) and some "napkin math".
Woot nice mod. Simple doesn't mean an less value! Helps emmensly for RT as stated or trying to find a syncronus orbit on new or resized planets. One request if you are able or are open to suggestions. I HATE the stock toolbar it's clutter to me that I can't hide, so I humbly request blizzy toolbar support. Either way still love the mod and will never uninstall.
With how the mod is coded, the current version of SOC should be compatible with RSS and any of the various scales out there, and should auto detect any new planets such as those from Outer Planets mod. In fact, those are the specific reasons I made the mod since I prefer to play 6.4x scale. The previous versions for KSP 0.90 were verified to work with those mods, but I haven't been able to verify this version with KSP 1.0 since those mods haven't been updated yet.
I've been more focused on my launch failure mod the past couple of days, but I got that in a good state for now for me to get back to this mod. The Hohmann transfer calculations are completed, I just want to cleanup the code that handles the AppLauncher hooks that were changed in 1.0 and also possibly get Blizzy's toolbar support in before I release the next version. Unfortunately, good ole' spring allergies have hit me... may take a break for a day. We'll see.
This is for later: I'm also thinking of adding the ability to actually save your orbits for re-use. This would be saved to a file in the mod's folder as opposed to your save file, allowing the saved orbits to be used in any of your game saves.
The following sections provide brief step-by-step guides of how to setup and run NVIDIA Nsight Compute to collect profile information. All directories are relative to the base directory of NVIDIA Nsight Compute, unless specified otherwise.
The UI executable is called ncu-ui. A shortcut with this name is located in the base directory of the NVIDIA Nsight Compute installation. The actual executable is located in the folder host\windows-desktop-win7-x64 on Windows or host/linux-desktop-glibc_2_11_3-x64 on Linux. By default, when installing from a Linux .run file, NVIDIA Nsight Compute is located in /usr/local/cuda-/nsight-compute-. When installing from a .deb or .rpm package, it is located in /opt/nvidia/nsight-compute/ to be consistent with Nsight Systems. In Windows, the default path is C:\Program Files\NVIDIA Corporation\Nsight Compute .
After starting NVIDIA Nsight Compute, by default the Welcome Page is opened. The Start section allows the user to start a new activity, open an existing report, create a new project or load an existing project. The Continue section provides links to recently opened reports and projects. The Explore section provides information about what is new in the latest release, as well as links to additional training. See Environment on how to change the start-up action.
The ncu can act as a simple wrapper that forces the target application to load the necessary libraries for tools instrumentation. The parameter --mode=launch specifies that the target application should be launched and suspended before the first instrumented API call. That way the application waits until we connect with the UI.
Select the target machine at the top of the dialog to connect and update the list of attachable applications. By default, localhost is pre-selected if the target matches your current local platform. Select the Attach tab and the target application of interest and press Attach. Once connected, the layout of NVIDIA Nsight Compute changes into stepping mode that allows you to control the execution of any calls into the instrumented API. When connected, the API Stream window indicates that the target application waits before the very first API call.
Use the API Stream window to step the calls into the instrumented API. The dropdown at the top allows switching between different CPU threads of the application. Step In (F11), Step Over (F10), and Step Out (Shift + F11) are available from the Debug menu or the corresponding toolbar buttons. While stepping, function return values and function parameters are captured.
Use Resume (F5) and Pause to allow the program to run freely. Freeze control is available to define the behavior of threads currently not in focus, i.e. selected in the thread drop down. By default, the API Stream stops on any API call that returns an error code. This can be toggled in the Debug menu by Break On API Error.
To quickly isolate a kernel launch for profiling, use the Run to Next Kernel button in the toolbar of the API Stream window to jump to the next kernel launch. The execution will stop before the kernel launch is executed.
Once the execution of the target application is suspended at a kernel launch, additional actions become available in the UI. These actions are either available from the menu or from the toolbar. Please note that the actions are disabled, if the API stream is not at a qualifying state (not at a kernel launch or launching on an unsupported GPU). To profile, press Profile Kernel and wait until the result is shown in the Profiler Report. Profiling progress is reported in the lower right corner status bar.
Instead of manually selecting Profile, it is also possible to enable Auto Profile from the Profile menu. If enabled, each kernel matching the current kernel filter (if any) will be profiled using the current section configuration. This is especially useful if an application is to be profiled unattended, or the number of kernel launches to be profiled is very large. Sections can be enabled or disabled using the Metric Selection tool window.
Profile Series allows to configure the collection of a set of profile results at once. Each result in the set is profiled with varying parameters. Series are useful to investigate the behavior of a kernel across a large set of parameters without the need to recompile and rerun the application many times.
For more details on these options, see Command Line Options. The options are grouped into tabs: The Filter tab exposes the options to specify which kernels should be profiled. Options include the kernel regex filter, the number of launches to skip, and the total number of launches to profile. The Sections tab allows you to select which sections should be collected for each kernel launch. Hover over a section to see its description as a tool-tip. To change the sections that are enabled by default, use the Metric Selection tool window. The Sampling tab allows you to configure sampling options for each kernel launch. The Other tab includes the option to collect NVTX information or custom metrics via the --metrics option.
795a8134c1