{"id":32969,"date":"2020-05-27T17:30:44","date_gmt":"2020-05-27T09:30:44","guid":{"rendered":"\/blog\/?p=32969"},"modified":"2020-06-02T16:51:30","modified_gmt":"2020-06-02T08:51:30","slug":"configure-pwm-output-on-jetson-nano-m","status":"publish","type":"post","link":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/","title":{"rendered":"How to use PWM on Jetson Nano"},"content":{"rendered":"\n<p>Recently, I want to use the PWM signal to control the speed of my DC motor with Jetson Nano. At first, I thought it would be simple, just like Raspberry Pi. After all, Nvidia said its 40-pin header is compatible with RPi. But then I checked on Nvidia&#8217;s developer forum. Bad news. According to Nvidia, if you want to use hardware PWM, you have to reconfigure the Pinmux. If you try to use soft PWM, we didn&#8217;t write the code.<\/p>\n\n\n\n<p>So I read multiple docs from Nvidia&#8217;s official website and other sources. Below are the docs I referred<\/p>\n\n\n\n<p>Reference article:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/developer.nvidia.com\/embedded\/dlc\/Jetson-Nano-40-Pin-Expansion-Header-1.2\" target=\"_blank\" rel=\"noreferrer noopener\">NVIDIA Jetson Nano Pinmux official documentation<\/a><\/li><li><a href=\"https:\/\/docs.nvidia.com\/jetson\/archives\/l4t-archived\/l4t-281\/index.html#page\/Tegra%20Linux%20Driver%20Package%20Development%20Guide\/l4t_pinmux.html\" target=\"_blank\" rel=\"noreferrer noopener\">NVIDIA Jetson TX2 Pinmux official documentation<\/a><\/li><li><a href=\"https:\/\/devtalk.nvidia.com\/default\/topic\/1055398\/jetson-nano\/how-to-use-the-jetson-nanos-pinmux-spreadsheet-\/\" target=\"_blank\" rel=\"noreferrer noopener\">NVIDIA Jetson Nano Official Q &amp; A<\/a><\/li><li><a href=\"https:\/\/developer.ridgerun.com\/wiki\/index.php?title=Jetson_Nano\/Development\/Building_the_Kernel_from_Source\" target=\"_blank\" rel=\"noreferrer noopener\">Jetson Nano kernel build tutorial<\/a><\/li><\/ul>\n\n\n\n<p>Now let&#8217;s start to make your Jetson Nano output PWM. But before it, I strongly suggest you just buy a <a href=\"https:\/\/www.seeedstudio.com\/Grove-16-Channel-PWM-Driver-PCA9685.html\">PWM driver<\/a>. It won&#8217;t cost much and it works well.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Export the <a href=\"https:\/\/developer.nvidia.com\/embedded\/dlc\/jetson-nano-pinmux-table\">DT file<\/a>.<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/nekodaemon.com\/images\/pasted-0.png\" alt=\"upload successful\" \/><figcaption>Jetson Nano 40-pin pinout<\/figcaption><\/figure>\n\n\n\n<p>According to Nvidia&#8217;s official instruction, Pin 33 is specified as  PWM output. But on the above pinout, 33 is configured as GPIO_PE6. Now what we need to do is reconfigure the Pinmux to set 33 as PWM.<\/p>\n\n\n\n<p>Open the <a href=\"https:\/\/developer.nvidia.com\/embedded\/dlc\/jetson-nano-pinmux-table\">DT file<\/a> we just downloaded. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1030\" height=\"470\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-27-at-16.38.03-1030x470.png\" alt=\"\" class=\"wp-image-32977\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-27-at-16.38.03-1030x470.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-27-at-16.38.03-300x137.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-27-at-16.38.03-768x350.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-27-at-16.38.03-1536x701.png 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-27-at-16.38.03-2048x934.png 2048w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-27-at-16.38.03-1024x467.png 1024w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><figcaption>DT file of Jetson Nano<\/figcaption><\/figure>\n\n\n\n<p>It&#8217;s quite easy to find <code>GPIO_PE6<\/code>. Now let&#8217;s change it to PWM.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1030\" height=\"590\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2020\/05\/image-87-1030x590.png\" alt=\"\" class=\"wp-image-32978\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-87-1030x590.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-87-300x172.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-87-768x440.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-87-1536x880.png 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-87-2048x1174.png 2048w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-87-1024x587.png 1024w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p>Then you&#8217;ll see this.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1030\" height=\"590\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2020\/05\/image-88-1030x590.png\" alt=\"\" class=\"wp-image-32979\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-88-1030x590.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-88-300x172.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-88-768x440.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-88-1536x880.png 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-88-2048x1174.png 2048w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-88-1024x587.png 1024w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p>Don&#8217;t worry. Just click OK. Then change <code>Input<\/code> to <code>Output<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1030\" height=\"590\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2020\/05\/image-89-1030x590.png\" alt=\"\" class=\"wp-image-32980\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-89-1030x590.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-89-300x172.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-89-768x440.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-89-1536x880.png 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-89-2048x1174.png 2048w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-89-1024x587.png 1024w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p>After that, click <code>Generate DT File<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1030\" height=\"590\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2020\/05\/image-90-1030x590.png\" alt=\"\" class=\"wp-image-32981\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-90-1030x590.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-90-300x172.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-90-768x440.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-90-1536x880.png 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-90-2048x1174.png 2048w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/05\/image-90-1024x587.png 1024w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p>When asked about the board name, &nbsp;<code>jetson-nano-sd<\/code> should be fine.<\/p>\n\n\n\n<p>Finally, save the Excel table as a&nbsp;<code>CSV UTF-8 (comma-delimited) (*.csv)<\/code>format, the file name is<code>jetson-nano-sd.csv<\/code><\/p>\n\n\n\n<p>We got three files, copy this file to your linux host system.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/nekodaemon.com\/images\/pasted-14.png\" alt=\"upload successful\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2-\u75af\u72c2\u4e0b\u8f7d\">2. Download the necessary tools<\/h2>\n\n\n\n<p>First, download the Jetson Nano development environment in SDK Manager.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/nekodaemon.com\/images\/pasted-8.png\" alt=\"upload successful\" \/><\/figure>\n\n\n\n<p>After everything&#8217;s done. Under path &nbsp;<code>~\/nvidia\/nvidia_sdk\/JetPack_4.2.1_Linux_GA_P3448\/Linux_for_Tegra<\/code>, you should see <code>source_sync.sh<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/nekodaemon.com\/images\/pasted-9.png\" alt=\"upload successful\" \/><\/figure>\n\n\n\n<p>Run the following command in the terminal to pull down the kernel code<br><\/p>\n\n\n\n<p><code>sudo apt install build-essential bc bzip2 xz-utils git-core vim-common .\/source_sync.sh<\/code><\/p>\n\n\n\n<p>When the script is running, the input tag is&nbsp;<code>tegra-l4t-r32.2.0<\/code>, the tag must be consistent with the version of other things<\/p>\n\n\n\n<p>Then we can download the <a rel=\"noreferrer noopener\" href=\"https:\/\/developer.nvidia.com\/embedded\/downloads\" target=\"_blank\">toolchain<\/a><\/p>\n\n\n\n<p>It is recommended to check Filter<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/nekodaemon.com\/images\/pasted-10.png\" alt=\"upload successful\" \/><\/figure>\n\n\n\n<p>Then download GCC Tool Chain for 64-bit BSP<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/nekodaemon.com\/images\/pasted-11.png\" alt=\"upload successful\" \/><\/figure>\n\n\n\n<p>Unzip the toolkit and remember the path<\/p>\n\n\n\n<p>For example, my path is<code>\/home\/eric\/bin\/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3-\u7f16\u8bd1Uboot\">3. Compile Uboot<\/h2>\n\n\n\n<p>Download the script on Linux<code>tegra-pinmux-scripts<\/code><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/NVIDIA\/tegra-pinmux-scripts\">https:\/\/github.com\/NVIDIA\/tegra-pinmux-scripts<\/a><\/p>\n\n\n\n<p>Create a csv folder under&nbsp;the&nbsp;directory <code>tegra-pinmux-scripts<\/code> and copy the csv file obtained before to it<\/p>\n\n\n\n<p><code>cd tegra-pinmux-scripts<br>mkdir csv<br>cp &lt;path-to-csv&gt;\/jetson-nano-sd.csv csv\/p3450-porg.csv<\/code><\/p>\n\n\n\n<p>Then execute the following command<\/p>\n\n\n\n<p><code>.\/csv-to-board.py p3450-porg<br>.\/board-to-uboot.py p3450-porg &gt; pinmux-config-p3450-porg.h<\/code><\/p>\n\n\n\n<p>Use <code>pinmux-config-p3450-porg.h<\/code> to overwrite the&nbsp;original file in <code>\/home\/tonny\/nvidia\/nvidia_sdk\/JetPack_4.2.1_Linux_GA_P3448\/Linux_for_Tegra\/sources\/u-boot\/board\/nvidia\/p3450-porg<\/code>.<\/p>\n\n\n\n<p>Then set the environment variables and import the relevant information of the tool chain.<\/p>\n\n\n\n<p><code>export CROSS_COMPILE=\/home\/tonny\/bin\/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu\/bin\/aarch64-linux-gnu-<\/code><\/p>\n\n\n\n<p>Install dtc<\/p>\n\n\n\n<p><code>apt-get install device-tree-compiler<\/code><\/p>\n\n\n\n<p>Return to the root directory of uboot&nbsp;<code>\/home\/tonny\/nvidia\/nvidia_sdk\/JetPack_4.2.1_Linux_GA_P3448\/Linux_for_Tegra\/sources\/u-boot<\/code>and compile uboot<\/p>\n\n\n\n<p><code>make distclean<br>make p3450-porg_defconfig<br>make<\/code><\/p>\n\n\n\n<p>Finally, import the newly compiled uboot into the L4T tree<\/p>\n\n\n\n<p><code>cp u-boot.bin ..\/..\/bootloader\/t210ref\/p3450-porg\/<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4-\u66f4\u65b0CBoot\">4. Update CBoot<\/h2>\n\n\n\n<p>First we have to check the device tree version of our Jetson Nano<\/p>\n\n\n\n<p>Run following commend on jetson nano<\/p>\n\n\n\n<p><code>cat \/proc\/device-tree\/nvidia,dtsfilename<\/code><\/p>\n\n\n\n<p>For example, my jetson nano is&nbsp;<code>tegra210-p3448-0000-p3449-0000-b00.dts<\/code>. This means I need to modify the b00 version of the file later. Some people may get the a02 version of the nano, and they should change the a02 version of the file<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/nekodaemon.com\/images\/pasted-15.png\" alt=\"upload successful\" \/><\/figure>\n\n\n\n<p>If the L4T version is 32.1, you need to refer to the&nbsp;<a href=\"https:\/\/developer.nvidia.com\/embedded\/dlc\/Jetson-Nano-40-Pin-Expansion-Header-1.2\" target=\"_blank\" rel=\"noreferrer noopener\">official documentation of NVIDIA Jetson Nano Pinmux to<\/a>&nbsp;update part of the source code<\/p>\n\n\n\n<p>Back to the Linux host, use the dtsi file generated by the previous Excel table to overwrite the file in the source code<\/p>\n\n\n\n<p><code>$ cd Linux_for_Tegra\/sources\/hardware\/nvidia\/platform\/t210\/porg\/kernel-dts\/porg-platforms\/ <\/code><\/p>\n\n\n\n<p><code>cp &lt;path-to-new-dt-files&gt;\/tegra210-jetson-nano-sd-pinmux.dtsi tegra210-porg-pinmux-p3448-0000-&lt;nano-dt-version&gt;.dtsi <\/code><\/p>\n\n\n\n<p><code>cp &lt;path-to-new-dt-files&gt;\/tegra210-jetson-nano-sd-gpio-default.dtsi tegra210-porg-gpio-p3448-0000-&lt;nano-dt-version&gt;.dtsi<br><\/code><\/p>\n\n\n\n<p>Enter the&nbsp;<code>Linux_for_Tegra\/sources\/kernel\/kernel-4.9\/<\/code>folder to build device tree image<\/p>\n\n\n\n<p><code>cd Linux_for_Tegra\/sources\/kernel\/kernel-4.9\/<br>make ARCH=arm64 tegra_defconfig <br>make ARCH=arm64 dtbs<\/code><\/p>\n\n\n\n<p>Finally, import the newly compiled device tree image into the L4T tree<\/p>\n\n\n\n<p><code>cp arch\/arm64\/boot\/dts\/tegra210-p3448-0000-p3449-0000-&lt;nano-dt-version&gt;.dtb ..\/..\/..\/kernel\/dtb\/<br><\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"5-\u5237\u673a\">5. Flash<\/h2>\n\n\n\n<p>Under&nbsp;<code>Linux_for_Tegra<\/code> folder run<\/p>\n\n\n\n<p><code>sudo .\/create-jetson-nano-sd-card-image.sh -o sd-blob.img -s &lt;sd_card_size&gt; -r &lt;nano-dt-revision&gt;<\/code><\/p>\n\n\n\n<p>The correspondence between nano-dt-revision and nano-dt-version is as follows<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"\"><thead><tr><th>DT-Ver<\/th><th>DT-Rev<\/th><\/tr><\/thead><tbody><tr><td>a01<\/td><td>100<\/td><\/tr><tr><td>A02<\/td><td>200<\/td><\/tr><tr><td>b00<\/td><td>300<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Here my sd card is 32g, dt-ver is b00, then I actually executed<\/p>\n\n\n\n<p><code>sudo .\/create-jetson-nano-sd-card-image.sh -o sd-blob.img -s 32G -r 300<\/code><\/p>\n\n\n\n<p>Next, enter the directory <code>Linux_for_Tegra\/bootloader\/signed<\/code>and&nbsp;copy the&nbsp;corresponding version<code>tegra210-p3448-0000-p3449-0000-&lt;nano-dt-version&gt;.dtb.encrypt<\/code>&nbsp;to jetson nano<\/p>\n\n\n\n<p>Then execute it on jetson nano<\/p>\n\n\n\n<p><code>sudo dd if = tegra210-p3448-0000-p3449-0000- &lt;nano-dt-version&gt; .dtb.encrypt of = \/ dev \/ disk \/ by-partlabel \/ DTB<\/code><\/p>\n\n\n\n<p>Of course, I personally recommend backing it up first, and rescue it in case of failure.<\/p>\n\n\n\n<p><code>sudo dd if = \/ dev \/ disk \/ by-part label \/ DTB or = backup.dtb.encrypt<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, I want to use the PWM signal to control the speed of my DC<\/p>\n","protected":false},"author":3485,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[1340,1825,1828],"class_list":["post-32969","post","type-post","status-publish","format-standard","hentry","category-news","tag-jetson-nano","tag-jetson-nano-developer-kit","tag-jetson-nano-nvidia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use PWM on Jetson Nano - Latest News from Seeed Studio<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use PWM on Jetson Nano - Latest News from Seeed Studio\" \/>\n<meta property=\"og:description\" content=\"Recently, I want to use the PWM signal to control the speed of my DC\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/\" \/>\n<meta property=\"og:site_name\" content=\"Latest News from Seeed Studio\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-27T09:30:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-02T08:51:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nekodaemon.com\/images\/pasted-0.png\" \/>\n<meta name=\"author\" content=\"ericyu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ericyu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/\",\"name\":\"How to use PWM on Jetson Nano - Latest News from Seeed Studio\",\"isPartOf\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/nekodaemon.com\/images\/pasted-0.png\",\"datePublished\":\"2020-05-27T09:30:44+00:00\",\"dateModified\":\"2020-06-02T08:51:30+00:00\",\"author\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/c1f0264a6ad9ba995b2367e06fd70ec9\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#primaryimage\",\"url\":\"https:\/\/nekodaemon.com\/images\/pasted-0.png\",\"contentUrl\":\"https:\/\/nekodaemon.com\/images\/pasted-0.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.seeedstudio.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use PWM on Jetson Nano\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/\",\"name\":\"Latest News from Seeed Studio\",\"description\":\"Emerging IoT, AI and Autonomous Applications on the Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/c1f0264a6ad9ba995b2367e06fd70ec9\",\"name\":\"ericyu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/eb22f677db332dc286108258a6b7f324?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/eb22f677db332dc286108258a6b7f324?s=96&r=g\",\"caption\":\"ericyu\"},\"url\":\"https:\/\/www.seeedstudio.com\/blog\/author\/ericyu\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to use PWM on Jetson Nano - Latest News from Seeed Studio","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/","og_locale":"en_US","og_type":"article","og_title":"How to use PWM on Jetson Nano - Latest News from Seeed Studio","og_description":"Recently, I want to use the PWM signal to control the speed of my DC","og_url":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/","og_site_name":"Latest News from Seeed Studio","article_published_time":"2020-05-27T09:30:44+00:00","article_modified_time":"2020-06-02T08:51:30+00:00","og_image":[{"url":"https:\/\/nekodaemon.com\/images\/pasted-0.png","type":"","width":"","height":""}],"author":"ericyu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"ericyu","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/","url":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/","name":"How to use PWM on Jetson Nano - Latest News from Seeed Studio","isPartOf":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#primaryimage"},"image":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#primaryimage"},"thumbnailUrl":"https:\/\/nekodaemon.com\/images\/pasted-0.png","datePublished":"2020-05-27T09:30:44+00:00","dateModified":"2020-06-02T08:51:30+00:00","author":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/c1f0264a6ad9ba995b2367e06fd70ec9"},"breadcrumb":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#primaryimage","url":"https:\/\/nekodaemon.com\/images\/pasted-0.png","contentUrl":"https:\/\/nekodaemon.com\/images\/pasted-0.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/05\/27\/configure-pwm-output-on-jetson-nano-m\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.seeedstudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use PWM on Jetson Nano"}]},{"@type":"WebSite","@id":"https:\/\/www.seeedstudio.com\/blog\/#website","url":"https:\/\/www.seeedstudio.com\/blog\/","name":"Latest News from Seeed Studio","description":"Emerging IoT, AI and Autonomous Applications on the Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/c1f0264a6ad9ba995b2367e06fd70ec9","name":"ericyu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/eb22f677db332dc286108258a6b7f324?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb22f677db332dc286108258a6b7f324?s=96&r=g","caption":"ericyu"},"url":"https:\/\/www.seeedstudio.com\/blog\/author\/ericyu\/"}]}},"modified_by":"ericyu","views":37454,"featured_image_urls":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":"","visody_icon":"","magazine-7-slider-full":"","magazine-7-slider-center":"","magazine-7-featured":"","magazine-7-medium":"","magazine-7-medium-square":""},"author_info":{"display_name":"ericyu","author_link":"https:\/\/www.seeedstudio.com\/blog\/author\/ericyu\/"},"category_info":"<a href=\"https:\/\/www.seeedstudio.com\/blog\/category\/news\/\" rel=\"category tag\">News<\/a>","tag_info":"News","comment_count":"0","_links":{"self":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/32969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/users\/3485"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=32969"}],"version-history":[{"count":3,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/32969\/revisions"}],"predecessor-version":[{"id":32991,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/32969\/revisions\/32991"}],"wp:attachment":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=32969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=32969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=32969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}