Skip navigation
1 2 3 Previous

BeagleBoard

120 posts
I'm trying here is to let the real-time units of the BeagleBone generate the signals for a stepper motor. In chapters 1 to 5, I developed PRU firmware that works for 1 stepper motor   In part 6, I switch to a timer controlled version, that should allow for more motors and smoother start and end. Here in post 6a: refactoring the code a first time to extract motor dependent logic from the main loop:   Prepare for More Motors and Motor State  I created the shell for a structur ...
The PRU modules of the BeagleBone's Sitara controller have a timer. In this short post, I'm trying if I can get it to work.     The future plan is to use it in an algorithm for stepper motor control. I'd like to make a smart algorithm that recalculates acceleration/deceleration of the stepper motor while that motor is running.     PRU Timer  It's a component of the unit's Industrial Ethernet Peripheral but can be repurposed as a generic timer within the real time ...
I'm trying here is to let the real-time units of the BeagleBone generate the signals for a stepper motor. In this post: it works! Let's put everything together.     Initialise the Sleep and Reset Signals  The pins P9_11 and P9_13 are used. I'm controlling them from the Linux command line.   BB MUX BB P9 Driver function GPIO_30 11 nSleep GPIO_31 13 Reset   To start, set sleep on and reset off   sudo -i # sleep on echo out > /sys/class/gpio/gpio30/directio ...
I'm trying here is to let the real-time units of the BeagleBone generate the signals for a stepper motor. In this post: configure the stepper motor driver via the SPI interface.   This is virtually the same code as used in my Hercules real-time stepper driver project. I'm using the DRV8711 SPI interface to set its registers. They determine the driver's behaviour. The only difference is that I now use the BB's Linux SPI interface to talk to it instead of the Hercules SPI module. I've ...
I'm trying here is to let the real-time units of the BeagleBone generate the signals for a stepper motor. In this post: assign BB peripherals and wire up the stepper motor driver.   The DRV8711 stepper motor controller has a number of pins that need to be entertained by the BB. (for the wiring of motor and power supply, please check this post).   The controller requires a SPI connection, in order to set it in the desired operation mode. These SPI pins are connect to BB SPI0. Two ...
A little side story in the project to control a stepper motor with the BeagleBone PRU. How to enable SPI.   The  DRV8711 stepper motor controller that I use is configured with SPI commands. On a Raspberri Pi, activating SPI is done via the configuration tool. Easy. On the BB, it's more complex. It depends on the Linux flavour (and changing in the future, I've read - it's a bit tricky to find good documentation that's applicable for the current ). I got success using these two meth ...
I'm trying here is to let the real-time units of the BeagleBone generate the signals for a stepper motor. In this post: control two output pins from PRU and Linux   The PRU will have to drive two pins when driving the stepper motor. One for the direction of rotation. The other for the step pulses. I'll try here to send the PRU a number of steps, and a flag to give the direction. The PRU should then drive the DIR pin (high or low based on the parameter) and pulse the STEP pin the re ...
To control a stepper motor, your device has to create a pulse signal (pulse train). That signal will decide how many steps the motor takes and how fast it takes those steps. There are several ways to generate that signal: using timers, bitbang and others. What I'm trying here is to let the real-time units of the BeagleBone generate the pulses. image source: modified from TI Designs: High Performance Pulse Train Output (PTO) With PRU-ICSS for Industrial Applications     Intentio ...
How to develop a Linux binary for the BeagleBone (any colour) on Windows in CCS, using BB guru Derek Molloy's GPIO lib. This blog has a history. I was working with my very good friend martinvalencia to get this working. This blog shows the end result: how we got it working. Not shown: all our failures when discussing this over Hangouts.   Derek Molloy is arguably the best source for BB tutorials. His libraries are well designed too. Here's an instruciblo on how to use his GPIO lib wit ...
Debugging your PRU C code Recently I decided to turn my attention to the fairly unique Programmable Realtime Units on the BeagleBone's TI Sitara processor. My earlier blog post covered Coding for the BeagleBone PRU with C in 2019 and hopefully showed how it's become easier to work with the PRUs over the last few years. Whilst it's great to be able to write C code in a nice IDE before deploying, it's even better if you can debug your code and see what's happening when things don't quite go to pla ...
How to develop a Linux binary for the BeagleBone (any colour) on Windows in CCS, auto-deploy it to the BB and remotely debug. No hardware debugger needed - all runs over TCP/IP The great PRU blog from Fred27 inspired me to pick up the BeagleBone Green again. Because he uses CCS as development environment, it makes sense to also use CCS for Linux native C and C++ development.   I've blogged before on  how to set up a BeagleBone C/C++ environment with the ARM DS-5 suite. Both DS-5 ...
So, I've recently decided to get my head around the killer feature of the BeagleBone family - the two Programmable Realtime Units that sit alongside the ARM Cortex A8 core that you'll normally find running Linux. These PRUs are what really set the BeagleBone apart from other SBCs like the Raspberry Pi. To be honest, if you just need to run Linux on something small then the Pi may be a better choice - quad core 1.2Ghz A53 vs the BB's single core 1GHz A8. For anything that requires accurate and pr ...
I have a project going (home brew pinball machine) that is already using NeoPixels driven by a Beagle Bone Black via the Beagle’s PRU.  I needed to add 7 segment score displays, 26 digits worth!  I ended up with the solution that follows, thought you all might be interested.    I designed a custom PCB using WS2811 chips that makes the displays work just like Neopixels.  Now I can drive the displays and other WS2811 parts / Neopixels all in the same serial stri ...
Here is short presentation of initial test of DLP LightCrafter 2000 EVM connected to BeagleBone Black Wireless board. I would like to use this board to create portable theater projector for watching movies e.g. from Youtube or Netflix.   ...
Test Driving the BeagleBone Blue RTV The BeagleBone Blue Road Test Vehicle. This test vehicle is powered by the BeagleBone Blue and was constructed from lightweight and cost effective recycled materials. The BeagleBone Blue is ready to go. https://beagleboard.org/blue   Available at http://www.newark.com/beagleboard/bbone-blue/beaglebone-blue-robotics-platform/dp/95Y0640?st=beaglebone%20blue   What is BeagleBone Blue?   BeagleBone Blue is a complete, Linux-enabled robotics ...

Filter Blog

By date: By tag: