1"use strict";(self.webpackChunkserialport_website=self.webpackChunkserialport_website||[]).push([[5767],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>v});var a=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,a,i=function(e,t){if(null==e)return{};var r,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var l=a.createContext({}),u=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):n(n({},t),e)),r},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},f=a.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(r),f=i,v=c["".concat(l,".").concat(f)]||c[f]||d[f]||o;return r?a.createElement(v,n(n({ref:t},p),{},{components:r})):a.createElement(v,n({ref:t},p))}));function v(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,n=new Array(o);n[0]=f;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,n[1]=s;for(var u=2;u<o;u++)n[u]=r[u];return a.createElement.apply(null,n)}return a.createElement.apply(null,r)}f.displayName="MDXCreateElement"},8564:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=r(7462),i=(r(7294),r(3905));const o={id:"guide-virtual-serial-ports",title:"Virtual Serial Ports"},n=void 0,s={unversionedId:"guide-virtual-serial-ports",id:"version-7.x.x/guide-virtual-serial-ports",title:"Virtual Serial Ports",description:"Sometimes you need to develope and test your software without being able to use a real serial port or without having access to the target device. In those situations you can use virtual serial ports.",source:"@site/versioned_docs/version-7.x.x/guide-virtual-serial-ports.md",sourceDirName:".",slug:"/guide-virtual-serial-ports",permalink:"/docs/7.x.x/guide-virtual-serial-ports",draft:!1,editUrl:"https://github.com/serialport/website/edit/master/versioned_docs/version-7.x.x/guide-virtual-serial-ports.md",tags:[],version:"7.x.x",lastUpdatedBy:"Francis Gulotta",lastUpdatedAt:1731036255,formattedLastUpdatedAt:"Nov 8, 2024",frontMatter:{id:"guide-virtual-serial-ports",title:"Virtual Serial Ports"}},l={},u=[{value:"Free Virtual Serial Ports",id:"free-virtual-serial-ports",level:3}],p={toc:u},c="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(c,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Sometimes you need to develope and test your software without being able to use a real serial port or without having access to the target device. In those situations you can use virtual serial ports."),(0,i.kt)("h3",{id:"free-virtual-serial-ports"},"Free Virtual Serial Ports"),(0,i.kt)("p",null,"On Windows you can use e.g. ",(0,i.kt)("a",{parentName:"p",href:"https://freevirtualserialports.com/"},"Free* Virtual Serial Ports")," to create virtual ports and then ",(0,i.kt)("a",{parentName:"p",href:"https://freeserialanalyzer.com/"},"Free* Serial Analyzer")," to view and monitor the port traffic."),(0,i.kt)("p",null,"*",(0,i.kt)("em",{parentName:"p"},"Free meaning trial mode in this case")),(0,i.kt)("p",null,'Use the "Create New Bridge" feature to create two virtual serial ports which then are linked together (you can even configure the wiring between the ports if you need).'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"free virtual serial ports screenshot",src:r(8094).Z,width:"1036",height:"646"})),(0,i.kt)("p",null,"After you have bridged your new virtual ports e.g. COM5 and COM6, you are able to write data to COM5 port and monitor the traffic from port COM6 with the Free Seri
1al Analyzer."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"free serial analyzer screenshot",src:r(1050).Z,width:"846",height:"616"})))}d.isMDXComponent=!0},1050:(e,t,r)=>{r.d(t,{Z:()=>a});const a=r.p+"assets/images/free-serial-analyzer-3dcd896b316da2c57b0e984998bc9a6f.png"},8094:(e,t,r)=>{r.d(t,{Z:()=>a});const a=r.p+"assets/images/free-virtual-serial-ports-5f40dea9f2762daba86f5ed0ee4cde9c.png"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.