/* */

Friday, August 30, 2013

BeBoPr Boards Available Online!


After about a year (or an eternity in the 3D printer world), the BeBoPr board is FINALLY available for purchase through the folks at Circuitco via their BoardZoo.com site:

http://boardzoo.com/index.php/beaglebone/bone-bebopr.html

With any luck, vendors who have had the BeBoPr listed but unavailable for ages (like Mouser and DigiKey) will also have stock soon.

Note that this is the version of the BeBoPr designed for the BeableBone White (remember that year or so I mentioned?), but these boards will work just fine with the newer BeagleBone Black with a few minor tweaks.  If you don’t need the on-board HDMI, you can get the BeBoPr working with a BBB by cutting two pins and soldering two wires.  If you need HDMI or plan to attach an LCD cape, you have to move a bunch of pins around.  The easiest way to do this is to get a bridge-board and build it up with some wire and connectors.  You can order a set of boards directly from OSH Park, or I will probably be getting a quantity made since you probably won’t need all three, and lead time on OSH Park PCBs is a couple weeks.  Contact me directly via e-mail: charles (at) steinkuehler (dot) net if you’re interested in a set of boards, but note that it will be at least 2-3 weeks until I have any in-hand.

Bas (the BeBoPr designer) has more details on both of these options on his wiki, along with a bunch of other useful information.

The boards from Circuitco  should be exactly the same as the board I got directly from Bas (from an early prototype run) and have been using to drive my 3D printer, so it should work just fine with my MachineKit image.

UPDATE:
Bas has a new version of the BeBoPr, the BeBoPr+, which is a BeBoPr with the bridge board directly soldered on.  These boards are not yet available through BoardZoo or other online retailers, but Bas has a supply available for EUR 117 each.  Contact him directly via e-mail if you’re interested: [email protected]

Oh, you might think the bridge board looks a little funny and I agree.  It looks kind of funny…but when I’m hooking all the wires to my 3D printer, I REALLY appreciate the extra space between the BeBoPr and the BeagleBone.  Not only does it allow me to keep my serial terminal connected, but it keeps the HDMI, USB, and micro-SD cards away from all the wires going to the printer.  Having used the BeBoPr both ways, the extra space provided by the bridge board really helps to keep all the connections more accessible.

Saturday, August 17, 2013

Check Your Temperature

Printing vases is hard, but I finally managed to get it right:


I kept getting gaps in my vases, which looked for all the world like the motors were skipping during the print.  This wasn’t simply loosing steps, however, as later layers were still aligned correctly, so something strange was going on.  I spent MANY hours over several days trying to see if I could get LinuxCNC to cause one of the goofs while I was watching, to no avail (each print takes almost 4 hours).

Finally, I thought I found a reliable way to cause the glitching by using the Mini gui and enabling the back-plot display.  Except it turns out that for some unknown reason, when you enable the back-plot the Mini gui actually pauses real-time motion ON PURPOSE until the plot is generated, then starts things back up again, which was causing the glitch I was seeing.  <sigh>

Anyway, since some of the goofs had a bit of the “burned plastic” look about them (brownish discoloration of the normally translucent plastic), I figured I’d try reducing the temperature a bit.  Dropping from 180 degrees to 170 helped a LOT, and resulted in only a few errors in a 3+ hour vase print (vs. at least 20-30 usually).  Another ten degrees lower, and printing at 160 degrees completely cleared up the glitches, and I  got my first clean printed spiral vase (above).  Here’s a close-up:


I had been happily printing more ‘normal’ objects (with infill) at 180 degrees without issue both with LinuxCNC and with my earlier Ardunio/RAMPS combination.  I never printed a vase with my Ardunio, so I’m not sure yet if the reduced temperature is required because of a difference between the temperature readings on the Arduino/RAMPS board and the BeBoPr with LinuxCNC, or because when printing a vase there’s not enough plastic going through the extruder fast enough to keep the hot-end from heat-soaking and causing “mini-jams” or cooking the plastic a bit.  Probably a little of both.

Wednesday, August 7, 2013

K9 SmorgasBoard

A new toy:


While I was on vacation, the great folks over at Practical Micro Design sent me a geeky new toy to play with, the K9 SmorgasBoard!  This awesome board has just about every sort of I/O you might want if you’re working on machine control using a BeagleBone.  There are Pololu sockets for the 3D printer crowd, more traditional DB25/LPT connectors for “legacy” motor drivers as used in LinuxCNC, analog inputs and outputs (including support for thermocouples), RS422/differential encoder inputs, and lots more.

I saw one of these at the LinuxCNC dev-fest in Wichita, but it’s a lot more fun having one to play with!  Not to worry if you have a BeBoPr, however…I am keeping my BeBoPr and bridge board setup as the controller for my MendelMax printer, and I’m going to use the K9 for experiments.  I’m currently planning on building a slightly modified Mini-Kossel, but I’ll have to see how it turns out.  It may wind up being more than just slightly modified.  🙂

If you’re not completely living on the bleeding edge and trying to drive all your machine control applications with a BeagleBone, checkout the other products from the PMDX folks.  They have a lot of stuff that might help you move motors and make some chips.  Also, drop them a line if there’s something you REALLY want to see in a BeagleBone expansion cape, or if you’d like to have them make a BeagleBone product at all.  The K9 is mostly a proof of concept and test platform, so pipe up and let them know if you want to see a real product or it may never happen!

Oh, and if you want to get geeks writing code for you for free, send them some nifty new hardware to play with (hint-hint!).  Let’s see, I could use a…  😉

Sunday, July 28, 2013

Happy Birthday BeagleBoard!

Wow! It’s been five years since the introduction of the first Beagle Board, and they just keep getting better! Many thanks and happy birthday wishes to the folks over at BeagleBoard.org. Keep the coolness coming!


Title: BeagleBoard.org celebrates 5 years of enabling Linux DIY hacks
Date: July 28, 2013

BeagleBoard.org launched with support of Digi-Key in 2008 and DIYers quickly adopted BeagleBoard for migrating XBMC to ARM, building GPS accurate down to the centimetereight-legged robots and creating controller hacks. In 2010, Google Summer of Code students contributed numerous projects to help other open source developers, including sniffing USB traffic and XBMC performance optimizations. GSoC students are back at it again in 2013, providing solutions for booting BeagleBone from a Nexus phone, running Arduino sketches and even building new peripherals out of an on-chip microcontroller.

With the introduction of BeagleBoard-xM in 2010, projects accelerated with homemade tablet computersopen graphing calculatorscluster computing in a briefcase,repurposed laptop LCDsremote presence and versatile RC robotsspace camerasUSB killswitches and wearable LED matrices. BeagleBoard-based wearables back in 2010 even provided a strikingly similarity to today’s Google Glass.


BeagleBone seemed to find a surprising home in retro computingmimicking PDP11 blinkenlights and saving dot-matrix printers from the dust bin. This seemed to be an inspiration for inventive minds seeking to teach others about the more subtle capabilities the board is packing. The two, small 200MHz 32-bit microcontrollers on-board were used to mimic external peripherals to a discrete 6502 processor, enabling more people to understand the capabilities of these independent units previously demonstrated performing independent generation of VGA signals using a simple resistor ladder.

The tutorials continued with everything from twiddling an LED and running Ubuntu with a full GUI, to extracting video signals and wiring up your own LIDD displays, evenbuilding your own dedicated Pandora radio. This is all before BeagleBone Black launched, boosting performance to 1GHz, adding on-board eMMC and HDMI and dropping the price down to $45.

BeagleBone Black is just getting its legs underneath it in its initial production run of 125,000 units with around half of those shipped so far. Early adopters were able to share some of their creations at Maker Faire, including LED strips being used to display live video. Beyond the obvious and popular lighting solutions, BeagleBone Black has found an early home in manufacturing solutions, especially with makers like Elias Bakken, who created the contest-winning Replicape 3D printer-enabling add-on board and a tiny HDMI display for use with BeagleBone Black, and Charles Steinkuehler, who has created the MachineKit software image containing LinuxCNC and Xenomi real-time Linux kernel. Both Elias and Charles have been steady contributors to the project of late and have helped enable several of the improvements making BeagleBone Black a complete and easy to use solution for all sorts of makers.

As of the recent June 20th software release for BeagleBone Black, significant improvements have been made since launch. Monitor support is greatly improved with better automated resolution setting and a documented process for setting specific resolutions over the command-line or at boot-up, including resolutions up to 1920×1080 at 24fps. The node.js-based BoneScript library, used in such fun things as multi-room physically interactive video games, has several bug fixes and a growing body of interactive wiring examples that work within Chrome and Firefox browsers. Support for the on-board 32-bit microcontrollers called PRUs has been improved with an updated assembler and documentation supporting previously undocumented instructions, including multipliers, and hints have been made at a C compiler being developed, including Pantelis Antoniou’s example of using the PRU C compiler to add 32 additional channels of pulse-width modulation (PWM). The value of aggressively chasing the mainline kernel is also being shown with simple command-line statements for enabling UARTs, SPI, I2C, CAN and more peripherals, including improved cape add-on board support.

With an amazing community, stand-out performance and capability, a true open hardware approach that is sustainably profitable but not greedy, continuous demonstrated improvements and a focus on educating aspiring engineers and hobbyists alike, BeagleBoard.org has proven to be a DIY force with which to reckon and an inspiration for makers everywhere. Happy Birthday Boris!

Monday, July 22, 2013

BeBoPr Bridge: Stand-alone Machine Control

UPDATE:  If you buy a small LCD, I suggest getting one with slightly higher resolution.  I am wising in particular I had a bit more vertical resolution when running the Axis GUI for LinuxCNC. 

One of the few things I don’t like about the BeBoPr board is since it pre-dates the BeagleBone Black it conflicts with a bunch of pins that are now reserved for the new on-board HDMI and 2G eMMC.

Fortunately, Bas has released the BeBoPr-Bridge board, which is a set of boards that shuffles around the I/O pin-out and allows an otherwise stock BeBoPr to work with a BeagleBone Black without causing any pin conflicts.  The Bridge board even solves the problem of how to access the serial boot console when using the BeBoPr!

Thanks to the folks at OSH Park, I was able to get three sets of the Bridge board fabricated and shipped to me for a total cost of $23.10 (including shipping), or about $7 each!  Once the boards arrived and I got them built up, it was time to print something stand-alone using the BeagleBone Black and my $79 eBay special HDMI monitor:


If you want to follow along, make sure you’re using my latest MachineKit image (with the -bone23 kernel), and do a git pull to grab the latest configuration files from the MachineKit branch of LinuxCNC.  Launch LinuxCNC with the BeBoPr-Bridge configuration, and make sure you have not disabled the HDMIN cape in uEnv.txt.  The latest image comes setup properly by default (HDMI disabled, and HDMIN enabled), but if you have been using a stock BeBoPr board you probably have both versions disabled.

Here are a couple still photos, you can find more on my G+ page.

Complete system with the BeagleBone Black mounted on top of the BeBoPr using the Bridge Board.
Bridge board mounted on my BeagleBone Black with serial cable, USB mouser/KB receiver, and HDMI cable connected.

Friday, July 19, 2013

Multiple ADC Readings

Heated Bed Working

It turns out the BeagleBone ADC “helper” kernel drivers are very particular about exactly how you talk to them.  If you try to read from them too fast, or even worse have two threads trying to read ADC values at the same time, Bad Things happen.  What exactly?  You can get illegal values (outside the 0-4095 range of the ADC), values from the wrong analog input channel, or have your program crash with access errors.  This has been preventing me from getting the heated bed working on my printer, since I initially coded the ADC thermistor HAL component with the idea that each thermistor would be read by it’s own thread.

I have re-worked the python code to support reading more than one thermistor, and it seems to be working well.  I managed to finish a print that took a couple hours, and I left the system running overnight and it is still working as expected this morning.  For comparison, with two threads reading thermistor values, one of the threads would die within a couple of minutes.

Configuration should be fairly obvious, refer to the example BeBoPr and BeBoPr-Bridge configurations.  There is a new –num_chan parameter, and the existing –adc and –therm parameters now take a list of values, one for each analog input channel.  Also added is a short-hand notion for the thermistor table, so you can now use “1” (the equivalent Marlin thermistor table number) instead of “epcos_B57560G1104”.  Handy if you have 3 thermistors attached!

Wednesday, July 17, 2013

Linear Delta Kinematics

I started working with LinuxCNC when I saw Johann Rocholl’s Rostock linear delta printer.  Trying to squeeze reverse kinematics for non-Cartesian movements into an AVR seemed like a fools errand to me, so I turned to LinuxCNC, which has pluggable kinematics.  But someone has to write those kinematics! 

Everything old is new again 

 

Thanks to Viesturs, I found this awesome video of a linear delta robot controlled by LinuxCNC from back in 2011!  Hg5bsd (Jozsef Papp) has provided the lindeltakins.c file used to control his ‘bot, and a sketch of the control layout.  If you are lucky enough to have a working linear delta mechanism (mine is currently in-progress), you should try out LinuxCNC with these kinematics and see how it works for you!

“Official” LinuxCNC Support

In similar news, LinuxCNC developer Jeff Eppler has acquired a Rostock Max, and has also written some linear delta kinematics.  Keep up with his delta changes in the jepler/lineardeltakins branch at git.linuxcnc.org.