FreeBSD and Beaglebone Black, a robotic application.

Similar documents
December 1, 2015 Jason Kridner

Beaglebone green User Manual

November 3, 2015 Jason Kridner

Hugo Cunha. Senior Firmware Developer Globaltronics

EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG

Baltos ir Contact Online. More Pictures. Click on the thumbnails for the large picture

pcduino V3B XC4350 User Manual

MicroEmbedded Technologies, Pune. A user manual for Using the BeagleBone Black with Linux Host.

ARDUINO YÚN MINI Code: A000108

LinkSprite Technologies,.Inc. pcduino V2

IoE Workshop. Marc Khayat, CCIE #41288, Leonard Janer Technical Managers. June 16

Introduction to the Itron Riva Dev Kits

参考資料. LinkSprite.com. pcduino V2

Yocto Project and OpenEmbedded training 3-day session

Intel Galileo gen 2 Board

RK3036 Kylin Board Hardware Manual V0.1

EVAcharge SE - datasheet

Lesson 6 Intel Galileo and Edison Prototype Development Platforms. Chapter-8 L06: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

PocketBeagle beagleboard.org. PocketBeagle, the tiniest $25 key-fob computer you can buy

MYD-C437X-PRU Development Board

Matrix-700 Linux-Ready Cortex-A5 Industry IoT Gateway Hardware Guide

Goal: We want to build an autonomous vehicle (robot)

Matrix-710. Linux-Ready Cortex-A5 Industry IoT Gateway. Hardware Guide. Version: Nov.

Specification Manual

AT-501 Cortex-A5 System On Module Product Brief

MYD-IMX28X Development Board

Alekto 2. Contact Online. More Pictures. Klick on the thumbnails for the large picture

MYD-Y6ULX Development Board

EZ-Bv4 Datasheet v0.7

Lesson 7 Programming Embedded Galileo, Raspberry Pi, BeagleBone and mbed Platforms

TQ2440 Development Platform Manual

IB112. Freescale I.MX536 ARM Cortex -A8 Embedded BOARD. USER S MANUAL Version 1.0

SBC3100 (Cortex-A72) Single Board Computer

Rajagiri School of Engineering & Technology, Kochi Department of Information Technology

Introduction to L.A.P. 1

DATASHEET. MK-070C-HP High Performance 7 Inch Capacitive Touch Display. Amulet. Technologies. July 2015 Revision A

Husarion CORE2. Husarion CORE2 is a development board for Internet-connected automation & robotic devices.

Unlocking the Potential of Your Microcontroller

MYC-C437X CPU Module

USB. Bluetooth. Display. IO connectors. Sound. Main CPU Atmel ARM7 JTAG. IO Processor Atmel AVR JTAG. Introduction to the Lego NXT

Ten (or so) Small Computers

AlphaBot2 robot building kit for Raspberry Pi 3 Model B

Pmod ESP32 Reference Manual

EX-9686U/A-L(A9) Hardware User Manual

Bolt 18F2550 System Hardware Manual

IOT-GATE-iMX7 Datasheet

ARDUINO YÚN Code: A000008

Overview of the Raspberry Pi Models 3B & 2B

w w w. b a s e t r a i n i n g i n s t i t u t e. c o

ARDUINO PRIMO. Code: A000135

MT2 Introduction Embedded Systems. MT2.1 Mechatronic systems

EyeCheck Smart Cameras

Contents. 1 Introduction Features Product Specifications Hardware Specification Software Specification...

DevKit7000 Evaluation Kit

Introduction to Sitara AM437x Processors

ARDUINO INDUSTRIAL 1 01 Code: A000126

Android System Development Training 4-day session

The Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.

TAKES CONTROL. Managing and monitoring the whole CoaxData network from a single device COAXBOX (REF )

Copyright 2017 Samsung. All Rights Reserved. O-Hoon Kwon, Ph.D. Samsung Electronics

MYD-JA5D2X Development Board

MYD-IMX28X Development Board

The Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.

OnRISC Alekto 2 Hardware Manual

Itron Riva Dev Mini Kit Getting Started Guide

GROUP #4. Chris Carmichael, EE Ismael Rivera, CpE Journey Sumlar, EE Warayut Techarut, CpE T-100 WATCHDOG

Embedded Linux kernel and driver development training 5-day session

Feature and Benefits. Certifications

Linux. For BCT RE2G2. User Guide. Document Reference: BCTRE2G2 Linux User Guide. Document Issue: Associated SDK release: 1.

Robotics Jumpstart Training II. EasyC: Software & Firmware Updates

PV8900-CORE Full Function TCC8900/TCC8901/TCC8902 CPU Module Specification

ROC-RK3328-CC Product Specifications

Development Environment Embedded Linux Primer Ch 1&2

DEMO. The Professional Software Suite for Automatic Control Design and Forecasting. EICASLAB Demo RT-emb

The Use of BeagleBone Black Board in Engineering Design and Development

OnRISC. OnRISC Baltos ir 2110

USER MANUAL FOR MF0200 GATEWAY BOX VERSION 2.0

i.mx 8M MINI System-On-Module (SOM) Hardware Architecture

BEST Control System. Dave Wilkerson. September 12, 2015

MYD-C7Z010/20 Development Board

DT7816 Linux Data Acquisition Real-Time High Performance ARM Module for Embedded Applications

802.11p ETSI TC ITS Wireless Communication System, On Board Unit. Model: OBU-102

Adafruit Metro Mini. Created by lady ada. Last updated on :12:28 PM UTC

CoreTile Express for Cortex-A5

Mega128-Net Mega128-Net Mega128 AVR Boot Loader Mega128-Net

EMB-CPU04. User s Manual

Raspberry Pi 3 Model B

K9 SmorgasBoard Overview Rev 1

EVALUATION BOARD MANUAL EBSHSN Series. EVALUATION KIT MANUAL EKSHSN Series

Your Strategic Partner for Renesas RZ/G1x Products & Solutions

THIS IS THE CURRENT FF USER GUIDE AS OF PLEASE DO NOT USE ANY PREVIOUSLY DATED VERSIONS

THIS IS THE CURRENT FF USER GUIDE AS OF PLEASE DO NOT USE ANY PREVIOUSLY DATED VERSIONS

CORTEX Microcontroller and Joystick User Guide

LAUNCH. X-431 PADII Product Introduction

SOM PRODUCTS BRIEF. S y s t e m o n M o d u l e. Engicam. SOMProducts ver

EVAcharge SE - Datasheet

W100. Version 1.2. W100 add-on to E1xx December Auvidea GmbH Kellerberg 3 D Denklingen.

COSMOS COLLECTOR X10 COSMOS X10 DATA COLLECTION AND REPORTING SYSTEM. User manual

ESPino - Specifications

#jsnight, Gianpaolo Macario (C) 2016 Gianpaolo Macario - License: CC BY-SA 4.0

Transcription:

FreeBSD and Beaglebone Black, a robotic application. Fabio Balzano fabio.balzano@elfarolab.com University of Ottawa, Canada May 17, 2014

The robot

System description What is this? it is a ROV - Remote Operated Vehicle it is based on Freebsd 11 embedded into an ARM board it provides an embedded web application via WIFI it provides real time video streaming it provides ultrasonic sensor for reading distances it provides I/O expansions for actuators

System description Materials: Beaglebone Black + FreeBSD 11 current Protoboard for I/O WIFI antenna with USB interface Gimbal for the webcam and ultrasounds sensor Hobby RC car Battery Jumper wires and connectors

Beaglebone Black

Beaglebone Black Features: 1GHz ARM Cortex A8 512MB DDR3 RAM 2Gbyte flash emmc 4GB 8-bit emmc on-board flash storage 3D graphics accelerator NEON floating-point accelerator 2x PRU 32-bit microcontrollers USB client and host ports Ethernet 10/100 HDMI port 2x 46 pin headers

FreeBSD on BBB It is stable Hardware resources are not wasted Almost everything is supported including the PRU Suitable for networking or data processing

FreeBSD and Beaglebone Black STEPS: get the source of FreeBSD download the Crochet-FreeBSD script run the crochet script copy the produced image to a microsd card

Laboratory setup

Deployment server Needed for: minimize the write cycles on the flash microsd card FreeBSD 11 microsd card image generation Host all the source code and packages NFS exports: source dir of FreeBSD distfiles ports subdir packages ports subdir extra needed software

Crochet-FreeBSD Download it from: https://github.com/kientzle/crochet-freebsd

Crochet-FreeBSD Building procedure: # cd <crochet_path> # cp config.sh.sample config.bbb.sh # vi config.bbb.sh # /crochet.sh -c config.bbb.sh coffe... # dd if=<img> of=/dev/da0 bs=1m

Serial console cable

Serial console cable TX - RX - GND

Serial console terminal Three common ways to connect: # cu -s 115200 -l /dev/ttyu0 # screen /dev/ttyu0 115200 # minicom

Flattened device tree - fdt Benefits: Put outside the kernel the device definitions Make it easier to enable/disable devices after a kernel build. Same kernel for multiple similar boards At the boot, U-boot load.dtb into the memory The kernel pickup the keys and load the drivers

Flattened device tree - fdt It is used for: To describe the hardware To list all the devices and their properties To enable or disable driver and devices To mux the pins for alternatives functions Do you need to enable or redefine some I/O pins? Edit the.dts clear text file Compile the.dts into a.dtb binary file with dtc

Laboratory My setup and results

My setup Disabled unneeded stuff into the kernel config Disabled all the debugging including WITNESS I wanted to try a patch set to rise the CPU clock to 1GHz I wanted to maximize the performance for the video processing

1Ghz patches Default clock frequency is 500Mhz Patched and used the new u-boot 2014.01 I used the patches from Xuebing Wang Result: the kernel is running at 1 GHz, the CPU is a little bit warmer, an heat sink should be installed before real heavy processing. Better solution: a FreeBSD driver that expose a read/write sysctl to reprogram the CPU frequency

BBB PWM pins The robot has 4 servo motors:

4 servo motors 2 for the camera Gimbal 1 for the steering 1 for the ESC

PWM signal The width of the pulse drive the servo:

PWM signal from the BBB pins Test of the signals

Test of the PWM signal # sysctl dev.am335x_pwm.1.period=1500 # sysctl dev.am335x_pwm.1.dutya=300 result frequency: 66 KHz ->should be 666 KHz length of period: 15 us ->should be 1.5 us length of pulse: 2 us # sysctl dev.am335x_pwm.1.period=1500000 # sysctl dev.am335x_pwm.1.dutya=10000 result frequency: 1.71 KHz -> should be 666Hz length of period: 585 us length of pulse: 100 us # sysctl dev.am335x_pwm.1.period=1800000 # sysctl dev.am335x_pwm.1.dutya=10000 result frequency: 3.24 KHz -> should be 555Hz length of period: 308 us length of pulse: 100 us

BBB PWM pins Actual minimum frequency was 1.5KHz further work to expand the range and correct the configuration keys Help please!

Alternative to the BBB PWM pins Teensy 3.0 board:

Teensy to drive the servo motors GPIO pins Firmware Driver PWM Output pins

USB Hub BBB has only one host USB port Cut the power supply wires of the USB cable

USB Hub USB hotplug is working some problems with the video frames transmission

WLAN link To pilot the robot is via WIFI The system is configured as an access point with hostapd The user can pilot the robot using a web application installed on the BBB

Serverside Python Flask web application with websockets c code to drive the GPIO pins for the servo motors c code to read the distance sensors OpenCV realtime video processing

Improvements kernel drive to increase CPU frequency better implementation of the PWM output signal further development with OpenCV...

Demo DEMO!

Repository: https://bitbucket.org/fabiodive/bsdcan2014 My email address: fabio.balzano@elfarolab.com Thank you for your attention! flood me questions :-)