1<!DOCTYPE html> 2<html lang="en-GB" class="no-js"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <link rel="profile" href="https://gmpg.org/xfn/11"> 7 <link rel="pingback" href="https://blog.pagefault-limited.co.uk/xmlrpc.php"> 8
8<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
8 9<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 10 <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> 11 12 <!-- This site is optimized with the Yoast SEO plugin v25.1 - https://yoast.com/wordpress/plugins/seo/ --> 13 <title>Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware - Pagefault Blog</title> 14 <link rel="canonical" href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware" /> 15 <meta property="og:locale" content="en_GB" /> 16 <meta property="og:type" content="article" /> 17 <meta property="og:title" content="Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware - Pagefault Blog" /> 18 <meta property="og:description" content="For some time I have been aware of the little portable oscilloscopes (DSO) kits produced by JYE Tech, such as the DSO-138 and DSO-150. While these kits can be purchased fully built, they are usually sold in a DIY state of “you solder everything” or “you solder everything minus the smd components”. In the images … Continue reading "Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware"" /> 19 <meta property="og:url" content="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware" /> 20 <meta property="og:site_name" content="Pagefault Blog" /> 21 <meta property="article:published_time" content="2019-03-24T16:30:19+00:00" /> 22 <meta property="article:modified_time" content="2021-01-17T14:18:15+00:00" /> 23 <meta property="og:image" content="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg" /> 24 <meta property="og:image:width" content="1796" /> 25 <meta property="og:image:height" content="2733" /> 26 <meta property="og:image:type" content="image/jpeg" /> 27 <meta name="author" content="Don Prince" /> 28 <meta name="twitter:card" content="summary_large_image" /> 29 <meta name="twitter:label1" content="Written by" /> 30 <meta name="twitter:data1" content="Don Prince" /> 31 <meta name="twitter:label2" content="Estimated reading time" /> 32 <meta name="twitter:data2" content="11 minutes" /> 33
33<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#article","isPartOf":{"@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware"},"author":{"name":"Don Prince","@id":"https://blog.pagefault-limited.co.uk/#/schema/person/052b3b95b2af482f957cef9ecec6aa27"},"headline":"Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware","datePublished":"2019-03-24T16:30:19+00:00","dateModified":"2021-01-17T14:18:15+00:00","mainEntityOfPage":{"@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware"},"wordCount":1235,"commentCount":6,"publisher":{"@id":"https://blog.pagefault-limited.co.uk/#organization"},"image":{"@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#primaryimage"},"thumbnailUrl":"https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg","keywords":["analog","digital","DSO-150","firmware","ft2232hl","ftdi","jtsg","logic","opensource","oscilloscope"],"articleSection":["Debug","DSO-150","Electronics","JTAG","Open Source","openocd","Oscilloscope","Programming","Tools"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#respond"]}]},{"@type":"WebPage","@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware","url":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware","name":"Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware - Pagefault Blog","isPartOf":{"@id":"https://blog.pagefault-limited.co.uk/#website"},"primaryImageOfPage":{"@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#primaryimage"},"image":{"@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#primaryimage"},"thumbnailUrl":"https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg","datePublished":"2019-03-24T16:30:19+00:00","dateModified":"2021-01-17T14:18:15+00:00","breadcrumb":{"@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#primaryimage","url":"https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg","contentUrl":"https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg","width":1796,"height":2733,"caption":"Firmware Flashed"},{"@type":"BreadcrumbList","@id":"https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://blog.pagefault-limited.co.uk/"},{"@type":"ListItem","position":2,"name":"Posts","item":"https://blog.pagefault-limited.co.uk/posts"},{"@type":"ListItem","position":3,"name":"Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware"}]},{"@type":"WebSite","@id":"https://blog.pagefault-limited.co.uk/#website","url":"https://blog.pagefault-limited.co.uk/","name":"Pagefault Blog","description":"On and Off again! One Bit to switch them all.","publisher":{"@id":"https://blog.pagefault-limited.co.uk/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://blog.pagefault-limited.co.uk/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https://blog.pagefault-limited.co.uk/#organization","name":"Pagefault Limited","url":"https://blog.pagefault-limited.co.uk/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https://blog.pagefault-limited.co.uk/#/schema/logo/image/","url":"https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/logo-small.png","contentUrl":"https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/logo-small.png","width":800,"height":100,"caption":"Pagefault Limited"},"image":{"@id":"https://blog.pagefault-limited.co.uk/#/schema/logo/image/"}},{"@type":"Person","@id":"https://blog.pagefault-limited.co.uk/#/schema/person/052b3b95b2af482f957cef9ecec6aa27","name":"Don Prince","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https://blog.pagefault-limited.co.uk/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=96&d=mm&r=g","caption":"Don Prince"}}]}</script>
33 34 <!-- / Yoast SEO plugin. --> 35 36 37<link rel='dns-prefetch' href='//www.googletagmanager.com' /> 38<link rel='dns-prefetch' href='//pagead2.googlesyndication.com' /> 39<link rel="alternate" type="application/rss+xml" title="Pagefault Blog » Feed" href="https://blog.pagefault-limited.co.uk/feed" /> 40<link rel="alternate" type="application/rss+xml" title="Pagefault Blog » Comments Feed" href="https://blog.pagefault-limited.co.uk/comments/feed" /> 41<link rel="alternate" type="application/rss+xml" title="Pagefault Blog » Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware Comments Feed" href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware/feed" /> 42 <!-- This site uses the Google Analytics by MonsterInsights plugin v9.5.3 - Using Analytics tracking - https://www.monsterinsights.com/ -->
vendor: 59 bytes, lines 42-43
42 43 <script src="//www.googletagmanager.com/gtag/js?id=
43G-LV2X12HE05
vendor: 68 bytes, lines 43-44
43" data-cfasync="false" data-wpfc-render="false" async></script> 44
44<script data-cfasync="false" data-wpfc-render="false"> 45 var mi_version = '9.5.3'; 46 var mi_track_user = true; 47 var mi_no_track_reason = ''; 48 var MonsterInsightsDefaultLocations = {"page_location":"https:\/\/blog.pagefault-limited.co.uk\/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware\/"}; 49 if ( typeof MonsterInsightsPrivacyGuardFilter === 'function' ) { 50 var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsPrivacyGuardFilter( MonsterInsightsExcludeQuery ) : MonsterInsightsPrivacyGuardFilter( MonsterInsightsDefaultLocations ); 51 } else { 52 var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsExcludeQuery : MonsterInsightsDefaultLocations; 53 } 54 55 var disableStrs = [ 56 'ga-disable-G-LV2X12HE05', 57 ]; 58 59 /* Function to detect opted out users */ 60 function __gtagTrackerIsOptedOut() { 61 for (var index = 0; index < disableStrs.length; index++) { 62 if (document.cookie.indexOf(disableStrs[index] + '=true') > -1) { 63 return true; 64 } 65 } 66 67 return false; 68 } 69 70 /* Disable tracking if the opt-out cookie exists. */ 71 if (__gtagTrackerIsOptedOut()) { 72 for (var index = 0; index < disableStrs.length; index++) { 73 window[disableStrs[index]] = true; 74 } 75 } 76 77 /* Opt-out function */ 78 function __gtagTrackerOptout() { 79 for (var index = 0; index < disableStrs.length; index++) { 80 document.cookie = disableStrs[index] + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; 81 window[disableStrs[index]] = true; 82 } 83 } 84 85 if ('undefined' === typeof gaOptout) { 86 function gaOptout() { 87 __gtagTrackerOptout(); 88 } 89 } 90 window.dataLayer = window.dataLayer || []; 91 92 window.MonsterInsightsDualTracker = { 93 helpers: {}, 94 trackers: {}, 95 }; 96 if (mi_track_user) { 97 function __gtagDataLayer() { 98 dataLayer.push(arguments); 99 } 100 101 function __gtagTracker(type, name, parameters) { 102 if (!parameters) { 103 parameters = {}; 104 } 105 106 if (parameters.send_to) { 107 __gtagDataLayer.apply(null, arguments); 108 return; 109 } 110 111 if (type === 'event') { 112 parameters.send_to = monsterinsights_frontend.v4_id; 113 var hookName = name; 114 if (typeof parameters['event_category'] !== 'undefined') { 115 hookName = parameters['event_category'] + ':' + name; 116 } 117 118 if (typeof MonsterInsightsDualTracker.trackers[hookName] !== 'undefined') { 119 MonsterInsightsDualTracker.trackers[hookName](parameters); 120 } else { 121 __gtagDataLayer('event', name, parameters); 122 } 123 124 } else { 125 __gtagDataLayer.apply(null, arguments); 126 } 127 } 128 129 __gtagTracker('js', new Date()); 130 __gtagTracker('set', { 131 'developer_id.dZGIzZG': true, 132 }); 133 if ( MonsterInsightsLocations.page_location ) { 134 __gtagTracker('set', MonsterInsightsLocations); 135 } 136 __gtagTracker('config', 'G-LV2X12HE05', {"forceSSL":"true","link_attribution":"true"} ); 137 window.gtag = __gtagTracker; (function () { 138 /* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */ 139 /* ga and __gaTracker compatibility shim. */ 140 var noopfn = function () { 141 return null; 142 }; 143 var newtracker = function () { 144 return new Tracker(); 145 }; 146 var Tracker = function () { 147 return null; 148 }; 149 var p = Tracker.prototype; 150 p.get = noopfn; 151 p.set = noopfn; 152 p.send = function () { 153 var args = Array.prototype.slice.call(arguments); 154 args.unshift('send'); 155 __gaTracker.apply(null, args); 156 }; 157 var __gaTracker = function () { 158 var len = arguments.length; 159 if (len === 0) { 160 return; 161 } 162 var f = arguments[len - 1]; 163 if (typeof f !== 'object' || f === null || typeof f.hitCallback !== 'function') { 164 if ('send' === arguments[0]) { 165 var hitConverted, hitObject = false, action; 166 if ('event' === arguments[1]) { 167 if ('undefined' !== typeof arguments[3]) { 168 hitObject = { 169 'eventAction': arguments[3], 170 'eventCategory': arguments[2], 171 'eventLabel': arguments[4], 172 'value': arguments[5] ? arguments[5] : 1, 173 } 174 } 175 } 176 if ('pageview' === arguments[1]) { 177 if ('undefined' !== typeof arguments[2]) { 178 hitObject = { 179 'eventAction': 'page_view', 180 'page_path': arguments[2], 181 } 182 } 183 } 184 if (typeof arguments[2] === 'object') { 185 hitObject = arguments[2]; 186 } 187 if (typeof arguments[5] === 'object') { 188 Object.assign(hitObject, arguments[5]); 189 } 190 if ('undefined' !== typeof arguments[1].hitType) { 191 hitObject = arguments[1]; 192 if ('pageview' === hitObject.hitType) { 193 hitObject.eventAction = 'page_view'; 194 } 195 } 196 if (hitObject) { 197 action = 'timing' === arguments[1].hitType ? 'timing_complete' : hitObject.eventAction;
198 hitConverted = mapArgs(hitObject); 199 __gtagTracker('event', action, hitConverted); 200 } 201 } 202 return; 203 } 204 205 function mapArgs(args) { 206 var arg, hit = {}; 207 var gaMap = { 208 'eventCategory': 'event_category', 209 'eventAction': 'event_action', 210 'eventLabel': 'event_label', 211 'eventValue': 'event_value', 212 'nonInteraction': 'non_interaction', 213 'timingCategory': 'event_category', 214 'timingVar': 'name', 215 'timingValue': 'value', 216 'timingLabel': 'event_label', 217 'page': 'page_path', 218 'location': 'page_location', 219 'title': 'page_title', 220 'referrer' : 'page_referrer', 221 }; 222 for (arg in args) { 223 if (!(!args.hasOwnProperty(arg) || !gaMap.hasOwnProperty(arg))) { 224 hit[gaMap[arg]] = args[arg]; 225 } else { 226 hit[arg] = args[arg]; 227 } 228 } 229 return hit; 230 } 231 232 try { 233 f.hitCallback(); 234 } catch (ex) { 235 } 236 }; 237 __gaTracker.create = newtracker; 238 __gaTracker.getByName = newtracker; 239 __gaTracker.getAll = function () { 240 return []; 241 }; 242 __gaTracker.remove = noopfn; 243 __gaTracker.loaded = true; 244 window['__gaTracker'] = __gaTracker; 245 })(); 246 } else { 247 console.log(""); 248 (function () { 249 function __gtagTracker() { 250 return null; 251 } 252 253 window['__gtagTracker'] = __gtagTracker; 254 window['gtag'] = __gtagTracker; 255 })(); 256 } 257 </script>
257 258 <!-- / Google Analytics by MonsterInsights --> 259
259<script> 260window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/blog.pagefault-limited.co.uk\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.10"}}; 261/*! This file is auto-generated */ 262!function(s,n){var o,i,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 t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a=(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 e===a[t]})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var n=e.getImageData(16,16,1,1),a=0;a<n.data.length;a++)if(0!==n.data[a])return!1;return!0}function f(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!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");case"emoji":return!a(e,"\ud83e\udedf")}return!1}function g(e,t,n,a){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement("canvas"),o=r.getContext("2d",{willReadFrequently:!0}),i=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(function(e){i[e]=t(o,e,n,a)}),i}function t(e){var t=s.createElement("script");t.src=e,t.defer=!0,s.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",i=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){s.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof 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 e="postMessage("+g.toString()+"("+[JSON.stringify(i),f.toString(),p.toString(),u.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"}),r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=function(e){c(n=e.data),r.terminate(),t(n)})}catch(e){}c(n=g(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); 263</script>
263 264<link rel='stylesheet' id='crayon-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/crayon-syntax-highlighter/css/min/crayon.min.css?ver=_2.7.2_beta' media='all' /> 265<link rel='stylesheet' id='crayon-theme-visual-assist-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/crayon-syntax-highlighter/themes/visual-assist/visual-assist.css?ver=_2.7.2_beta' media='all' /> 266<link rel='stylesheet' id='crayon-font-monaco-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/crayon-syntax-highlighter/fonts/monaco.css?ver=_2.7.2_beta' media='all' /> 267<style id='wp-emoji-styles-inline-css'> 268 269 img.wp-smiley, img.emoji { 270 display: inline !important; 271 border: none !important; 272 box-shadow: none !important; 273 height: 1em !important; 274 width: 1em !important; 275 margin: 0 0.07em !important; 276 vertical-align: -0.1em !important; 277 background: none !important; 278 padding: 0 !important; 279 } 280</style> 281<link rel='stylesheet' id='wp-block-library-css' href='https://blog.pagefault-limited.co.uk/wp-includes/css/dist/block-library/style.min.css?ver=6.8.10' media='all' /> 282<style id='wp-block-library-theme-inline-css'> 283.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} 284</style> 285<style id='classic-theme-styles-inline-css'> 286/*! This file is auto-generated */ 287.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} 288</style> 289<style id='pdfp-pdfposter-style-inline-css'> 290.pdfp_wrapper .pdf{position:relative}.pdfp_wrapper.pdfp_popup_enabled .iframe_wrapper{display:none}.pdfp_wrapper.pdfp_popup_enabled .iframe_wrapper:fullscreen{display:block}.pdfp_wrapper .iframe_wrapper{height:100%;width:100%}.pdfp_wrapper .iframe_wrapper:fullscreen iframe{height:100vh!important}.pdfp_wrapper .iframe_wrapper iframe{width:100%}.pdfp_wrapper .iframe_wrapper .close{background:#fff;border:1px solid #ddd;border-radius:3px;color:#222;cursor:pointer;display:none;font-family:sans-serif;font-size:36px;line-height:100%;padding:0 7px;position:absolute;right:12px;top:35px;z-index:9999}.pdfp_wrapper .iframe_wrapper:fullscreen .close{display:block}.pdfp_wrapper .pdfp_fullscreen_close{display:none}.pdfp_wrapper.pdfp_fullscreen_opened .pdfp_fullscreen_close{align-items:center;background:#fff;border-radius:3px;color:#222;cursor:pointer;display:flex;font-size:35px;height:30px;justify-content:center;overflow:hidden;padding-bottom:4px;position:fixed;right:20px;top:20px;width:32px}.pdfp_wrapper.pdfp_fullscreen_opened .pdfp_fullscreen_overlay{background:#2229;height:100%;left:0;position:fixed;top:0;width:100%}.pdfp_wrapper.pdfp_fullscreen_opened .iframe_wrapper{display:block;height:90vh;left:50%;max-width:95%;position:fixed;top:50%;transform:translate(-50%,-50%);width:900px;z-index:99999999999}.pdfp_wrapper iframe{border:none;outline:none}.pdfp-adobe-viewer{border:1px solid #ddd;border-radius:3px;
290cursor:pointer;outline:none;text-decoration:none}.pdfp_download{margin-right:15px}.cta_wrapper{margin-bottom:10px;text-align:left}.cta_wrapper button{cursor:pointer}.pdfp_wrapper p{margin:10px 0;text-align:center}.popout-disabled{height:50px;position:absolute;right:12px;top:12px;width:50px}.pdfp_wrapper iframe{max-width:100%}.ViewSDK_hideOverflow[data-align=center]{margin-left:auto;margin-right:auto}.ViewSDK_hideOverflow[data-align=left]{margin-right:auto}.ViewSDK_hideOverflow[data-align=right]{margin-left:auto}@media screen and (max-width:768px){.pdfp_wrapper iframe{height:calc(100vw + 120px)}}@media screen and (max-width:576px){.cta_wrapper .pdfp_download{margin-bottom:10px;margin-right:0}.cta_wrapper .pdfp_download button{margin-right:0!important}.cta_wrapper{align-items:center;display:flex;flex-direction:column}} 291.pdfp_wrapper .pdf{position:relative}.pdfp_wrapper .iframe_wrapper{height:100%;width:100%}.pdfp_wrapper .iframe_wrapper:fullscreen iframe{height:100vh!important}.pdfp_wrapper .iframe_wrapper iframe{width:100%}.pdfp_wrapper .iframe_wrapper .close{background:#fff;border:1px solid #ddd;border-radius:3px;color:#222;cursor:pointer;display:none;font-family:sans-serif;font-size:36px;line-height:100%;padding:0 7px;position:absolute;right:12px;top:35px;z-index:9999}.pdfp_wrapper .iframe_wrapper:fullscreen .close{display:block}.pdfp-adobe-viewer{border:1px solid #ddd;border-radius:3px;cursor:pointer;outline:none;text-decoration:none}.pdfp_download{margin-right:15px}.cta_wrapper{margin-bottom:10px}.pdfp_wrapper p{margin:10px 0;text-align:center}.popout-disabled{height:50px;position:absolute;right:12px;top:12px;width:50px}@media screen and (max-width:768px){.pdfp_wrapper iframe{height:calc(100vw + 120px)}}.ViewSDK_hideOverflow[data-align=center]{margin-left:auto;margin-right:auto}.ViewSDK_hideOverflow[data-align=left]{margin-right:auto}.ViewSDK_hideOverflow[data-align=right]{margin-left:auto}@media screen and (max-width:768px){.pdfp_wrapper iframe{height:calc(100vw + 120px)!important}}@media screen and (max-width:576px){.cta_wrapper .pdfp_download{margin-bottom:10px;margin-right:0}.cta_wrapper .pdfp_download button{margin-right:0!important}.cta_wrapper{align-items:center;display:flex;flex-direction:column}} 292 293</style> 294<style id='global-styles-inline-css'> 295: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: #000000;--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--dark-gray: #1a1a1a;--wp--preset--color--medium-gray: #686868;--wp--preset--color--light-gray: #e5e5e5;--wp--preset--color--blue-gray: #4d545c;--wp--preset--color--bright-blue: #007acc;--wp--preset--color--light-blue: #9adffd;--wp--preset--color--dark-brown: #402b30;--wp--preset--color--medium-brown: #774e24;--wp--preset--color--dark-red: #640c1f;--wp--preset--color--bright-red: #ff675f;--wp--preset--color--yellow: #ffef8e;--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%);
295--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;}
295.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;} 296:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} 297:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} 298:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 299</style> 300<link rel='stylesheet' id='pdfp-public-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/pdf-poster/build/public.css?ver=2.2.3' media='all' /> 301<link rel='stylesheet' id='foobox-free-min-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/foobox-image-lightbox/free/css/foobox.free.min.css?ver=2.7.34' media='all' /> 302<link rel='stylesheet' id='contact-form-7-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.0.6' media='all' /> 303<link rel='stylesheet' id='collapscore-css-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/jquery-collapse-o-matic/css/core_style.css?ver=1.0' media='all' /> 304<link rel='stylesheet' id='collapseomatic-css-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/jquery-collapse-o-matic/css/light_style.css?ver=1.6' media='all' /> 305<link rel='stylesheet' id='toc-screen-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/table-of-contents-plus/screen.min.css?ver=2411.1' media='all' /> 306<link rel='stylesheet' id='c4wp-public-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/wp-captcha//assets/css/c4wp-public.css?ver=6.8.10' media='all' /> 307<link rel='stylesheet' id='twentysixteen-fonts-css' href='https://blog.pagefault-limited.co.uk/wp-content/themes/twentysixteen/fonts/merriweather-plus-montserrat-plus-inconsolata.css?ver=20230328' media='all' /> 308<link rel='stylesheet' id='genericons-css' href='https://blog.pagefault-limited.co.uk/wp-content/themes/twentysixteen/genericons/genericons.css?ver=20201208' media='all' /> 309<link rel='stylesheet' id='twentysixteen-style-css' href='https://blog.pagefault-limited.co.uk/wp-content/themes/twentysixteen/style.css?ver=20250415' media='all' /> 310<link rel='stylesheet' id='twentysixteen-block-style-css' href='https://blog.pagefault-limited.co.uk/wp-content/themes/twentysixteen/css/blocks.css?ver=20240817' media='all' /> 311<!--[if lt IE 10]> 312<link rel='stylesheet' id='twentysixteen-ie-css' href='https://blog.pagefault-limited.co.uk/wp-content/themes/twentysixteen/css/ie.css?ver=20170530' media='all' /> 313<![endif]--> 314<!--[if lt IE 9]> 315<link rel='stylesheet' id='twentysixteen-ie8-css' href='https://blog.pagefault-limited.co.uk/wp-content/themes/twentysixteen/css/ie8.css?ver=20170530' media='all' /> 316<![endif]--> 317<!--[if lt IE 8]> 318<link rel='stylesheet' id='twentysixteen-ie7-css' href='https://blog.pagefault-limited.co.uk/wp-content/themes/twentysixteen/css/ie7.css?ver=20170530' media='all' /> 319<![endif]--> 320<link rel='stylesheet' id='rdp-mediawiki-style-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/rdp-wiki-embed/pl/css/wiki-embed.css?ver=1.2.20' media='all' /> 321<link rel='stylesheet' id='rdp-we-style-common-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/rdp-wiki-embed/pl/css/style.css?ver=1.2.20' media='all' /> 322<link rel='stylesheet' id='jquery-lazyloadxt-spinner-css-css' href='//blog.pagefault-limited.co.uk/wp-content/plugins/a3
322-lazy-load/assets/css/jquery.lazyloadxt.spinner.css?ver=6.8.10' media='all' /> 323<link rel='stylesheet' id='codecolorer-css' href='https://blog.pagefault-limited.co.uk/wp-content/plugins/codecolorer/codecolorer.css?ver=0.10.1' media='screen' />
324<script src="https://blog.pagefault-limited.co.uk/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
vendor: 1 bytes, line 324
324
325<script src="https://blog.pagefault-limited.co.uk/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
vendor: 1 bytes, line 325
325
326<script id="crayon_js-js-extra"> 327var CrayonSyntaxSettings = {"version":"_2.7.2_beta","is_admin":"0","ajaxurl":"https:\/\/blog.pagefault-limited.co.uk\/wp-admin\/admin-ajax.php","prefix":"crayon-","setting":"crayon-setting","selected":"crayon-setting-selected","changed":"crayon-setting-changed","special":"crayon-setting-special","orig_value":"data-orig-value","debug":""}; 328var CrayonSyntaxStrings = {"copy":"Press %s to Copy, %s to Paste","minimize":"Click To Expand Code"}; 329</script>
vendor: 1 bytes, line 329
329
330<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/crayon-syntax-highlighter/js/min/crayon.min.js?ver=_2.7.2_beta" id="crayon_js-js"></script>
vendor: 1 bytes, line 330
330
331<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/google-analytics-for-wordpress/assets/js/frontend-gtag.min.js?ver=9.5.3" id="monsterinsights-frontend-script-js" async data-wp-strategy="async"></script>
vendor: 1 bytes, line 331
331
332<script data-cfasync="false" data-wpfc-render="false" id='monsterinsights-frontend-script-js-extra'>var monsterinsights_frontend = {"js_events_tracking":"true","download_extensions":"doc,pdf,ppt,zip,xls,docx,pptx,xlsx","inbound_paths":"[{\"path\":\"\\\/go\\\/\",\"label\":\"affiliate\"},{\"path\":\"\\\/recommend\\\/\",\"label\":\"affiliate\"}]","home_url":"https:\/\/blog.pagefault-limited.co.uk","hash_tracking":"false","v4_id":"G-LV2X12HE05"};</script>
vendor: 1 bytes, line 332
332
333<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/wp-captcha//assets/js/c4wp-public.js?ver=6.8.10" id="c4wp-public-js"></script>
333 334<!--[if lt IE 9]>
335<script src="https://blog.pagefault-limited.co.uk/wp-content/themes/twentysixteen/js/html5.js?ver=3.7.3" id="twentysixteen-html5-js"></script>
335 336<![endif]-->
337<script id="twentysixteen-script-js-extra"> 338var screenReaderText = {"expand":"expand child menu","collapse":"collapse child menu"}; 339</script>
vendor: 1 bytes, line 339
339
340<script src="https://blog.pagefault-limited.co.uk/wp-content/themes/twentysixteen/js/functions.js?ver=20230629" id="twentysixteen-script-js" defer data-wp-strategy="defer"></script>
vendor: 1 bytes, line 340
340
341<script id="foobox-free-min-js-before"> 342/* Run FooBox FREE (v2.7.34) */ 343var FOOBOX = window.FOOBOX = { 344 ready: true, 345 disableOthers: false, 346 o: {wordpress: { enabled: true }, captions: { dataTitle: ["captionTitle","title"], dataDesc: ["captionDesc","description"] }, rel: '', excludes:'.fbx-link,.nofoobox,.nolightbox,a[href*="pinterest.com/pin/create/button/"]', affiliate : { enabled: false }, error: "Could not load the item"}, 347 selectors: [ 348 ".gallery", ".wp-block-gallery", ".wp-caption", ".wp-block-image", "a:has(img[class*=wp-image-])", ".foobox" 349 ], 350 pre: function( $ ){ 351 // Custom JavaScript (Pre) 352 353 }, 354 post: function( $ ){ 355 // Custom JavaScript (Post) 356 357 // Custom Captions Code 358 359 }, 360 custom: function( $ ){ 361 // Custom Extra JS 362 363 } 364}; 365</script>
vendor: 1 bytes, line 365
365
366<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/foobox-image-lightbox/free/js/foobox.free.min.js?ver=2.7.34" id="foobox-free-min-js"></script>
366 367 368<!-- Google tag (gtag.js) snippet added by Site Kit --> 369 370<!-- Google Analytics snippet added by Site Kit -->
vendor: 58 bytes, lines 370-371
370 371<script src="https://www.googletagmanager.com/gtag/js?id=
371G-LV2X12HE05
vendor: 40 bytes, line 371
371" id="google_gtagjs-js" async></script>
372<script id="google_gtagjs-js-after"> 373window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);} 374gtag("set","linker",{"domains":["blog.pagefault-limited.co.uk"]}); 375gtag("js", new Date()); 376gtag("set", "developer_id.dZTNiMT", true); 377gtag("config", "G-LV2X12HE05"); 378</script>
378 379 380<!-- End Google tag (gtag.js) snippet added by Site Kit --> 381<link rel="https://api.w.org/" href="https://blog.pagefault-limited.co.uk/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://blog.pagefault-limited.co.uk/wp-json/wp/v2/posts/150" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.pagefault-limited.co.uk/xmlrpc.php?rsd" /> 382<meta name="generator" content="WordPress 6.8.10" /> 383<link rel='shortlink' href='https://blog.pagefault-limited.co.uk/?p=150' /> 384<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://blog.pagefault-limited.co.uk/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fblog.pagefault-limited.co.uk%2Fadding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware" /> 385<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://blog.pagefault-limited.co.uk/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fblog.pagefault-limited.co.uk%2Fadding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware&format=xml" /> 386 <style> 387 </style> 388<meta name="generator" content="Site Kit by Google 1.152.1" />
388<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1579481821615564" 389 crossorigin="anonymous"></script>
389 390<!-- Enter your scripts here --> 391<!-- Google AdSense meta tags added by Site Kit --> 392<meta name="google-adsense-platform-account" content="ca-host-pub-2644536267352236"> 393<meta name="google-adsense-platform-domain" content="sitekit.withgoogle.com"> 394<!-- End Google AdSense meta tags added by Site Kit --> 395<style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style><style type="text/css">.broken_link, a.broken_link { 396 text-decoration: line-through; 397}</style> 398<!-- Google AdSense snippet added by Site Kit -->
399<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8049997717605249&host=ca-host-pub-2644536267352236" crossorigin="anonymous"></script>
399 400 401<!-- End Google AdSense snippet added by Site Kit --> 402<link rel="icon" href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2018/02/cropped-2018-02-02-172944-cropped-32x32.jpg" sizes="32x32" /> 403<link rel="icon" href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2018/02/cropped-2018-02-02-172944-cropped-192x192.jpg" sizes="192x192" /> 404<link rel="apple-touch-icon" href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2018/02/cropped-2018-02-02-172944-cropped-180x180.jpg" /> 405<meta name="msapplication-TileImage" content="https://blog.pagefault-limited.co.uk/wp-content/uploads/2018/02/cropped-2018-02-02-172944-cropped-270x270.jpg" /> 406 <!-- Fonts Plugin CSS - https://fontsplugin.com/ --> 407 <style> 408 </style> 409 <!-- Fonts Plugin CSS --> 410 </head> 411 412<body data-rsssl=1 class="wp-singular post-template-default single single-post postid-150 single-format-standard wp-embed-responsive wp-theme-twentysixteen"> 413<div id="page" class="site"> 414 <div class="site-inner"> 415 <a class="skip-link screen-reader-text" href="#content"> 416 Skip to content </a> 417 418 <header id="masthead" class="site-header"> 419 <div class="site-header-main"> 420 <div class="site-branding"> 421 <p class="site-title"><a href="https://blog.pagefault-limited.co.uk/" rel="home" >Pagefault Blog</a></p> 422 <p class="site-description">On and Off again! One Bit to switch them all.</p> 423 </div><!-- .site-branding --> 424 425 <button id="menu-toggle" class="menu-toggle">Menu</button> 426 427 <div id="site-header-menu" class="site-header-menu"> 428 <nav id="site-navigation" class="main-navigation" aria-label="Primary menu"> 429 <div class="menu-footer-container"><ul id="menu-footer" class="primary-menu"><li id="menu-item-51736" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-51736"><a rel="privacy-policy" href="https://blog.pagefault-limited.co.uk/privacy-policy">Privacy Policy</a></li> 430<li id="menu-item-51744" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51744"><a href="https://blog.pagefault-limited.co.uk/contact-us">Contact Us</a></li> 431</ul></div> </nav><!-- .main-navigation --> 432 433 </div><!-- .site-header-menu --> 434 </div><!-- .site-header-main --> 435 436 <div class="header-image"> 437 <a href="https://blog.pagefault-limited.co.uk/" rel="home" > 438 <img src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2018/02/cropped-2018-02-02-172944.jpg" width="1200" height="278" alt="Pagefault Blog" sizes="(max-width: 709px) 85vw, (max-width: 909px) 81vw, (max-width: 1362px) 88vw, 1200px" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2018/02/cropped-2018-02-02-172944.jpg 1200w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2018/02/cropped-2018-02-02-172944-300x70.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2018/02/cropped-2018-02-02-172944-768x178.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2018/02/cropped-2018-02-02-172944-1024x237.jpg 1024w" decoding="async" fetchpriority="high" /> </a> 439 </div><!-- .header-image --> 440 </header><!-- .site-header --> 441 442 <div id="content" class="site-content"> 443 444<div id="primary" class="content-area"> 445 <main id="main" class="site-main"> 446 447<article id="post-150" class="post-150 post type-post status-publish format-standard has-post-thumbnail hentry category-debug category-dso-150 category-electronics category-jtag category-open-source category-openocd category-oscilloscope category-programming category-tools tag-analog tag-digital tag-dso-150 tag-firmware tag-ft2232hl tag-ftdi tag-jtsg tag-logic tag-opensource tag-oscilloscope"> 448 <header class="entry-header"> 449 <h1 class="entry-title">Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware</h1> </header><!-- .entry-header --> 450 451 452 453 <div class="post-thumbnail"> 454 <img width="1200" height="1826" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg" class="lazy lazy-hidden attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg 1796w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-197x300.jpg 197w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-768x1169.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-673x1024.jpg 673w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" /><noscript><img width="1200" height="1826" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg 1796w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-197x300.jpg 197w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-768x1169.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-673x1024.jpg 673w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" /></noscript> </div><!-- .post-thumbnail --> 455 456 457 <div class="entry-content"> 458 459<p></p> 460 461 462 463<p>For some time I have been aware of the little portable oscilloscopes (DSO) kits produced by <a href="https://jyetech.com">JYE Tech</a>, such as the <a href="https://jyetech.com/dso-138-oscilloscope-diy-kit/">DSO-138</a> and <a href="https://jyetech.com/dso-150-shell/">DSO-150</a>. While these kits can be purchased fully built, they are usually sold in a DIY state of “you solder everything” or “you solder everything minus the smd components”. In the images below, the red PCB is the DSO-138 and the blue PCB is the big brother DSO-150. </p> 464 465 466 467<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138.jpg"><img decoding="async" width="1000" height="1000" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
467-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138.jpg" alt="" data-id="168" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=168" class="lazy lazy-hidden wp-image-168" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138.jpg 1000w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-174x174.jpg 174w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img decoding="async" width="1000" height="1000" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138.jpg" alt="" data-id="168" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=168" class="wp-image-168" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138.jpg 1000w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-174x174.jpg 174w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">DSO-138 Complete with Case</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1.jpg"><img loading="lazy" decoding="async" width="1000" height="1000" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1.jpg" alt="" data-id="166" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=166" class="lazy lazy-hidden wp-image-166" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1.jpg 1000w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-174x174.jpg 174w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1000" height="1000" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1.jpg" alt="" data-id="166" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=166" class="wp-image-166" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1.jpg 1000w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit1-174x174.jpg 174w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">DSO-138 Kit</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-1024x768.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
467-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-1024x768.jpg" alt="" data-id="165" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=165" class="lazy lazy-hidden wp-image-165" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-1024x768.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-300x225.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-768x576.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-285x214.jpg 285w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-1024x768.jpg" alt="" data-id="165" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=165" class="wp-image-165" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-1024x768.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-300x225.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-768x576.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features-285x214.jpg 285w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-features.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">DSO-138 in operation</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-1024x768.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-1024x768.jpg" alt="" data-id="156" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=156" class="lazy lazy-hidden wp-image-156" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-1024x768.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-300x225.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-768x576.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-285x214.jpg 285w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-1024x768.jpg" alt="" data-id="156" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=156" class="wp-image-156" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-1024x768.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-300x225.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-768x576.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2-285x214.jpg 285w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-138-kit2.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">DSO-138 Assembling</figcaption></figure></li></ul></figure> 468 469 470 471<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-1024x1024.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
471-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-1024x1024.jpg" alt="" data-id="161" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=161" class="lazy lazy-hidden wp-image-161" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-1024x1024.jpg" alt="" data-id="161" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=161" class="wp-image-161" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit4.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">DSO-150 Case disassembled</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-1024x1024.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-1024x1024.jpg" alt="" data-id="160" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=160" class="lazy lazy-hidden wp-image-160" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-1024x1024.jpg" alt="" data-id="160" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=160" class="wp-image-160" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit3.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">DSO-150 Kit PCB</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-1024x1024.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
471-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-1024x1024.jpg" alt="" data-id="159" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=159" class="lazy lazy-hidden wp-image-159" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-1024x1024.jpg" alt="" data-id="159" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=159" class="wp-image-159" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit2.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">DSO-150 Kit Components</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-1024x1024.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-1024x1024.jpg" alt="" data-id="158" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=158" class="lazy lazy-hidden wp-image-158" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-1024x1024.jpg" alt="" data-id="158" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=158" class="wp-image-158" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-kit1.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">DSO-150 BOM</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-1024x1024.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
471-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-1024x1024.jpg" alt="" data-id="157" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=157" class="lazy lazy-hidden wp-image-157" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-1024x1024.jpg" alt="" data-id="157" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=157" class="wp-image-157" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features-174x174.jpg 174w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-features.jpg 1500w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">DSO-150 Features</figcaption></figure></li></ul></figure> 472 473 474 475<p>I required a portable oscilloscope for some analog related projects, but I also wanted the ability to capture digital output at the same time. In the absence of digital outputs, I kept putting off the purchase until happily, I came across a couple of Github projects where the firmware has been rewritten and enhanced for both the DSOs mentioned. They both now have support for digital channels. That is if you are willing to flash the new firmware.</p> 476 477 478 479<p>The Open source DSO-138 features support for 2 analog + 2 digital channels. A second analog channel requires hardware mods to the pcb.</p> 480 481 482 483<figure class="wp-block-image"><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/DSO-138-oss.png"><img loading="lazy" decoding="async" width="800" height="582" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/DSO-138-oss.png" alt="" class="lazy lazy-hidden wp-image-175" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/DSO-138-oss.png 800w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/DSO-138-oss-300x218.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/DSO-138-oss-768x559.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /><noscript><img loading="lazy" decoding="async" width="800" height="582" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/DSO-138-oss.png" alt="" class="wp-image-175" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/DSO-138-oss.png 800w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/DSO-138-oss-300x218.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/DSO-138-oss-768x559.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></noscript></a><figcaption>DSO-138 with an additional digital channel</figcaption></figure> 484 485 486<p>
486DSO-138: <a href="https://github.com/ardyesp/DLO-138">An open source firmware for DSO-138 O-Scope </a> <span class="collapseomatic " id="id6ac4b79aecb4d" tabindex="0" title="" ></span><div id="target-id6ac4b79aecb4d" class="collapseomatic_content "> 487<p><strong>Summary</strong></p> 488<p>DSO-138 is an excellent piece of hardware based on ARM Cortex M3 core STM32F103 processor and sufficient for most beginner users. The stock firmware, while quite responsive, can use a few improvements. The main shortcoming which prompted the development of DLO-138 firmware is the inability to get waveform data into a computer for further analysis and the lack of a second channel. Engineers troubleshooting hardware issues need to mark reference points on waveform so having another analog or digital channel can greatly improve analysis. This firmware hopes to improve on these issues.</p> 489<p><strong>Features</strong></p> 490<ul> 491<li>Two analog channels</li> 492<li>Two digital logic channels (SWDIO and SWDIO pins (PA13 and PA14) on board)</li> 493<li>Serial port interface for captured waveform data</li> 494<li>Trigger source selectable from Analog Channel 1 or Digital Channel</li> 495<li>Option to use rotary encoder instead of + – and SEL switches</li> 496<li>2K sample depth</li> 497</ul> 498<p>This firmware can be used on stock DSO-138 hardware as well. Select one of the pre-compiled binaries to suit the board. Follow the firmware upgrade instructions for DSO-138. At any time, you can reflash DSO-138 with JYE Tech provided firmware.</p> 499<p><strong>Cost</strong></p> 500<p>Extra features come at an additional cost. In the case of DLO-138, it is the loss of lowest timebase. Maximum sampling rate in DLO-138 is 20 µs/div instead of 10 µs/div. In the 20 µs/div range, firmware under-samples ADC channels, often reading same data twice. To use the second analog channel, analog front end has to be duplicated on a daughter board. On a stock hardware, this firmware can be used to provide two digital logic channels.</p> 501</div> 502 503 504<p>The Open source DSO-150 features support for 1 analog + 3 (yes 3) digital channels. </p> 505 506 507 508<figure class="wp-block-image"><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss.jpg"><img loading="lazy" decoding="async" width="1024" height="771" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-1024x771.jpg" alt="" class="lazy lazy-hidden wp-image-176" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-1024x771.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-300x226.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-768x578.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-285x214.jpg 285w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="771" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-1024x771.jpg" alt="" class="wp-image-176" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-1024x771.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-300x226.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-768x578.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso-150-oss-285x214.jpg 285w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption>DSO-150 with 1 analog and 3 digital channels</figcaption></figure> 509 510 511<p>DSO-150: An open source firmware for <a href="https://github.com/michar71/Open-DSO-150">JYE Tech DSO-150 Digital Storage Oscilloscope</a> <span class="collapseomatic " id="id6ac4b79aecbe6" tabindex="0" title="" ></span><div id="target-id6ac4b79aecbe6" class="collapseomatic_content "> 512<p><strong>Summary</strong></p> 513<p><span style="background-color: #ffffff;"><strong>Complete rewrite of DSO-150 Firmware</strong></span></p> 514<ul> 515<li>No longer DSO-138 compatible (Sorry…)</li> 516<li>Rewritten for Atollic trueSTUDIO (Yea… Real debugging)</li> 517<li>Now using internal digital trigger through ADC IRQ (So trigger level can now be correlated to real voltage)</li> 518<li>Lots of new features like voltage overlay, markers, auto cal</li> 519</ul> 520<p><strong>Features</strong></p> 521<ul> 522<li>Support 1 Analog and up to 3 Digital Channels</li> 523<li>Trigger on rising/falling/both edges</li> 524<li>Trigger on Analog, Digital 1,2,3 Signal</li> 525<li>Single/Norm/Auto Trigger Mode</li> 526<li>Exact trigger voltage</li> 527<li>Serial Data Dump</li> 528<li>Automatic Zero-Level Cal for all gain-stages</li> 529<li>Voltmeter mode (Averaged over last 10 samples)</li> 530<li>Signal Statistics Display</li> 531<li>Cursors for Analog Signal</li> 532<li>Load/Store Waveform to/from Flash</li> 533<li>Zoom Out Display (See more data with full sampling Rate)</li> 534<li>“Persistence” Mode</li> 535<li>Variable Signal Size for Digital Signal Waveform</li> 536<li>“loop” mode to scroll current input-values</li> 537<li>AC/DC mode</li> 538<li>3K Sampling Depth</li> 539<li>Buttons not blocked during sampling</li> 540</ul> 541</div> 542 543 544<p></p> 545 546 547 548<p>After discovering the availability of the enhanced firmware, I bit the bullet and decided to get a DSO-150. Not looking forward to doing that much soldering, I therefore chose yet another purchase option of DIY “pre-soldered, just pop everything into the case on arrival”.</p> 549 550 551 552<p style="font-size:0">The instructions of building and flashing the DSO-Firmware are included in the github page, but as things never go smoothly, I had to</p> 553 554 555 556<ul class="wp-block-list"><li>Convert the built binary to HEX format</li></ul> 557 558 559 560<figure class="wp-block-gallery aligncenter columns-2 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-1024x557.png"><img loading="lazy" decoding="async" width="1024" height="557" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
560-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-1024x557.png" alt="" data-id="229" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=229" class="lazy lazy-hidden wp-image-229" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-1024x557.png 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-300x163.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-768x418.png 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex.png 1920w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="557" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-1024x557.png" alt="" data-id="229" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=229" class="wp-image-229" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-1024x557.png 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-300x163.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-768x418.png 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex.png 1920w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-2.png"><img loading="lazy" decoding="async" width="910" height="154" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-2.png" alt="" data-id="230" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=230" class="lazy lazy-hidden wp-image-230" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-2.png 910w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-2-300x51.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-2-768x130.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="910" height="154" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-2.png" alt="" data-id="230" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=230" class="wp-image-230" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-2.png 910w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-2-300x51.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/true-studio-elf-to-hex-2-768x130.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a></figure></li></ul></figure> 561 562 563 564<p>After building the project in TrueStudio you will be left with an ELF binary file. To be able to update the firmware the ELF file will have to be in HEX file format. This can be easily achieved by adding a post build step to the project.</p> 565 566 567 568<p>The post build command is</p> 569 570 571 572<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 573 574 <div id="crayon-6ac4b79acd0bf407733073" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 575 576 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 577 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 578 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 579 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 580arm-atollic-eabi-objcopy -O ihex ${ProjDirPath}
580/${ConfigName}/${ProjName}.elf ${ProjDirPath}/${ConfigName}/${ProjName}.hex</textarea></div> 581 <div class="crayon-main" style=""> 582 <table class="crayon-table"> 583 <tr class="crayon-row"> 584 <td class="crayon-nums " data-settings="show"> 585 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0bf407733073-1">1</div></div> 586 </td> 587 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0bf407733073-1"><span class="crayon-e">arm</span>-<span class="crayon-e">atollic</span>-<span class="crayon-e">eabi</span>-<span class="crayon-e">objcopy</span><span class="crayon-h"> </span>-<span class="crayon-e">O</span><span class="crayon-h"> </span><span class="crayon-e">ihex</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-sy">{</span><span class="crayon-i">ProjDirPath</span><span class="crayon-sy">}</span>/<span class="crayon-sy">$</span><span class="crayon-sy">{</span><span class="crayon-i">ConfigName</span><span class="crayon-sy">}</span>/<span class="crayon-sy">$</span><span class="crayon-sy">{</span><span class="crayon-i">ProjName</span><span class="crayon-sy">}</span><span class="crayon-sy">.</span><span class="crayon-i">
587elf</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-sy">{</span><span class="crayon-i">ProjDirPath</span><span class="crayon-sy">}</span>/<span class="crayon-sy">$</span><span class="crayon-sy">{</span><span class="crayon-i">ConfigName</span><span class="crayon-sy">}</span>/<span class="crayon-sy">$</span><span class="crayon-sy">{</span><span class="crayon-i">ProjName</span><span class="crayon-sy">}</span><span class="crayon-sy">.</span><span class="crayon-i">hex</span></div></div></td> 588 </tr> 589 </table> 590 </div> 591 </div> 592<!-- [Format Time: 0.0007 seconds] --> 593 594 595 596 597<p>and the post build description can be whatever you like, in my case</p> 598 599 600 601<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 602 603 <div id="crayon-6ac4b79acd0c8934028839" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 604 605 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 606 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 607 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 608 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 609Convert ELF to HEX</textarea></div> 610 <div class="crayon-main" style=""> 611 <table class="crayon-table"> 612 <tr class="crayon-row"> 613 <td class="crayon-nums " data-settings="show"> 614 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0c8934028839-1">1</div></div> 615 </td> 616 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0c8934028839-1"><span class="crayon-e">Convert </span><span class="crayon-e">ELF </span><span class="crayon-st">to</span><span class="crayon-h"> </span><span class="crayon-i">HEX</span></div></div></td> 617 </tr> 618 </table> 619 </div> 620 </div> 621<!-- [Format Time: 0.0001 seconds] --> 622 623 624 625 626<p>So now when you build the project you will end up with both an ELF file and a HEX file. The HEX file is what you will flash to the DSO.<br></p> 627 628 629 630<p><br></p> 631 632 633 634<ul class="wp-block-list"><li>Flashing the device.</li></ul> 635 636 637 638<p>I tried to flash the device via the on board USART1 with both Linux and Windows using the tools,</p> 639 640 641 642<ul class="wp-block-list"><li>stm32flash (linux) – Open source flash program for STM32 using the ST serial bootloader. @ <a href="https://sourceforge.net/projects/stm32flash/">https://sourceforge.net/projects/stm32flash/</a></li></ul> 643 644 645 646<p>Download stm32flash with git.</p> 647 648 649 650<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 651 652 <div id="crayon-6ac4b79acd0cb652587890" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 653 654 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 655 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 656 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 657 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 658$ git clone https://git.code.sf.net/p/stm32flash/code stm32flash-code</textarea></div> 659 <div class="crayon-main" style=""> 660 <table class="crayon-table"> 661 <tr class="crayon-row"> 662 <td class="crayon-nums " data-settings="show"> 663 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0cb652587890-1">1</div></div> 664 </td> 665 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0cb652587890-1"><span class="crayon-sy">$</span><span class="crayon-h"> </span><span class="crayon-e">git </span><span class="crayon-r">clone</span><span class="crayon-h"> </span><span class="crayon-i">https</span><span class="crayon-sy">:</span><span class="crayon-c">//git.code.sf.net/p/stm32flash/code stm32flash-code</span></div></div></td> 666 </tr> 667 </table> 668 </div> 669 </div> 670<!-- [Format Time: 0.0001 seconds] --> 671 672 673 674 675<ul class="wp-block-list"><li>FLASHER-STM32 (windows) – STM32 Flash loader demonstrator (UM0462) @ <a href="https://www.st.com/b/en/development-tools/flasher-stm32.html" class="broken_link">https://www.st.com/b/en/development-tools/flasher-stm32.html</a><ul><li>DSO-150 flashing instructions – <span class="collapseomatic " id="id6ac4b79aecc1f" tabindex="0" title="Flashing Guide" >Flashing Guide</span><div id="target-id6ac4b79aecc1f" class="collapseomatic_content "> 676<div 677 class='wp-block-pdfp-pdf-poster alignnone' 678 id='block-10' 679 data-attributes='{"uniqueId":"pdfp9","file":"https:\/\/blog.pagefault-limited.co.uk\/wp-content\/uploads\/2019\/03\/DSO150_HowToUpgradeFirmware.pdf","title":"DSO-150 How to Upgrade Firmware","height":"840px","width":"100%","print":false,"fullscreenButton":true,"fullscreenButtonText":"View Fullscreen","newWindow":false,"showName":true,"downloadButton":false,"downloadButtonText":"Download File","protect":false,"onlyPDF":false,"defaultBrowser":false,"thumbMenu":false,"initialPage":0,"sidebarOpen":false,"lastVersion":false,"hrScroll":false,"alert":true,"btnStyles":{"background":"#1e73be","color":"#fff","fontSize":"rem","padding":{"top":10,"right":20,"bottom":10,"left":10}},"popupOptions":{"enabled":false,"text":"Open PDF","btnStyle":{"background":"#1e73be","color":"#fff","fontSize":"rem","padding":{"top":10,"right":20,"bottom":10,"left":10}}},"align":"none","alignment":"left","titleFontSize":"16px","isHideRightToolbar":false,"additional":{"ID":"","Class":"","CSS":""},"adobeEmbedder":false,"adobeOptions":{"showDownloadPDF":true,"showPrintPDF":true,"showAnnotationTools":true,"showFullScreen":false,"embedMode":"SIZED_CONTAINER"},"popupBtnStyle":{"background":"#2271b1","color":"#fff","padding":{"top":10,"right":20,"bottom":10,"left":10}},"popupBtnText":"Open Document","CSS":""}' 680 style="text-align: left"> 681 682 <iframe loading="lazy" style="border:0;" width="100%" height="800px" class="lazy lazy-hidden pdfp_unsupported_frame" data-lazy-type="iframe" data-src="//docs.google.com/gview?embedded=true&url=https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/DSO150_HowToUpgradeFirmware.pdf"></iframe><noscript><iframe loading="lazy" style="border:0;" width="100%" height="800px" class="pdfp_unsupported_frame" src="//docs.google.com/gview?embedded=true&url=https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/DSO150_HowToUpgradeFirmware.pdf"></iframe></noscript> 683 684 </div></div></li></ul></li></ul> 685 686 687 688<p>But the device was not recognised with the message,</p> 689 690 691 692<p>No response from the target, Bootloader cannot be started</p> 693 694 695 696<p>I eventually concluded that the required Serial bootloader was missing and gave up on UART flashing, deciding instead to flash via STLink/JTAG port. But not having an STLink handy, I decided to flash it with my FTDI FT2232H device and openocd on Linux.</p> 697 698 699 700<p>The FTDI device is readily available in various flavours at various outlets including Ebay, Aliexpress, and Amazon. Mine is shown below.</p> 701 702 703 704<figure class="wp-block-gallery columns-2 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-front.jpg"><img loading="lazy" decoding="async" width="982" height="799" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
704-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-front.jpg" alt="" data-id="264" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=264" class="lazy lazy-hidden wp-image-264" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-front.jpg 982w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-front-300x244.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-front-768x625.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="982" height="799" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-front.jpg" alt="" data-id="264" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=264" class="wp-image-264" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-front.jpg 982w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-front-300x244.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-front-768x625.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">FT2232HL Front</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back.jpg"><img loading="lazy" decoding="async" width="937" height="695" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back.jpg" alt="" data-id="263" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=263" class="lazy lazy-hidden wp-image-263" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back.jpg 937w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-300x223.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-768x570.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="937" height="695" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back.jpg" alt="" data-id="263" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=263" class="wp-image-263" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back.jpg 937w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-300x223.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-768x570.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">FT2232HL Back</figcaption></figure></li></ul></figure> 705 706 707 708<p>Plugging in the FT2232HL gives you a satisfying,</p> 709 710 711 712<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 713 714 <div id="crayon-6ac4b79acd0ce297605711" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 715 716 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 717 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 718 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 719 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 720&#91; 7247.588043] usb 2-1.2: new high-speed USB device number 8 using ehci-pci 721&#91; 7247.702046] usb 2-1.2: New USB device found, idVendor=0403, idProduct=6010 722&#91; 7247.702050] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 723&#91; 7247.702054] usb 2-1.2: Product: USB &lt;-> Serial Converter 724&#91; 7247.702057] usb 2-1.2: Manufacturer: FTDI 725&#91; 7247.702060] usb 2-1.2: SerialNumber: FT2BM8Q0 726&#91;
726 7247.705291] ftdi_sio 2-1.2:1.0: FTDI USB Serial Device converter detected 727&#91; 7247.705366] usb 2-1.2: Detected FT2232H 728&#91; 7247.705771] usb 2-1.2: FTDI USB Serial Device converter now attached to ttyUSB1 729&#91; 7247.708587] ftdi_sio 2-1.2:1.1: FTDI USB Serial Device converter detected 730&#91; 7247.708633] usb 2-1.2: Detected FT2232H 731&#91; 7247.709110] usb 2-1.2: FTDI USB Serial Device converter now attached to ttyUSB2 732&#91; 7292.457478] ftdi_sio ttyUSB1: FTDI USB Serial Device converter now disconnected from ttyUSB1 733&#91; 7292.457520] ftdi_sio 2-1.2:1.0: device disconnected 734&#91;13411.858946] usb 2-1.2: USB disconnect, device number 8 735&#91;13411.859398] ftdi_sio ttyUSB2: FTDI USB Serial Device converter now disconnected from ttyUSB2 736&#91;13411.859433] ftdi_sio 2-1.2:1.1: device disconnected 737</textarea></div> 738 <div class="crayon-main" style=""> 739 <table class="crayon-table"> 740 <tr class="crayon-row"> 741 <td class="crayon-nums " data-settings="show"> 742 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0ce297605711-1">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0ce297605711-2">2</div><div class="crayon-num" data-line="crayon-6ac4b79acd0ce297605711-3">3</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0ce297605711-4">4</div><div class="crayon-num" data-line="crayon-6ac4b79acd0ce297605711-5">5</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0ce297605711-6">6</div><div class="crayon-num" data-line="crayon-6ac4b79acd0ce297605711-7">7</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0ce297605711-8">8</div><div class="crayon-num" data-line="crayon-6ac4b79acd0ce297605711-9">9</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0ce297605711-10">10</div><div class="crayon-num" data-line="crayon-6ac4b79acd0ce297605711-11">11</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0ce297605711-12">12</div><div class="crayon-num" data-line="crayon-6ac4b79acd0ce297605711-13">13</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0ce297605711-14">14</div><div class="crayon-num" data-line="crayon-6ac4b79acd0ce297605711-15">15</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0ce297605711-16">16</div><div class="crayon-num" data-line="crayon-6ac4b79acd0ce297605711-17">17</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0ce297605711-18">18</div></div> 743 </td> 744 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0ce297605711-1"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.588043</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-r">new</span><span class="crayon-h"> </span><span class="crayon-i">high</span>-<span class="crayon-e">speed </span><span class="crayon-e">USB </span><span class="crayon-e">device </span><span class="crayon-i">number</span><span class="crayon-h"> </span><span class="crayon-cn">8</span><span class="crayon-h"> </span><span class="crayon-e">using </span><span class="crayon-i">ehci</span>-<span class="crayon-i">pci</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0ce297605711-2"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.702046</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-r">New</span><span class="crayon-h"> </span><span class="crayon-e">USB </span><span class="crayon-e">device </span><span class="crayon-i">found</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-i">idVendor</span>=<span class="crayon-cn">
7440403</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-i">idProduct</span>=<span class="crayon-cn">6010</span></div><div class="crayon-line" id="crayon-6ac4b79acd0ce297605711-3"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.702050</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-r">New</span><span class="crayon-h"> </span><span class="crayon-e">USB </span><span class="crayon-e">device </span><span class="crayon-i">strings</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">Mfr</span>=<span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-i">Product</span>=<span class="crayon-cn">2</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-i">SerialNumber</span>=<span class="crayon-cn">3</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0ce297605711-4"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.702054</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">Product</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">USB</span><span class="crayon-h"> </span><span class="crayon-sy">&lt;</span>-<span class="crayon-h">></span><span class="crayon-h"> </span><span class="crayon-e">Serial </span><span class="crayon-i">Converter</span></div><div class="crayon-line" id="crayon-6ac4b79acd0ce297605711-5"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.702057</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">Manufacturer</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">FTDI</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0ce297605711-6"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.702060</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">SerialNumber</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">FT2BM8Q0</span></div><div class="crayon-line" id="crayon-6ac4b79acd0ce297605711-7"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.705291</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">ftdi_sio</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-cn">1.0</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">FTDI </span><span class="crayon-e">USB </span><span class="crayon-e">Serial </span><span class="crayon-e">Device </span><span class="crayon-e">converter </span><span class="crayon-i">detected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0ce297605711-8"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.705366</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">Detected </span><span class="crayon-i">FT2232H</span></div><div class="crayon-line" id="crayon-6ac4b79acd0ce297605711-9"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.705771</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">FTDI </span><span class="crayon-e">USB </span><span class="crayon-e">Serial </span><span class="crayon-e">Device </span><span class="crayon-e">converter </span><span class="crayon-e">now </span><span class="crayon-e">attached </span><span class="crayon-st">to</span><span class="crayon-h"> </span><span class="crayon-i">ttyUSB1</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0ce297605711-10"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.708587</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">ftdi_sio</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-cn">1.1</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">FTDI </span><span class="crayon-e">USB </span><span class="crayon-e">Serial </span><span class="crayon-e">Device </span><span class="crayon-e">converter </span><span class="crayon-i">detected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0ce297605711-11"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.708633</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">Detected </span><span class="crayon-i">FT2232H</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0ce297605711-12"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.709110</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">FTDI </span><span class="crayon-e">USB </span><span class="crayon-e">Serial </span><span class="crayon-e">Device </span><span class="crayon-e">converter </span><span class="crayon-e">now </span><span class="crayon-e">attached </span><span class="crayon-st">to</span><span class="crayon-h"> </span><span class="crayon-i">ttyUSB2</span></div><div class="crayon-line" id="crayon-6ac4b79acd0ce297605711-13"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7292.457478</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-e">
744ftdi_sio </span><span class="crayon-i">ttyUSB1</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">FTDI </span><span class="crayon-e">USB </span><span class="crayon-e">Serial </span><span class="crayon-e">Device </span><span class="crayon-e">converter </span><span class="crayon-e">now </span><span class="crayon-e">disconnected </span><span class="crayon-e">from </span><span class="crayon-i">ttyUSB1</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0ce297605711-14"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7292.457520</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">ftdi_sio</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-cn">1.0</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">device </span><span class="crayon-i">disconnected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0ce297605711-15"><span class="crayon-sy">&#91;</span><span class="crayon-cn">13411.858946</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">USB </span><span class="crayon-i">disconnect</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-e">device </span><span class="crayon-i">number</span><span class="crayon-h"> </span><span class="crayon-cn">8</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0ce297605711-16"><span class="crayon-sy">&#91;</span><span class="crayon-cn">13411.859398</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-e">ftdi_sio </span><span class="crayon-i">ttyUSB2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">FTDI </span><span class="crayon-e">USB </span><span class="crayon-e">Serial </span><span class="crayon-e">Device </span><span class="crayon-e">converter </span><span class="crayon-e">now </span><span class="crayon-e">disconnected </span><span class="crayon-e">from </span><span class="crayon-i">ttyUSB2</span></div><div class="crayon-line" id="crayon-6ac4b79acd0ce297605711-17"><span class="crayon-sy">&#91;</span><span class="crayon-cn">13411.859433</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">ftdi_sio</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-cn">1.1</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">device </span><span class="crayon-i">disconnected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0ce297605711-18"> </div></div></td> 745 </tr> 746 </table> 747 </div> 748 </div> 749<!-- [Format Time: 0.0010 seconds] --> 750 751 752 753 754<p>All About Circuits have a good primer on using and FTDI witth openocd @ <a href="https://www.allaboutcircuits.com/technical-articles/getting-started-with-openocd-using-ft2232h-adapter-for-swd-debugging/" class="broken_link">https://www.allaboutcircuits.com/technical-articles/getting-started-with-openocd-using-ft2232h-adapter-for-swd-debugging/</a></p> 755 756 757 758<p>I would follow their guide referring back here for DSO-150 specifics ð</p> 759 760 761 762<figure class="wp-block-gallery columns-2 is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Target_Connection.jpg"><img loading="lazy" decoding="async" width="550" height="600" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Target_Connection.jpg" alt="" data-id="267" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=267" class="lazy lazy-hidden wp-image-267" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Target_Connection.jpg 550w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Target_Connection-275x300.jpg 275w" sizes="auto, (max-width: 550px) 85vw, 550px" /><noscript><img loading="lazy" decoding="async" width="550" height="600" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Target_Connection.jpg" alt="" data-id="267" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=267" class="wp-image-267" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Target_Connection.jpg 550w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Target_Connection-275x300.jpg 275w" sizes="auto, (max-width: 550px) 85vw, 550px" /></noscript></a><figcaption class="blocks-gallery-item__caption">Connections</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232HPinout.png"><img loading="lazy" decoding="async" width="880" height="478" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
762-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232HPinout.png" alt="" data-id="270" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=270" class="lazy lazy-hidden wp-image-270" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232HPinout.png 880w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232HPinout-300x163.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232HPinout-768x417.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="880" height="478" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232HPinout.png" alt="" data-id="270" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=270" class="wp-image-270" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232HPinout.png 880w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232HPinout-300x163.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232HPinout-768x417.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">Pin Mapping</figcaption></figure></li></ul></figure> 763 764 765 766<p>I soldered on some header pins to the FT2232HL and DSO-150.</p> 767 768 769 770<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123323-576x1024.jpg"><img loading="lazy" decoding="async" width="576" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123323-576x1024.jpg" alt="" data-id="254" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=254" class="lazy lazy-hidden wp-image-254" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123323-576x1024.jpg 576w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123323-169x300.jpg 169w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123323-768x1365.jpg 768w" sizes="auto, (max-width: 576px) 85vw, 576px" /><noscript><img loading="lazy" decoding="async" width="576" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123323-576x1024.jpg" alt="" data-id="254" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=254" class="wp-image-254" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123323-576x1024.jpg 576w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123323-169x300.jpg 169w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123323-768x1365.jpg 768w" sizes="auto, (max-width: 576px) 85vw, 576px" /></noscript></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123042-576x1024.jpg"><img loading="lazy" decoding="async" width="576" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123042-576x1024.jpg" alt="" data-id="249" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=249" class="lazy lazy-hidden wp-image-249" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123042-576x1024.jpg 576w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123042
770-169x300.jpg 169w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123042-768x1365.jpg 768w" sizes="auto, (max-width: 576px) 85vw, 576px" /><noscript><img loading="lazy" decoding="async" width="576" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123042-576x1024.jpg" alt="" data-id="249" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=249" class="wp-image-249" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123042-576x1024.jpg 576w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123042-169x300.jpg 169w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_123042-768x1365.jpg 768w" sizes="auto, (max-width: 576px) 85vw, 576px" /></noscript></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/ft2232hl-pins.png"><img loading="lazy" decoding="async" width="1001" height="624" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/ft2232hl-pins.png" alt="" data-id="268" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=268" class="lazy lazy-hidden wp-image-268" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/ft2232hl-pins.png 1001w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/ft2232hl-pins-300x187.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/ft2232hl-pins-768x479.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1001" height="624" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/ft2232hl-pins.png" alt="" data-id="268" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=268" class="wp-image-268" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/ft2232hl-pins.png 1001w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/ft2232hl-pins-300x187.png 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/ft2232hl-pins-768x479.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/dso-150-pins.png"><img loading="lazy" decoding="async" width="712" height="637" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/dso-150-pins.png" alt="" data-id="266" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=266" class="lazy lazy-hidden wp-image-266" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/dso-150-pins.png 712w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/dso-150-pins-300x268.png 300w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /><noscript><img loading="lazy" decoding="async" width="712" height="637" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/dso-150-pins.png" alt="" data-id="266" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=266" class="wp-image-266" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/dso-150-pins.png 712w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/dso-150-pins-300x268.png 300w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></noscript></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-pins-855x1024.jpg"><img loading="lazy" decoding="async" width="855" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
770-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-pins-855x1024.jpg" alt="" data-id="269" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=269" class="lazy lazy-hidden wp-image-269" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-pins-855x1024.jpg 855w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-pins-251x300.jpg 251w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-pins-768x920.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="855" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-pins-855x1024.jpg" alt="" data-id="269" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=269" class="wp-image-269" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-pins-855x1024.jpg 855w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-pins-251x300.jpg 251w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FTDI-FT2232HL-back-pins-768x920.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Wiring.jpg"><img loading="lazy" decoding="async" width="240" height="180" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Wiring.jpg" alt="" data-id="280" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=280" class="lazy lazy-hidden wp-image-280"/><noscript><img loading="lazy" decoding="async" width="240" height="180" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/FT2232H_Wiring.jpg" alt="" data-id="280" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=280" class="wp-image-280"/></noscript></a><figcaption class="blocks-gallery-item__caption">swd-resistor-hack.cfg</figcaption></figure></li></ul></figure> 771 772 773 774<p>Now the wiring was complete I installed openocd and moved on to setting up the configuration files required by openocd</p> 775 776 777 778<ul class="wp-block-list"><li>/usr/share/openocd/scripts/interface/ftdi/myft2232hl.cfg<br></li></ul> 779 780 781 782<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 783 784 <div id="crayon-6ac4b79acd0d0105890947" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 785 786 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 787 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 788 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 789 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 790#This configuration file is created for a tutorial: 791#âGetting Started with OPENOCD Using FT2232H Adapter for SWD Debuggingâ 792#Written by:Yahya Tawil - yahya.tawil_at_gmail.com 793#Pulished on: http://www.allaboutcircuits.com 794#Version of OpenOCD:0.9.0 795interface ftdi
796transport select swd 797ftdi_vid_pid 0x0403 0x6010 798#ftdi_device_desc "USB Serial Converter A" 799#ftdi_device_desc "FT2232H å¼åæ¿" 800ftdi_serial "FT2BM8Q0" 801#adapter_khz 8 802ftdi_layout_init 0x0018 0x05fb 803ftdi_layout_signal SWD_EN -data 0 804ftdi_layout_signal nSRST -data 0x0010 805</textarea></div> 806 <div class="crayon-main" style=""> 807 <table class="crayon-table"> 808 <tr class="crayon-row"> 809 <td class="crayon-nums " data-settings="show"> 810 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0d0105890947-1">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d0105890947-2">2</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d0105890947-3">3</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d0105890947-4">4</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d0105890947-5">5</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d0105890947-6">6</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d0105890947-7">7</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d0105890947-8">8</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d0105890947-9">9</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d0105890947-10">10</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d0105890947-11">11</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d0105890947-12">12</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d0105890947-13">13</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d0105890947-14">14</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d0105890947-15">15</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d0105890947-16">16</div></div> 811 </td> 812 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0d0105890947-1"><span class="crayon-p">#This configuration file is created for a tutorial: </span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d0105890947-2"><span class="crayon-p">#âGetting Started with OPENOCD Using FT2232H Adapter for SWD Debuggingâ</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d0105890947-3"><span class="crayon-p">#Written by:Yahya Tawil - yahya.tawil_at_gmail.com </span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d0105890947-4"><span class="crayon-p">#Pulished on: http://www.allaboutcircuits.com </span></div><div class="crayon-line" id="crayon-6ac4b79acd0d0105890947-5"><span class="crayon-p">#Version of OpenOCD:0.9.0</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d0105890947-6"><span class="crayon-t">interface</span><span class="crayon-h"> </span><span class="crayon-e">ftdi</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d0105890947-7"><span class="crayon-e">transport </span><span class="crayon-e">select </span><span class="crayon-e">swd</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d0105890947-8"><span class="crayon-i">ftdi_vid_pid</span><span class="crayon-h"> </span><span class="crayon-cn">0x0403</span><span class="crayon-h"> </span><span class="crayon-cn">0x6010</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d0105890947-9"><span class="crayon-p">#ftdi_device_desc "USB Serial Converter A"</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d0105890947-10"><span class="crayon-p">#ftdi_device_desc "FT2232H å¼åæ¿"</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d0105890947-11"><span class="crayon-i">ftdi_serial</span><span class="crayon-h"> </span><span class="crayon-s">"FT2BM8Q0"</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d0105890947-12"><span class="crayon-p">#adapter_khz 8</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d0105890947-13"><span class="crayon-i">ftdi_layout_init</span><span class="crayon-h"> </span><span class="crayon-cn">0x0018</span><span class="crayon-h"> </span><span class="crayon-cn">
8120x05fb</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d0105890947-14"><span class="crayon-e">ftdi_layout_signal </span><span class="crayon-i">SWD_EN</span><span class="crayon-h"> </span>-<span class="crayon-i">data</span><span class="crayon-h"> </span><span class="crayon-cn">0</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d0105890947-15"><span class="crayon-e">ftdi_layout_signal </span><span class="crayon-i">nSRST</span><span class="crayon-h"> </span>-<span class="crayon-i">data</span><span class="crayon-h"> </span><span class="crayon-cn">0x0010</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d0105890947-16"> </div></div></td> 813 </tr> 814 </table> 815 </div> 816 </div> 817<!-- [Format Time: 0.0002 seconds] --> 818 819 820 821 822<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 823 824 <div id="crayon-6ac4b79acd0d2746609051" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 825 826 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 827 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 828 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 829 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 830ftdi_serial "FT2BM8Q0"</textarea></div> 831 <div class="crayon-main" style=""> 832 <table class="crayon-table"> 833 <tr class="crayon-row"> 834 <td class="crayon-nums " data-settings="show"> 835 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0d2746609051-1">1</div></div> 836 </td> 837 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0d2746609051-1"><span class="crayon-i">ftdi_serial</span><span class="crayon-h"> </span><span class="crayon-s">"FT2BM8Q0"</span></div></div></td> 838 </tr> 839 </table> 840 </div> 841 </div> 842<!-- [Format Time: 0.0000 seconds] --> 843 844 845 846 847<p>is the number from the dmesg log!</p> 848 849 850 851<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 852 853 <div id="crayon-6ac4b79acd0d4001221627" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 854 855 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 856 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 857 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 858 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 859&#91; 7247.702060] usb 2-1.2: SerialNumber: FT2BM8Q0</textarea></div> 860 <div class="crayon-main" style=""> 861 <table class="crayon-table"> 862 <tr class="crayon-row"> 863 <td class="crayon-nums " data-settings="show"> 864 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0d4001221627-1">1</div></div> 865 </td> 866 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0d4001221627-1"><span class="crayon-sy">&#91;</span><span class="crayon-h"> </span><span class="crayon-cn">7247.702060</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-i">usb</span><span class="crayon-h"> </span><span class="crayon-cn">2</span>-<span class="crayon-cn">1.2</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">SerialNumber</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">FT2BM8Q0</span></div></div></td> 867 </tr> 868 </table> 869 </div> 870 </div> 871<!-- [Format Time: 0.0001 seconds] --> 872 873 874 875 876<p></p> 877 878 879 880<ul class="wp-block-list"><li>
880/usr/share/openocd/scripts/target/stm32f1x.cfg<br></li></ul> 881 882 883 884<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 885 886 <div id="crayon-6ac4b79acd0d7696534109" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 887 888 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 889 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 890 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 891 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 892# script for stm32f1x family 893 894# 895# stm32 devices support both JTAG and SWD transports. 896# 897source &#91;find target/swj-dp.tcl] 898source &#91;find mem_helper.tcl] 899 900if { &#91;info exists CHIPNAME] } { 901 set _CHIPNAME $CHIPNAME 902} else { 903 set _CHIPNAME stm32f1x 904} 905 906set _ENDIAN little 907 908# Work-area is a space in RAM used for flash programming 909# By default use 4kB (as found on some STM32F100s) 910if { &#91;info exists WORKAREASIZE] } { 911 set _WORKAREASIZE $WORKAREASIZE 912} else { 913 set _WORKAREASIZE 0x1000 914} 915 916#jtag scan chain 917if { &#91;info exists CPUTAPID] } { 918 set _CPUTAPID $CPUTAPID 919} else { 920 if { &#91;using_jtag] } { 921 # See STM Document RM0008 Section 26.6.3 922 set _CPUTAPID 0x3ba00477 923 } { 924 # this is the SW-DP tap id not the jtag tap id 925 set _CPUTAPID 0x1ba01477 926 } 927} 928 929swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID 930 931if {&#91;using_jtag]} { 932 jtag newtap $_CHIPNAME bs -irlen 5 933} 934 935set _TARGETNAME $_CHIPNAME.cpu 936target create $_TARGETNAME cortex_m -endian $_ENDIAN -chain-position $_TARGETNAME 937 938$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 939 940# flash size will be probed 941set _FLASHNAME $_CHIPNAME.flash 942flash bank $_FLASHNAME stm32f1x 0x08000000 0 0 0 $_TARGETNAME 943 944# JTAG speed should be &lt;= F_CPU/6. F_CPU after reset is 8MHz, so use F_JTAG = 1MHz 945adapter_khz 1000 946 947adapter_nsrst_delay 100 948if {&#91;using_jtag]} { 949 jtag_ntrst_delay 100 950} 951 952reset_config srst_nogate 953 954if {!&#91;using_hla]} { 955 # if srst is not fitted use SYSRESETREQ to 956 # perform a soft reset 957 cortex_m reset_config sysresetreq 958} 959 960$_TARGETNAME configure -event examine-end { 961 # DBGMCU_CR |= DBG_WWDG_STOP | DBG_IWDG_STOP | 962 # DBG_STANDBY | DBG_STOP | DBG_SLEEP 963 mmw 0xE0042004 0x00000307 0 964} 965 966$_TARGETNAME configure -event trace-config { 967 # Set TRACE_IOEN; TRACE_MODE is set to async; when using sync 968 # change this value accordingly to configure trace pins 969 # assignment 970 mmw 0xE0042004 0x00000020 0 971}</textarea></div> 972 <div class="crayon-main" style=""> 973 <table class="crayon-table"> 974 <tr class="crayon-row"> 975 <td class="crayon-nums " data-settings="show"> 976 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-1">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-2">2</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-3">3</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-4">4</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-5">5</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-6">6</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-7">7</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-8">8</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-9">9</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-10">10</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-11">11</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-12">12</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-13">13</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-14">14</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-15">15</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-16">16</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-17">17</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-18">18</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-19">19</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-20">20</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-21">21</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-22">22</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-23">23</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-24">24</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-25">25</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-26">26</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-27">27</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-28">28</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-29">29</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-30">30</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-31">31</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-32">32</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-33">33</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-34">34</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-35">35</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-36">36</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-37">37</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-38">38</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-39">39</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-40">40</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-41">41</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-42">42</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-43">43</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-44">44</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-45">45</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-46">46</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-47">47</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-48">48</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-49">
97649</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-50">50</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-51">51</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-52">52</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-53">53</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-54">54</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-55">55</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-56">56</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-57">57</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-58">58</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-59">59</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-60">60</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-61">61</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-62">62</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-63">63</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-64">64</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-65">65</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-66">66</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-67">67</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-68">68</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-69">69</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-70">70</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-71">71</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-72">72</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-73">73</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-74">74</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-75">75</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-76">76</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-77">77</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-78">78</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d7696534109-79">79</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d7696534109-80">80</div></div> 977 </td> 978 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-1"><span class="crayon-p"># script for stm32f1x family</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-2"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-3"><span class="crayon-p">#</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-4"><span class="crayon-p"># stm32 devices support both JTAG and SWD transports.</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-5"><span class="crayon-p">#</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-6"><span class="crayon-i">source</span><span class="crayon-h"> </span><span class="crayon-sy">&#91;</span><span class="crayon-e">find </span><span class="crayon-i">target</span>/<span class="crayon-i">swj</span>-<span class="crayon-i">dp</span><span class="crayon-sy">.</span><span class="crayon-i">tcl</span><span class="crayon-sy">]</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-7"><span class="crayon-i">source</span><span class="crayon-h"> </span><span class="crayon-sy">&#91;</span><span class="crayon-e">find </span><span class="crayon-i">mem_helper</span><span class="crayon-sy">.</span><span class="crayon-i">tcl</span><span class="crayon-sy">]</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-8"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-9"><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-sy">{</span><span class="crayon-h"> </span><span class="crayon-sy">&#91;</span><span class="crayon-e">info </span><span class="crayon-e">exists </span><span class="crayon-i">CHIPNAME</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-10"><span class="crayon-h"> </span><span class="crayon-e">set </span><span class="crayon-i">_CHIPNAME</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-i">CHIPNAME</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-11"><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-st">else</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-12"><span class="crayon-h"> </span><span class="crayon-e">set </span><span class="crayon-e">_CHIPNAME </span><span class="crayon-i">
978stm32f1x</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-13"><span class="crayon-sy">}</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-14"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-15"><span class="crayon-e">set </span><span class="crayon-e">_ENDIAN </span><span class="crayon-i">little</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-16"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-17"><span class="crayon-p"># Work-area is a space in RAM used for flash programming</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-18"><span class="crayon-p"># By default use 4kB (as found on some STM32F100s)</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-19"><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-sy">{</span><span class="crayon-h"> </span><span class="crayon-sy">&#91;</span><span class="crayon-e">info </span><span class="crayon-e">exists </span><span class="crayon-i">WORKAREASIZE</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-20"><span class="crayon-h"> </span><span class="crayon-e">set </span><span class="crayon-i">_WORKAREASIZE</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-i">WORKAREASIZE</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-21"><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-st">else</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-22"><span class="crayon-h"> </span><span class="crayon-e">set </span><span class="crayon-i">_WORKAREASIZE</span><span class="crayon-h"> </span><span class="crayon-cn">0x1000</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-23"><span class="crayon-sy">}</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-24"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-25"><span class="crayon-p">#jtag scan chain</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-26"><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-sy">{</span><span class="crayon-h"> </span><span class="crayon-sy">&#91;</span><span class="crayon-e">info </span><span class="crayon-e">exists </span><span class="crayon-i">CPUTAPID</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-27"><span class="crayon-h"> </span><span class="crayon-e">set </span><span class="crayon-i">_CPUTAPID</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-i">CPUTAPID</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-28"><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-st">else</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-29"><span class="crayon-h"> </span><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-sy">{</span><span class="crayon-h"> </span><span class="crayon-sy">&#91;</span><span class="crayon-i">using_jtag</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-30"><span class="crayon-h"> </span><span class="crayon-p"># See STM Document RM0008 Section 26.6.3</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-31"><span class="crayon-h"> </span><span class="crayon-e">set </span><span class="crayon-i">_CPUTAPID</span><span class="crayon-h"> </span><span class="crayon-cn">0x3ba00477</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-32"><span class="crayon-h"> </span><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-33"><span class="crayon-h"> </span><span class="crayon-p"># this is the SW-DP tap id not the jtag tap id</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-34"><span class="crayon-h"> </span><span class="crayon-e">set </span><span class="crayon-i">_CPUTAPID</span><span class="crayon-h"> </span><span class="crayon-cn">0x1ba01477</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-35"><span class="crayon-h"> </span><span class="crayon-sy">}</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-36"><span class="crayon-sy">}</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-37"> </div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-38"><span class="crayon-e">swj_newdap</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-e">_CHIPNAME</span><span class="crayon-h"> </span><span class="crayon-e">cpu</span><span class="crayon-h"> </span>-<span class="crayon-e">irlen</span><span class="crayon-h"> </span><span class="crayon-cn">4</span><span class="crayon-h"> </span>-<span class="crayon-e">ircapture</span><span class="crayon-h"> </span><span class="crayon-cn">0x1</span><span class="crayon-h"> </span>-<span class="crayon-e">irmask</span><span class="crayon-h"> </span><span class="crayon-cn">0xf</span><span class="crayon-h"> </span>-<span class="crayon-e">expected</span>-<span class="crayon-e">id</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-e">_CPUTAPID</span><span class="crayon-h"> </span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-39"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-40"><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-sy">{</span><span class="crayon-sy">&#91;</span><span class="crayon-i">using_jtag</span><span class="crayon-sy">]</span><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-sy">{</span><span class="crayon-h"> </span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-41"><span class="crayon-h"> </span><span class="crayon-e">jtag </span><span class="crayon-i">newtap</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-e">_CHIPNAME </span><span class="crayon-i">bs</span><span class="crayon-h"> </span>-<span class="crayon-i">irlen</span><span class="crayon-h"> </span><span class="crayon-cn">5</span><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-42"><span class="crayon-sy">}</span><span class="crayon-h"> </span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-43"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-44"><span class="crayon-e">set </span><span class="crayon-i">_TARGETNAME</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-i">_CHIPNAME</span><span class="crayon-sy">.</span><span class="crayon-e">cpu </span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-45"><span class="crayon-e">target </span><span class="crayon-i">create</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-e">_TARGETNAME </span><span class="crayon-i">cortex_m</span><span class="crayon-h"> </span>-<span class="crayon-i">endian</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-i">_ENDIAN</span><span class="crayon-h"> </span>-<span class="crayon-i">chain</span>-<span class="crayon-i">position</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-i">_TARGETNAME</span><span class="crayon-h"> &nbs
978p; </span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-46"><span class="crayon-h"> </span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-47"><span class="crayon-sy">$</span><span class="crayon-e">_TARGETNAME </span><span class="crayon-i">configure</span><span class="crayon-h"> </span>-<span class="crayon-i">work</span>-<span class="crayon-i">area</span>-<span class="crayon-i">phys</span><span class="crayon-h"> </span><span class="crayon-cn">0x20000000</span><span class="crayon-h"> </span>-<span class="crayon-i">work</span>-<span class="crayon-i">area</span>-<span class="crayon-i">size</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-i">_WORKAREASIZE</span><span class="crayon-h"> </span>-<span class="crayon-i">work</span>-<span class="crayon-i">area</span>-<span class="crayon-i">backup</span><span class="crayon-h"> </span><span class="crayon-cn">0</span><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-48"><span class="crayon-h"> </span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-49"><span class="crayon-p"># flash size will be probed</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-50"><span class="crayon-e">set </span><span class="crayon-i">_FLASHNAME</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-i">_CHIPNAME</span><span class="crayon-sy">.</span><span class="crayon-e">flash</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-51"><span class="crayon-e">
978flash </span><span class="crayon-i">bank</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-e">_FLASHNAME </span><span class="crayon-i">stm32f1x</span><span class="crayon-h"> </span><span class="crayon-cn">0x08000000</span><span class="crayon-h"> </span><span class="crayon-cn">0</span><span class="crayon-h"> </span><span class="crayon-cn">0</span><span class="crayon-h"> </span><span class="crayon-cn">0</span><span class="crayon-h"> </span><span class="crayon-sy">$</span><span class="crayon-i">_TARGETNAME</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-52"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-53"><span class="crayon-p"># JTAG speed should be &lt;= F_CPU/6. F_CPU after reset is 8MHz, so use F_JTAG = 1MHz</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-54"><span class="crayon-e">adapter_khz</span><span class="crayon-h"> </span><span class="crayon-cn">1000</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-55"> </div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-56"><span class="crayon-e">adapter_nsrst_delay</span><span class="crayon-h"> </span><span class="crayon-cn">100</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-57"><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-sy">{</span><span class="crayon-sy">&#91;</span><span class="crayon-i">using_jtag</span><span class="crayon-sy">]</span><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-58"><span class="crayon-h"> </span><span class="crayon-i">jtag_ntrst_delay</span><span class="crayon-h"> </span><span class="crayon-cn">100</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-59"><span class="crayon-sy">}</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-60"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-61"><span class="crayon-e">reset_config</span><span class="crayon-h"> </span><span class="crayon-e">srst_nogate</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-62"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-63"><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-sy">{</span><span class="crayon-sy">!</span><span class="crayon-sy">&#91;</span><span class="crayon-i">using_hla</span><span class="crayon-sy">]</span><span class="crayon-sy">}</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-64"><span class="crayon-h"> </span><span class="crayon-p"># if srst is not fitted use SYSRESETREQ to</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-65"><span class="crayon-h"> </span><span class="crayon-p"># perform a soft reset</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-66"><span class="crayon-h"> </span><span class="crayon-e">cortex_m </span><span class="crayon-e">reset_config </span><span class="crayon-i">sysresetreq</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-67"><span class="crayon-sy">}</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-68"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-69"><span class="crayon-sy">$</span><span class="crayon-e">_TARGETNAME</span><span class="crayon-h"> </span><span class="crayon-e">configure</span><span class="crayon-h"> </span>-<span class="crayon-e">event</span><span class="crayon-h"> </span><span class="crayon-e">examine</span>-<span class="crayon-st">end</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-70"><span class="crayon-h"> </span><span class="crayon-p"># DBGMCU_CR |= DBG_WWDG_STOP | DBG_IWDG_STOP |</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-71"><span class="crayon-h"> </span><span class="crayon-p"># DBG_STANDBY | DBG_STOP | DBG_SLEEP</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-72"><span class="crayon-h"> </span><span class="crayon-i">mmw</span><span class="crayon-h"> </span><span class="crayon-cn">0xE0042004</span><span class="crayon-h"> </span><span class="crayon-cn">0x00000307</span><span class="crayon-h"> </span><span class="crayon-cn">0</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-73"><span class="crayon-sy">}</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-74"> </div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-75"><span class="crayon-sy">$</span><span class="crayon-e">_TARGETNAME</span><span class="crayon-h"> </span><span class="crayon-e">configure</span><span class="crayon-h"> </span>-<span class="crayon-e">event</span><span class="crayon-h"> </span><span class="crayon-e">trace</span>-<span class="crayon-e">config</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-76"><span class="crayon-h"> </span><span class="crayon-p"># Set TRACE_IOEN; TRACE_MODE is set to async; when using sync</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-77"><span class="crayon-h"> </span><span class="crayon-p"># change this value accordingly to configure trace pins</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-78"><span class="crayon-h"> </span><span class="crayon-p"># assignment</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d7696534109-79"><span class="crayon-h"> </span><span class="crayon-i">mmw</span><span class="crayon-h"> </span><span class="crayon-cn">0xE0042004</span><span class="crayon-h"> </span><span class="crayon-cn">0x00000020</span><span class="crayon-h"> </span><span class="crayon-cn">0</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d7696534109-80"><span class="crayon-sy">}</span></div></div></td> 979 </tr> 980 </table> 981 </div> 982 </div> 983<!-- [Format Time: 0.0013 seconds] --> 984 985 986 987 988<p>If you have wired up the FTDI FT2232H (or whichever) correctly then running openocd should give you,</p> 989 990 991 992<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 993 994 <div id="crayon-6ac4b79acd0d9147756826" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 995 996 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 997 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 998 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 999 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 1000$ sudo openocd -f interface/ftdi/myft2232hl.cfg -f target/stm32f1
1000x.cfg 1001Open On-Chip Debugger 0.10.0 1002Licensed under GNU GPL v2 1003For bug reports, read 1004 http:&#47;&#47;openocd.org/doc/doxygen/bugs.html 1005Info : FTDI SWD mode enabled 1006adapter speed: 1000 kHz 1007adapter_nsrst_delay: 100 1008none separate 1009cortex_m reset_config sysresetreq 1010Info : clock speed 1000 kHz 1011Info : SWD DPIDR 0x1ba01477 1012Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints</textarea></div> 1013 <div class="crayon-main" style=""> 1014 <table class="crayon-table"> 1015 <tr class="crayon-row"> 1016 <td class="crayon-nums " data-settings="show"> 1017 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0d9147756826-1">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d9147756826-2">2</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d9147756826-3">3</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d9147756826-4">4</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d9147756826-5">5</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d9147756826-6">6</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d9147756826-7">7</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d9147756826-8">8</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d9147756826-9">9</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d9147756826-10">10</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d9147756826-11">11</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0d9147756826-12">12</div><div class="crayon-num" data-line="crayon-6ac4b79acd0d9147756826-13">13</div></div> 1018 </td> 1019 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0d9147756826-1"><span class="crayon-sy">$</span><span class="crayon-h"> </span><span class="crayon-e">sudo </span><span class="crayon-i">openocd</span><span class="crayon-h"> </span>-<span class="crayon-i">f</span><span class="crayon-h"> </span><span class="crayon-t">interface</span>/<span class="crayon-i">ftdi</span>/<span class="crayon-i">myft2232hl</span><span class="crayon-sy">.</span><span class="crayon-i">cfg</span><span class="crayon-h"> </span>-<span class="crayon-i">f</span><span class="crayon-h"> </span><span class="crayon-i">target</span>/<span class="crayon-i">
1019stm32f1x</span><span class="crayon-sy">.</span><span class="crayon-e">cfg</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d9147756826-2"><span class="crayon-e">Open </span><span class="crayon-i">On</span>-<span class="crayon-e">Chip </span><span class="crayon-i">Debugger</span><span class="crayon-h"> </span><span class="crayon-cn">0.10.0</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d9147756826-3"><span class="crayon-e">Licensed </span><span class="crayon-e">under </span><span class="crayon-e">GNU </span><span class="crayon-e">GPL </span><span class="crayon-e">v2</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d9147756826-4"><span class="crayon-st">For</span><span class="crayon-h"> </span><span class="crayon-e">bug </span><span class="crayon-i">reports</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-e">read</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d9147756826-5"><span class="crayon-e"> </span><span class="crayon-i">http</span><span class="crayon-sy">:</span><span class="crayon-sy">&#47;</span><span class="crayon-sy">&#47;</span><span class="crayon-i">openocd</span><span class="crayon-sy">.</span><span class="crayon-i">org</span>/<span class="crayon-i">doc</span>/<span class="crayon-i">doxygen</span>/<span class="crayon-i">bugs</span><span class="crayon-sy">.</span><span class="crayon-e">html</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d9147756826-6"><span class="crayon-i">Info</span><span class="crayon-h"> </span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">FTDI </span><span class="crayon-e">SWD </span><span class="crayon-e">mode </span><span class="crayon-e">enabled</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d9147756826-7"><span class="crayon-e">adapter </span><span class="crayon-i">speed</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-cn">1000</span><span class="crayon-h"> </span><span class="crayon-e">kHz</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d9147756826-8"><span class="crayon-i">adapter_nsrst_delay</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-cn">100</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d9147756826-9"><span class="crayon-e">none </span><span class="crayon-e">separate</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d9147756826-10"><span class="crayon-e">cortex_m </span><span class="crayon-e">reset_config </span><span class="crayon-e">sysresetreq</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d9147756826-11"><span class="crayon-i">Info</span><span class="crayon-h"> </span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">clock </span><span class="crayon-i">speed</span><span class="crayon-h"> </span><span class="crayon-cn">1000</span><span class="crayon-h"> </span><span class="crayon-e">kHz</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0d9147756826-12"><span class="crayon-i">Info</span><span class="crayon-h"> </span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">SWD </span><span class="crayon-i">DPIDR</span><span class="crayon-h"> </span><span class="crayon-cn">0x1ba01477</span></div><div class="crayon-line" id="crayon-6ac4b79acd0d9147756826-13"><span class="crayon-i">Info</span><span class="crayon-h"> </span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">
1019stm32f1x</span><span class="crayon-sy">.</span><span class="crayon-i">cpu</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">hardware </span><span class="crayon-i">has</span><span class="crayon-h"> </span><span class="crayon-cn">6</span><span class="crayon-h"> </span><span class="crayon-i">breakpoints</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">4</span><span class="crayon-h"> </span><span class="crayon-i">watchpoints</span></div></div></td> 1020 </tr> 1021 </table> 1022 </div> 1023 </div> 1024<!-- [Format Time: 0.0004 seconds] --> 1025 1026 1027 1028 1029<p>I forgot to take notes at the time of flashing, but I remember having to unprotect the flash!</p> 1030 1031 1032 1033<p><em>Update: This post describes in detail the process of flashing a STM32 Cortex M3 with openocd ð </em><a href="https://jacobmossberg.se/posts/2017/01/10/using-openocd-flash-arm-cortex-m3.html"><em>https://jacobmossberg.se/posts/2017/01/10/using-openocd-flash-arm-cortex-m3.html</em></a></p> 1034 1035 1036 1037<p>These are the commands I executed during the process of flashing.</p> 1038 1039 1040 1041<!-- Crayon Syntax Highlighter v_2.7.2_beta --> 1042 1043 <div id="crayon-6ac4b79acd0e7751701652" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;"> 1044 1045 <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-title"></span> 1046 <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button" title="Toggle Line Numbers"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Toggle Plain Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Copy"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Open Code In New Window"><div class="crayon-button-icon"></div></div></div></div> 1047 <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div> 1048 <div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;"> 1049$ sudo openocd -f interface/ftdi/myft2232hl.cfg -f target/stm32f1x.cfg 1050Open On-Chip Debugger 0.10.0 1051Licensed under GNU GPL v2 1052For bug reports, read 1053 http:&#47;&#47;openocd.org/doc/doxygen/bugs.html 1054Info : FTDI SWD mode enabled 1055adapter speed: 1000 kHz 1056adapter_nsrst_delay: 100 1057none separate 1058cortex_m reset_config sysresetreq 1059Info : clock speed 1000 kHz 1060Info : SWD DPIDR 0x1ba01477 1061Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints 1062 1063 1064 1065$ telnet localhost 4444 1066Trying 127.0.0.1... 1067Connected to localhost. 1068Escape character is '^]'. 1069Open On-Chip Debugger 1070> history 1071reset halt 1072reg 1073flash info 0 1074flash list 1075flash banks 1076quit 1077exit 1078 1079> flash info 0 1080device id = 0x20036410 1081flash size = 64kbytes 1082#0 : stm32f1x at 0x08000000, size 0x00010000, buswidth 0, chipwidth 0 1083 # 0: 0x00000000 (0x400 1kB) not protected 1084 # 1: 0x00000400 (0x400 1kB) not protected 1085 # 2: 0x00000800 (0x400 1kB) not protected 1086 # 3: 0x00000c00 (0x400 1kB) not protected 1087 # 4: 0x00001000 (0x400 1kB) not protected 1088 # 5: 0x00001400 (0x400 1kB) not protected 1089 # 6: 0x00001800 (0x400 1kB) not protected 1090 # 7: 0x00001c00 (0x400 1kB) not protected 1091 # 8: 0x00002000 (0x400 1kB) not protected 1092 # 9: 0x00002400 (0x400 1kB) not protected 1093 # 10: 0x00002800 (0x400 1kB) not protected 1094 # 11: 0x00002c00 (0x400 1kB) not protected 1095 # 12: 0x00003000 (0x400 1kB) not protected 1096 # 13: 0x00003400 (0x400 1kB) not protected 1097 # 14: 0x00003800 (0x400 1kB) not protected 1098 # 15: 0x00003c00 (0x400 1kB) not protected 1099 # 16: 0x00004000 (0x400 1kB) not protected 1100 # 17: 0x00004400 (0x400 1kB) not protected 1101 # 18: 0x00004800 (0x400 1kB) not protected 1102 # 19: 0x00004c00 (0x400 1kB) not protected 1103 # 20: 0x00005000 (0x400 1kB) not protected 1104 # 21: 0x00005400 (0x400 1kB) not protected 1105 # 22: 0x00005800 (0x400 1kB) not protected 1106 # 23: 0x00005c00 (0x400 1kB) not protected 1107 # 24: 0x00006000 (0x400 1kB) not protected 1108 # 25: 0x00006400 (0x400 1kB) not protected 1109 # 26: 0x00006800 (0x400 1kB) not protected 1110 # 27: 0x00006c00 (0x400 1kB) not protected 1111 # 28: 0x00007000 (0x400 1kB) not protected 1112 # 29: 0x00007400 (0x400 1kB) not protected 1113 # 30: 0x00007800 (0x400 1kB) not protected 1114 # 31: 0x00007c00 (0x400 1kB) not protected 1115 # 32: 0x00008000 (0x400 1kB) not protected 1116 # 33: 0x00008400 (0x400 1kB) not protected 1117 # 34: 0x00008800 (0x400 1kB) not protected 1118 # 35: 0x00008c00 (0x400 1kB) not protected 1119 # 36: 0x00009000 (0x400 1kB) not protected 1120 # 37: 0x00009400 (0x400 1kB) not protected 1121 # 38: 0x00009800 (0x400 1kB) not protected 1122 # 39: 0x00009c00 (0x400 1kB) not protected 1123 # 40: 0x0000a000 (0x400 1kB) not protected 1124 # 41: 0x0000a400 (0x400 1kB) not protected 1125 # 42: 0x0000a800 (0x400 1kB) not protected 1126 # 43: 0x0000ac00 (0x400 1kB) not protected 1127 # 44: 0x0000b000 (0x400 1kB) not protected 1128 # 45: 0x0000b400 (0x400 1kB) not protected 1129 # 46: 0x0000b800 (0x400 1kB) not protected 1130 # 47: 0x0000bc00 (0x400 1kB) not protected 1131 # 48: 0x0000c000 (0x400 1kB) not protected 1132 # 49: 0x0000c400 (0x400 1kB) not protected 1133 # 50: 0x0000c800 (0x400 1kB) not protected 1134 # 51: 0x0000cc00 (0x400 1kB) not protected 1135 # 52: 0x0000d000 (0x400 1kB) not protected 1136 # 53: 0x0000d400 (0x400 1kB) not protected 1137 # 54: 0x0000d800 (0x400 1kB) not protected 1138 # 55: 0x0000dc00 (0x400 1kB) not protected 1139 # 56: 0x0000e000 (0x400 1kB) not protected 1140 # 57: 0x0000e400 (0x400 1kB) not protected 1141 # 58: 0x0000e800 (0x400 1kB) not protected 1142 # 59: 0x0000ec00 (0x400 1kB) not protected 1143 # 60: 0x0000f000 (0x400 1kB) not protected 1144 # 61: 0x0000f400 (0x400 1kB) not protected 1145 # 62: 0x0000f800 (0x400 1kB) not protected 1146 # 63: 0x0000fc00 (0x400 1kB) not protected 1147STM32F10x (Medium Density) - Rev: Y 1148> </textarea></div> 1149 <div class="crayon-main" style=""> 1150 <table class="crayon-table"> 1151 <tr class="crayon-row"> 1152 <td class="crayon-nums " data-settings="show"> 1153 <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-1">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-2">2</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-3">3</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-4">4</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-5">5</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-6">6</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-7">7</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-8">8</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-9">9</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-10">10</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-11">11</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-12">12</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-13">13</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-14">14</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-15">15</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-16">16</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-17">17</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-18">18</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-19">19</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-20">20</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-21">21</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-22">22</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-23">23</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-24">24</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-25">25</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-26">26</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-27">27</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-28">28</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-29">29</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-30">30</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-31">31</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-32">32</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-33">33</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-34">34</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-35">35</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-36">36</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-37">37</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-38">38</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-39">39</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-40">40</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-41">41</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-42">42</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-43">43</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-44">44</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-45">45</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-46">46</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-47">47</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-48">48</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-49">
115349</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-50">50</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-51">51</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-52">52</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-53">53</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-54">54</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-55">55</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-56">56</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-57">57</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-58">58</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-59">59</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-60">60</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-61">61</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-62">62</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-63">63</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-64">64</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-65">65</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-66">66</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-67">67</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-68">68</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-69">69</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-70">70</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-71">71</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-72">72</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-73">73</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-74">74</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-75">75</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-76">76</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-77">77</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-78">78</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-79">79</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-80">80</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-81">81</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-82">82</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-83">83</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-84">84</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-85">85</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-86">86</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-87">87</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-88">88</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-89">89</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-90">90</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-91">91</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-92">92</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-93">93</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-94">94</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-95">95</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-96">96</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-97">97</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-98">98</div><div class="crayon-num" data-line="crayon-6ac4b79acd0e7751701652-99">99</div><div class="crayon-num crayon-striped-num" data-line="crayon-6ac4b79acd0e7751701652-100">100</div></div> 1154 </td> 1155 <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-1"><span class="crayon-sy">$</span><span class="crayon-h"> </span><span class="crayon-e">sudo </span><span class="crayon-i">openocd</span><span class="crayon-h"> </span>-<span class="crayon-i">f</span><span class="crayon-h"> </span><span class="crayon-t">interface</span>/<span class="crayon-i">ftdi</span>/<span class="crayon-i">myft2232hl</span><span class="crayon-sy">.</span><span class="crayon-i">cfg</span><span class="crayon-h"> </span>-<span class="crayon-i">f</span><span class="crayon-h"> </span><span class="crayon-i">target</span>/<span class="crayon-i">
1155stm32f1x</span><span class="crayon-sy">.</span><span class="crayon-e">cfg</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-2"><span class="crayon-e">Open </span><span class="crayon-i">On</span>-<span class="crayon-e">Chip </span><span class="crayon-i">Debugger</span><span class="crayon-h"> </span><span class="crayon-cn">0.10.0</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-3"><span class="crayon-e">Licensed </span><span class="crayon-e">under </span><span class="crayon-e">GNU </span><span class="crayon-e">GPL </span><span class="crayon-e">v2</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-4"><span class="crayon-st">For</span><span class="crayon-h"> </span><span class="crayon-e">bug </span><span class="crayon-i">reports</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-e">read</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-5"><span class="crayon-e"> </span><span class="crayon-i">http</span><span class="crayon-sy">:</span><span class="crayon-sy">&#47;</span><span class="crayon-sy">&#47;</span><span class="crayon-i">openocd</span><span class="crayon-sy">.</span><span class="crayon-i">org</span>/<span class="crayon-i">doc</span>/<span class="crayon-i">doxygen</span>/<span class="crayon-i">bugs</span><span class="crayon-sy">.</span><span class="crayon-e">html</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-6"><span class="crayon-i">Info</span><span class="crayon-h"> </span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">FTDI </span><span class="crayon-e">SWD </span><span class="crayon-e">mode </span><span class="crayon-e">enabled</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-7"><span class="crayon-e">adapter </span><span class="crayon-i">speed</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-cn">1000</span><span class="crayon-h"> </span><span class="crayon-e">kHz</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-8"><span class="crayon-i">adapter_nsrst_delay</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-cn">100</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-9"><span class="crayon-e">none </span><span class="crayon-e">separate</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-10"><span class="crayon-e">cortex_m </span><span class="crayon-e">reset_config </span><span class="crayon-e">sysresetreq</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-11"><span class="crayon-i">Info</span><span class="crayon-h"> </span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">clock </span><span class="crayon-i">speed</span><span class="crayon-h"> </span><span class="crayon-cn">1000</span><span class="crayon-h"> </span><span class="crayon-e">kHz</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-12"><span class="crayon-i">Info</span><span class="crayon-h"> </span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">SWD </span><span class="crayon-i">DPIDR</span><span class="crayon-h"> </span><span class="crayon-cn">0x1ba01477</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-13"><span class="crayon-i">Info</span><span class="crayon-h"> </span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">
1155stm32f1x</span><span class="crayon-sy">.</span><span class="crayon-i">cpu</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-e">hardware </span><span class="crayon-i">has</span><span class="crayon-h"> </span><span class="crayon-cn">6</span><span class="crayon-h"> </span><span class="crayon-i">breakpoints</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">4</span><span class="crayon-h"> </span><span class="crayon-i">watchpoints</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-14"> </div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-15"> </div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-16"> </div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-17"><span class="crayon-sy">$</span><span class="crayon-h"> </span><span class="crayon-e">telnet </span><span class="crayon-i">localhost</span><span class="crayon-h"> </span><span class="crayon-cn">4444</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-18"><span class="crayon-i">Trying</span><span class="crayon-h"> </span><span class="crayon-cn">127.0.0.1...</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-19"><span class="crayon-e">Connected </span><span class="crayon-st">to</span><span class="crayon-h"> </span><span class="crayon-i">localhost</span><span class="crayon-sy">.</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-20"><span class="crayon-e">Escape </span><span class="crayon-e">character </span><span class="crayon-st">is</span><span class="crayon-h"> </span><span class="crayon-s">'^]'</span><span class="crayon-sy">.</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-21"><span class="crayon-e">Open </span><span class="crayon-i">On</span>-<span class="crayon-e">Chip </span><span class="crayon-i">Debugger</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-22"><span class="crayon-h">></span><span class="crayon-h"> </span><span class="crayon-e">history</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-23"><span class="crayon-e">reset </span><span class="crayon-e">halt</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-24"><span class="crayon-e">reg</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-25"><span class="crayon-e">flash </span><span class="crayon-i">info</span><span class="crayon-h"> </span><span class="crayon-cn">0</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-26"><span class="crayon-e">flash </span><span class="crayon-e">list</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-27"><span class="crayon-e">flash </span><span class="crayon-e">banks</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-28"><span class="crayon-e">quit</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-29"><span class="crayon-i">exit</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-30"> </div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-31"><span class="crayon-h">></span><span class="crayon-h"> </span><span class="crayon-e">flash </span><span class="crayon-i">info</span><span class="crayon-h"> </span><span class="crayon-cn">0</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-32"><span class="crayon-e">device </span><span class="crayon-i">id</span><span class="crayon-h"> </span>=<span class="crayon-h"> </span><span class="crayon-cn">0x20036410</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-33"><span class="crayon-e">flash </span><span class="crayon-i">size</span><span class="crayon-h"> </span>=<span class="crayon-h"> </span><span class="crayon-cn">64kbytes</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-34"><span class="crayon-p">#0 : stm32f1x at 0x08000000, size 0x00010000, buswidth 0, chipwidth 0</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-35"><span class="crayon-h"> </span><span class="crayon-p"># 0: 0x00000000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-36"><span class="crayon-h"> </span><span class="crayon-p"># 1: 0x00000400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-37"><span class="crayon-h"> </span><span class="crayon-p"># 2: 0x00000800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-38"><span class="crayon-h"> </span><span class="crayon-p"># 3: 0x00000c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-39"><span class="crayon-h"> </span><span class="crayon-p"># 4: 0x00001000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-40"><span class="crayon-h"> </span><span class="crayon-p"># 5: 0x00001400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-41"><span class="crayon-h"> </span><span class="crayon-p"># 6: 0x00001800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-42"><span class="crayon-h"> </span><span class="crayon-p"># 7: 0x00001c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-43"><span class="crayon-h"> </span><span class="crayon-p"># 8: 0x00002000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-44"><span class="crayon-h"> </span><span class="crayon-p"># 9: 0x00002400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-45"><span class="crayon-h"> </span><span class="crayon-p"># 10: 0x00002800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-46"><span class="crayon-h"> </span><span class="crayon-p"># 11: 0x00002c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-47"><span class="crayon-h"> </span><span class="crayon-p"># 12: 0x00003000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-48"><span class="crayon-h"> </span><span class="crayon-p"># 13: 0x00003400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-49"><span class="crayon-h"> </span><span class="crayon-p"># 14: 0x00003800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-50"><span class="crayon-h"> </span><span class="crayon-p"># 15: 0x00003c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-51"><span class="crayon-h"> </span><span class="crayon-p"># 16: 0x00004000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-52"><span class="crayon-h"> </span><span class="crayon-p"># 17: 0x00004400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-53"><span class="crayon-h"> </span><span class="crayon-p"># 18: 0x00004800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-54"><span class="crayon-h"> </span><span class="crayon-p"># 19: 0x00004c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-55"><span class="crayon-h"> </span><span class="crayon-p"># 20: 0x00005000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-56"><span class="crayon-h"> </span><span class="crayon-p"># 21: 0x00005400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-57"><span class="crayon-h"> </span><span class="crayon-p"># 22: 0x00005800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-58"><span class="crayon-h"> </span><span class="crayon-p"># 23: 0x00005c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-59"><span class="crayon-h"> </span><span class="crayon-p"># 24: 0x00006000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-60"><span class="crayon-h"> </span><span class="crayon-p"># 25: 0x00006400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-61"><span class="crayon-h"> </span><span class="crayon-p"># 26: 0x00006800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-62"><span class="crayon-h"> </span><span class="crayon-p"># 27: 0x00006c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-63"><span class="crayon-h"> </span><span class="crayon-p"># 28: 0x00007000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-64"><span class="crayon-h"> </span><span class="crayon-p"># 29: 0x00007400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-65"><span class="crayon-h"> </span><span class="crayon-p"># 30: 0x00007800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-66"><span class="crayon-h"> </span><span class="crayon-p"># 31: 0x00007c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-67"><span class="crayon-h"> </span><span class="crayon-p"># 32: 0x00008000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-68"><span class="crayon-h"> </span><span class="crayon-p"># 33: 0x00008400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-69"><span class="crayon-h"> </span><span class="crayon-p"># 34: 0x00008800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-70"><span class="crayon-h"> </span><span class="crayon-p"># 35: 0x00008c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-71"><span class="crayon-h"> </span><span class="crayon-p"># 36: 0x00009000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-72"><span class="crayon-h"> </span><span class="crayon-p"># 37: 0x00009400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-73"><span class="crayon-h"> </span><span class="crayon-p"># 38: 0x00009800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-74"><span class="crayon-h"> </span><span class="crayon-p"># 39: 0x00009c00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-75"><span class="crayon-h"> </span><span class="crayon-p"># 40: 0x0000a000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-76"><span class="crayon-h"> </span><span class="crayon-p">
1155# 41: 0x0000a400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-77"><span class="crayon-h"> </span><span class="crayon-p"># 42: 0x0000a800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-78"><span class="crayon-h"> </span><span class="crayon-p"># 43: 0x0000ac00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-79"><span class="crayon-h"> </span><span class="crayon-p"># 44: 0x0000b000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-80"><span class="crayon-h"> </span><span class="crayon-p"># 45: 0x0000b400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-81"><span class="crayon-h"> </span><span class="crayon-p"># 46: 0x0000b800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-82"><span class="crayon-h"> </span><span class="crayon-p"># 47: 0x0000bc00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-83"><span class="crayon-h"> </span><span class="crayon-p"># 48: 0x0000c000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-84"><span class="crayon-h"> </span><span class="crayon-p"># 49: 0x0000c400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-85"><span class="crayon-h"> </span><span class="crayon-p"># 50: 0x0000c800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-86"><span class="crayon-h"> </span><span class="crayon-p"># 51: 0x0000cc00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-87"><span class="crayon-h"> </span><span class="crayon-p"># 52: 0x0000d000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-88"><span class="crayon-h"> </span><span class="crayon-p"># 53: 0x0000d400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-89"><span class="crayon-h"> </span><span class="crayon-p"># 54: 0x0000d800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-90"><span class="crayon-h"> </span><span class="crayon-p"># 55: 0x0000dc00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-91"><span class="crayon-h"> </span><span class="crayon-p"># 56: 0x0000e000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-92"><span class="crayon-h"> </span><span class="crayon-p"># 57: 0x0000e400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-93"><span class="crayon-h"> </span><span class="crayon-p"># 58: 0x0000e800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-94"><span class="crayon-h"> </span><span class="crayon-p"># 59: 0x0000ec00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-95"><span class="crayon-h"> </span><span class="crayon-p"># 60: 0x0000f000 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-96"><span class="crayon-h"> </span><span class="crayon-p"># 61: 0x0000f400 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-97"><span class="crayon-h"> </span><span class="crayon-p"># 62: 0x0000f800 (0x400 1kB) not protected</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-98"><span class="crayon-h"> </span><span class="crayon-p"># 63: 0x0000fc00 (0x400 1kB) not protected</span></div><div class="crayon-line" id="crayon-6ac4b79acd0e7751701652-99"><span class="crayon-e">STM32F10x</span><span class="crayon-h"> </span><span class="crayon-sy">(</span><span class="crayon-e">Medium </span><span class="crayon-i">Density</span><span class="crayon-sy">)</span><span class="crayon-h"> </span>-<span class="crayon-h"> </span><span class="crayon-i">Rev</span><span class="crayon-sy">:</span><span class="crayon-h"> </span><span class="crayon-i">Y</span></div><div class="crayon-line crayon-striped-line" id="crayon-6ac4b79acd0e7751701652-100"><span class="crayon-h">></span><span class="crayon-h"> </span></div></div></td> 1156 </tr> 1157 </table> 1158 </div> 1159 </div> 1160<!-- [Format Time: 0.0010 seconds] --> 1161 1162 1163 1164
1165<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_135854-576x1024.jpg"><img loading="lazy" decoding="async" width="576" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_135854-576x1024.jpg" alt="" data-id="256" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=256" class="lazy lazy-hidden wp-image-256" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_135854-576x1024.jpg 576w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_135854-169x300.jpg 169w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_135854-768x1365.jpg 768w" sizes="auto, (max-width: 576px) 85vw, 576px" /><noscript><img loading="lazy" decoding="async" width="576" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_135854-576x1024.jpg" alt="" data-id="256" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=256" class="wp-image-256" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_135854-576x1024.jpg 576w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_135854-169x300.jpg 169w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_135854-768x1365.jpg 768w" sizes="auto, (max-width: 576px) 85vw, 576px" /></noscript></a></figure></li></ul></figure> 1166 1167 1168 1169<p>Anyway the take away is that I got it flashed, but not via the UART, I had to use the JTAG port and the new digital inputs are fully functional.</p> 1170 1171 1172 1173<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-8 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_152837-1024x576.jpg"><img decoding="async" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_152837-1024x576.jpg" alt="" data-id="258" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=258" class="lazy lazy-hidden wp-image-258"/><noscript><img decoding="async" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20181223_152837-1024x576.jpg" alt="" data-id="258" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=258" class="wp-image-258"/></noscript></a><figcaption class="blocks-gallery-item__caption">Just After Flashing!</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-1024x1024.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-1024x1024.jpg" alt="" data-id="288" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=288" class="lazy lazy-hidden wp-image-288" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-174x174.jpg 174w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><noscript><img loading="lazy" decoding="async" width="1024" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-1024x1024.jpg" alt="" data-id="288" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=288" class="wp-image-288" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-1024x1024.jpg 1024w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-150x150.jpg 150w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-300x300.jpg 300w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-768x768.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-250x250.jpg 250w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190302_141827-174x174.jpg 174w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></noscript></a><figcaption class="blocks-gallery-item__caption">All Channels 3x Digital + 1x Analog</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190320_184429-576x1024.jpg"><img loading="lazy" decoding="async" width="576" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
1173-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190320_184429-576x1024.jpg" alt="" data-id="289" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=289" class="lazy lazy-hidden wp-image-289" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190320_184429-576x1024.jpg 576w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190320_184429-169x300.jpg 169w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190320_184429-768x1365.jpg 768w" sizes="auto, (max-width: 576px) 85vw, 576px" /><noscript><img loading="lazy" decoding="async" width="576" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190320_184429-576x1024.jpg" alt="" data-id="289" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=289" class="wp-image-289" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190320_184429-576x1024.jpg 576w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190320_184429-169x300.jpg 169w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190320_184429-768x1365.jpg 768w" sizes="auto, (max-width: 576px) 85vw, 576px" /></noscript></a><figcaption class="blocks-gallery-item__caption">Analog Sine Wave, ESP8266 + Â MCP4725 I2C DAC</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-673x1024.jpg"><img loading="lazy" decoding="async" width="673" height="1024" src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-673x1024.jpg" alt="" data-id="290" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=290" class="lazy lazy-hidden wp-image-290" srcset="" data-srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-673x1024.jpg 673w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-197x300.jpg 197w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-768x1169.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg 1796w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /><noscript><img loading="lazy" decoding="async" width="673" height="1024" src="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-673x1024.jpg" alt="" data-id="290" data-link="https://blog.pagefault-limited.co.uk/?attachment_id=290" class="wp-image-290" srcset="https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-673x1024.jpg 673w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-197x300.jpg 197w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742-768x1169.jpg 768w, https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/IMG_20190324_155742.jpg 1796w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></noscript></a><figcaption class="blocks-gallery-item__caption">Firmware Flashed</figcaption></figure></li></ul></figure> 1174 1175 1176 1177<p>DSO-150 User Instructions – <span class="collapseomatic " id="id6ac4b79aed98a" tabindex="0" title="User Guide" >User Guide</span><div id="target-id6ac4b79aed98a" class="collapseomatic_content "> 1178<div 1179 class='wp-block-pdfp-pdf-poster alignnone' 1180 id='block-12' 1181 data-attributes='{"uniqueId":"pdfp11","file":"https:\/\/blog.pagefault-limited.co.uk\/wp-content\/uploads\/2019\/02\/dso150-shell-user-manual.pdf","title":"DSO-150 User Instructions","height":"840px","width":"100%","print":false,"fullscreenButton":true,"fullscreenButtonText":"View Fullscreen","newWindow":false,"showName":true,"downloadButton":false,"downloadButtonText":"Download File","protect":false,"onlyPDF":false,"defaultBrowser":false,"thumbMenu":false,"initialPage":0,"sidebarOpen":false,"lastVersion":false,"hrScroll":false,"alert":true,"btnStyles":{"background":"#1e73be","color":"#fff","fontSize":"rem","padding":{"top":10,"right":20,"bottom":10,"left":10}},"popupOptions":{"enabled":false,"text":"Open PDF","btnStyle":{"background":"#1e73be","color":"#fff","fontSize":"rem","padding":{"top":10,"right":20,"bottom":10,"left":10}}},"align":"none","alignment":"left","titleFontSize":"16px","isHideRightToolbar":false,"additional":{"ID":"","Class":"","CSS":""},"adobeEmbedder":false,"adobeOptions":{"showDownloadPDF":true,"showPrintPDF":true,"showAnnotationTools":true,"showFullScreen":false,"embedMode":"SIZED_CONTAINER"},"popupBtnStyle":{"background":"#2271b1","color":"#fff","padding":{"top":10,"right":20,"bottom":10,"left":10}},"popupBtnText":"Open Document","CSS":""}' 1182 style="text-align: left"> 1183 1184 <iframe loading="lazy" style="border:0;" width="100%" height="800px" class="lazy lazy-hidden pdfp_unsupported_frame" data-lazy-type="iframe" data-src="//docs.google.com/gview?embedded=true&url=https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso150-shell-user-manual.pdf"></iframe><noscript><iframe loading="lazy" style="border:0;" width="100%" height="800px" class="pdfp_unsupported_frame" src="//docs.google.com/gview?embedded=true&url=https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/02/dso150-shell-user-manual.pdf"></iframe></noscript> 1185 1186 </div></div> 1187 1188 1189 1190<p>DSO-150 How to Upgrade Firmware (Official) – <span class="collapseomatic " id="id6ac4b79aeee05" tabindex="0" title="Flashing Guide" >Flashing Guide</span><div id="target-id6ac4b79aeee05" class="collapseomatic_content "> 1191<div 1192 class='wp-block-pdfp-pdf-poster alignnone' 1193 id='block-14' 1194 data-attributes='{"uniqueId":"pdfp13","file":"https:\/\/blog.pagefault-limited.co.uk\/wp-content\/uploads\/2019\/03\/DSO150_HowToUpgradeFirmware.pdf","title":"DSO-150 How to Upgrade Firmware","height":"840px","width":"100%","print":false,"fullscreenButton":true,"fullscreenButtonText":"View Fullscreen","newWindow":false,"showName":true,"downloadButton":false,"downloadButtonText":"Download File","protect":false,"onlyPDF":false,"defaultBrowser":false,"thumbMenu":false,"initialPage":0,"sidebarOpen":false,"lastVersion":false,"hrScroll":false,"alert":true,"btnStyles":{"background":"#1e73be","color":"#fff","fontSize":"rem","padding":{"top":10,"right":20,"bottom":10,"left":10}},"popupOptions":{"enabled":false,"text":"Open PDF","btnStyle":{"background":"#1e73be","color":"#fff","fontSize":"rem","padding":{"top":10,"right":20,"bottom":10,"left":10}}},"align":"none","alignment":"left","titleFontSize":"16px","isHideRightToolbar":false,"additional":{"ID":"","Class":"","CSS":""},"adobeEmbedder":false,"adobeOptions":{"showDownloadPDF":true,"showPrintPDF":true,"showAnnotationTools":true,"showFullScreen":false,"embedMode":"SIZED_CONTAINER"},"popupBtnStyle":{"background":"#2271b1","color":"#fff","padding":{"top":10,"right":20,"bottom":10,"left":10}},"popupBtnText":"Open Document","CSS":""}' 1195 style="text-align: left"> 1196 1197 <iframe loading="lazy" style="border:0;" width="100%" height="800px" class="lazy lazy-hidden pdfp_unsupported_frame" data-lazy-type="iframe" data-src="//docs.google.com/gview?embedded=true&url=https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/DSO150_HowToUpgradeFirmware.pdf"></iframe><noscript><iframe loading="lazy" style="border:0;" width="100%" height="800px" class="pdfp_unsupported_frame" src="//docs.google.com/gview?embedded=true&url=https://blog.pagefault-limited.co.uk/wp-content/uploads/2019/03/DSO150_HowToUpgradeFirmware.pdf"></iframe></noscript> 1198 1199 </div></div> 1200 </div><!-- .entry-content --> 1201 1202 <footer class="entry-footer"> 1203 <span class="byline"><img alt='' src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3
1203-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=49&d=mm&r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=98&d=mm&r=g 2x' class='lazy lazy-hidden avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/></noscript><span class="screen-reader-text">Author </span><span class="author vcard"><a class="url fn n" href="https://blog.pagefault-limited.co.uk/author/don">Don Prince</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware" rel="bookmark"><time class="entry-date published" datetime="2019-03-24T16:30:19+00:00">24 March, 2019</time><time class="updated" datetime="2021-01-17T14:18:15+00:00">17 January, 2021</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.pagefault-limited.co.uk/category/programming/debug" rel="category tag">Debug</a>, <a href="https://blog.pagefault-limited.co.uk/category/electronics/tools/oscilloscope/dso-150" rel="category tag">DSO-150</a>, <a href="https://blog.pagefault-limited.co.uk/category/electronics" rel="category tag">Electronics</a>, <a href="https://blog.pagefault-limited.co.uk/category/programming/debug/jtag" rel="category tag">JTAG</a>, <a href="https://blog.pagefault-limited.co.uk/category/open-source" rel="category tag">Open Source</a>, <a href="https://blog.pagefault-limited.co.uk/category/open-source/openocd" rel="category tag">openocd</a>, <a href="https://blog.pagefault-limited.co.uk/category/electronics/tools/oscilloscope" rel="category tag">Oscilloscope</a>, <a href="https://blog.pagefault-limited.co.uk/category/programming" rel="category tag">Programming</a>, <a href="https://blog.pagefault-limited.co.uk/category/electronics/tools" rel="category tag">Tools</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://blog.pagefault-limited.co.uk/tag/analog" rel="tag">analog</a>, <a href="https://blog.pagefault-limited.co.uk/tag/digital" rel="tag">digital</a>, <a href="https://blog.pagefault-limited.co.uk/tag/dso-150" rel="tag">DSO-150</a>, <a href="https://blog.pagefault-limited.co.uk/tag/firmware" rel="tag">firmware</a>, <a href="https://blog.pagefault-limited.co.uk/tag/ft2232hl" rel="tag">ft2232hl</a>, <a href="https://blog.pagefault-limited.co.uk/tag/ftdi" rel="tag">ftdi</a>, <a href="https://blog.pagefault-limited.co.uk/tag/jtsg" rel="tag">jtsg</a>, <a href="https://blog.pagefault-limited.co.uk/tag/logic" rel="tag">logic</a>, <a href="https://blog.pagefault-limited.co.uk/tag/opensource" rel="tag">opensource</a>, <a href="https://blog.pagefault-limited.co.uk/tag/oscilloscope" rel="tag">oscilloscope</a></span> </footer><!-- .entry-footer --> 1204</article><!-- #post-150 --> 1205 1206<div id="comments" class="comments-area"> 1207 1208 <h2 class="comments-title"> 1209 6 thoughts on “Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware” </h2> 1210 1211 1212 <ol class="comment-list"> 1213 <li id="comment-175" class="comment even thread-even depth-1 parent"> 1214 <article id="div-comment-175" class="comment-body"> 1215 <footer class="comment-meta"> 1216 <div class="comment-author vcard"> 1217 <img alt='' src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/8a9975022373fb7f9d7337417d908f1eca61fcbc57a46ee54f6784f72f7a7dbe?s=42&d=mm&r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/8a9975022373fb7f9d7337417d908f1eca61fcbc57a46ee54f6784f72f7a7dbe?s=84&d=mm&r=g 2x' class='lazy lazy-hidden avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/8a9975022373fb7f9d7337417d908f1eca61fcbc57a46ee54f6784f72f7a7dbe?s=42&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/8a9975022373fb7f9d7337417d908f1eca61fcbc57a46ee54f6784f72f7a7dbe?s=84&d=mm&r=g 2x' class='avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/></noscript> <b class="fn">Paul</b> <span class="says">says:</span> </div><!-- .comment-author --> 1218 1219 <div class="comment-metadata"> 1220 <a href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#comment-175"><time datetime="2020-07-17T22:15:31+00:00">17 July, 2020 at 10:15 pm</time></a> </div><!-- .comment-metadata --> 1221 1222 </footer><!-- .comment-meta --> 1223 1224 <div class="comment-content"> 1225 <p>Hey, nice post. Given that you first tried to do the firmware flash via uart and you linked that official firmware update procedure pdf, you must’ve shorted the jp1 and jp2 jumper bridges as required for that. Do you happen to know if that procedure is required when using the SWD interface as well?</p> 1226 </div><!-- .comment-content --> 1227 1228 <div class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-175" data-commentid="175" data-postid="150" data-belowelement="div-comment-175" data-respondelement="respond" data-replyto="Reply to Paul" aria-label="Reply to Paul">Reply</a></div> </article><!-- .comment-body --> 1229 <ol class="children">
1230 <li id="comment-182" class="comment byuser comment-author-don bypostauthor odd alt depth-2"> 1231 <article id="div-comment-182" class="comment-body"> 1232 <footer class="comment-meta"> 1233 <div class="comment-author vcard"> 1234 <img alt='' src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=42&d=mm&r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=84&d=mm&r=g 2x' class='lazy lazy-hidden avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=42&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/48a07e84e1804c9bca88bf884837506758974f86fce60b1a4b47b441124b15bb?s=84&d=mm&r=g 2x' class='avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/></noscript> <b class="fn">Don</b> <span class="says">says:</span> </div><!-- .comment-author --> 1235 1236 <div class="comment-metadata"> 1237 <a href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#comment-182"><time datetime="2020-07-26T09:46:49+00:00">26 July, 2020 at 9:46 am</time></a> </div><!-- .comment-metadata --> 1238 1239 </footer><!-- .comment-meta --> 1240 1241 <div class="comment-content"> 1242 <p>I think that shorting the jumpers was applicable to UART flashing. For JTAG try without. If it doesn’t work maybe try the jumpers.</p> 1243 </div><!-- .comment-content --> 1244 1245 <div class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-182" data-commentid="182" data-postid="150" data-belowelement="div-comment-182" data-respondelement="respond" data-replyto="Reply to Don" aria-label="Reply to Don">Reply</a></div> </article><!-- .comment-body --> 1246 </li><!-- #comment-## --> 1247</ol><!-- .children --> 1248</li><!-- #comment-## --> 1249 <li id="comment-315" class="comment even thread-odd thread-alt depth-1 parent"> 1250 <article id="div-comment-315" class="comment-body"> 1251 <footer class="comment-meta"> 1252 <div class="comment-author vcard"> 1253 <img alt='' src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/25bd62e5a3e1566d7f765fb3aadef8f579567a91aef1d8515450829e9e3a1c9a?s=42&d=mm&r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/25bd62e5a3e1566d7f765fb3aadef8f579567a91aef1d8515450829e9e3a1c9a?s=84&d=mm&r=g 2x' class='lazy lazy-hidden avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/25bd62e5a3e1566d7f765fb3aadef8f579567a91aef1d8515450829e9e3a1c9a?s=42&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/25bd62e5a3e1566d7f765fb3aadef8f579567a91aef1d8515450829e9e3a1c9a?s=84&d=mm&r=g 2x' class='avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/></noscript> <b class="fn">Simlog</b> <span class="says">says:</span> </div><!-- .comment-author --> 1254 1255 <div class="comment-metadata"> 1256 <a href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#comment-315"><time datetime="2021-03-20T14:56:05+00:00">20 March, 2021 at 2:56 pm</time></a> </div><!-- .comment-metadata --> 1257 1258 </footer><!-- .comment-meta --> 1259 1260 <div class="comment-content"> 1261 <p>Good job!<br /> 1262Is the firmware already final or work in progress?</p> 1263 </div><!-- .comment-content --> 1264 1265 <div class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-315" data-commentid="315" data-postid="150" data-belowelement="div-comment-315" data-respondelement="respond" data-replyto="Reply to Simlog" aria-label="Reply to Simlog">Reply</a></div> </article><!-- .comment-body --> 1266 <ol class="children">
1267 <li id="comment-337" class="comment byuser comment-author-admin2411 odd alt depth-2"> 1268 <article id="div-comment-337" class="comment-body"> 1269 <footer class="comment-meta"> 1270 <div class="comment-author vcard"> 1271 <img alt='' src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/66dbc3930645578933b9eba4d11149f1604ba77c7371f6df964436e726cfe834?s=42&d=mm&r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/66dbc3930645578933b9eba4d11149f1604ba77c7371f6df964436e726cfe834?s=84&d=mm&r=g 2x' class='lazy lazy-hidden avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/66dbc3930645578933b9eba4d11149f1604ba77c7371f6df964436e726cfe834?s=42&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/66dbc3930645578933b9eba4d11149f1604ba77c7371f6df964436e726cfe834?s=84&d=mm&r=g 2x' class='avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/></noscript> <b class="fn">Don</b> <span class="says">says:</span> </div><!-- .comment-author --> 1272 1273 <div class="comment-metadata"> 1274 <a href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#comment-337"><time datetime="2021-07-24T06:15:40+00:00">24 July, 2021 at 6:15 am</time></a> </div><!-- .comment-metadata --> 1275 1276 </footer><!-- .comment-meta --> 1277 1278 <div class="comment-content"> 1279 <p>Hi, it is final in the sense that it is usable, but a work in progress in the sense that it may receive future updates.</p> 1280 </div><!-- .comment-content --> 1281 1282 <div class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-337" data-commentid="337" data-postid="150" data-belowelement="div-comment-337" data-respondelement="respond" data-replyto="Reply to Don" aria-label="Reply to Don">Reply</a></div> </article><!-- .comment-body --> 1283 </li><!-- #comment-## --> 1284</ol><!-- .children --> 1285</li><!-- #comment-## --> 1286 <li id="comment-374" class="comment even thread-even depth-1 parent"> 1287 <article id="div-comment-374" class="comment-body"> 1288 <footer class="comment-meta"> 1289 <div class="comment-author vcard"> 1290 <img alt='' src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/f35fa00722c5e40cef54892e351044340a8d283eb60fb1f328ce1221562241eb?s=42&d=mm&r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/f35fa00722c5e40cef54892e351044340a8d283eb60fb1f328ce1221562241eb?s=84&d=mm&r=g 2x' class='lazy lazy-hidden avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/f35fa00722c5e40cef54892e351044340a8d283eb60fb1f328ce1221562241eb?s=42&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/f35fa00722c5e40cef54892e351044340a8d283eb60fb1f328ce1221562241eb?s=84&d=mm&r=g 2x' class='avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/></noscript> <b class="fn">AG_Hornet</b> <span class="says">says:</span> </div><!-- .comment-author --> 1291 1292 <div class="comment-metadata"> 1293 <a href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#comment-374"><time datetime="2023-03-28T10:16:23+00:00">28 March, 2023 at 10:16 am</time></a> </div><!-- .comment-metadata --> 1294 1295 </footer><!-- .comment-meta --> 1296 1297 <div class="comment-content"> 1298 <p>Thanks. Great set of instructions..<br /> 1299I might give that a go.</p> 1300 </div><!-- .comment-content --> 1301 1302 <div class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-374" data-commentid="374" data-postid="150" data-belowelement="div-comment-374" data-respondelement="respond" data-replyto="Reply to AG_Hornet" aria-label="Reply to AG_Hornet">Reply</a></div> </article><!-- .comment-body --> 1303 <ol class="children">
1304 <li id="comment-377" class="comment byuser comment-author-admin2411 odd alt depth-2"> 1305 <article id="div-comment-377" class="comment-body"> 1306 <footer class="comment-meta"> 1307 <div class="comment-author vcard"> 1308 <img alt='' src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/66dbc3930645578933b9eba4d11149f1604ba77c7371f6df964436e726cfe834?s=42&d=mm&r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/66dbc3930645578933b9eba4d11149f1604ba77c7371f6df964436e726cfe834?s=84&d=mm&r=g 2x' class='lazy lazy-hidden avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/66dbc3930645578933b9eba4d11149f1604ba77c7371f6df964436e726cfe834?s=42&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/66dbc3930645578933b9eba4d11149f1604ba77c7371f6df964436e726cfe834?s=84&d=mm&r=g 2x' class='avatar avatar-42 photo' height='42' width='42' loading='lazy' decoding='async'/></noscript> <b class="fn">Don</b> <span class="says">says:</span> </div><!-- .comment-author --> 1309 1310 <div class="comment-metadata"> 1311 <a href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#comment-377"><time datetime="2023-03-28T14:32:37+00:00">28 March, 2023 at 2:32 pm</time></a> </div><!-- .comment-metadata --> 1312 1313 </footer><!-- .comment-meta --> 1314 1315 <div class="comment-content"> 1316 <p>Thanks, I am quite pleased with it.</p> 1317 </div><!-- .comment-content --> 1318 1319 <div class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-377" data-commentid="377" data-postid="150" data-belowelement="div-comment-377" data-respondelement="respond" data-replyto="Reply to Don" aria-label="Reply to Don">Reply</a></div> </article><!-- .comment-body --> 1320 </li><!-- #comment-## --> 1321</ol><!-- .children --> 1322</li><!-- #comment-## --> 1323 </ol><!-- .comment-list --> 1324 1325 1326 1327 1328 <div id="respond" class="comment-respond"> 1329 <h2 id="reply-title" class="comment-reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#respond" style="display:none;">Cancel reply</a></small></h2><form action="https://blog.pagefault-limited.co.uk/wp-comments-post.php" method="post" id="commentform" class="comment-form"><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> <span class="required-field-message">Required fields are marked <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Comment <span class="required">*</span></label> <textarea autocomplete="new-password" id="g386753469" name="g386753469" cols="45" rows="8" maxlength="65525" required></textarea><textarea id="comment" aria-label="hp-comment" aria-hidden="true" name="comment" autocomplete="new-password" style="padding:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;position:absolute !important;white-space:nowrap !important;height:1px !important;width:1px !important;overflow:hidden !important;" tabindex="-1"></textarea>
1329<script data-noptimize>document.getElementById("comment").setAttribute( "id", "a83390f25753f4bc4253b2c9447c30b8" );document.getElementById("g386753469").setAttribute( "id", "comment" );</script>
1329</p><p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required /></p> 1330<p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required /></p> 1331<p class="comment-form-url"><label for="url">Website</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" autocomplete="url" /></p> 1332<p class="c4wp-display-captcha-form"><label for="Solve Captcha*">Solve Captcha*</label><input id="c4wp_user_input_captcha" name="c4wp_user_input_captcha" class="c4wp_user_input_captcha" type="text" style="width: 45px;" autocomplete="off" /> × one = five<input type="hidden" name="c4wp_random_input_captcha" value="dgw=" /></p><p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='150' id='comment_post_ID' /> 1333<input type='hidden' name='comment_parent' id='comment_parent' value='0' /> 1334</p></form> </div><!-- #respond --> 1335 1336</div><!-- .comments-area --> 1337 1338 <nav class="navigation post-navigation" aria-label="Posts"> 1339 <h2 class="screen-reader-text">Post navigation</h2> 1340 <div class="nav-links"><div class="nav-previous"><a href="https://blog.pagefault-limited.co.uk/esp-01s-relay-module-v1-0" rel="prev"><span class="meta-nav" aria-hidden="true">Previous</span> <span class="screen-reader-text">Previous post:</span> <span class="post-title">ESP-01S Relay Module V1.0</span></a></div><div class="nav-next"><a href="https://blog.pagefault-limited.co.uk/wemos-lolin32-pinout-vs-wemos-lolin32-lite-pinout" rel="next"><span class="meta-nav" aria-hidden="true">Next</span> <span class="screen-reader-text">Next post:</span> <span class="post-title">Wemos Lolin32 Pinout vs Wemos Lolin32 Lite Pinout</span></a></div></div> 1341 </nav> 1342 </main><!-- .site-main --> 1343 1344 1345</div><!-- .content-area --> 1346 1347 1348 <aside id="secondary" class="sidebar widget-area"> 1349 <section id="search-2" class="widget widget_search"> 1350<form role="search" method="get" class="search-form" action="https://blog.pagefault-limited.co.uk/"> 1351 <label> 1352 <span class="screen-reader-text"> 1353 Search for: </span> 1354 <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> 1355 </label> 1356 <button type="submit" class="search-submit"><span class="screen-reader-text"> 1357 Search </span></button> 1358</form> 1359</section> 1360 <section id="recent-posts-2" class="widget widget_recent_entries"> 1361 <h2 class="widget-title">Recent Posts</h2><nav aria-label="Recent Posts"> 1362 <ul> 1363 <li> 1364 <a href="https://blog.pagefault-limited.co.uk/quick-setup-of-vnc-server-on-headless-machines-debian">Script: Quick & simple setup of VNC server on headless machines (Debian Based OSes)</a> 1365 </li> 1366 <li> 1367 <a href="https://blog.pagefault-limited.co.uk/remove-snapd-from-ubuntu-kubuntu-20-04-and-restore-chromium-apt-deb-package">Remove snapd from Ubuntu/Kubuntu 20.04 and restore Chromium apt deb package</a> 1368 </li> 1369 <li> 1370 <a href="https://blog.pagefault-limited.co.uk/commandline-upgrade-ubuntu-kubuntu-bionic-18-04-to-focal-20-04">Commandline Upgrade Ubuntu/Kubuntu Bionic 18.04 to Focal 20.04</a> 1371 </li> 1372 <li> 1373 <a href="https://blog.pagefault-limited.co.uk/lolin32-lite-esp32-8mb-psram-upgrade-mod">Lolin32 Lite (ESP32) 8MB PSRAM Upgrade Mod</a> 1374 </li> 1375 <li> 1376 <a href="https://blog.pagefault-limited.co.uk/hotchip-ht4928s-ver1-1-english-pdf">Hotchip – HT4928S Ver1.1 English PDF</a> 1377 </li> 1378 </ul> 1379 1380 </nav></section><section id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2><nav aria-label="Categories"> 1381 <ul> 1382 <li class="cat-item cat-item-85"><a href="https://blog.pagefault-limited.co.uk/category/electronics/modules/battery-booster">Battery Booster</a> 1383</li> 1384 <li class="cat-item cat-item-18"><a href="https://blog.pagefault-limited.co.uk/category/programming/debug">Debug</a> 1385</li> 1386 <li class="cat-item cat-item-21"><a href="https://blog.pagefault-limited.co.uk/category/electronics/tools/oscilloscope/dso-150">DSO-150</a> 1387</li> 1388 <li class="cat-item cat-item-3"><a href="https://blog.pagefault-limited.co.uk/category/electronics">Electronics</a> 1389</li> 1390 <li class="cat-item cat-item-88"><a href="https://blog.pagefault-limited.co.uk/category/electronics/modules/esp-01s">ESP-01S</a> 1391</li> 1392 <li class="cat-item cat-item-82"><a href="https://blog.pagefault-limited.co.uk/category/electronics/ic/esp32">ESP32</a> 1393</li> 1394 <li class="cat-item cat-item-86"><a href="https://blog.pagefault-limited.co.uk/category/electronics/ic/esp8266">ESP8266</a> 1395</li> 1396 <li class="cat-item cat-item-84"><a href="https://blog.pagefault-limited.co.uk/category/electronics/ic/ht4928s">HT4928S</a> 1397</li> 1398 <li class="cat-item cat-item-45"><a href="https://blog.pagefault-limited.co.uk/category/electronics/ic">IC</a> 1399</li> 1400 <li class="cat-item cat-item-19"><a href="https://blog.pagefault-limited.co.uk/category/programming/debug/jtag">JTAG</a> 1401</li> 1402 <li class="cat-item cat-item-67"><a href="https://blog.pagefault-limited.co.uk/category/os/linux">Linux</a> 1403</li> 1404 <li class="cat-item cat-item-12"><a href="https://blog.pagefault-limited.co.uk/category/electronics/tools/logic-analyser">Logic Analyser</a> 1405</li> 1406 <li class="cat-item cat-item-44"><a href="https://blog.pagefault-limited.co.uk/category/electronics/mcu">MCU</a> 1407</li> 1408 <li class="cat-item cat-item-4"><a href="https://blog.pagefault-limited.co.uk/category/electronics/modules">Modules</a> 1409</li> 1410 <li class="cat-item cat-item-20"><a href="https://blog.pagefault-limited.co.uk/category/open-source">Open Source</a> 1411</li> 1412 <li class="cat-item cat-item-22"><a href="https://blog.pagefault-limited.co.uk/category/open-source/openocd">openocd</a> 1413</li> 1414 <li class="cat-item cat-item-66"><a href="https://blog.pagefault-limited.co.uk/category/os">OS</a> 1415</li> 1416 <li class="cat-item cat-item-16"><a href="https://blog.pagefault-limited.co.uk/category/electronics/tools/oscilloscope">Oscilloscope</a> 1417</li> 1418 <li class="cat-item cat-item-17"><a href="https://blog.pagefault-limited.co.uk/category/programming">Programming</a> 1419</li> 1420 <li class="cat-item cat-item-49"><a href="https://blog.pagefault-limited.co.uk/category/electronics/ic/ram">RAM</a> 1421</li> 1422 <li class="cat-item cat-item-87"><a href="https://blog.pagefault-limited.co.uk/category/electronics/modules/relay">Relay</a> 1423</li> 1424 <li class="cat-item cat-item-11"><a href="https://blog.pagefault-limited.co.uk/category/electronics/tools">Tools</a> 1425</li> 1426 <li class="cat-item cat-item-71"><a href="https://blog.pagefault-limited.co.uk/category/os/linux/vnc">VNC</a> 1427</li> 1428 <li class="cat-item cat-item-83"><a href="https://blog.pagefault-limited.co.uk/category/electronics/modules/wemos">Wemos</a> 1429</li> 1430 </ul> 1431 1432 </nav></section><section id="recent-comments-2" class="widget widget_recent_comments"><h2 class="widget-title">Recent Comments</h2>
1432<nav aria-label="Recent Comments"><ul id="recentcomments"><li class="recentcomments"><span class="comment-author-link">Don</span> on <a href="https://blog.pagefault-limited.co.uk/esp-01s-relay-module-v1-0#comment-384">ESP-01S Relay Module V1.0</a></li><li class="recentcomments"><span class="comment-author-link">Juergen Roehrbein</span> on <a href="https://blog.pagefault-limited.co.uk/quick-setup-of-vnc-server-on-headless-machines-debian#comment-383">Script: Quick & simple setup of VNC server on headless machines (Debian Based OSes)</a></li><li class="recentcomments"><span class="comment-author-link">pullGuy</span> on <a href="https://blog.pagefault-limited.co.uk/quick-setup-of-vnc-server-on-headless-machines-debian#comment-379">Script: Quick & simple setup of VNC server on headless machines (Debian Based OSes)</a></li><li class="recentcomments"><span class="comment-author-link">Bilal Inamdar</span> on <a href="https://blog.pagefault-limited.co.uk/esp-01s-relay-module-v1-0#comment-378">ESP-01S Relay Module V1.0</a></li><li class="recentcomments"><span class="comment-author-link">Don</span> on <a href="https://blog.pagefault-limited.co.uk/adding-digital-channels-to-the-dso-150-oscilloscope-and-flashing-new-firmware#comment-377">Adding Digital Channels to the DSO-150 Oscilloscope And Flashing New Firmware</a></li></ul></nav></section><section id="archives-2" class="widget widget_archive"><h2 class="widget-title">Archives</h2><nav aria-label="Archives"> 1433 <ul> 1434 <li><a href='https://blog.pagefault-limited.co.uk/2021/01'>January 2021</a></li> 1435 <li><a href='https://blog.pagefault-limited.co.uk/2020/12'>December 2020</a></li> 1436 <li><a href='https://blog.pagefault-limited.co.uk/2019/04'>April 2019</a></li> 1437 <li><a href='https://blog.pagefault-limited.co.uk/2019/03'>March 2019</a></li> 1438 <li><a href='https://blog.pagefault-limited.co.uk/2018/07'>July 2018</a></li> 1439 <li><a href='https://blog.pagefault-limited.co.uk/2018/02'>February 2018</a></li> 1440 </ul> 1441 1442 </nav></section> </aside><!-- .sidebar .widget-area --> 1443 1444 </div><!-- .site-content --> 1445 1446 <footer id="colophon" class="site-footer"> 1447 <nav class="main-navigation" aria-label="Footer primary menu"> 1448 <div class="menu-footer-container"><ul id="menu-footer-1" class="primary-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-51736"><a rel="privacy-policy" href="https://blog.pagefault-limited.co.uk/privacy-policy">Privacy Policy</a></li> 1449<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51744"><a href="https://blog.pagefault-limited.co.uk/contact-us">Contact Us</a></li> 1450</ul></div> </nav><!-- .main-navigation --> 1451 1452 1453 <div class="site-info"> 1454 <span class="site-title"><a href="https://blog.pagefault-limited.co.uk/" rel="home">Pagefault Blog</a></span> 1455 <a class="privacy-policy-link" href="https://blog.pagefault-limited.co.uk/privacy-policy" rel="privacy-policy">Privacy Policy</a><span role="separator" aria-hidden="true"></span> <a href="https://en-gb.wordpress.org/" class="imprint"> 1456 Proudly powered by WordPress </a> 1457 </div><!-- .site-info --> 1458 </footer><!-- .site-footer --> 1459 </div><!-- .site-inner --> 1460</div><!-- .site --> 1461
1462<script type="speculationrules"> 1463{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/twentysixteen\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 1464</script>
1464 1465<!-- Enter your scripts here --><style id='core-block-supports-inline-css'> 1466.wp-block-gallery.wp-block-gallery-1{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}.wp-block-gallery.wp-block-gallery-2{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}.wp-block-gallery.wp-block-gallery-3{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}.wp-block-gallery.wp-block-gallery-4{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}.wp-block-gallery.wp-block-gallery-5{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}.wp-block-gallery.wp-block-gallery-6{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}.wp-block-gallery.wp-block-gallery-7{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}.wp-block-gallery.wp-block-gallery-8{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );} 1467</style>
1468<script src="https://blog.pagefault-limited.co.uk/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script>
vendor: 1 bytes, line 1468
1468
1469<script src="https://blog.pagefault-limited.co.uk/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script>
vendor: 1 bytes, line 1469
1469
1470<script id="wp-i18n-js-after"> 1471wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 1472</script>
vendor: 1 bytes, line 1472
1472
1473<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0.6" id="swv-js"></script>
vendor: 1 bytes, line 1473
1473
1474<script id="contact-form-7-js-translations"> 1475( function( domain, translations ) { 1476 var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; 1477 localeData[""].domain = domain; 1478 wp.i18n.setLocaleData( localeData, domain ); 1479} )( "contact-form-7", {"translation-revision-date":"2024-05-21 11:58:24+0000","generator":"GlotPress\/4.0.1","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"en_GB"},"Error:":["Error:"]}},"comment":{"reference":"includes\/js\/index.js"}} ); 1480</script>
vendor: 1 bytes, line 1480
1480
1481<script id="contact-form-7-js-before"> 1482var wpcf7 = { 1483 "api": { 1484 "root": "https:\/\/blog.pagefault-limited.co.uk\/wp-json\/", 1485 "namespace": "contact-form-7\/v1" 1486 } 1487}; 1488</script>
vendor: 1 bytes, line 1488
1488
1489<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0.6" id="contact-form-7-js"></script>
vendor: 1 bytes, line 1489
1489
1490<script id="collapseomatic-js-js-before"> 1491const com_options = {"colomatduration":"fast","colomatslideEffect":"slideFade","colomatpauseInit":"","colomattouchstart":""} 1492</script>
vendor: 1 bytes, line 1492
1492
1493<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/jquery-collapse-o-matic/js/collapse.js?ver=1.7.2" id="collapseomatic-js-js"></script>
vendor: 1 bytes, line 1493
1493
1494<script id="toc-front-js-extra"> 1495var tocplus = {"visibility_show":"show","visibility_hide":"hide","width":"Auto"}; 1496</script>
vendor: 1 bytes, line 1496
1496
1497<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/table-of-contents-plus/front.min.js?ver=2411.1" id="toc-front-js"></script>
vendor: 1 bytes, line 1497
1497
1498<script src="https://blog.pagefault-limited.co.uk/wp-includes/js/comment-reply.min.js?ver=6.8.10" id="comment-reply-js" async data-wp-strategy="async"></script>
vendor: 1 bytes, line 1498
1498
1499<script src="https://blog.pagefault-limited.co.uk/wp-includes/js/jquery/jquery.query.js?ver=2.2.3" id="jquery-query-js"></script>
vendor: 1 bytes, line 1499
1499
1500<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/rdp-wiki-embed/pl/js/url.min.js?ver=1.0" id="jquery-url-js"></script>
vendor: 1 bytes, line 1500
1500
1501<script id="jquery-lazyloadxt-js-extra"> 1502var a3_lazyload_params = {"apply_images":"1","apply_videos":"1"}; 1503</script>
vendor: 1 bytes, line 1503
1503
1504<script src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extra.min.js?ver=2.7.3" id="jquery-lazyloadxt-js"></script>
vendor: 1 bytes, line 1504
1504
1505<script src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.srcset.min.js?ver=2.7.3" id="jquery-lazyloadxt-srcset-js"></script>
vendor: 1 bytes, line 1505
1505
1506<script id="jquery-lazyloadxt-extend-js-extra"> 1507var a3_lazyload_extend_params = {"edgeY":"0","horizontal_container_classnames":""}; 1508</script>
vendor: 1 bytes, line 1508
1508
1509<script src="//blog.pagefault-limited.co.uk/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extend.js?ver=2.7.3" id="jquery-lazyloadxt-extend-js"></script>
vendor: 1 bytes, line 1509
1509
1510<script src="https://blog.pagefault-limited.co.uk/wp-includes/js/dist/vendor/react.min.js?ver=18.3.1.1" id="react-js"></script>
vendor: 1 bytes, line 1510
1510
1511<script src="https://blog.pagefault-limited.co.uk/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1" id="react-dom-js"></script>
vendor: 1 bytes, line 1511
1511
1512<script id="pdfp-pdfposter-view-script-js-extra"> 1513var pdfp = {"dir":"https:\/\/blog.pagefault-limited.co.uk\/wp-content\/plugins\/pdf-poster\/","ajaxUrl":"https:\/\/blog.pagefault-limited.co.uk\/wp-admin\/admin-ajax.php","adobeClientKey":"","isPipe":""}; 1514</script>
vendor: 1 bytes, line 1514
1514
1515<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/pdf-poster/build/blocks/pdf-poster/view.js?ver=11336af48f4e7675a9f8" id="pdfp-pdfposter-view-script-js" defer data-wp-strategy="defer"></script>
vendor: 1 bytes, line 1515
1515
1516<script id="pdfp-public-js-extra"> 1517var pdfp = {"dir":"https:\/\/blog.pagefault-limited.co.uk\/wp-content\/plugins\/pdf-poster\/","ajaxUrl":"https:\/\/blog.pagefault-limited.co.uk\/wp-admin\/admin-ajax.php","adobeClientKey":"","isPipe":""}; 1518</script>
vendor: 1 bytes, line 1518
1518
1519<script src="https://blog.pagefault-limited.co.uk/wp-content/plugins/pdf-poster/build/public.js?ver=2.2.3" id="pdfp-public-js"></script>
vendor: 1 bytes, line 1519
1519
1520<script src='https://documentcloud.adobe.com/view-sdk/viewer.js'></script>
1520 <style> 1521 </style> 1522 1523 1524 </body> 1525</html>
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.