# Teach Pendant Removal

**URL:** <https://forum.universal-robots.com/t/teach-pendant-removal/17720>\
**Category:** General Application Help: How do I?\
**Created:** [November 20, 2021, 2:06pm UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720 "2021-11-20T14:06:44Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon75712119](https://avatars.discourse-cdn.com/v4/letter/a/8e8cbc/32.png) [@anon75712119](https://forum.universal-robots.com/u/anon75712119)\
**Post date:** [November 20, 2021, 2:06pm UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/1 "2021-11-20T14:06:44Z")

</div>

As We want to remove Teach Pendant Completely from Robot. So, I want to handle all the errors that might happen between Controller Bootup to Arm Power on. I search about that but I can’t find anything relevant to that but i am able to get safety state like fault ,Emergency stop, Protective Stop from RTDE Port but is there any way to get exactly what is that error like that was shown in teach pendant through some existing ports like I saw Primary interface provides robot message explanation is that gives errors from bootup to arm power on? or any other way can I get the errors and resolve some minor errors by putting program in controller itself or else if I want to acknowledge to some serious errors to my external TCP/IP client without teach pendant. Can anyone suggest me some way to do above tasks.

---

<div class="post-metadata">

**Author:** ![mmi](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/mmi/32/691_2.png) [@mmi](https://forum.universal-robots.com/u/mmi)\
**Post date:** [November 22, 2021, 11:52am UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/2 "2021-11-22T11:52:07Z")

</div>

The only way is to implement client for primary interface - this is what UR GUI is doing.  
Most of the tasks in production “headless” configuration can be done using “dashboard server”, and then revert to TP for programming, or debugging.

---

<div class="post-metadata">

**Author:** ![anon75712119](https://avatars.discourse-cdn.com/v4/letter/a/8e8cbc/32.png) [@anon75712119](https://forum.universal-robots.com/u/anon75712119)\
**Post date:** [November 22, 2021, 1:17pm UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/3 "2021-11-22T13:17:32Z")

</div>

Primary Interface will give me errors same like that gives to TP right? Dashboard Port and Primary Interface are the ports that works for TP(UR GUI) like PowerOn,Moving…etc Is that You are saying?

---

<div class="post-metadata">

**Author:** ![mmi](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/mmi/32/691_2.png) [@mmi](https://forum.universal-robots.com/u/mmi)\
**Post date:** [November 23, 2021, 7:21am UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/4 "2021-11-23T07:21:31Z")

</div>

Correct, those two interfaces provide most data needed.

---

<div class="post-metadata">

**Author:** ![anon75712119](https://avatars.discourse-cdn.com/v4/letter/a/8e8cbc/32.png) [@anon75712119](https://forum.universal-robots.com/u/anon75712119)\
**Post date:** [November 23, 2021, 7:43am UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/5 "2021-11-23T07:43:12Z")

</div>

Thanks @mmi can you gave me sample code for unpack data from 30001 for package 20? because I can’t get data for Robot Message like safety mode message,robot comm message…etc. or else can you explain me how data will send to 30001 port like i receive first package 20 that contains robot version message and then i got package 20 but type was 12 that was not defined in ClientInterface\_Primary pdf and then i got package each one of 23,24 and then i got only packages of 16 and 5 repeatedly. How can i get RobotMessage(20) types like safety mode message(5) ,robot comm message(6)like that …

---

<div class="post-metadata">

**Author:** ![mmi](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/mmi/32/691_2.png) [@mmi](https://forum.universal-robots.com/u/mmi)\
**Post date:** [November 23, 2021, 3:11pm UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/6 "2021-11-23T15:11:07Z")

</div>

Unfortunately we don’t have example code for parsing data sent on primary interface, as it’s not recommended for regular integrations.  
In principle you need to ignore all non-documented messages, and reserved fields in documented messages. All messages have type and total length.  
Most message types are sent only in specific conditions.

---

<div class="post-metadata">

**Author:** ![anon75712119](https://avatars.discourse-cdn.com/v4/letter/a/8e8cbc/32.png) [@anon75712119](https://forum.universal-robots.com/u/anon75712119)\
**Post date:** [November 24, 2021, 5:19am UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/7 "2021-11-24T05:19:24Z")

</div>

Thanks for your reply @mmi why it’s not recommended for regular integration?

---

<div class="post-metadata">

**Author:** ![anon75712119](https://avatars.discourse-cdn.com/v4/letter/a/8e8cbc/32.png) [@anon75712119](https://forum.universal-robots.com/u/anon75712119)\
**Post date:** [November 24, 2021, 1:37pm UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/8 "2021-11-24T13:37:06Z")

</div>

I can get safetymodemessage(20) when pressing emergency stop i got all data mentioned below image except these robotMessageCode,robotMessageArgument,reportdataType,reportData are 0 only why?.

Data I got: ‘\x00\x00\x00\x14\x00\x00\x00\x01\x1e\xb6\x0eX\xfe\x05\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t\x05\x00\x00\x00\x00’

 ![Screenshot (5)](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/d/df507370d4ca2e9840770c3d5f41d780c9cb2c03.png)

---

<div class="post-metadata">

**Author:** ![mmi](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/mmi/32/691_2.png) [@mmi](https://forum.universal-robots.com/u/mmi)\
**Post date:** [November 25, 2021, 7:43am UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/9 "2021-11-25T07:43:48Z")

</div>

There is enough information in safetyModeType: 7 = emergency stop safety state.  
In case of Fault, there would be more detailed error code.

---

<div class="post-metadata">

**Author:** ![anon75712119](https://avatars.discourse-cdn.com/v4/letter/a/8e8cbc/32.png) [@anon75712119](https://forum.universal-robots.com/u/anon75712119)\
**Post date:** [November 25, 2021, 10:12am UTC](https://forum.universal-robots.com/t/teach-pendant-removal/17720/10 "2021-11-25T10:12:33Z")

</div>

[PrimaryConnector.zip](https://forum.universal-robots.com/uploads/short-url/iodzM7hHKDg4NCMliKuXvT1HsOW.zip) (6.5 KB)  
This was the code I am using for data parsing can you check Is that Working Properly?
