{"id":966,"date":"2012-10-08T23:35:14","date_gmt":"2012-10-08T12:35:14","guid":{"rendered":"http:\/\/www.madox.net\/blog\/?p=966"},"modified":"2013-02-24T08:52:02","modified_gmt":"2013-02-23T21:52:02","slug":"tl-wr703n-example-project-1-bitbltblade","status":"publish","type":"post","link":"http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/","title":{"rendered":"TL-WR703N Example Project 1 : BitBltBlade"},"content":{"rendered":"<figure id=\"attachment_1003\" aria-describedby=\"caption-attachment-1003\" style=\"width: 450px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/MG_8240.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1003\" title=\"Pacman!\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/MG_8240-450x300.jpg\" alt=\"Pacman!\" width=\"450\" height=\"300\" srcset=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/MG_8240-450x300.jpg 450w, http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/MG_8240-1024x682.jpg 1024w\" sizes=\"auto, (max-width: 450px) 85vw, 450px\" \/><\/a><figcaption id=\"caption-attachment-1003\" class=\"wp-caption-text\">Pacman!<\/figcaption><\/figure>\n<p>The BitBltBlade is a demonstration project using the <a href=\"http:\/\/www.madox.net\/blog\/projects\/tp-link-tl-wr703n\/\" target=\"_blank\">TP-Link TL-WR703N<\/a>\u00a0router and <a href=\"http:\/\/www.kean.com.au\/oshw\/WR703N\/\" target=\"_blank\">Kean&#8217;s Expander board<\/a>. \u00a0It interfaces with a strip of 24 RGB LED&#8217;s\u00a0for generating images superimposed on\u00a0backgrounds using long exposure photography. \u00a0It is basically a copy of <a href=\"https:\/\/sites.google.com\/site\/mechatronicsguy\/lightscythe\/\">Gavin&#8217;s Lightscythe<\/a> implemented using different hardware and software.<\/p>\n<p>Again this is not a comprehensive write-up, but a quick example of a TL-WR703N project [it took me 8 months to decide to make it, 1 week to actually make it, and 3 more months to decide to write about it OK! \u00a044 weeks of procrastination for 1 week of work so don&#8217;t expect too much!]. \u00a0Short write-ups for the <a href=\"http:\/\/www.youtube.com\/watch?v=ILpe1saMmnc\" target=\"_blank\">Cute Exterminator<\/a>\u00a0and using the router for remote USBIP will come this week.<\/p>\n<p>Project check list :<\/p>\n<ul>\n<li>Hack &#8211; Using a commercially available router &#8211; \u2713 Check!<\/li>\n<li>Cool &#8211; Kean&#8217;s expander board for customized hacking &#8211;\u00a0\u2713 Check!<\/li>\n<li>3D Printing &#8211; Large prints &#8211;\u00a0\u2713Check!<\/li>\n<li>Bling &#8211; FLASHING LIGHTS &#8211;\u00a0\u2713 Check!<\/li>\n<li>iPhone controlled &#8211; actually no, iPhone doesn&#8217;t have a file-system to be able to upload the images &#8211; iPhone fail<\/li>\n<li>Android controlled &#8211; Yay &#8211;\u00a0\u2713 Check!<\/li>\n<li>Looks like a lightsaber bonus &#8211;\u00a0\u2713 Check!<\/li>\n<\/ul>\n<figure id=\"attachment_1013\" aria-describedby=\"caption-attachment-1013\" style=\"width: 450px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/DSC09399.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1013\" title=\"Test fit of all components at the Sydney Hackerspace\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/DSC09399-450x299.jpg\" alt=\"Test fit of all components at the Sydney Hackerspace\" width=\"450\" height=\"299\" srcset=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/DSC09399-450x299.jpg 450w, http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/DSC09399-1024x681.jpg 1024w\" sizes=\"auto, (max-width: 450px) 85vw, 450px\" \/><\/a><figcaption id=\"caption-attachment-1013\" class=\"wp-caption-text\">Test fit of all components at the Sydney Hackerspace<\/figcaption><\/figure>\n<p><!--more--><\/p>\n<h2>Design Outline<\/h2>\n<p>The original idea was to have a 3-metre long light strip just to out-do Gavin, but in the end I decided on a demonstrator that is portable both in size and form factor. \u00a0A ~66cm length of light strip was used instead, which when mounted on a 1-metre long aluminium U-channel (~$3) created a sturdy &#8216;sword&#8217; or sabre like appearance. \u00a0The remaining length of the aluminium channel was designed as the handle, and casing for the various components such as the router and batteries etc was modelled up using 3D CAD software (<a href=\"http:\/\/www.alibre.com\/\" target=\"_blank\">Alibre<\/a>).<\/p>\n<p>The electronic components include :<\/p>\n<ul>\n<li>Brains &#8211; TP-Link TL-WR703N Router [eBay?] ~$20<\/li>\n<li>Interface &#8211; <a href=\"http:\/\/www.kean.com.au\/oshw\/WR703N\/\" target=\"_blank\">Kean&#8217;s WR703N Board<\/a> ~$20<\/li>\n<li>Output &#8211;\u00a0<a href=\"http:\/\/escrow.alibaba.com\/order\/productSnapShotDetail.htm?orderId=1009473095\" target=\"_blank\">WS2801 LED strip<\/a> ~$20\/m<\/li>\n<li>Battery &#8211; <a href=\"http:\/\/www.hobbyking.com\/hobbyking\/store\/uh_viewItem.asp?idProduct=14077\" target=\"_blank\">Zippy 6.6V 2500mA LiFePO4<\/a> ~$8.70<\/li>\n<li>Power Regulator &#8211; <a href=\"http:\/\/www.hobbyking.com\/hobbyking\/store\/uh_viewItem.asp?idProduct=15212\" target=\"_blank\">HobbyKing 3A \/ 5V UBEC<\/a>\u00a0~$3.70<\/li>\n<li>Camera Control &#8211; <a href=\"http:\/\/www.seeedstudio.com\/depot\/usb-infrared-toy-v2-p-831.html\" target=\"_blank\">IR Toy<\/a>\u00a0~19.50 [Which I&#8217;ve misplaced and didn&#8217;t end up fitting!]<\/li>\n<li>Extra USB Storage&#8230;<\/li>\n<\/ul>\n<div>The concept of operation is that the user would use their smartphone which can upload photos (aka almost everything except an iPhone) to connect to the router&#8217;s access point and access a web interface. \u00a0Using the web interface, the user can then select to upload a small picture or photo to the router which is then rescaled and converted into a format to be &#8216;displayed&#8217;. \u00a0The user can then set options such as timing between columns which affects how fast the display updates. \u00a0A secondary control mode is available for manual control of colours to be displayed, either for the entire strip or on a per-pixel basis. \u00a0This is really handy for using the device as a simple coloured light-source.<\/div>\n<div>\n<figure id=\"attachment_1018\" aria-describedby=\"caption-attachment-1018\" style=\"width: 270px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG0172_BURST002.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1018 \" title=\"Quirky use of the BBB at the hackerspace to side illuminate an acrylic panel\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG0172_BURST002-450x600.jpg\" alt=\"Quirky use of the BBB at the hackerspace to side illuminate an acrylic panel\" width=\"270\" height=\"360\" srcset=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG0172_BURST002-450x600.jpg 450w, http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG0172_BURST002-768x1024.jpg 768w\" sizes=\"auto, (max-width: 270px) 85vw, 270px\" \/><\/a><figcaption id=\"caption-attachment-1018\" class=\"wp-caption-text\">Quirky use of the BBB at the hackerspace to side illuminate an acrylic panel<\/figcaption><\/figure>\n<\/div>\n<h2>Basic Software<\/h2>\n<p>The WS2801 IC&#8217;s are designed to operate RGB LEDs and operate basically as a shift register using a minimum delay time to latch the results. \u00a0This allows for relatively an relatively simple interface using Kean&#8217;s Expander Board&#8217;s FTDI chip which has an onboard &#8216;MPSSE&#8217; module, a neat little serial interface.<\/p>\n<p>Whilst I could have used the on-board uhttpd and Lua to act as the web interface, I didn&#8217;t know how to go about parsing the various image formats I wanted to be able to upload. \u00a0In the end I decided on Python, and since Python is &#8216;rather large&#8217;, additional USB storage was needed to install it. \u00a0For the small additional cost (of the USB drive), the ease of using Python and its plethora of libraries was well worth it.<\/p>\n<p>All the required software packages are available either as part of the standard image, or as packages available for download from <a href=\"http:\/\/www.madox.net\/blog\/projects\/tp-link-tl-wr703n\/\" target=\"_blank\">here<\/a>.<\/p>\n<p>The additional software packages required are :-<\/p>\n<ul>\n<li><a href=\"http:\/\/www.pythonware.com\/products\/pil\/\" target=\"_blank\">The Python Imaging Library<\/a> is used for image rescaling and parsing. \u00a0Larger images resized to be 24 pixels high (number of LEDs) for display.<\/li>\n<li><a href=\"https:\/\/github.com\/vpelletier\/python-libusb1\" target=\"_blank\">pylibusb<\/a> is used to interface with the FTDI chip and its MPSSE module.<\/li>\n<li><a href=\"http:\/\/pyserial.sourceforge.net\/\" target=\"_blank\">pySerial<\/a> is used to communicate with the IR Toy to use as a camera remote [incomplete].<\/li>\n<\/ul>\n<p>The rest of the software is based on standard Python libraries such as &#8220;BaseHTTPServer&#8221;.<\/p>\n<p>As a reference, the software used on the functioning prototype consists of two files and is attached here :\u00a0<a href=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/bbbcontrol_2012-07-23.zip\">bbbcontrol_2012-07-23<\/a>.<\/p>\n<p>This requires the &#8216;standard&#8217; image with the above additional packages installed, the router to be configured to act as a WiFi hotspot and optionally &#8220;<em>\/etc\/config\/uhttpd<\/em>&#8221; edited to start LuCi on port 8080 [I preferred to have the web interface on standard port 80 so I didn&#8217;t have to keep typing it]. \u00a0To install, copy the two files onto say &#8220;<em>\/www<\/em>&#8221; and run &#8220;cd \/www;<em>python bbbcontrol.py &amp;<\/em>&#8221; on startup (you can do this in LuCi).<\/p>\n<p>Usage should be self explanatory \ud83d\ude42<\/p>\n<h2>Catches and Tricks<\/h2>\n<ul>\n<li>Just because the WS2801 datasheet has example RGB for the channels, doesn&#8217;t mean your light strip will be wired up the same way. \u00a0My strip had the Blue and Red channels &#8216;swapped&#8217;.<\/li>\n<li>In case you can&#8217;t figure it out, these are electrical connections from the LED strip to Kean&#8217;s Expander Board\n<pre>DO -&gt; (TDI\/DO) -&gt; ADBUS1 -&gt; RXI<\/pre>\n<pre>CLK -&gt; (TCK\/SK) -&gt; ADBUS0 -&gt; TXO<\/pre>\n<pre>GND -&gt; GND<\/pre>\n<\/li>\n<li>There&#8217;s also a trick for powering the router from Kean&#8217;s board [Use trick at own risk&#8230; wait we&#8217;re voiding warranties anyway&#8230;] &#8211; On the router, bridge the pads labelled R113. \u00a0On Kean&#8217;s board, bridge JMP2 all the way across. \u00a0You can now power the expansion board and router via a nice header on Kean&#8217;s board!<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div id='gallery-1' class='gallery galleryid-966 gallery-columns-4 gallery-size-thumbnail'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/screenshot_2012-10-09-01-14-43\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/Screenshot_2012-10-09-01-14-43-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Sample GUI in &#039;LoightSycthe&#039; Mode\" aria-describedby=\"gallery-1-1031\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1031'>\n\t\t\t\tSample GUI in &#8216;LoightSycthe&#8217; Mode\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/screenshot_2012-10-09-01-14-33\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/Screenshot_2012-10-09-01-14-33-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Sample GUI in &#039;Colour&#039; Mode\" aria-describedby=\"gallery-1-1032\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1032'>\n\t\t\t\tSample GUI in &#8216;Colour&#8217; Mode\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/imag1188\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG1188-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Initial test of the LED strip\" aria-describedby=\"gallery-1-1014\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1014'>\n\t\t\t\tInitial test of the LED strip\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/sony-dsc-46\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/DSC09001-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Initial test at home of the concept by waving it around\" aria-describedby=\"gallery-1-1015\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1015'>\n\t\t\t\tInitial test at home of the concept by waving it around\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/imag1246\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG1246-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Like printing Sim City...\" aria-describedby=\"gallery-1-1008\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1008'>\n\t\t\t\tLike printing Sim City&#8230;\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/imag1245\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG1245-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Testing a case design for the router + expander board\" aria-describedby=\"gallery-1-1006\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1006'>\n\t\t\t\tTesting a case design for the router + expander board\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/imag1247\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG1247-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Fitting of the expander board\" aria-describedby=\"gallery-1-1007\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1007'>\n\t\t\t\tFitting of the expander board\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/sony-dsc-45\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/DSC09399-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Test fit of all components at the Sydney Hackerspace\" aria-describedby=\"gallery-1-1013\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1013'>\n\t\t\t\tTest fit of all components at the Sydney Hackerspace\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/sony-dsc-44\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/DSC09401-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"It stands! Self supporting design FTW!\" aria-describedby=\"gallery-1-1012\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1012'>\n\t\t\t\tIt stands!  Self supporting design FTW!\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/sony-dsc-43\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/DSC09400-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Lighting it up at the Sydney Hackerspace\" aria-describedby=\"gallery-1-1011\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1011'>\n\t\t\t\tLighting it up at the Sydney Hackerspace\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/imag1277\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG1277-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Dodgy paint job... it was left out in the cold of Sydney&#039;s winter\" aria-describedby=\"gallery-1-1010\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1010'>\n\t\t\t\tDodgy paint job&#8230; it was left out in the cold of Sydney&#8217;s winter\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/imag1275\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG1275-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Kean&#039;s board all wired up &#039;neatly&#039;\" aria-describedby=\"gallery-1-1009\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1009'>\n\t\t\t\tKean&#8217;s board all wired up &#8216;neatly&#8217;\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/_mg_8241\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/MG_8241-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Welcome to CityRail...In joke...\" aria-describedby=\"gallery-1-1004\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1004'>\n\t\t\t\tWelcome to CityRail&#8230;In joke&#8230;\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/_mg_8240\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/MG_8240-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Pacman!\" aria-describedby=\"gallery-1-1003\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1003'>\n\t\t\t\tPacman!\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/_mg_8249a\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/MG_8249A-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Also handy for spanking naughty people\" aria-describedby=\"gallery-1-1005\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1005'>\n\t\t\t\tAlso handy for spanking naughty people\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/imag0170\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG0170-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Quirky use of the BBB at the hackerspace to side illuminate an acrylic panel\" aria-describedby=\"gallery-1-1019\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1019'>\n\t\t\t\tQuirky use of the BBB at the hackerspace to side illuminate an acrylic panel\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/imag0172_burst002\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.madox.net\/blog\/wp-content\/uploads\/2012\/10\/IMAG0172_BURST002-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Quirky use of the BBB at the hackerspace to side illuminate an acrylic panel\" aria-describedby=\"gallery-1-1018\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1018'>\n\t\t\t\tQuirky use of the BBB at the hackerspace to side illuminate an acrylic panel\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>The BitBltBlade is a demonstration project using the TP-Link TL-WR703N\u00a0router and Kean&#8217;s Expander board. \u00a0It interfaces with a strip of 24 RGB LED&#8217;s\u00a0for generating images superimposed on\u00a0backgrounds using long exposure photography. \u00a0It is basically a copy of Gavin&#8217;s Lightscythe implemented using different hardware and software. Again this is not a comprehensive write-up, but a quick &hellip; <a href=\"http:\/\/www.madox.net\/blog\/2012\/10\/08\/tl-wr703n-example-project-1-bitbltblade\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;TL-WR703N Example Project 1 : BitBltBlade&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[53],"class_list":["post-966","post","type-post","status-publish","format-standard","hentry","category-engineering","tag-tl-wr703n"],"_links":{"self":[{"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/posts\/966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/comments?post=966"}],"version-history":[{"count":12,"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/posts\/966\/revisions"}],"predecessor-version":[{"id":1028,"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/posts\/966\/revisions\/1028"}],"wp:attachment":[{"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/media?parent=966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/categories?post=966"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.madox.net\/blog\/wp-json\/wp\/v2\/tags?post=966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}