<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.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/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/12393/high-frequency-pwm-shifts-phase-when-radio-is-active</link><description>When setting up a 1Mhz square wave using NRF_PWM on the NRF52 or GPIOTE on the NRF51 while BLE is advertising, the PWM stops when the radio is active. The problem doesn&amp;#39;t happen when the frequency is below 6khz. No PWM interrupt is enabled. Is this an</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 07 Jun 2016 18:44:27 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/12393/high-frequency-pwm-shifts-phase-when-radio-is-active" /><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46859?ContentTypeID=1</link><pubDate>Tue, 07 Jun 2016 18:44:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:47f373d0-0bb8-4723-86d5-1c78db4a2d54</guid><dc:creator>WestCoastDaz</dc:creator><description>&lt;p&gt;Your June 6th update initializes the SoftDevice with the LF RC clock.  Have you tried using the 32kHz LF crystal?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46864?ContentTypeID=1</link><pubDate>Sat, 04 Jun 2016 00:39:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5c938b86-61c3-4020-bbaa-617b0fc2f655</guid><dc:creator>grow mane</dc:creator><description>&lt;p&gt;sd_clock_hfclk_request didn&amp;#39;t do anything for me.  Looks like the clock can be configured once during startup, using SOFTDEVICE_HANDLER_INIT to use the hfclk to synthesize the 32khz clock, but any attempt to change the clock later does nothing or crashes it.  This eliminates the clock instability, but uses 1mA which is too high without a way to disable it at runtime.&lt;/p&gt;
&lt;p&gt;Visualizing the artifact requires an oscilloscope sampling below 100 ksamples/sec &amp;amp; an 800khz square wave synthesized by PWM.  There hasn&amp;#39;t been a directly observable change in frequency, only a DC alias.  The workaround has been only doing time sensitive operations when the radio is inactive, but this makes it really slow.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46863?ContentTypeID=1</link><pubDate>Fri, 03 Jun 2016 14:06:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ee60841-3bf1-43fe-b665-be7174e246a0</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;I am not able to reproduce it here yet, tried on several boards, but no glitch in the PWM.&lt;/p&gt;
&lt;p&gt;Starting the crstyal with sd_clock_hfclk_request() will be the current workaround, there are no drawbacks with doing this other than an increase in current consumption, see &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.0/clock.html?cp=2_2_0_17_3#unique_546752409"&gt;here&lt;/a&gt;. Running from the crystal will also get higher accuracy (20 ppm crystal on DK vs 1.5% typical for internal oscillator). I will update when I have been able to reproduce this and know more.&lt;/p&gt;
&lt;p&gt;Could you attach a higher resolution picture showing the artifacts more closely so I can see the timing and such (upload the file to the answer)? You are using nRF52 DK? Which version or which version of the chip?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46862?ContentTypeID=1</link><pubDate>Fri, 03 Jun 2016 09:56:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0a8eb1c9-ce64-4a83-83cf-dd21307a5eb2</guid><dc:creator>TeleToby</dc:creator><description>&lt;p&gt;I call the function before I do ble_advertising_start(). I just tested this to see if the artifact disappared in my pwm output (I&amp;#39;m playing a 38khz sine), and it did.&lt;/p&gt;
&lt;p&gt;This was just for test purposes, so I never release the HFCLK after that.&lt;/p&gt;
&lt;p&gt;Whether this a solution or just a workaround I&amp;#39;ll let the Nordic folks answer :)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; uint32_t p_is_running = 0;
	sd_clock_hfclk_request();
	while(! p_is_running) {  							//wait for the hfclk to be available
		sd_clock_hfclk_is_running((&amp;amp;p_is_running));
	}

    err_code = ble_advertising_start(BLE_ADV_MODE_FAST);
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46861?ContentTypeID=1</link><pubDate>Fri, 03 Jun 2016 09:40:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:533e5f05-9fef-4474-a0f0-ba29f45c5a34</guid><dc:creator>Luis</dc:creator><description>&lt;p&gt;Did you solve it then? Using that function? Where did you place it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46860?ContentTypeID=1</link><pubDate>Fri, 03 Jun 2016 09:17:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7b9a5706-6cd5-436f-8e01-8b47fdc42235</guid><dc:creator>TeleToby</dc:creator><description>&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/TEK0001.BMP" alt="image description" /&gt;
&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/TEK0000.BMP" alt="image description" /&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m also experiencing this on my nrf52.
I can see the advertising events causing the artifacts in the pwm output.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Advertising interval = 125x 0.625 ms = 78 ms&lt;/li&gt;
&lt;li&gt;Advertising interval = 250 x 0.625 ms = 156 ms&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This might be caused by the BLE-event requesting a clock change from RC to XTAL.&lt;/p&gt;
&lt;p&gt;sd_clock_hfclk_request() did the trick in my case.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46858?ContentTypeID=1</link><pubDate>Thu, 10 Mar 2016 14:37:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e5b67069-af8d-4812-8cf7-c705d8c6e0bb</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;how large is the phase shift?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46857?ContentTypeID=1</link><pubDate>Wed, 09 Mar 2016 18:33:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:37dd0d99-b3ab-4355-a860-711b23a5eff5</guid><dc:creator>grow mane</dc:creator><description>&lt;p&gt;Setting the old Rigol to &amp;quot;long memory&amp;quot; mode got the sample rate up to 20 Megsamples, which revealed there may still be a phase shift when the radio turns on, but it&amp;#39;s small enough to be within spec.  The spec probably isn&amp;#39;t stable enough to drive a high precision LCR meter.&lt;/p&gt;
&lt;p&gt;June 6 update:&lt;/p&gt;
&lt;p&gt;It&amp;#39;s a clock frequency shift that happens when the NRF switches between the 32khz &amp;amp; 16Mhz crystals.  The 32khz is 1% faster.  This can be reproduced by initializing a program with&lt;/p&gt;
&lt;p&gt;SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL);&lt;/p&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;p&gt;SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, NULL);&lt;/p&gt;
&lt;p&gt;Toggling a GPIO &amp;amp; viewing the frequency on a frequency counter.  Unfortunately, the nrf_drv_clock_hfclk_request doesn&amp;#39;t do anything after advertising is enabled, the current usage is too high to have it always on, so a clock that jitters 1% is what you get if you want to use the radio.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46851?ContentTypeID=1</link><pubDate>Wed, 09 Mar 2016 10:11:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:da6c104a-5619-45c8-b701-55a995121117</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;Tested the NRF_PWM code on PCA10040 v1.0.1 with ble_app_template example and it works like it should. I would rather believe there is something wrong with the measurement tools. A logic analyzer with a  higher sampling rate would be more fitting here as endnode says.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46850?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2016 21:43:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b121290b-0137-42ce-94d5-8ac4b51e6dd2</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Well as PWM is basically digital interface could you use some fast digital analyzer e.g. Saleae Logic PRO? They are cheap (usually available at each bigger lab) and they can sample at &amp;gt;8MHz frequency for longer time (I routinely use Saleae Logic PRO at 50MHz to capture &amp;gt;5min sequences). You should then see where and how PWM output is corrupted. I&amp;#39;d still say that your &amp;quot;bare metal&amp;quot; example (writing directly to the registers) above isn&amp;#39;t enough. PWM on nRF52 is able to &amp;quot;play&amp;quot; set of values in the loop thanks to the &amp;quot;decoder&amp;quot; and 2 &amp;quot;sequence&amp;quot; buffers but I don&amp;#39;t see it used in your code (which is probably compatible with nRF51?). I&amp;#39;d suggest to look on nRF52 specific driver as suggested in my answer.&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46849?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2016 19:43:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2bb9ece5-7561-48cd-9a8c-554585e0daeb</guid><dc:creator>grow mane</dc:creator><description>&lt;p&gt;Looks like the PWM isn&amp;#39;t dropping out but shifting in phase when the radio is active.  The oscilloscope is sampling at 100khz, showing only an alias of the 1Mhz waveform.  The phase shift nulls the alias.  The phase shift could still be affecting our gadget, but it&amp;#39;s hard to get a high enough samplerate yet capture a long enough waveform to see it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46856?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2016 18:51:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d1d39346-20e7-45df-9bb3-4052c07361d1</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Sorry I need to be more specific: I can imagine that you will have problems with some PWM playback configurations (e.g. having some &amp;quot;silent&amp;quot; windows like you show on screenshot above) on nRF51 when extensive BLE activity happens. Guys from Nordic could suggest the most optimal way of using PPI, TIMER and GPIOTE to achieve your goal but this is out of my scope. However on nRF52 with its specific driver (which is using PWM peripheral existing only on nRF52 not nRF51) you can make it work easily through nrf_drv_pwm in the latest SDK. At least this is what I see on my demo project.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46855?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2016 18:43:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:78576f39-8b3e-4798-8aeb-f3ce95899759</guid><dc:creator>grow mane</dc:creator><description>&lt;p&gt;The problem refers to the output waveform&amp;#39;s frequency, not the frequency at which the PWM clock is being driven.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46848?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2016 18:41:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ac4e2320-b7bc-42ba-9a0e-72183a73e5bd</guid><dc:creator>grow mane</dc:creator><description>&lt;p&gt;These 3 methods show the same artifact:&lt;/p&gt;
&lt;p&gt;Using NRF_PWM:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;NRF_PWM0-&amp;gt;ENABLE = (PWM_ENABLE_ENABLE_Enabled &amp;lt;&amp;lt; PWM_ENABLE_ENABLE_Pos);
NRF_PWM0-&amp;gt;PRESCALER = NRF_PWM_CLK_16MHz;
NRF_PWM0-&amp;gt;MODE = NRF_PWM_MODE_UP;
NRF_PWM0-&amp;gt;COUNTERTOP = 20;
NRF_PWM0-&amp;gt;PSEL.OUT[0] = CLK_PIN;
for(i = 1; i &amp;lt; NRF_PWM_CHANNEL_COUNT; i++)
{
	NRF_PWM0-&amp;gt;PSEL.OUT[i] = NRF_PWM_PIN_NOT_CONNECTED;
}
NRF_PWM0-&amp;gt;DECODER = ((uint32_t)NRF_PWM_LOAD_INDIVIDUAL &amp;lt;&amp;lt; PWM_DECODER_LOAD_Pos) |
	((uint32_t)NRF_PWM_STEP_AUTO &amp;lt;&amp;lt; PWM_DECODER_MODE_Pos);
NRF_PWM0-&amp;gt;SHORTS = 0;
NRF_PWM0-&amp;gt;INTEN = 0;
static nrf_pwm_values_individual_t duty_cycles = 
{
	.channel_0 = 10,
	.channel_1 = 10,
	.channel_2 = 10,
	.channel_3 = 10,
};

NRF_PWM0-&amp;gt;SEQ[0].PTR = (uint32_t)&amp;amp;duty_cycles;
NRF_PWM0-&amp;gt;SEQ[0].CNT = NRF_PWM_VALUES_LENGTH(duty_cycles);
NRF_PWM0-&amp;gt;SEQ[0].REFRESH = 0;
NRF_PWM0-&amp;gt;SEQ[0].ENDDELAY = 0;
NRF_PWM0-&amp;gt;TASKS_SEQSTART[0] = 1;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using GPIOTE:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;	NRF_GPIOTE-&amp;gt;CONFIG[OSC_GPIOTE] = (GPIOTE_CONFIG_POLARITY_Toggle &amp;lt;&amp;lt; GPIOTE_CONFIG_POLARITY_Pos) |
		(CLK_PIN &amp;lt;&amp;lt; GPIOTE_CONFIG_PSEL_Pos) |
		(GPIOTE_CONFIG_MODE_Task &amp;lt;&amp;lt; GPIOTE_CONFIG_MODE_Pos);

// Start the timer.
    OSC_TIMER-&amp;gt;MODE      = TIMER_MODE_MODE_Timer;
    OSC_TIMER-&amp;gt;BITMODE   = TIMER_BITMODE_BITMODE_08Bit &amp;lt;&amp;lt; TIMER_BITMODE_BITMODE_Pos;
    OSC_TIMER-&amp;gt;PRESCALER = 0;

    // Clears the timer, sets it to 0.
    OSC_TIMER-&amp;gt;TASKS_CLEAR = 1;

	OSC_TIMER-&amp;gt;CC[0] = 4;
	OSC_TIMER-&amp;gt;CC[1] = 8;

	OSC_TIMER-&amp;gt;TASKS_START = 1;

// This PPI channel toggles CLK_PIN on every TIMER2 COMPARE[0] match.

    NRF_PPI-&amp;gt;CH[PPI_CHANNEL0].EEP = (uint32_t)&amp;amp;OSC_TIMER-&amp;gt;EVENTS_COMPARE[0];
    NRF_PPI-&amp;gt;CH[PPI_CHANNEL0].TEP = (uint32_t)&amp;amp;NRF_GPIOTE-&amp;gt;TASKS_OUT[OSC_GPIOTE];

// this PPI channel clears the timer
    NRF_PPI-&amp;gt;CH[PPI_CHANNEL1].EEP = (uint32_t)&amp;amp;OSC_TIMER-&amp;gt;EVENTS_COMPARE[1];

    NRF_PPI-&amp;gt;CH[PPI_CHANNEL1].TEP = (uint32_t)nrf_timer_task_address_get(OSC_TIMER, NRF_TIMER_TASK_CLEAR);

    // Enable PPI channels
	NRF_PPI-&amp;gt;CHENSET = (1 &amp;lt;&amp;lt; PPI_CHANNEL0);
	NRF_PPI-&amp;gt;CHENSET = (1 &amp;lt;&amp;lt; PPI_CHANNEL1);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using a while loop:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;while(1)
{
nrf_gpio_pin_toggle(CLK_PIN);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While Nordic has gone through several SDK revisions with different APIs, we haven&amp;#39;t had time to port to every new API in search of a solution.  They all seem to use the same hardware.  There is a workaround  by scheduling activity around the downtimes, but ideally the PWM would always work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46847?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2016 10:11:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f51cfd0e-ca4b-4cae-9d37-29d267c72c44</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;The PWM should not be affected by the SD, neither the app_pwm library nor the nrf_pwm driver. Can you upload code that will produce the problem? What kind of hardware are you using?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46853?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2016 10:09:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5f179846-4c91-463b-8d7d-29480e1b726b</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;Only certain registers are restricted or blocked by the SoftDevice and should not be accessed directly, see &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.sds.v0.5/dita/softdevices/s130/sd_resource_reqs/hw_block_interrupt_vector.html?cp=1_3_0_0_10_2"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46854?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2016 05:13:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:973c176d-6524-4da2-bc06-3bee6ead050a</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Hi, are you using PWM peripheral with EasyDMA properly? I&amp;#39;m running 8-bit PWM at maximum frequency (16MHz) without any problems even during BLE connection, &lt;code&gt;nrf_drv_pwm&lt;/code&gt; driver seems to work well (see &lt;code&gt;nrf_drv_pwm_complex_playback&lt;/code&gt; function for how to set up 2-buffer swing). If you will be driving PWM &amp;quot;manually&amp;quot; by SW interrupts (e.g. by combination of timers and GPIO states) then you&amp;#39;ll obviously experience glitches due to higher interrupt priority of BLE stack (and that&amp;#39;s logical, you&amp;#39;ve purchased nRF52 because of radio, didn&amp;#39;t you;) Cheers Jan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High frequency PWM shifts phase when radio is active</title><link>https://devzone.nordicsemi.com/thread/46852?ContentTypeID=1</link><pubDate>Mon, 07 Mar 2016 23:48:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b4c4700f-a84a-4a2c-8abf-6d96a797694b</guid><dc:creator>Stanislav Silnitskiy</dc:creator><description>&lt;p&gt;Hi!
not sure, but looks like interference with softdevice (SD), which in fact doesn&amp;#39;t like when you manage hardware by ports directly. Although, if you run your code within Timelots, looks like something unavoidable, if SD still required for operation.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>