<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Blog - All Comments</title><link>/challenges-projects/project14/holidayspecial20/b/blog</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Victoria&amp;#39;s secret: A nervous Elf can lose his head</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/victoria-s-secret-a-nervous-elf-can-lose-his-head</link><pubDate>Fri, 21 Oct 2022 13:51:19 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:53dd155d-875b-4392-b4af-8b3dff05133c</guid><dc:creator>dougw</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Cool comical elf.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10697&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: A QT Py Christmas - add Sound</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/a-qt-py-christmas---add-sound</link><pubDate>Mon, 18 Jul 2022 23:24:22 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:7ce9ce3a-56b1-40f1-b3ad-0f11c837d6a3</guid><dc:creator>sobellinni</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;/*&lt;br /&gt;I made my own sound driver&amp;nbsp; because the one in this blog does not&amp;nbsp; work&amp;nbsp; &lt;br /&gt;&lt;br /&gt;this sketch will play random files&amp;nbsp; labeled with&lt;/p&gt;
&lt;p&gt;numbers&amp;nbsp; */&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;Arduino.h&amp;gt;&lt;br /&gt;#include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;#include &amp;quot;SdFat.h&amp;quot;&lt;br /&gt;#include &amp;quot;Adafruit_SPIFlash.h&amp;quot;&lt;br /&gt;#include &amp;quot;Adafruit_ZeroTimer.h&amp;quot;&lt;/p&gt;
&lt;p&gt;// Uncomment to run example with custom SPI and SS e.g with FRAM breakout&lt;br /&gt;// #define CUSTOM_CS A5&lt;br /&gt;// #define CUSTOM_SPI SPI&lt;/p&gt;
&lt;p&gt;#if defined(CUSTOM_CS) &amp;amp;&amp;amp; defined(CUSTOM_SPI)&lt;br /&gt; Adafruit_FlashTransport_SPI flashTransport(CUSTOM_CS, CUSTOM_SPI);&lt;/p&gt;
&lt;p&gt;#elif CONFIG_IDF_TARGET_ESP32S2&lt;br /&gt; // ESP32-S2 use same flash device that store code.&lt;br /&gt; // Therefore there is no need to specify the SPI and SS&lt;br /&gt; Adafruit_FlashTransport_ESP32 flashTransport;&lt;/p&gt;
&lt;p&gt;#else&lt;br /&gt; // On-board external flash (QSPI or SPI) macros should already&lt;br /&gt; // defined in your board variant if supported&lt;br /&gt; // - EXTERNAL_FLASH_USE_QSPI&lt;br /&gt; // - EXTERNAL_FLASH_USE_CS/EXTERNAL_FLASH_USE_SPI&lt;br /&gt; #if defined(EXTERNAL_FLASH_USE_QSPI)&lt;br /&gt; Adafruit_FlashTransport_QSPI flashTransport;&lt;/p&gt;
&lt;p&gt;#elif defined(EXTERNAL_FLASH_USE_SPI)&lt;br /&gt; Adafruit_FlashTransport_SPI flashTransport(EXTERNAL_FLASH_USE_CS, EXTERNAL_FLASH_USE_SPI);&lt;/p&gt;
&lt;p&gt;#else&lt;br /&gt; #error No QSPI/SPI flash are defined on your board variant.h !&lt;br /&gt; #endif&lt;br /&gt;#endif&lt;br /&gt;Adafruit_SPIFlash flash(&amp;amp;flashTransport);&lt;/p&gt;
&lt;p&gt;// file system object from SdFat&lt;br /&gt;FatFileSystem fatfs;&lt;br /&gt;File myFile;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;// This example can have just about any frequency for the callback&lt;br /&gt;// automatically calculated!&lt;br /&gt;float freq = 8000.0; // 8 KHz&lt;br /&gt;int phase = 0;&lt;br /&gt;int fnote = 0;&lt;br /&gt;int val =0;&lt;br /&gt;int writebufcounter = 0;&lt;br /&gt;int writebufpointer = 0;&lt;br /&gt;int readbufcounter = 0;&lt;br /&gt;int readbufpointer = 0;&lt;br /&gt;byte bval=0;&lt;br /&gt;byte fval=0;&lt;br /&gt;byte soundbuffer[2][256];&lt;br /&gt;bool bufferfull[2];&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;int soundbytes;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;int whichbuf =0;&lt;br /&gt;int filenumb;&lt;br /&gt;char filenumber[10];&lt;br /&gt;char filename[10];&lt;/p&gt;
&lt;p&gt;// timer tester&lt;br /&gt;Adafruit_ZeroTimer zerotimer = Adafruit_ZeroTimer(3);&lt;/p&gt;
&lt;p&gt;void TC3_Handler() {&lt;br /&gt; Adafruit_ZeroTimer::timerHandler(3);&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;// the timer callback&lt;/p&gt;
&lt;p&gt;void TimerCallback0(void){&lt;br /&gt; digitalWrite(9, LOW);&lt;br /&gt; //read buffer till all read and make it not full &lt;br /&gt; if (bufferfull[readbufpointer]==true){&lt;br /&gt; bval = soundbuffer[readbufpointer][readbufcounter];&lt;br /&gt; readbufcounter++;&lt;br /&gt; if (readbufcounter&amp;gt;255){&lt;br /&gt; &lt;br /&gt; bufferfull[readbufpointer] = false; //enable file to write &lt;br /&gt; if (readbufpointer==0) digitalWrite(6, LOW); &lt;br /&gt; if (readbufpointer==1) digitalWrite(7, LOW); &lt;br /&gt; &lt;br /&gt; readbufcounter = 0;&lt;br /&gt; readbufpointer = 1 &amp;amp; (readbufpointer ^1); // point to the other buffer &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; }&lt;br /&gt; else { &lt;br /&gt; bval = 0x80; &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; val = ((int)bval&amp;lt;&amp;lt;2)&amp;amp;0x3ff;&lt;br /&gt; analogWrite(0, val );&lt;/p&gt;
&lt;p&gt;digitalWrite(9, HIGH);&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;void play(const char *fname) {&lt;br /&gt;bufferfull[0]=false;&lt;br /&gt;bufferfull[1]=false; &lt;br /&gt;writebufpointer =0;&lt;br /&gt;readbufpointer =0; &lt;br /&gt;digitalWrite(8, HIGH);&lt;br /&gt;myFile = fatfs.open(fname);&lt;br /&gt;if (myFile) {&lt;br /&gt; Serial.println(fname);&lt;br /&gt; Serial.println(myFile.size());&lt;br /&gt; Serial.println(&amp;quot;b4readin&amp;quot;);&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;for(int i =0; i&amp;lt;44; i++)&lt;br /&gt; myFile.read(); // eliminate header&lt;br /&gt; Serial.println(&amp;quot;counted44&amp;quot;);&lt;br /&gt; &lt;br /&gt; while (soundbytes = myFile.available()) { // find out how may bytes are still available &lt;br /&gt; &lt;br /&gt; if (bufferfull[writebufpointer]==false){ //buffer available&lt;br /&gt; fval= myFile.read();&lt;br /&gt; //Serial.write(fval);&lt;br /&gt; soundbuffer[writebufpointer][writebufcounter] = fval; // fill sound buffer&lt;br /&gt; writebufcounter++;&lt;br /&gt; if (writebufcounter&amp;gt;255){&lt;br /&gt; bufferfull[writebufpointer] = true; //stop file to write &lt;br /&gt; if (writebufpointer==0) digitalWrite(6, HIGH); &lt;br /&gt; if (writebufpointer==1) digitalWrite(7, HIGH); &lt;br /&gt; writebufcounter = 0;&lt;br /&gt; writebufpointer = 1 &amp;amp; (writebufpointer ^1);; // point to the other buffer &lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // file is done reading, see if there is still a buffer to fill &lt;br /&gt; &lt;br /&gt; while (bufferfull[writebufpointer]=false){&lt;br /&gt; &lt;br /&gt; soundbuffer[writebufpointer][writebufcounter] = 0x80; // fill sound buffer with audio 0&lt;br /&gt; writebufcounter++;&lt;br /&gt; if (writebufcounter&amp;gt;255){&lt;br /&gt; bufferfull[writebufpointer] = true;&lt;br /&gt; if (writebufpointer==0) digitalWrite(6, HIGH); &lt;br /&gt; if (writebufpointer==1) digitalWrite(7, HIGH); &lt;br /&gt; writebufcounter = 0;&lt;br /&gt; }&lt;br /&gt; //DONE&lt;br /&gt;}&lt;br /&gt;digitalWrite(8, LOW);&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;void setup() {&lt;/p&gt;
&lt;p&gt;// Open serial communications and wait for port to open:&lt;br /&gt; Serial.begin(115200);&lt;br /&gt; while (!Serial) {&lt;br /&gt; delay(1); // wait for serial port to connect. Needed for native USB port only&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Serial.print(&amp;quot;Initializing Filesystem on external flash...&amp;quot;);&lt;br /&gt; &lt;br /&gt; // Init external flash&lt;br /&gt; flash.begin();&lt;br /&gt; &lt;br /&gt; // Open file system on the flash&lt;br /&gt; if ( !fatfs.begin(&amp;amp;flash) ) {&lt;br /&gt; Serial.println(&amp;quot;Error: filesystem is not existed. Please try SdFat_format example to make one.&amp;quot;);&lt;br /&gt; while(1) yield();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Serial.println(&amp;quot;initialization done.&amp;quot;);&lt;br /&gt; pinMode(6, OUTPUT);&lt;br /&gt; pinMode(7, OUTPUT);&lt;br /&gt; pinMode(8, OUTPUT);&lt;br /&gt; pinMode(9, OUTPUT);&lt;/p&gt;
&lt;p&gt;tc_clock_prescaler prescaler = TC_CLOCK_PRESCALER_DIV1;&lt;/p&gt;
&lt;p&gt;zerotimer.enable(false);&lt;br /&gt; zerotimer.configure(prescaler, // prescaler =1&lt;br /&gt; TC_COUNTER_SIZE_16BIT, // bit width of timer/counter&lt;br /&gt; TC_WAVE_GENERATION_MATCH_PWM // frequency or PWM mode&lt;br /&gt; );&lt;/p&gt;
&lt;p&gt;zerotimer.setCompare(0, 6000); // 48000000/8000 = 6000&lt;br /&gt; zerotimer.setCallback(true, TC_CALLBACK_CC_CHANNEL0, TimerCallback0);&lt;br /&gt; zerotimer.enable(true);&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;void loop() {&lt;/p&gt;
&lt;p&gt;filename[0]=0;&lt;br /&gt; filenumb = random(36);&lt;br /&gt; itoa(filenumb,filenumber,10);&lt;/p&gt;
&lt;p&gt;strcat(filename,filenumber); &lt;br /&gt;strcat(filename, &amp;quot;.wav&amp;quot;);&lt;/p&gt;
&lt;p&gt;&lt;br /&gt; &lt;br /&gt; Serial.println(filename);&lt;br /&gt; &lt;br /&gt; play(filename);&lt;br /&gt;delay(1000);&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10561&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: A QT Py Christmas - Failed to play audio from external Flash memory</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/a-qt-py-christmas---failed-to-play-audio-from-external-flash-memory</link><pubDate>Tue, 04 May 2021 19:03:43 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:c87bb94a-059d-4f2c-a628-552df0ad4c71</guid><dc:creator>sobellinni</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I tried for weeks to get any of the audio libraries for playing flash to work , so I finally wrote my own app &lt;br /&gt;&lt;br /&gt;this works &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;#include &amp;lt;Arduino.h&amp;gt;&lt;/p&gt;&lt;p&gt;#include &amp;lt;SPI.h&amp;gt;&lt;/p&gt;&lt;p&gt;#include &amp;quot;SdFat.h&amp;quot;&lt;/p&gt;&lt;p&gt;#include &amp;quot;Adafruit_SPIFlash.h&amp;quot;&lt;/p&gt;&lt;p&gt;#include &amp;quot;Adafruit_ZeroTimer.h&amp;quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;// Uncomment to run example with custom SPI and SS e.g with FRAM breakout&lt;/p&gt;&lt;p&gt;// #define CUSTOM_CS&amp;nbsp;&amp;nbsp; A5&lt;/p&gt;&lt;p&gt;// #define CUSTOM_SPI&amp;nbsp; SPI&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;#if defined(CUSTOM_CS) &amp;amp;&amp;amp; defined(CUSTOM_SPI)&lt;/p&gt;&lt;p&gt;&amp;nbsp; Adafruit_FlashTransport_SPI flashTransport(CUSTOM_CS, CUSTOM_SPI);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;#elif CONFIG_IDF_TARGET_ESP32S2&lt;/p&gt;&lt;p&gt;&amp;nbsp; // ESP32-S2 use same flash device that store code.&lt;/p&gt;&lt;p&gt;&amp;nbsp; // Therefore there is no need to specify the SPI and SS&lt;/p&gt;&lt;p&gt;&amp;nbsp; Adafruit_FlashTransport_ESP32 flashTransport;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;#else&lt;/p&gt;&lt;p&gt;&amp;nbsp; // On-board external flash (QSPI or SPI) macros should already&lt;/p&gt;&lt;p&gt;&amp;nbsp; // defined in your board variant if supported&lt;/p&gt;&lt;p&gt;&amp;nbsp; // - EXTERNAL_FLASH_USE_QSPI&lt;/p&gt;&lt;p&gt;&amp;nbsp; // - EXTERNAL_FLASH_USE_CS/EXTERNAL_FLASH_USE_SPI&lt;/p&gt;&lt;p&gt;&amp;nbsp; #if defined(EXTERNAL_FLASH_USE_QSPI)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Adafruit_FlashTransport_QSPI flashTransport;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; #elif defined(EXTERNAL_FLASH_USE_SPI)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Adafruit_FlashTransport_SPI flashTransport(EXTERNAL_FLASH_USE_CS, EXTERNAL_FLASH_USE_SPI);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; #else&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #error No QSPI/SPI flash are defined on your board variant.h !&lt;/p&gt;&lt;p&gt;&amp;nbsp; #endif&lt;/p&gt;&lt;p&gt;#endif&lt;/p&gt;&lt;p&gt;Adafruit_SPIFlash flash(&amp;amp;flashTransport);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;// file system object from SdFat&lt;/p&gt;&lt;p&gt;FatFileSystem fatfs;&lt;/p&gt;&lt;p&gt;File myFile;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;// This example can have just about any frequency for the callback&lt;/p&gt;&lt;p&gt;// automatically calculated!&lt;/p&gt;&lt;p&gt;float freq = 8000.0; // 8 KHz&lt;/p&gt;&lt;p&gt;int phase = 0;&lt;/p&gt;&lt;p&gt;int fnote&amp;nbsp; = 0;&lt;/p&gt;&lt;p&gt;int val =0;&lt;/p&gt;&lt;p&gt;int writebufcounter = 0;&lt;/p&gt;&lt;p&gt;int writebufpointer = 0;&lt;/p&gt;&lt;p&gt;int readbufcounter = 0;&lt;/p&gt;&lt;p&gt;int readbufpointer = 0;&lt;/p&gt;&lt;p&gt;byte bval=0;&lt;/p&gt;&lt;p&gt;byte fval=0;&lt;/p&gt;&lt;p&gt;byte soundbuffer[2][256];&lt;/p&gt;&lt;p&gt;bool bufferfull[2];&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;int soundbytes;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;int whichbuf =0;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;// timer tester&lt;/p&gt;&lt;p&gt;Adafruit_ZeroTimer zerotimer = Adafruit_ZeroTimer(3);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;void TC3_Handler() {&lt;/p&gt;&lt;p&gt;&amp;nbsp; Adafruit_ZeroTimer::timerHandler(3);&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;// the timer callback&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;void TimerCallback0(void){&lt;/p&gt;&lt;p&gt;digitalWrite(9, LOW);&lt;/p&gt;&lt;p&gt;&amp;nbsp; //read buffer till all read and make it not full &lt;/p&gt;&lt;p&gt;if (bufferfull[readbufpointer]==true){&lt;/p&gt;&lt;p&gt;&amp;nbsp; bval = soundbuffer[readbufpointer][readbufcounter];&lt;/p&gt;&lt;p&gt;&amp;nbsp; readbufcounter++;&lt;/p&gt;&lt;p&gt;&amp;nbsp; if (readbufcounter&amp;gt;255){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; bufferfull[readbufpointer] = false;&amp;nbsp; //enable file to write &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (readbufpointer==0)&amp;nbsp; digitalWrite(6, LOW); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (readbufpointer==1)&amp;nbsp; digitalWrite(7, LOW); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp; readbufcounter = 0;&lt;/p&gt;&lt;p&gt;&amp;nbsp; readbufpointer&amp;nbsp; = 1 &amp;amp; (readbufpointer ^1);&amp;nbsp; // point to the other buffer &lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; else { &lt;/p&gt;&lt;p&gt;&amp;nbsp; bval = 0x80; &lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; val = ((int)bval&amp;lt;&amp;lt;2)&amp;amp;0x3ff;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; analogWrite(0, val );&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; digitalWrite(9, HIGH);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;void play(const char *fname) {&lt;/p&gt;&lt;p&gt;bufferfull[0]=false;&lt;/p&gt;&lt;p&gt;bufferfull[1]=false;&amp;nbsp; &lt;/p&gt;&lt;p&gt;writebufpointer =0;&lt;/p&gt;&lt;p&gt;readbufpointer =0;&amp;nbsp; &lt;/p&gt;&lt;p&gt;digitalWrite(8, HIGH);&lt;/p&gt;&lt;p&gt;myFile = fatfs.open(fname);&lt;/p&gt;&lt;p&gt;if (myFile) {&lt;/p&gt;&lt;p&gt;Serial.println(fname);&lt;/p&gt;&lt;p&gt;Serial.println(myFile.size());&lt;/p&gt;&lt;p&gt;Serial.println(&amp;quot;b4readin&amp;quot;);&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;for(int i =0; i&amp;lt;44; i++)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFile.read();&amp;nbsp;&amp;nbsp; // eliminate header&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serial.println(&amp;quot;counted44&amp;quot;);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (soundbytes = myFile.available()) {&amp;nbsp; // find out how may bytes are still available &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bufferfull[writebufpointer]==false){&amp;nbsp;&amp;nbsp; //buffer available&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fval= myFile.read();&lt;/p&gt;&lt;p&gt;//Serial.write(fval);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; soundbuffer[writebufpointer][writebufcounter]&amp;nbsp; = fval;&amp;nbsp; // fill sound buffer&lt;/p&gt;&lt;p&gt;writebufcounter++;&lt;/p&gt;&lt;p&gt;if (writebufcounter&amp;gt;255){&lt;/p&gt;&lt;p&gt;&amp;nbsp; bufferfull[writebufpointer] = true;&amp;nbsp; //stop file to write &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (writebufpointer==0)&amp;nbsp; digitalWrite(6, HIGH); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (writebufpointer==1)&amp;nbsp; digitalWrite(7, HIGH); &lt;/p&gt;&lt;p&gt;&amp;nbsp; writebufcounter = 0;&lt;/p&gt;&lt;p&gt;&amp;nbsp; writebufpointer&amp;nbsp; = 1 &amp;amp; (writebufpointer ^1);;&amp;nbsp; // point to the other buffer &lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt; // file is done reading, see if there is still a buffer to fill&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; while (bufferfull[writebufpointer]=false){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;soundbuffer[writebufpointer][writebufcounter]&amp;nbsp; = 0x80;&amp;nbsp; // fill sound buffer&amp;nbsp; with audio 0&lt;/p&gt;&lt;p&gt;writebufcounter++;&lt;/p&gt;&lt;p&gt;if (writebufcounter&amp;gt;255){&lt;/p&gt;&lt;p&gt;bufferfull[writebufpointer] = true;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (writebufpointer==0)&amp;nbsp; digitalWrite(6, HIGH); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (writebufpointer==1)&amp;nbsp; digitalWrite(7, HIGH); &lt;/p&gt;&lt;p&gt;writebufcounter = 0;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;//DONE&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;digitalWrite(8, LOW);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;void setup() {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; // Open serial communications and wait for port to open:&lt;/p&gt;&lt;p&gt;&amp;nbsp; Serial.begin(115200);&lt;/p&gt;&lt;p&gt;&amp;nbsp; while (!Serial) {&lt;/p&gt;&lt;p&gt;&amp;nbsp; delay(1); // wait for serial port to connect. Needed for native USB port only&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serial.print(&amp;quot;Initializing Filesystem on external flash...&amp;quot;);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Init external flash&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; flash.begin();&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Open file system on the flash&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( !fatfs.begin(&amp;amp;flash) ) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serial.println(&amp;quot;Error: filesystem is not existed. Please try SdFat_format example to make one.&amp;quot;);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1) yield();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp; Serial.println(&amp;quot;initialization done.&amp;quot;);&lt;/p&gt;&lt;p&gt;&amp;nbsp; pinMode(6, OUTPUT);&lt;/p&gt;&lt;p&gt;&amp;nbsp; pinMode(7, OUTPUT);&lt;/p&gt;&lt;p&gt;&amp;nbsp; pinMode(8, OUTPUT);&lt;/p&gt;&lt;p&gt;&amp;nbsp; pinMode(9, OUTPUT);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; tc_clock_prescaler prescaler = TC_CLOCK_PRESCALER_DIV1;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; zerotimer.enable(false);&lt;/p&gt;&lt;p&gt;&amp;nbsp; zerotimer.configure(prescaler,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // prescaler =1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TC_COUNTER_SIZE_16BIT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bit width of timer/counter&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TC_WAVE_GENERATION_MATCH_PWM // frequency or PWM mode&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; zerotimer.setCompare(0, 1000);&amp;nbsp;&amp;nbsp; // 48000000/8000 = 6000&lt;/p&gt;&lt;p&gt;&amp;nbsp; zerotimer.setCallback(true, TC_CALLBACK_CC_CHANNEL0, TimerCallback0);&lt;/p&gt;&lt;p&gt;&amp;nbsp; zerotimer.enable(true);&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;void loop() {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;play(&amp;quot;0.wav&amp;quot;);&lt;/p&gt;&lt;p&gt;delay(1000);&lt;/p&gt;&lt;p&gt;play(&amp;quot;1.wav&amp;quot;);&lt;/p&gt;&lt;p&gt;delay(1000);&lt;/p&gt;&lt;p&gt;play(&amp;quot;2.wav&amp;quot;);&lt;/p&gt;&lt;p&gt;delay(1000);&lt;/p&gt;&lt;p&gt;play(&amp;quot;3.wav&amp;quot;);&lt;/p&gt;&lt;p&gt;delay(1000);&lt;/p&gt;&lt;p&gt;play(&amp;quot;4.wav&amp;quot;);&lt;/p&gt;&lt;p&gt;delay(1000);&lt;/p&gt;&lt;p&gt;play(&amp;quot;5.wav&amp;quot;);&lt;/p&gt;&lt;p&gt;delay(1000);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10639&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Musical Card With Gyro Control LED&amp;#39;s</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/musical-card-with-gyro-control-led-s</link><pubDate>Mon, 01 Feb 2021 18:08:19 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:887d0be6-61c4-4293-a717-f4e18b31143c</guid><dc:creator>seharfatima</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Nice and innovative project with good use of gyro sensor in greeting card .I will apply this concept in my future projects.&lt;/p&gt;&lt;p&gt;And all the best for the contest results(•‿•)&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10704&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Holiday Special 20: The Learning Stone</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/holiday-special-20-the-learning-stone</link><pubDate>Mon, 25 Jan 2021 11:03:30 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:514162f1-14e2-45bc-b4b4-990289b24b14</guid><dc:creator>cstanton</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Grogu &amp;lt;3&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10706&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Dog Shaped Arduinos. What could go wrong?</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/dog-shaped-arduinos-what-could-go-wrong</link><pubDate>Fri, 22 Jan 2021 04:00:54 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:99decf01-373c-4d51-a74f-ba9bdadae5b3</guid><dc:creator>hugohu</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span id="77b7d6ea_ab02_42dc_a889_68ce0c6c2988"&gt;&lt;span&gt;[View:https://players.brightcove.net/1362235890001/NkxiVJdjx_default/index.html?videoId=6225110940001:740:466]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Demo of corgi blinky, basically on for 6 seconds off for 0.3, says woof bark bark in serial console, etc&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10695&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Musical Card With Gyro Control LED&amp;#39;s</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/musical-card-with-gyro-control-led-s</link><pubDate>Thu, 21 Jan 2021 21:46:30 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:887d0be6-61c4-4293-a717-f4e18b31143c</guid><dc:creator>shabaz</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi Harji,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Interesting and well-documented project! It was interesting to see your results with the sound recorder board - I&amp;#39;ll have to order some of those sometime to experiment with them : )&lt;/p&gt;&lt;p&gt;Incidentally, the white board you&amp;#39;re using, doesn&amp;#39;t it generate a lot of static electricity? It looks like &amp;#39;expanded polystyrene&amp;#39;. If it does, be careful when you remove the electronics, in case it damages the Arduino.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10704&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Holiday Special 20: The Learning Stone</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/holiday-special-20-the-learning-stone</link><pubDate>Thu, 21 Jan 2021 21:35:49 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:514162f1-14e2-45bc-b4b4-990289b24b14</guid><dc:creator>shabaz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi John,&lt;/p&gt;&lt;p&gt;Nice reuse of a tablet with the Pi! And very cool that it can show the younglings that these computing devices have a lot of uses!&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10706&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Victoria&amp;#39;s secret: A nervous Elf can lose his head</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/victoria-s-secret-a-nervous-elf-can-lose-his-head</link><pubDate>Thu, 21 Jan 2021 20:23:31 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:53dd155d-875b-4392-b4af-8b3dff05133c</guid><dc:creator>shabaz</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi Gary,&lt;/p&gt;&lt;p&gt;I&amp;#39;m speechless, that is a cool elf. Was not expecting the head flying off!&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10697&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Dog Shaped Arduinos. What could go wrong?</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/dog-shaped-arduinos-what-could-go-wrong</link><pubDate>Thu, 21 Jan 2021 20:19:50 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:99decf01-373c-4d51-a74f-ba9bdadae5b3</guid><dc:creator>shabaz</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi Hugo,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I think you could sell these with some refinement, it looks really good!&lt;/p&gt;&lt;p&gt;Incidentally some of the smaller USB sockets are easy to hand-solder, if you ever wanted to shrink down to those. There are (for example) micro-USB sockets with through-hole pegs to hold then in the right place, so they don&amp;#39;t move around while soldering the surface-mount pins.&lt;/p&gt;&lt;p&gt;You should upload a video of the working board showing the blinking LED. From the larger photos, in close-up the soldering quality looks totally fine for prototypes. It&amp;#39;s unfortunate that two boards don&amp;#39;t work but it&amp;#39;s common to have a high number of failures until you&amp;#39;ve refined your processes. I still have large numbers of failures too, especially when I try to do something new like use a different reflow method or very unusual SMD package and so on.&lt;/p&gt;&lt;p&gt;I tried soldering a BGA-like radio module, it was pricey (about $20 each) and one in five initially worked : (&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10695&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Reach Out And Touch The World</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/reach-out-and-touch-the-world</link><pubDate>Thu, 21 Jan 2021 19:52:28 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:6cf7a7a2-6386-4b36-ba55-7eeaa94a1b5b</guid><dc:creator>shabaz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi Doug,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Great project : ) Very unique mixing such an engine with a spinner toy! The effect is very cool.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10377&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: The Christmas Forest</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/the-christmas-forest</link><pubDate>Thu, 21 Jan 2021 19:38:56 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4e3eea0c-5a8b-4dba-a635-b8547466cd41</guid><dc:creator>shabaz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi Frank,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For a minute I thought it was made from PCB but your 3D printer idea is much better.. safer, no sharp fibreglass points.&lt;/p&gt;&lt;p&gt;I can imagine your granddaughter had fun decorating the tree with the stickers too. The end result is really nice!&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10409&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: A QT Py Christmas - add Cap Sense Buttons</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/a-qt-py-christmas---add-cap-sense-buttons</link><pubDate>Thu, 21 Jan 2021 19:29:24 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:78e1bce5-f77e-4bd3-ab2e-cd55d0ca827e</guid><dc:creator>shabaz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi Ralph,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Great idea to use thumb tacks (or drawing pins as they are called here) as touch sensing plates : )&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10474&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Dog Shaped Arduinos. What could go wrong?</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/dog-shaped-arduinos-what-could-go-wrong</link><pubDate>Fri, 15 Jan 2021 20:36:29 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:99decf01-373c-4d51-a74f-ba9bdadae5b3</guid><dc:creator>DAB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Nice project.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;DAB&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10695&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Dog Shaped Arduinos. What could go wrong?</title><link>https://community.element14.com/challenges-projects/project14/holidayspecial20/b/blog/posts/dog-shaped-arduinos-what-could-go-wrong</link><pubDate>Fri, 15 Jan 2021 18:43:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:99decf01-373c-4d51-a74f-ba9bdadae5b3</guid><dc:creator>hugohu</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I would like to mention I am exceptionally pissed at the CH340 for changing from wchserial1430 to random wchserial[random 2 digit number].&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ugh.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10695&amp;AppID=278&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>