<?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://emergent.unpythonic.net/"/>

<title>Jeff Epler's blog</title>
<modified>2024-05-31T02:04:23Z</modified>
<tagline>Photos, electronics, cnc, and more</tagline>
<author><name>Jeff Epler</name><email>jepler@unpythonic.net</email></author>
<entry>
<title>Leaving my roles in LinuxCNC</title>
<issued>2024-05-31T02:04:23Z</issued>
<modified>2024-05-31T02:04:23Z</modified>
<id>https://emergent.unpythonic.net/01717121063</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/01717121063"/>
<content type="text/html" mode="escaped">

It's been a long time since I actively participated in this project and
I want to let you all know that I have begun to remove myself from roles
in various places including sourceforge &amp;amp; github. I'm in private
discussions to ensure this happens without disrupting the project.

&lt;p&gt;To the developers &amp;amp; community: Thank you so much for letting me play a
part in this project. It was an important chapter of my life (that
started around 20 years ago!) and I wish you all the best for the
future. I hope and trust you'll continue to take this project in good
directions. I wish you all the best.

&lt;p&gt;</content>
</entry>
<entry>
<title>Using Adafruit Macropad as LinuxCNC Control Pendant</title>
<issued>2021-08-18T19:03:43Z</issued>
<modified>2021-08-18T19:03:43Z</modified>
<id>https://emergent.unpythonic.net/01629313423</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/01629313423"/>
<content type="text/html" mode="escaped">
&lt;b&gt;Update, 2021-09-25&lt;/b&gt;: For compatibility with CircuitPython 7.0.0

&lt;p&gt;&lt;img src=&quot;https://media.unpythonic.net/emergent-files/01629313423/PXL_20210818_191419458.jpg&quot;&gt;


&lt;p&gt;&lt;br&gt;CircuitPython recently gained the power to have custom USB descriptors.
With these, we can define a USB HID device that will work with LinuxCNC's
hal_input.

&lt;p&gt;For instance, the &lt;a href=&quot;https://www.adafruit.com/product/5128&quot;&gt;Adafruit
Macropad&lt;/a&gt; has a (very coarse, just 20 detents/revolution) encoder, 12 keyswitch
positions, and an OLED screen.

&lt;p&gt;The two pieces of software below, when placed in the CIRCUITPY drive as boot.py
and code.py configure it for use with hal_input, using a halcmd line similar to
&lt;tt&gt;loadusr -W hal_input Macropad&lt;/tt&gt;.  I haven't actually done the
work of hooking it all the way up to Touchy yet, but it causes all the buttons
&amp;amp; the encoder to appear in &lt;tt&gt;halcmd show pin&lt;/tt&gt;.

&lt;p&gt;This is just the device I picked first; there's nothing to prevent you from
hooking up more exotic things like voltage/temperature monitors through added
CircuitPython code.  Addition of output reports for status indicators is left
for the motivated reader.</content>
</entry>
<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://emergent.unpythonic.net/01441118358</id>
<link rel="alternate" type="text/html" href="https://emergent.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>Debugging realtime components in UBC3</title>
<issued>2013-09-19T01:34:41Z</issued>
<modified>2013-09-19T01:34:41Z</modified>
<id>https://emergent.unpythonic.net/01379554481</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/01379554481"/>
<content type="text/html" mode="escaped">Here's how to run the debugger on realtime code in the &amp;quot;unified-build-candidate3&amp;quot; branch from linuxcnc.org.  This assumes you are using a run-in-place tree with a userspace realtime model, and that you understand the basics of gdb.</content>
</entry>
<entry>
<title>Rotary Delta Kinematics</title>
<issued>2013-07-16T16:32:45Z</issued>
<modified>2013-07-16T16:32:45Z</modified>
<id>https://emergent.unpythonic.net/01373992365</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/01373992365"/>
<content type="text/html" mode="escaped">

&lt;div style=&quot;float:right;clear:right&quot;&gt;&lt;!-- rotarydeltakins.png--&gt;&lt;div class=albumouter style=width:306px id=&gt;&lt;div class=albumimage style=&quot;width:289px;margin-left:8.5px;&quot;&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01373992365/rotarydeltakins-medium.png&quot; class=&quot;thickbox&quot; rel=&quot;album&quot; title=&quot;Rotary Delta Kinematics
Visualization&quot;&gt;&lt;img src=&quot;https://media.unpythonic.net/emergent-files/01373992365/rotarydeltakins-small.png&quot; width=283 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/01373992365/rotarydeltakins-medium.png&quot;&gt;(M)&lt;/a&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01373992365/rotarydeltakins.png&quot;&gt;(L)&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01373992365/rotarydeltakins.png&quot;&gt;Rotary Delta Kinematics
Visualization&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
Together with &lt;a href=&quot;http://timeguy.com&quot;&gt;Chris Radek&lt;/a&gt;, I've been
working on a visualization for his Rotary Delta Kinematics.  Here's
a picture of the work, which he hopes to push to git.linuxcnc.org
soon.  Of course the plot is of the AXIS splash screen.
</content>
</entry>
<entry>
<title>Got a 3D printer</title>
<issued>2013-07-15T14:29:22Z</issued>
<modified>2013-07-15T14:29:22Z</modified>
<id>https://emergent.unpythonic.net/01373898562</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/01373898562"/>
<content type="text/html" mode="escaped">

&lt;div style=&quot;float:right;clear:right&quot;&gt;&lt;!-- IMG_20130713_220128.jpg--&gt;&lt;div class=albumouter style=width:306px id=&gt;&lt;div class=albumimage style=&quot;width:232px;margin-left:37.0px;&quot;&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01373898562/IMG_20130713_220128-medium.jpg&quot; class=&quot;thickbox&quot; rel=&quot;album&quot; title=&quot;Half-assembled 3D printer&quot;&gt;&lt;img src=&quot;https://media.unpythonic.net/emergent-files/01373898562/IMG_20130713_220128-small.jpg&quot; width=226 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/01373898562/IMG_20130713_220128-medium.jpg&quot;&gt;(M)&lt;/a&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01373898562/IMG_20130713_220128.jpg&quot;&gt;(L)&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01373898562/IMG_20130713_220128.jpg&quot;&gt;Half-assembled 3D printer&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
I bought a 3D printer, called Rostock MAX.  I'm &lt;a href=&quot;https://emergent.unpythonic.net/rostockmax&quot;&gt;keeping a record of my experience with it&lt;/a&gt;.  So far it's just a work in
progress, but maybe this week I'll progress to the point that I can extrude
plastic.  Later I'll &lt;a href=&quot;https://emergent.unpythonic.net/01373628488&quot;&gt;make it work with LinuxCNC.&lt;/a&gt;
</content>
</entry>
<entry>
<title>Linear Delta Kinematics</title>
<issued>2013-07-12T11:28:08Z</issued>
<modified>2013-07-12T11:28:08Z</modified>
<id>https://emergent.unpythonic.net/01373628488</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/01373628488"/>
<content type="text/html" mode="escaped">
&lt;div style=&quot;float:right;clear:right&quot;&gt;&lt;!-- rostock-linuxcnc.png--&gt;&lt;div class=albumouter style=width:306px id=&gt;&lt;div class=albumimage style=&quot;width:253px;margin-left:26.5px;&quot;&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01373628488/rostock-linuxcnc-medium.png&quot; class=&quot;thickbox&quot; rel=&quot;album&quot; title=&quot;LinuxCNC logo on rostock-style CNC&quot;&gt;&lt;img src=&quot;https://media.unpythonic.net/emergent-files/01373628488/rostock-linuxcnc-small.png&quot; width=247 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/01373628488/rostock-linuxcnc-medium.png&quot;&gt;(M)&lt;/a&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01373628488/rostock-linuxcnc.png&quot;&gt;(L)&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/01373628488/rostock-linuxcnc.png&quot;&gt;LinuxCNC logo on rostock-style CNC&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
I'm still awaiting delivery of my &lt;a href=&quot;http://reprap.org/wiki/Rostock_MAX&quot;&gt;Rostock MAX&lt;/a&gt;, and converting it to use
&lt;a href=&quot;http://linuxcnc.org&quot;&gt;LinuxCNC&lt;/a&gt; is even further in the future, but I've
been working on a LinuxCNC kinematics model and visualization.</content>
</entry>
</feed>
