{"id":2559,"date":"2017-07-12T14:10:39","date_gmt":"2017-07-12T13:10:39","guid":{"rendered":"http:\/\/www.robertprice.co.uk\/robblog\/?p=2559"},"modified":"2017-07-12T14:12:42","modified_gmt":"2017-07-12T13:12:42","slug":"nodemcu-lua-setup-using-mac","status":"publish","type":"post","link":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/","title":{"rendered":"NodeMCU Lua setup using a Mac"},"content":{"rendered":"<p>I recently bought a <a href=\"http:\/\/nodemcu.com\/\">NodeMCU<\/a>. This is a small ESP8266 based card with built in WiFi, MicroUSB, and a <a href=\"https:\/\/www.lua.org\/\">Lua<\/a> interpreter that can be used for developing IoT (Internet of Things) devices.<\/p>\n<p>I had trouble getting it working initially, so I wanted to share how I fixed this on a Mac.<\/p>\n<h2>Install Mac drivers<\/h2>\n<p>If you&#8217;re not using a Mac, you can skip this part.<\/p>\n<p>You plug the NodeMCU into the Mac via USB. The Mac won&#8217;t support this by default, and you need to install a driver. The driver you need to install is the <a href=\"https:\/\/www.silabs.com\/products\/development-tools\/software\/usb-to-uart-bridge-vcp-drivers\">Silcon Labs CP210x USB to UART Bridge<\/a>.<\/p>\n<p>Once installed, plug in the NodeMCU and check that the device <code>\/dev\/tty.SLAB_USBtoUART<\/code> exists.<\/p>\n<p>To connect to the NodeMCU, you&#8217;ll need some tools. To test, download <a href=\"http:\/\/freeware.the-meiers.org\/\">CoolTerm<\/a>. In Options, for Port select SLAB_USBtoUART, and for Baudrate select 115200.<\/p>\n<p>If you are lucky you&#8217;ll get a prompt, if not you may need to build and install some new firmware.<\/p>\n<p>If you do get a prompt type&#8230;<\/p>\n<pre>\r\nprint \"Hello\";\r\n<\/pre>\n<p>&#8230; and Lua should echo &#8220;Hello&#8221; back to you.<\/p>\n<h2>Build and install the NodeMCU firmware<\/h2>\n<p>If you need to build new firmware, there is a very useful online site called <a href=\"https:\/\/nodemcu-build.com\/\">NodeMCU-Build.com<\/a> that I used to build the firmware with the right modules I wanted for my project.<\/p>\n<p>Once you&#8217;ve build the firmware, you&#8217;ll need to install the Python esptool.py to flash the firmware to the NodeMCU.<\/p>\n<pre>\r\ngit clone https:\/\/github.com\/themadinventor\/esptool.git\r\ncd esptool\r\nsudo python .\/setup.py install\r\n<\/pre>\n<p><a href=\"https:\/\/nodemcu.readthedocs.io\/en\/master\/en\/flash\/#determine-flash-size\">Check the flash size of your NodeMCU<\/a>.<\/p>\n<p>To flash the firmware hold down &#8220;FLASH&#8221; and press &#8220;RST&#8221; on the NodeMCU, then use the following command (remembering to disconnect CoolTerm first if connected)&#8230;<\/p>\n<pre>\r\nesptool.py --port \/dev\/tty.SLAB_USBtoUART write_flash -fm dio 0x00000 ~\/Downloads\/nodemcu-master-12-modules-2017-07-07-21-24-03-float.bin\r\n<\/pre>\n<p>As esptool.py runs, you should see something like this&#8230;<\/p>\n<pre>\r\nesptool.py v2.0.1\r\nConnecting........_\r\nDetecting chip type... ESP8266\r\nChip is ESP8266\r\nUploading stub...\r\nRunning stub...\r\nStub running...\r\nConfiguring flash size...\r\nAuto-detected Flash size: 4MB\r\nFlash params set to 0x0240\r\nCompressed 754992 bytes to 505060...\r\nWrote 754992 bytes (505060 compressed) at 0x00000000 in 44.5 seconds (effective 135.6 kbit\/s)...\r\nHash of data verified.\r\n\r\nLeaving...\r\nHard resetting...\r\n<\/pre>\n<p>Connect to it using CoolTerm, then press the &#8220;RST&#8221; button. You should see some messy characters, then something like following (depending on what you built into your firmware)&#8230;<\/p>\n<pre>\r\nNodeMCU custom build by frightanic.com\r\n.branch: master\r\n.commit: c8ac5cfb912ff206b03dd7c60ffbb2dafb83fe5e\r\n.SSL: true\r\n.modules: adc,bit,cron,crypto,encoder,file,gpio,http,i2c,net,node,ow,pcm,sjson,sntp,spi,struct,tmr,u8g,uart,websocket,wifi,tls\r\n build .built on: 2017-07-12 09:30\r\n powered by Lua 5.1.4 on SDK 2.1.0(116b762)\r\nlua: cannot open init.lua\r\n>\r\n<\/pre>\n<h2>Upload Lua code to the NodeMCU<\/h2>\n<p>The best way to get Lua code onto the NodeMCU is to use the Python <a href=\"https:\/\/github.com\/4refr0nt\/luatool\">luatool<\/a>.<\/p>\n<pre>\r\ngit clone https:\/\/github.com\/4refr0nt\/luatool\r\ncd luatool\r\n<\/pre>\n<p>To test we&#8217;ll upload a simple Lua script that will blink the NodeMCU&#8217;s onboard LED, save this as &#8220;blink.lua&#8221;.<\/p>\n<pre>\r\nLED_PIN = 0\r\n\r\ngpio.mode(LED_PIN, gpio.OUTPUT)\r\nvalue = true\r\n\r\ntmr.alarm(0, 500, 1, function ()\r\n    gpio.write(LED_PIN, value and gpio.HIGH or gpio.LOW)\r\n    value = not value\r\nend)\r\n<\/pre>\n<p>Upload it to the NodeMCU using the following command (making sure Coolterm is disconnected first)&#8230;<\/p>\n<pre>\r\npython luatool\/luatool.py --port \/dev\/tty.SLAB_USBtoUART --src blink.lua --dest init.lua --dofile\r\n<\/pre>\n<p>You should see the following&#8230;<\/p>\n<pre>\r\n->file.open(\"init.lua\", \"w\") -> ok\r\n->file.close() -> ok\r\n->file.remove(\"init.lua\") -> ok\r\n->file.open(\"init.lua\", \"w+\") -> ok\r\n->file.writeline([==[LED_PIN = 0]==]) -> ok\r\n->file.writeline([==[]==]) -> ok\r\n->file.writeline([==[gpio.mode(LED_PIN, gpio.OUTPUT)]==]) -> ok\r\n->file.writeline([==[value = true]==]) -> ok\r\n->file.writeline([==[]==]) -> ok\r\n->file.writeline([==[tmr.alarm(0, 500, 1, function ()]==]) -> ok\r\n->file.writeline([==[gpio.write(LED_PIN, value and gpio.HIGH or gpio.LOW)]==]) -> ok\r\n->file.writeline([==[value = not value]==]) -> ok\r\n->file.writeline([==[end)]==]) -> ok\r\n->file.flush() -> ok\r\n->file.close() -> ok\r\n->dofile(\"init.lua\") -> send without check\r\n--->>> All done <<<--\r\n<\/pre>\n<p>The onboard LED on the NodeMCU should now be blinking.<\/p>\n<p>The NodeMCU executes the init.lua script by default, so when we upload we tell luatool to upload our blink.lua script as init.lua.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I recently bought a NodeMCU. This is a small ESP8266 based card with built in WiFi, MicroUSB, and a Lua interpreter that can be used for developing IoT (Internet of Things) devices. I had trouble getting it working initially, so I wanted to share how I fixed this on a Mac. Install Mac drivers If &hellip; <a href=\"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;NodeMCU Lua setup using a Mac&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":2560,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[2,84],"tags":[86,92,91,53],"class_list":["post-2559","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","category-hardware","tag-led","tag-lua","tag-nodemcu","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>NodeMCU Lua setup using a Mac - Robert Price<\/title>\n<meta name=\"description\" content=\"We show how to setup a NodeMCU using a Mac. This article covers flashing the firmware, and uploading a sample Lua script to flash the onboard LED.\" \/>\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.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NodeMCU Lua setup using a Mac - Robert Price\" \/>\n<meta property=\"og:description\" content=\"We show how to setup a NodeMCU using a Mac. This article covers flashing the firmware, and uploading a sample Lua script to flash the onboard LED.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/\" \/>\n<meta property=\"og:site_name\" content=\"Robert Price\" \/>\n<meta property=\"article:published_time\" content=\"2017-07-12T13:10:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-07-12T13:12:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/nodemcu.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"rob\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"rob\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/\"},\"author\":{\"name\":\"rob\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#\\\/schema\\\/person\\\/fac6d5b076e0e14e1fb13e15b542a6c5\"},\"headline\":\"NodeMCU Lua setup using a Mac\",\"datePublished\":\"2017-07-12T13:10:39+00:00\",\"dateModified\":\"2017-07-12T13:12:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/\"},\"wordCount\":415,\"image\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/nodemcu.jpg\",\"keywords\":[\"LED\",\"Lua\",\"NodeMCU\",\"Python\"],\"articleSection\":[\"Dev\",\"Hardware\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/\",\"url\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/\",\"name\":\"NodeMCU Lua setup using a Mac - Robert Price\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/nodemcu.jpg\",\"datePublished\":\"2017-07-12T13:10:39+00:00\",\"dateModified\":\"2017-07-12T13:12:42+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#\\\/schema\\\/person\\\/fac6d5b076e0e14e1fb13e15b542a6c5\"},\"description\":\"We show how to setup a NodeMCU using a Mac. This article covers flashing the firmware, and uploading a sample Lua script to flash the onboard LED.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/nodemcu.jpg\",\"contentUrl\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/nodemcu.jpg\",\"width\":1200,\"height\":600,\"caption\":\"NodeMCU\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/nodemcu-lua-setup-using-mac\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"NodeMCU Lua setup using a Mac\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#website\",\"url\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/\",\"name\":\"Robert Price\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#\\\/schema\\\/person\\\/fac6d5b076e0e14e1fb13e15b542a6c5\",\"name\":\"rob\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g\",\"caption\":\"rob\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"NodeMCU Lua setup using a Mac - Robert Price","description":"We show how to setup a NodeMCU using a Mac. This article covers flashing the firmware, and uploading a sample Lua script to flash the onboard LED.","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.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/","og_locale":"en_GB","og_type":"article","og_title":"NodeMCU Lua setup using a Mac - Robert Price","og_description":"We show how to setup a NodeMCU using a Mac. This article covers flashing the firmware, and uploading a sample Lua script to flash the onboard LED.","og_url":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/","og_site_name":"Robert Price","article_published_time":"2017-07-12T13:10:39+00:00","article_modified_time":"2017-07-12T13:12:42+00:00","og_image":[{"width":1200,"height":600,"url":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/nodemcu.jpg","type":"image\/jpeg"}],"author":"rob","twitter_card":"summary_large_image","twitter_misc":{"Written by":"rob","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/#article","isPartOf":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/"},"author":{"name":"rob","@id":"https:\/\/www.robertprice.co.uk\/robblog\/#\/schema\/person\/fac6d5b076e0e14e1fb13e15b542a6c5"},"headline":"NodeMCU Lua setup using a Mac","datePublished":"2017-07-12T13:10:39+00:00","dateModified":"2017-07-12T13:12:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/"},"wordCount":415,"image":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/nodemcu.jpg","keywords":["LED","Lua","NodeMCU","Python"],"articleSection":["Dev","Hardware"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/","url":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/","name":"NodeMCU Lua setup using a Mac - Robert Price","isPartOf":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/#primaryimage"},"image":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/nodemcu.jpg","datePublished":"2017-07-12T13:10:39+00:00","dateModified":"2017-07-12T13:12:42+00:00","author":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/#\/schema\/person\/fac6d5b076e0e14e1fb13e15b542a6c5"},"description":"We show how to setup a NodeMCU using a Mac. This article covers flashing the firmware, and uploading a sample Lua script to flash the onboard LED.","breadcrumb":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/#primaryimage","url":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/nodemcu.jpg","contentUrl":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/nodemcu.jpg","width":1200,"height":600,"caption":"NodeMCU"},{"@type":"BreadcrumbList","@id":"https:\/\/www.robertprice.co.uk\/robblog\/nodemcu-lua-setup-using-mac\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.robertprice.co.uk\/robblog\/"},{"@type":"ListItem","position":2,"name":"NodeMCU Lua setup using a Mac"}]},{"@type":"WebSite","@id":"https:\/\/www.robertprice.co.uk\/robblog\/#website","url":"https:\/\/www.robertprice.co.uk\/robblog\/","name":"Robert Price","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.robertprice.co.uk\/robblog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.robertprice.co.uk\/robblog\/#\/schema\/person\/fac6d5b076e0e14e1fb13e15b542a6c5","name":"rob","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g","caption":"rob"}}]}},"_links":{"self":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts\/2559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/comments?post=2559"}],"version-history":[{"count":1,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts\/2559\/revisions"}],"predecessor-version":[{"id":2561,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts\/2559\/revisions\/2561"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/media\/2560"}],"wp:attachment":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/media?parent=2559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/categories?post=2559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/tags?post=2559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}