Help
RSS
API
Feed
Maltego
Contact
Domain > pwiatrowski.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2016-05-17
5.9.83.144
(
ClassC
)
2025-01-29
195.114.1.119
(
ClassC
)
Port 80
HTTP/1.1 200 OKdate: Wed, 29 Jan 2025 02:14:35 GMTserver: Apachelink: https://pwiatrowski.com/wp-json/>; relhttps://api.w.org/vary: Accept-Encodingtransfer-encoding: chunkedcontent-type: text/html; charsetUTF-8 !DOCTYPE html>!--if IE 7>html classie ie7 langen-US>!endif-->!--if IE 8>html classie ie8 langen-US>!endif-->!--if !(IE 7) & !(IE 8)>!-->html langen-US>!--!endif-->head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width> title>pwiatrowski | developer/title> link relprofile hrefhttps://gmpg.org/xfn/11> link relpingback hrefhttp://pwiatrowski.com/xmlrpc.php> !--if lt IE 9> script srchttp://pwiatrowski.com/wp-content/themes/twentyfourteen/js/html5.js?ver3.7.0>/script> !endif--> meta namerobots contentmax-image-preview:large /> style>img:is(sizesauto i, sizes^auto, i) { contain-intrinsic-size: 3000px 1500px }/style> link reldns-prefetch href//www.google.com />link reldns-prefetch href//fonts.googleapis.com />link hrefhttps://fonts.gstatic.com crossorigin relpreconnect />link relalternate typeapplication/rss+xml titlepwiatrowski » Feed hrefhttps://pwiatrowski.com/feed/ />link relalternate typeapplication/rss+xml titlepwiatrowski » Comments Feed hrefhttps://pwiatrowski.com/comments/feed/ />script>window._wpemojiSettings {baseUrl:https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/,ext:.png,svgUrl:https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/,svgExt:.svg,source:{concatemoji:http:\/\/pwiatrowski.com\/wp-includes\/js\/wp-emoji-release.min.js?ver6.7.1}};/*! This file is auto-generated */!function(i,n){var o,s,e;function c(e){try{var t{supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var tnew Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return ert})}function u(e,t,n){switch(t){caseflag:return n(e,\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f,\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f)?!1:!n(e,\ud83c\uddfa\ud83c\uddf3,\ud83c\uddfa\u200b\ud83c\uddf3)&&!n(e,\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f,\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f);caseemoji:return!n(e,\ud83d\udc26\u200d\u2b1b,\ud83d\udc26\u200b\u2b1b)}return!1}function f(e,t,n){var rundefined!typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement(canvas),ar.getContext(2d,{willReadFrequently:!0}),o(a.textBaselinetop,a.font600 32px Arial,{});return e.forEach(function(e){oet(a,e,n)}),o}function t(e){var ti.createElement(script);t.srce,t.defer!0,i.head.appendChild(t)}undefined!typeof Promise&&(owpEmojiSettingsSupports,sflag,emoji,n.supports{everything:!0,everythingExceptFlag:!0},enew Promise(function(e){i.addEventListener(DOMContentLoaded,e,{once:!0})}),new Promise(function(t){var nfunction(){try{var eJSON.parse(sessionStorage.getItem(o));if(objecttypeof e&&numbertypeof e.timestamp&&(new Date).valueOf()e.timestamp+604800&&objecttypeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if(undefined!typeof Worker&&undefined!typeof OffscreenCanvas&&undefined!typeof URL&&URL.createObjectURL&&undefined!typeof Blob)try{var epostMessage(+f.toString()+(+JSON.stringify(s),u.toString(),p.toString().join(,)+));,rnew Blob(e,{type:text/javascript}),anew Worker(URL.createObjectURL(r),{name:wpTestEmojiSupports});return void(a.onmessagefunction(e){c(ne.data),a.terminate(),t(n)})}catch(e){}c(nf(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supportstet,n.supports.everythingn.supports.everything&&n.supportst,flag!t&&(n.supports.everythingExceptFlagn.supports.everythingExceptFlag&&n.supportst);n.supports.everythingExceptFlagn.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady!1,n.readyCallbackfunction(){n.DOMReady!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(en.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);/script>style idwp-emoji-styles-inline-css> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; }/style>link relstylesheet idwp-block-library-css hrefhttp://pwiatrowski.com/wp-includes/css/dist/block-library/style.min.css?ver6.7.1 mediaall />style idwp-block-library-theme-inline-css>.wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em}/style>style idclassic-theme-styles-inline-css>/*! This file is auto-generated */.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}/style>style idglobal-styles-inline-css>:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--green: #24890d;--wp--preset--color--dark-gray: #2b2b2b;--wp--preset--color--medium-gray: #767676;--wp--preset--color--light-gray: #f5f5f5;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}/style>link relstylesheet idcontact-form-7-css hrefhttp://pwiatrowski.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver5.3.2 mediaall />link relstylesheet idtwentyfourteen-lato-css hrefhttps://fonts.googleapis.com/css?familyLato%3A300%2C400%2C700%2C900%2C300italic%2C400italic%2C700italic&subsetlatin%2Clatin-ext&displayfallback mediaall />link relstylesheet idgenericons-css hrefhttp://pwiatrowski.com/wp-content/themes/twentyfourteen/genericons/genericons.css?ver3.0.3 mediaall />link relstylesheet idtwentyfourteen-style-css hrefhttp://pwiatrowski.com/wp-content/themes/twentyfourteen/style.css?ver20190507 mediaall />link relstylesheet idtwentyfourteen-block-style-css hrefhttp://pwiatrowski.com/wp-content/themes/twentyfourteen/css/blocks.css?ver20190102 mediaall />!--if lt IE 9>link relstylesheet idtwentyfourteen-ie-css hrefhttp://pwiatrowski.com/wp-content/themes/twentyfourteen/css/ie.css?ver20140701 mediaall />!endif-->script srchttp://pwiatrowski.com/wp-includes/js/jquery/jquery.min.js?ver3.7.1 idjquery-core-js>/script>script srchttp://pwiatrowski.com/wp-includes/js/jquery/jquery-migrate.min.js?ver3.4.1 idjquery-migrate-js>/script>link relhttps://api.w.org/ hrefhttps://pwiatrowski.com/wp-json/ />link relEditURI typeapplication/rsd+xml titleRSD hrefhttps://pwiatrowski.com/xmlrpc.php?rsd />meta namegenerator contentWordPress 6.7.1 />/head>body classhome blog wp-embed-responsive masthead-fixed list-view full-width grid>div idpage classhfeed site> header idmasthead classsite-header rolebanner> div classheader-main> h1 classsite-title>a hrefhttps://pwiatrowski.com/ relhome>pwiatrowski/a>/h1> div classsearch-toggle> a href#search-container classscreen-reader-text aria-expandedfalse aria-controlssearch-container>Search/a> /div> nav idprimary-navigation classsite-navigation primary-navigation rolenavigation> button classmenu-toggle>Primary Menu/button> a classscreen-reader-text skip-link href#content>Skip to content/a> div idprimary-menu classnav-menu>ul>li classpage_item page-item-7>a hrefhttps://pwiatrowski.com/contact/>Contact/a>/li>/ul>/div> /nav> /div> div idsearch-container classsearch-box-wrapper hide> div classsearch-box> form rolesearch methodget classsearch-form actionhttps://pwiatrowski.com/> label> span classscreen-reader-text>Search for:/span> input typesearch classsearch-field placeholderSearch … value names /> /label> input typesubmit classsearch-submit valueSearch /> /form> /div> /div> /header>!-- #masthead --> div idmain classsite-main>div idmain-content classmain-content> div idprimary classcontent-area> div idcontent classsite-content rolemain> article idpost-9 classpost-9 post type-post status-publish format-standard hentry category-technology> header classentry-header> h1 classentry-title>a hrefhttps://pwiatrowski.com/technology/raspberry-pi-zero-esp8266-internet/ relbookmark>Raspberry Pi Zero + ESP8266 Internet?!/a>/h1> div classentry-meta> span classentry-date>a hrefhttps://pwiatrowski.com/technology/raspberry-pi-zero-esp8266-internet/ relbookmark>time classentry-date datetime2015-12-06T22:04:03+00:00>December 6, 2015/time>/a>/span> span classbyline>span classauthor vcard>a classurl fn n hrefhttps://pwiatrowski.com/author/twister/ relauthor>twister/a>/span>/span> /div>!-- .entry-meta --> /header>!-- .entry-header --> div classentry-content> figure stylewidth: 688px classwp-caption alignnone>img fetchpriorityhigh decodingasync class altRaspberry Pi Zero srchttp://pwiatrowski.com/wp-content/uploads/2015/12/rpi_zero-e1449496349217.jpg width688 height361 />figcaption classwp-caption-text>Raspberry Pi Zero – source Raspberry Pi Foundation/figcaption>/figure>p dirltr>span styleline-height: 1.5;>Few days ago Raspberry Pi Foundation announced brand new, ultra small, Raspberry Pi Zero and since then the hype around it is absolutely amazing! Not that they don’t deserve all of it of course! The new Rpi Zero is indeed a big thing in a very small case./span>/p>p> Unfortunately micro size comes with some trade-offs – especially lack of Ethernet port or WiFi and only one (micro) USB port which means an OTG cable is required if you want connect “normal” USB device or USB hub (powered preferably) if you want more than one device. This becomes a problem when you’d like to use Rpi Zero as a remote node in your new IoT project in which you plan to use a USB port for something like a webcam etc – remember one port only! So what you can do if you’re not fancy adding a USB hub and still want both a webcam and a WiFi dongle?/p>p>Well, the first thing which came into my mind was – ESP8266 – very cool Wifi-to-serial device. In theory it could be simple – connect ESP8266 to the serial port in Raspberry Pi Zero and start PPPd connection to some other machine on the network. But unfortunately ESP in its whole awesomeness doesn’t provide PPP support (yet?) bummer! 🙁 So I had to think about something else… after heavy googling I found some light in the tunnel and because I couldn’t find a complete solution anywhere I decided to create this article./p>p>strong>The solution (or workaround is more precise): esp-link + socat + slattach./strong>/p>p dirltr>To make long story short – yes, it’s possible* to have full, normal, ethernet, tcp/ip connection on Raspberry Pi Zero with ESP8266 connected to the RPi’s serial port**. To make it work we need only two applications (2 on the “server” side and 1 on the RPi side) and a special firmware for ESP8266. So here is how it worked for me***:/p>p> First of all, a word of compliment is needed for Jean-Claude Wippler who is responsible for a blog a hrefhttp://jeelabs.org/about/>http://jeelabs.org/a> and a firmware for ESP8266 called esp-link which made the whole thing possible. ESP-Link firmware is creating a totally transparent bridge between ESP8266’s serial port and WiFI (a telnet port to be precise). More information – the source and everything you’ll need is here: a hrefhttps://github.com/jeelabs/esp-link>https://github.com/jeelabs/esp-link/a>/p>p>So go and grab the firmware, flash it on your ESP8266, configure WiFi and you’re ready to go. (If you don’t know how to do it – go to esp-link homepage on github and read the manual!)/p>p>Then only few more steps are required:/p>ol>li>Connect ESP8266 to your Raspberry Pi Zero/li>li>span styleline-height: 1.5;>Configure both server and client ends/span>/li>li>Have a fun with your new network connection! 🙂/li>/ol>p>strong>Part 1) Connecting ESP8266 to Raspberry Pi Zero/strong>/p>p dirltr>This is fairly simple – just follow the schematic – I used this configuration./p>figure idattachment_26 aria-describedbycaption-attachment-26 stylewidth: 300px classwp-caption alignnone>a hrefhttp://pwiatrowski.com/wp-content/uploads/2015/12/esp8266-rpi-e1449497001454.png>img decodingasync classsize-medium wp-image-26 altConnecting ESP8266 (ESP-01) to Raspberry - source: http://www.esp8266.com/wiki/doku.php?idraspberrypi:getting_started srchttp://pwiatrowski.com/wp-content/uploads/2015/12/esp8266-rpi-300x203.png width300 height203 />/a>figcaption idcaption-attachment-26 classwp-caption-text>Connecting ESP8266 (ESP-01) to Raspberry – source: http://www.esp8266.com/wiki/doku.php?idraspberrypi:getting_started/figcaption>/figure>dl classwp-caption alignnone id stylewidth: 910px;>dt classwp-caption-dt>strong stylecolor: #2b2b2b; line-height: 1.5;>Part 2) Configuring the software/strong>/dt>/dl>p>strong> On the server side:/strong>/p>ol>li dirltr>p dirltr>strong>Install socat and slattach (example based on debian-ish system):/strong>/p>/li>/ol>blockquote>p dirltr>apt-get updatebr />apt-get upgradebr />apt-get install socat slattach/p>/blockquote>ol start2>li dirltr>p dirltr>Setup/p>/li>/ol>blockquote>p dirltr>socat TCP:192.168.1.3:23 PTY,link/tmp/socat.sockbr />slattach -L -s 115200 -p slip /tmp/socat.sockbr />span stylecolor: #2b2b2b; font-size: 16px; line-height: 1.5;>ifconfig sl0 192.168.255.2/24 upbr />/span>echo 1 > /proc/sys/net/ipv4/ip_forwardbr />iptables -t nat -A POSTROUTING -s 192.168.255.0/24 -o eth0 -j SNAT –to-source 192.168.1.250/p>/blockquote>p dirltr>Above commands needs to be adjusted to your environment – if you follow this manual then especially socat’s TCP socket IP, outgoing interface and –to-source IP address in iptables rule./p>p> strong>On the Raspberry Pi Zero (or any kind of Raspberry or computer with the serial port):/strong>/p>ol>li dirltr>p dirltr>Install slattach/p>/li>/ol>blockquote>p dirltr>apt-get updatebr />apt-get upgrade/p>/blockquote>p dirltr>apt-get install slattach/p>ol start2>li dirltr>p dirltr>Setup/p>/li>/ol>blockquote>p dirltr>slattach -L -s 115200 -p slip /dev/ttyUSB0br />ifconfig sl0 192.168.255.2/24 upbr />route add default gw 192.168.255.1/p>/blockquote>p dirltr>optional step – check your DNS settings – cat /etc/resolv.conf – and if there’s nothing add this: “nameserver 8.8.8.8” to add google DNS server./p>p> strong>Part 3) Check if everything works/strong>/p>p dirltr>If everything is OK you should be able to ping both ends of the tunnel and have full network connection. THE END 🙂/p>p dirltr>strong>Part *, **, ***) The truth/strong>/p>p dirltr>So… to be completely honest – this solution is not a very stable WiFi dongle replacement and definitively it requires some tuning. The network speed is extremely slow etc. But some improvements should be quite simple – for example to add permissions to the tunnel for non-root users etc. Another issues which I experienced were: big payloads (like file downloading etc) are problematic, socat on the server side was failing every so often and I needed to start it again,restart slattach and ifup the sl0 interface (the good thing is that Raspberry Pi Zero end stays up and never failed (so far)). Nonetheless it was a joyful journey and I’m pleased that it worked on the end. I’m pretty sure this solution could be explore even more and maybe even in this state it could be useful for someone./p>p> /p>p dirltr>strong>Disclaimer:/strong>br />Please note that I’m not taking any responsibility for broken parts, Raspberry PI’es or anything else if you decided to use my presented information. This quasi manual requires you to have some basic knowledge about electric circuits, computers, networks etc so please be warned! 🙂/p>p> /p> /div>!-- .entry-content --> /article>!-- #post-9 --> /div>!-- #content --> /div>!-- #primary --> /div>!-- #main-content -->div idsecondary> h2 classsite-description>developer/h2> /div>!-- #secondary --> /div>!-- #main --> footer idcolophon classsite-footer rolecontentinfo> div classsite-info> a hrefhttps://wordpress.org/ classimprint> Proudly powered by WordPress /a> /div>!-- .site-info --> /footer>!-- #colophon --> /div>!-- #page --> script idcontact-form-7-js-extra>var wpcf7 {apiSettings:{root:https:\/\/pwiatrowski.com\/wp-json\/contact-form-7\/v1,namespace:contact-form-7\/v1}};/script>script srchttp://pwiatrowski.com/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver5.3.2 idcontact-form-7-js>/script>script srchttps://www.google.com/recaptcha/api.js?render6Lejf7kUAAAAAB2vo4RitrKKD72Lv3I8cr0tlCoK&ver3.0 idgoogle-recaptcha-js>/script>script idwpcf7-recaptcha-js-extra>var wpcf7_recaptcha {sitekey:6Lejf7kUAAAAAB2vo4RitrKKD72Lv3I8cr0tlCoK,actions:{homepage:homepage,contactform:contactform}};/script>script srchttp://pwiatrowski.com/wp-content/plugins/contact-form-7/modules/recaptcha/script.js?ver5.3.2 idwpcf7-recaptcha-js>/script>script srchttp://pwiatrowski.com/wp-content/themes/twentyfourteen/js/functions.js?ver20171218 idtwentyfourteen-script-js>/script>/body>/html>
Port 443
HTTP/1.1 200 OKdate: Wed, 29 Jan 2025 02:14:36 GMTserver: Apachelink: https://pwiatrowski.com/wp-json/>; relhttps://api.w.org/vary: Accept-Encodingtransfer-encoding: chunkedcontent-type: text/html; charsetUTF-8 !DOCTYPE html>!--if IE 7>html classie ie7 langen-US>!endif-->!--if IE 8>html classie ie8 langen-US>!endif-->!--if !(IE 7) & !(IE 8)>!-->html langen-US>!--!endif-->head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width> title>pwiatrowski | developer/title> link relprofile hrefhttps://gmpg.org/xfn/11> link relpingback hrefhttps://pwiatrowski.com/xmlrpc.php> !--if lt IE 9> script srchttps://pwiatrowski.com/wp-content/themes/twentyfourteen/js/html5.js?ver3.7.0>/script> !endif--> meta namerobots contentmax-image-preview:large /> style>img:is(sizesauto i, sizes^auto, i) { contain-intrinsic-size: 3000px 1500px }/style> link reldns-prefetch href//www.google.com />link reldns-prefetch href//fonts.googleapis.com />link hrefhttps://fonts.gstatic.com crossorigin relpreconnect />link relalternate typeapplication/rss+xml titlepwiatrowski » Feed hrefhttps://pwiatrowski.com/feed/ />link relalternate typeapplication/rss+xml titlepwiatrowski » Comments Feed hrefhttps://pwiatrowski.com/comments/feed/ />script>window._wpemojiSettings {baseUrl:https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/,ext:.png,svgUrl:https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/,svgExt:.svg,source:{concatemoji:https:\/\/pwiatrowski.com\/wp-includes\/js\/wp-emoji-release.min.js?ver6.7.1}};/*! This file is auto-generated */!function(i,n){var o,s,e;function c(e){try{var t{supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var tnew Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return ert})}function u(e,t,n){switch(t){caseflag:return n(e,\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f,\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f)?!1:!n(e,\ud83c\uddfa\ud83c\uddf3,\ud83c\uddfa\u200b\ud83c\uddf3)&&!n(e,\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f,\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f);caseemoji:return!n(e,\ud83d\udc26\u200d\u2b1b,\ud83d\udc26\u200b\u2b1b)}return!1}function f(e,t,n){var rundefined!typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement(canvas),ar.getContext(2d,{willReadFrequently:!0}),o(a.textBaselinetop,a.font600 32px Arial,{});return e.forEach(function(e){oet(a,e,n)}),o}function t(e){var ti.createElement(script);t.srce,t.defer!0,i.head.appendChild(t)}undefined!typeof Promise&&(owpEmojiSettingsSupports,sflag,emoji,n.supports{everything:!0,everythingExceptFlag:!0},enew Promise(function(e){i.addEventListener(DOMContentLoaded,e,{once:!0})}),new Promise(function(t){var nfunction(){try{var eJSON.parse(sessionStorage.getItem(o));if(objecttypeof e&&numbertypeof e.timestamp&&(new Date).valueOf()e.timestamp+604800&&objecttypeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if(undefined!typeof Worker&&undefined!typeof OffscreenCanvas&&undefined!typeof URL&&URL.createObjectURL&&undefined!typeof Blob)try{var epostMessage(+f.toString()+(+JSON.stringify(s),u.toString(),p.toString().join(,)+));,rnew Blob(e,{type:text/javascript}),anew Worker(URL.createObjectURL(r),{name:wpTestEmojiSupports});return void(a.onmessagefunction(e){c(ne.data),a.terminate(),t(n)})}catch(e){}c(nf(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supportstet,n.supports.everythingn.supports.everything&&n.supportst,flag!t&&(n.supports.everythingExceptFlagn.supports.everythingExceptFlag&&n.supportst);n.supports.everythingExceptFlagn.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady!1,n.readyCallbackfunction(){n.DOMReady!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(en.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);/script>style idwp-emoji-styles-inline-css> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; }/style>link relstylesheet idwp-block-library-css hrefhttps://pwiatrowski.com/wp-includes/css/dist/block-library/style.min.css?ver6.7.1 mediaall />style idwp-block-library-theme-inline-css>.wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em}/style>style idclassic-theme-styles-inline-css>/*! This file is auto-generated */.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}/style>style idglobal-styles-inline-css>:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--green: #24890d;--wp--preset--color--dark-gray: #2b2b2b;--wp--preset--color--medium-gray: #767676;--wp--preset--color--light-gray: #f5f5f5;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}/style>link relstylesheet idcontact-form-7-css hrefhttps://pwiatrowski.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver5.3.2 mediaall />link relstylesheet idtwentyfourteen-lato-css hrefhttps://fonts.googleapis.com/css?familyLato%3A300%2C400%2C700%2C900%2C300italic%2C400italic%2C700italic&subsetlatin%2Clatin-ext&displayfallback mediaall />link relstylesheet idgenericons-css hrefhttps://pwiatrowski.com/wp-content/themes/twentyfourteen/genericons/genericons.css?ver3.0.3 mediaall />link relstylesheet idtwentyfourteen-style-css hrefhttps://pwiatrowski.com/wp-content/themes/twentyfourteen/style.css?ver20190507 mediaall />link relstylesheet idtwentyfourteen-block-style-css hrefhttps://pwiatrowski.com/wp-content/themes/twentyfourteen/css/blocks.css?ver20190102 mediaall />!--if lt IE 9>link relstylesheet idtwentyfourteen-ie-css hrefhttps://pwiatrowski.com/wp-content/themes/twentyfourteen/css/ie.css?ver20140701 mediaall />!endif-->script srchttps://pwiatrowski.com/wp-includes/js/jquery/jquery.min.js?ver3.7.1 idjquery-core-js>/script>script srchttps://pwiatrowski.com/wp-includes/js/jquery/jquery-migrate.min.js?ver3.4.1 idjquery-migrate-js>/script>link relhttps://api.w.org/ hrefhttps://pwiatrowski.com/wp-json/ />link relEditURI typeapplication/rsd+xml titleRSD hrefhttps://pwiatrowski.com/xmlrpc.php?rsd />meta namegenerator contentWordPress 6.7.1 />/head>body classhome blog wp-embed-responsive masthead-fixed list-view full-width grid>div idpage classhfeed site> header idmasthead classsite-header rolebanner> div classheader-main> h1 classsite-title>a hrefhttps://pwiatrowski.com/ relhome>pwiatrowski/a>/h1> div classsearch-toggle> a href#search-container classscreen-reader-text aria-expandedfalse aria-controlssearch-container>Search/a> /div> nav idprimary-navigation classsite-navigation primary-navigation rolenavigation> button classmenu-toggle>Primary Menu/button> a classscreen-reader-text skip-link href#content>Skip to content/a> div idprimary-menu classnav-menu>ul>li classpage_item page-item-7>a hrefhttps://pwiatrowski.com/contact/>Contact/a>/li>/ul>/div> /nav> /div> div idsearch-container classsearch-box-wrapper hide> div classsearch-box> form rolesearch methodget classsearch-form actionhttps://pwiatrowski.com/> label> span classscreen-reader-text>Search for:/span> input typesearch classsearch-field placeholderSearch … value names /> /label> input typesubmit classsearch-submit valueSearch /> /form> /div> /div> /header>!-- #masthead --> div idmain classsite-main>div idmain-content classmain-content> div idprimary classcontent-area> div idcontent classsite-content rolemain> article idpost-9 classpost-9 post type-post status-publish format-standard hentry category-technology> header classentry-header> h1 classentry-title>a hrefhttps://pwiatrowski.com/technology/raspberry-pi-zero-esp8266-internet/ relbookmark>Raspberry Pi Zero + ESP8266 Internet?!/a>/h1> div classentry-meta> span classentry-date>a hrefhttps://pwiatrowski.com/technology/raspberry-pi-zero-esp8266-internet/ relbookmark>time classentry-date datetime2015-12-06T22:04:03+00:00>December 6, 2015/time>/a>/span> span classbyline>span classauthor vcard>a classurl fn n hrefhttps://pwiatrowski.com/author/twister/ relauthor>twister/a>/span>/span> /div>!-- .entry-meta --> /header>!-- .entry-header --> div classentry-content> figure stylewidth: 688px classwp-caption alignnone>img fetchpriorityhigh decodingasync class altRaspberry Pi Zero srchttp://pwiatrowski.com/wp-content/uploads/2015/12/rpi_zero-e1449496349217.jpg width688 height361 />figcaption classwp-caption-text>Raspberry Pi Zero – source Raspberry Pi Foundation/figcaption>/figure>p dirltr>span styleline-height: 1.5;>Few days ago Raspberry Pi Foundation announced brand new, ultra small, Raspberry Pi Zero and since then the hype around it is absolutely amazing! Not that they don’t deserve all of it of course! The new Rpi Zero is indeed a big thing in a very small case./span>/p>p> Unfortunately micro size comes with some trade-offs – especially lack of Ethernet port or WiFi and only one (micro) USB port which means an OTG cable is required if you want connect “normal” USB device or USB hub (powered preferably) if you want more than one device. This becomes a problem when you’d like to use Rpi Zero as a remote node in your new IoT project in which you plan to use a USB port for something like a webcam etc – remember one port only! So what you can do if you’re not fancy adding a USB hub and still want both a webcam and a WiFi dongle?/p>p>Well, the first thing which came into my mind was – ESP8266 – very cool Wifi-to-serial device. In theory it could be simple – connect ESP8266 to the serial port in Raspberry Pi Zero and start PPPd connection to some other machine on the network. But unfortunately ESP in its whole awesomeness doesn’t provide PPP support (yet?) bummer! 🙁 So I had to think about something else… after heavy googling I found some light in the tunnel and because I couldn’t find a complete solution anywhere I decided to create this article./p>p>strong>The solution (or workaround is more precise): esp-link + socat + slattach./strong>/p>p dirltr>To make long story short – yes, it’s possible* to have full, normal, ethernet, tcp/ip connection on Raspberry Pi Zero with ESP8266 connected to the RPi’s serial port**. To make it work we need only two applications (2 on the “server” side and 1 on the RPi side) and a special firmware for ESP8266. So here is how it worked for me***:/p>p> First of all, a word of compliment is needed for Jean-Claude Wippler who is responsible for a blog a hrefhttp://jeelabs.org/about/>http://jeelabs.org/a> and a firmware for ESP8266 called esp-link which made the whole thing possible. ESP-Link firmware is creating a totally transparent bridge between ESP8266’s serial port and WiFI (a telnet port to be precise). More information – the source and everything you’ll need is here: a hrefhttps://github.com/jeelabs/esp-link>https://github.com/jeelabs/esp-link/a>/p>p>So go and grab the firmware, flash it on your ESP8266, configure WiFi and you’re ready to go. (If you don’t know how to do it – go to esp-link homepage on github and read the manual!)/p>p>Then only few more steps are required:/p>ol>li>Connect ESP8266 to your Raspberry Pi Zero/li>li>span styleline-height: 1.5;>Configure both server and client ends/span>/li>li>Have a fun with your new network connection! 🙂/li>/ol>p>strong>Part 1) Connecting ESP8266 to Raspberry Pi Zero/strong>/p>p dirltr>This is fairly simple – just follow the schematic – I used this configuration./p>figure idattachment_26 aria-describedbycaption-attachment-26 stylewidth: 300px classwp-caption alignnone>a hrefhttp://pwiatrowski.com/wp-content/uploads/2015/12/esp8266-rpi-e1449497001454.png>img decodingasync classsize-medium wp-image-26 altConnecting ESP8266 (ESP-01) to Raspberry - source: http://www.esp8266.com/wiki/doku.php?idraspberrypi:getting_started srchttp://pwiatrowski.com/wp-content/uploads/2015/12/esp8266-rpi-300x203.png width300 height203 />/a>figcaption idcaption-attachment-26 classwp-caption-text>Connecting ESP8266 (ESP-01) to Raspberry – source: http://www.esp8266.com/wiki/doku.php?idraspberrypi:getting_started/figcaption>/figure>dl classwp-caption alignnone id stylewidth: 910px;>dt classwp-caption-dt>strong stylecolor: #2b2b2b; line-height: 1.5;>Part 2) Configuring the software/strong>/dt>/dl>p>strong> On the server side:/strong>/p>ol>li dirltr>p dirltr>strong>Install socat and slattach (example based on debian-ish system):/strong>/p>/li>/ol>blockquote>p dirltr>apt-get updatebr />apt-get upgradebr />apt-get install socat slattach/p>/blockquote>ol start2>li dirltr>p dirltr>Setup/p>/li>/ol>blockquote>p dirltr>socat TCP:192.168.1.3:23 PTY,link/tmp/socat.sockbr />slattach -L -s 115200 -p slip /tmp/socat.sockbr />span stylecolor: #2b2b2b; font-size: 16px; line-height: 1.5;>ifconfig sl0 192.168.255.2/24 upbr />/span>echo 1 > /proc/sys/net/ipv4/ip_forwardbr />iptables -t nat -A POSTROUTING -s 192.168.255.0/24 -o eth0 -j SNAT –to-source 192.168.1.250/p>/blockquote>p dirltr>Above commands needs to be adjusted to your environment – if you follow this manual then especially socat’s TCP socket IP, outgoing interface and –to-source IP address in iptables rule./p>p> strong>On the Raspberry Pi Zero (or any kind of Raspberry or computer with the serial port):/strong>/p>ol>li dirltr>p dirltr>Install slattach/p>/li>/ol>blockquote>p dirltr>apt-get updatebr />apt-get upgrade/p>/blockquote>p dirltr>apt-get install slattach/p>ol start2>li dirltr>p dirltr>Setup/p>/li>/ol>blockquote>p dirltr>slattach -L -s 115200 -p slip /dev/ttyUSB0br />ifconfig sl0 192.168.255.2/24 upbr />route add default gw 192.168.255.1/p>/blockquote>p dirltr>optional step – check your DNS settings – cat /etc/resolv.conf – and if there’s nothing add this: “nameserver 8.8.8.8” to add google DNS server./p>p> strong>Part 3) Check if everything works/strong>/p>p dirltr>If everything is OK you should be able to ping both ends of the tunnel and have full network connection. THE END 🙂/p>p dirltr>strong>Part *, **, ***) The truth/strong>/p>p dirltr>So… to be completely honest – this solution is not a very stable WiFi dongle replacement and definitively it requires some tuning. The network speed is extremely slow etc. But some improvements should be quite simple – for example to add permissions to the tunnel for non-root users etc. Another issues which I experienced were: big payloads (like file downloading etc) are problematic, socat on the server side was failing every so often and I needed to start it again,restart slattach and ifup the sl0 interface (the good thing is that Raspberry Pi Zero end stays up and never failed (so far)). Nonetheless it was a joyful journey and I’m pleased that it worked on the end. I’m pretty sure this solution could be explore even more and maybe even in this state it could be useful for someone./p>p> /p>p dirltr>strong>Disclaimer:/strong>br />Please note that I’m not taking any responsibility for broken parts, Raspberry PI’es or anything else if you decided to use my presented information. This quasi manual requires you to have some basic knowledge about electric circuits, computers, networks etc so please be warned! 🙂/p>p> /p> /div>!-- .entry-content --> /article>!-- #post-9 --> /div>!-- #content --> /div>!-- #primary --> /div>!-- #main-content -->div idsecondary> h2 classsite-description>developer/h2> /div>!-- #secondary --> /div>!-- #main --> footer idcolophon classsite-footer rolecontentinfo> div classsite-info> a hrefhttps://wordpress.org/ classimprint> Proudly powered by WordPress /a> /div>!-- .site-info --> /footer>!-- #colophon --> /div>!-- #page --> script idcontact-form-7-js-extra>var wpcf7 {apiSettings:{root:https:\/\/pwiatrowski.com\/wp-json\/contact-form-7\/v1,namespace:contact-form-7\/v1}};/script>script srchttps://pwiatrowski.com/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver5.3.2 idcontact-form-7-js>/script>script srchttps://www.google.com/recaptcha/api.js?render6Lejf7kUAAAAAB2vo4RitrKKD72Lv3I8cr0tlCoK&ver3.0 idgoogle-recaptcha-js>/script>script idwpcf7-recaptcha-js-extra>var wpcf7_recaptcha {sitekey:6Lejf7kUAAAAAB2vo4RitrKKD72Lv3I8cr0tlCoK,actions:{homepage:homepage,contactform:contactform}};/script>script srchttps://pwiatrowski.com/wp-content/plugins/contact-form-7/modules/recaptcha/script.js?ver5.3.2 idwpcf7-recaptcha-js>/script>script srchttps://pwiatrowski.com/wp-content/themes/twentyfourteen/js/functions.js?ver20171218 idtwentyfourteen-script-js>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]