<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
<link rel="alternate" type="text/html" href="https://gamma.unpythonic.net/"/>

<title>Jeff Epler's blog</title>
<modified>2015-09-01T14:39:18Z</modified>
<tagline>Photos, electronics, cnc, and more</tagline>
<author><name>Jeff Epler</name><email>jepler@unpythonic.net</email></author>
<entry>
<title>DragonBoard™ 410c with rt-preempt failure</title>
<issued>2015-09-01T14:39:18Z</issued>
<modified>2015-09-01T14:39:18Z</modified>
<id>https://gamma.unpythonic.net/01441118358</id>
<link rel="alternate" type="text/html" href="https://gamma.unpythonic.net/01441118358"/>
<content type="text/html" mode="escaped">

&lt;div style=&quot;float:right;clear:right&quot;&gt;&lt;!-- linaro-01Sep2015-49.png--&gt;&lt;div class=albumouter style=width:306px id=&gt;&lt;div class=albumimage style=&quot;width:292px;margin-left:7.0px;&quot;&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01441118358/linaro-01Sep2015-49.png&quot; class=&quot;thickbox&quot; rel=&quot;album&quot; title=&quot;LinuxCNC latency test results on
DragonBoard&quot;&gt;&lt;img src=&quot;https://media.unpythonic.net/emergent-files/01441118358/linaro-01Sep2015-49-small.jpg&quot; width=286 height=300&gt;&lt;/a&gt;&lt;div &gt;&lt;div style=&quot;float: right&quot; &gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01441118358/linaro-01Sep2015-49.png&quot;&gt;&lt;img class=zoom src=&quot;https://media.unpythonic.net/emergent-files/default/zoom.png&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01441118358/linaro-01Sep2015-49.png&quot;&gt;LinuxCNC latency test results on
DragonBoard&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
I was excited to obtain a &lt;a href=&quot;https://www.96boards.org/products/ce/dragonboard410c/&quot;&gt;DragonBoard&lt;/a&gt;, an
affordable 64-bit ARM single-board computer, but unfortunately it hasn't lived
up to my hopes.

&lt;p&gt;First of all, it shipped with one terrible problem, making it useless for
headless development: &lt;a href=&quot;https://bugs.96boards.org/show_bug.cgi?id=66&quot;&gt;The onboard wireless doesn't receive multicast traffic, including ARP
requests&lt;/a&gt;!  And their kernel doesn't provide many modular drivers, so adding
any old USB wireless dongle doesn't work until you rebuild the kernel.  As
of this writing, there is no useful workaround.

&lt;p&gt;And that's when I hit the second show-stopper problem.  I planned to build
kernels for this thing anyway, because the goal is to run LinuxCNC on it
with rt-preempt realtime.  So I stuck in a large capacity micro-sd card,
obtained the kernel source, built it, and rebooted with my new kernel.

&lt;p&gt;(incidentally, testing kernels is a PITA.  You have two choices: one,
flash the one and only boot area with your new and untested kernel and
hope for the best; two, tether to a PC (losing USB keyboard and mouse on the
dragonboard!) and use fastboot every time you boot.  ugh)

&lt;p&gt;.. but the new kernel just didn't work.  It scrolled kernel messages,
but got stuck partway through booting.  dmesg implicated the wireless card.
This one at least has a workaround: &lt;a href=&quot;https://bugs.96boards.org/show_bug.cgi?id=80&quot;&gt;cherry-pick a certain commit from
their kernel git&lt;/a&gt;.  As I understand it, this bug is triggered by using the
compiler on the dragonboard, and not encountered with the linaro cross-compiler
running on a traditional x86 desktop.

&lt;p&gt;Anyway, having found out about this I was briefly celebratory.  I booted with
my own kernel and had a working USB dongle.  Unfortunately, that celebration
was short-lived.  The USB dongle hasn't been terribly reliable either,
particularly under high CPU load.

&lt;p&gt;I soldiered on and patched the linaro 4.0 kernel with the 4.0-rt5 patchset.
There were a few minor conflicts which I believe I resolved correctly.
Unfortunately, the LinuxCNC latency-test readily encounters latencies above
15ms (15000us).  LinuxCNC really would like sub-100us max latencies.

&lt;p&gt;I briefly enabled tracers, and have traces that seem to implicate a variety
of subsystems: networking, usb, and video *all* figure.  More experienced
developers than I will have to be the ones to sort out RT on 64-bit ARM.

&lt;p&gt;</content>
</entry>
<entry>
<title>ET-ARM Stamp</title>
<issued>2006-03-07T03:33:30Z</issued>
<modified>2006-03-07T03:33:30Z</modified>
<id>https://gamma.unpythonic.net/projects/01141702410</id>
<link rel="alternate" type="text/html" href="https://gamma.unpythonic.net/projects/01141702410"/>
<content type="text/html" mode="escaped">I recently got an &lt;a href=&quot;http://www.futurlec.com/ET-ARM_Stamp.shtml&quot;&gt;ET-ARM Stamp&lt;/a&gt; (a very wide
DIP-format board with an ARM microcontroller on board).  I haven't done
anything exciting with it yet, but I will as soon as I can think of something!
Some notes about the thing:</content>
</entry>
</feed>
