codestorm1

codestorm1

How can I drive a servo motor on the BeagleBone Blue using Nerves?

Do I need to add a device tree overlay for PWM support in a custom Nerves system?

Showing Posts 1 to 3

amclain

amclain

There are premade BeagleBone device tree overlays are located in /lib/firmware, and there is likely one for PWM. This means you don’t have to create a custom Nerves system unless you want to. The overlay can be applied at runtime with the BeagleBone config-pin utility (see this elixir wrapper), or applied to the Nerves system by adding the overlay to provisioning.conf.

The easiest way to drive servos is to use an I2C servo controller. That way you could use circuits_i2c.

codestorm1

codestorm1 OP

Thanks for the reply.

I have a PCA9685-based Adafruit 815 that I decided to try.
I found hex package pca9685, and was able to get my motor working using it.

I was using a RPi4 when I got it working.
I was also able to get it to work using a BeagleBone Black.

I want to get it working on a BeagleBone Blue.
I believe the Blue is basically a BB Black with an integrated robotics cape, which has a 12V power supply, and is able to drive motors without running external power.

I soldered a JST SH 1.0-4 Pin connector to the Adafruit servo driver board.
I did the same with a spare servo driver board as well.

I tried these commands:

{:ok, ref} = Circuits.I2C.open("i2c-2")
Circuits.I2C.write(ref, 0x40, <<0x00, 0x10>>)

The response is:
{:error, :i2c_nak}

Could the Blue need some adjustments to the device tree configurations? The I2C initialization?

I might test running debian/raspbian on the Blue to see if I can get i2c communiate.

Thanks

codestorm1

codestorm1 OP

I’m trying the PWM approach at the moment.

Running it on the Blue would be ideal a single power source can power the board and the motor. Plus it has 8 servo outputs on the board.

I went down some rabbit holes with AI, but have not been able to get anything to show up under /sys/class/pwm/

I see the following under /lib/firmware that look helpful
BB-PWM0-00A0.dtbo

am33xx_pwm-00A0.dtbo
BB-PWM1-00A0.dtbo
BB-PWM2-00A0.dtbo
PB-PWM-TIMER-P1.20.dtbo
PB-PWM-TIMER-P1.26.dtbo
PB-PWM-TIMER-P1.28.dtbo
PB-PWM-TIMER-P2.27.dtbo
PB-PWM-TIMER-P2.31.dtbo

— All posts loaded —

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
jonnycharles
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
dli
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app? Looking for hints regarding: Addi...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
bottlenecked
Hi all, I wanted to ask how the community is dealing with post-release steps. Today we have Ecto migrations, which make sure that the db...
New
rahultumpala
Hello, I have an Elixir backend that implements a custom protocol over TCP. I want to load test the backend and assess the performance o...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews