Skip navigation
1 2 3 Previous

BeagleBoard

123 posts
Introduction Heatsinking Adding a Fan Serial Console Cable Power Supply Powering Up Upgrading the Software Measuring the Temperature Changing Passwords and Adding Users Configuring WiFi Summary   Introduction I was really happy to recently receive a BeagleBone AI single board computer (SBC) from Element14. It's going to be used for attaching a camera eventually! The Gigabit Ethernet interface and high performance should be handy for that. There's ...
Some photos of the BB-AI! Transparent background, for copying into documents:       Some higher-res photos (normal background):         BB-AI dimensions (note - these dimensions were partially measured, so there may be an inaccuracy of perhaps 0.5 mm in places (and maybe up to 1mm inaccuracy in the heatsink position). If there are any errors, please let me know and I'll correct the diagram). The board is 1.6mm thick, the Ethernet socket is ...
I'm testing the CAN peripheral on a BeagleBone. I'll be using my homemade generic CAN driver to implement the physical layer and Thomas Wedemeyer's BB specific instructions. The other device on the CAN BUS, playing the communication partner role, is a Microchip CAN BUS Analyser.   Like most microcontrollers that have a CAN peripheral on board, the Sitara on the BeagleBone doesn't have a physical bus driver. That's something that needs to be implemented separately. The CAN driver brea ...
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 ...

Filter Blog

By date: By tag: