The demo application lets you try the Fanuc SDK on your controller or on a ROBOGUIDE virtual robot, before you write any code. It is a Windows desktop application that exposes the features of the SDK with buttons and fields, and shows what the controller answers.

## Download

**[Download UnderAutomation.Fanuc.Showcase.Forms.exe](https://github.com/underautomation/Fanuc.NET/releases/latest/download/UnderAutomation.Fanuc.Showcase.Forms.exe)**

There is no installer. The application is one self contained executable, built with .NET 8 for Windows: it runs on a PC without .NET. Copy it where you want, run it, delete it when you are done.

Windows can block a file downloaded from the internet. Right click the file, open `Properties`, check `Unblock` and click `OK`.

The application runs in the 30 day trial of the SDK. The `License` page registers a key.

## What it does

### Connection

The tree on the left has one page per feature. Start with the Connection page: enter the IP address of the controller, or the folder of a [ROBOGUIDE robot](/fanuc/documentation/simulator), and check the protocols to enable. The other pages stay disabled until their protocol is connected.

Everything on this page can be tried without writing code, in the **Connection** page of the [demo application](/abb/documentation/demo-app).

![Connection page of the ABB SDK demo application](/abb/WinformsScreenshots/Connect.jpg)

Its C# source is [ConnectControl.cs](https://github.com/underautomation/ABB.NET/blob/main/UnderAutomation.ABB.Showcase.Forms/Components/ConnectControl.cs).

### Pages of the application

| Page in the application               | What you can try                                                                  | Documentation                                                       |
| ------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| Connection                            | Address or ROBOGUIDE folder, language, protocols and their credentials            | [Connect to your robot](/fanuc/documentation/connect)               |
| CGTP                                  | Programs, source lines, files, I/O, kinematics, variables, registers, alarms      | [CGTP overview](/fanuc/documentation/cgtp)                          |
| SNPX                                  | Registers, variables, signals, simulation, batch reading, alarms, tasks, comments | [SNPX overview](/fanuc/documentation/snpx)                          |
| Telnet                                | Run, pause, hold and abort programs, ports, variables, KCL commands               | [Telnet overview](/fanuc/documentation/telnet)                      |
| Variables (CGTP or FTP)               | Browse the variable files of the controller                                       | [Read & write system variables](/fanuc/documentation/read-write-system-variables) |
| Current position (CGTP or FTP)        | Joint and Cartesian position of each motion group                                 | [Get current position](/fanuc/documentation/get-current-position)   |
| IO State (CGTP or FTP)                | State of the digital I/O                                                          | [Control inputs & outputs](/fanuc/documentation/set-and-simulate-inputs-outputs) |
| Safety status (CGTP or FTP)           | E-Stop, deadman, fence, TP enable                                                 | [Diagnostics & variables](/fanuc/documentation/ftp-diagnostics)     |
| Program states (CGTP or FTP)          | Tasks, programs, lines and call stack                                             | [Monitor task execution](/fanuc/documentation/monitor-task-execution) |
| Error list (CGTP or FTP)              | Alarm history                                                                     | [Reset alarms remotely](/fanuc/documentation/how-to-reset-fanuc-alarm-remotely) |
| Features / Order No (CGTP or FTP)     | Software options installed on the controller                                      | [Diagnostics & variables](/fanuc/documentation/ftp-diagnostics)     |
| File handling (FTP)                   | Browse, download, upload, delete files                                            | [File management](/fanuc/documentation/ftp-file-management)         |
| Move robot (FTP+TELNET)               | Move the robot to a position with a TP program                                    | [Move robot remotely](/fanuc/documentation/move-robot-remotely)     |
| TP Editor (LIVE / BREAKPOINTS)        | Edit a TP program, run it, set breakpoints, step line by line                     | [TP editor with breakpoints](/fanuc/documentation/tp-editor-with-breakpoints) |
| DPM (R739)                            | Move the robot with the mouse through Dynamic Path Modification                   | [Move robot with mouse](/fanuc/documentation/move-robot-with-mouse) |
| Stream Motion (J519)                  | Monitor the robot, send joint and Cartesian trajectories                          | [Stream Motion overview](/fanuc/documentation/stream-motion)        |
| RMI (R912)                            | Build a list of motion instructions and send it                                   | [RMI overview](/fanuc/documentation/rmi)                            |
| Forward & Invert Kinematics           | Forward and inverse kinematics of 82 arm models, offline                          | [Forward & inverse kinematics](/fanuc/documentation/kinematics)     |
| License                               | Register a license key, read the state of the trial                              | [Licensing](/fanuc/documentation/license)                           |

The pages Move robot, DPM, Stream Motion and RMI move the arm. Try them on ROBOGUIDE first, then on the real robot with low speeds.

## Read its source

The application is open source: [github.com/underautomation/Fanuc.NET](https://github.com/underautomation/Fanuc.NET), folder `UnderAutomation.Fanuc.Showcase.Forms`.

It is a Windows Forms project for .NET 8. It references the same `UnderAutomation.Fanuc` DLL as your project: there is nothing specific to the demo in the way it calls the SDK. Each page of the application is one C# user control in the `Components` folder, and its `View C# page source` link opens it on GitHub. Copy the calls you need into your code.

## What to read next

- [Connect to your robot](/fanuc/documentation/connect): the connection parameters, in code.
- [Test with ROBOGUIDE](/fanuc/documentation/simulator): run the application without a real robot.
- [Get started with .NET](/fanuc/documentation/get-started-net): add the SDK to your project.