Running the Processing environment on ARM SBCs

Similar documents
ARDUINO. Gianluca Martino.

PWM Guide: Zen Buzzer and Tri-Colour LEDs For Linux Kernel 4.1+ Table of Contents. by Brian Fraser Last update: November 17, 2017

Arduino Platform Capabilities in Multitasking. environment.

OM29110 NFC's SBC Interface Boards User Manual. Rev May

Training Schedule. Robotic System Design using Arduino Platform

System Board 6219 MAXREFDES89#: MAX14871 Full-Bridge DC Motor Driver MBED Shield

occam on the Arduino Adam T. Sampson School of Computing, University of Kent Matt C. Jadud Department of Computer Science, Allegheny College

SNIOT702 Specification. Version number:v 1.0.1

The GNSS Subsystem. Johan Hovold. Open Source Summit Europe, Edinburgh October 24, Hovold Consulting AB

Lab 4 Rev. 1 Open Lab Due COB Friday April 6, 2018

Programming Arduino Next Steps: Going Further With Sketches PDF

Designing with STM32F3x

FPGA & Pulse Width Modulation. Digital Logic. Programing the FPGA 7/23/2015. Time Allotment During the First 14 Weeks of Our Advanced Lab Course

EECS 473 Final Exam. Fall 2017 NOTES: I have neither given nor received aid on this exam nor observed anyone else doing so. Name: unique name:

Coding with Arduino to operate the prosthetic arm

Controlling Robot through SMS with Acknowledging facility

Motor Control using NXP s LPC2900

Graphical Control Panel User Manual

ESE 350 Microcontroller Laboratory Lab 5: Sensor-Actuator Lab

ZIO Python API. Tutorial. 1.1, May 2009

Lab #10: Analog to Digital Converter (ADC) Week of 15 April 2019

Green Electronics Library Documentation

EECS 473. Review etc.

ZX Distance and Gesture Sensor Hookup Guide

802.11g Wireless Sensor Network Modules

Ultrasonic Positioning System EDA385 Embedded Systems Design Advanced Course

Lab 1.2 Joystick Interface

MICROCONTROLLERS BASIC INPUTS and OUTPUTS (I/O)

32-bit ARM Cortex-M0, Cortex-M3 and Cortex-M4F microcontrollers

INA3221 Breakout Board

Smart-M3-Based Robot Interaction in Cyber-Physical Systems

EECS 473. Review etc.

Embedded & Robotics Training

Speed Control of the DC Motor through Temperature Variations using Labview and Aurdino

Quick Start Guide. TWR-SHIELD Shield Adapter Module for the Tower System TOWER SYSTEM

Prototype faster and create wirelessly connected interactive objects as easy as making websites

Unit D. Serial Interfaces. Serial vs. Parallel. Serial Interfaces. Serial Communications

MICROCONTROLLERS BASIC INPUTS and OUTPUTS (I/O)

Lissajus Curves: an Experiment in Creative Coding

Adafruit 16-Channel PWM/Servo HAT & Bonnet for Raspberry Pi

Introduction to the Arduino Kit

USING THE GAME BOY ADVANCE TO TEACH COMPUTER SYSTEMS AND ARCHITECTURE *

Analog Custom Layout Engineer

Exercise 3: Sound volume robot

PN7150 Raspberry Pi SBC Kit Quick Start Guide

Programming of Embedded Systems Uppsala University Spring 2014 Summary of Pan and Tilt project

Grove - Infrared Temperature Sensor

Total Hours Registration through Website or for further details please visit (Refer Upcoming Events Section)

Fading a RGB LED on BeagleBone Black

CS 354R: Computer Game Technology

DMP Electronics Inc Robotic Division

Energy autonomous wireless sensors: InterSync Project. FIMA Autumn Conference 2011, Nov 23 rd, 2011, Tampere Vesa Pentikäinen VTT

Qt Developing ArcGIS Runtime Applications. Eric

3.3V regulator. JA H-bridge. Doc: page 1 of 7

An architecture for Scalable Concurrent Embedded Software" No more communication in your program, the key to multi-core and distributed programming.

Characteristic Sym Notes Minimum Typical Maximum Units Operating Frequency Range MHz. RF Chip Rate 11 Mcps RF Data Rates 1, 2, 5.

LED controllers. Voltage-switch drivers, constant-current drivers, and Flash LED drivers

Hardware Platforms and Sensors

Hashemite University Faculty of Engineering Mechatronics Engineering Department. Microprocessors and Microcontrollers Laboratory

SGD 70-A 7 PanelPilotACE Compatible Display

PN7150 BeagleBone Black SBC Kit Quick Start Guide

Nautical Autonomous System with Task Integration

Motor Driver HAT User Manual

Microcomputers for Ham Radio

CodeBug I2C Tether Documentation

LumiNet: Prototyping Organic Physical Networks (and hacking Arduino in the process)

GEM - Generic Engineering Model Overview

EPICS Education at University. 2017/05/16 Osaka City University M.Iwasaki

Application Note v1.0

EE251: Thursday October 25

LAX016 Series Logic Analyzer User Guide

Application Note AN 102: Arduino I2C Interface to K 30 Sensor

RGB strips.

ACCELERATE SOFTWARE DEVELOPMENT WITH CONTINUOUS INTEGRATION AND SIMULATION

BAssist (Banjo Assist Robot) Fatemeh Gholizadeh David Hatch Shiva Khanal Gavin Philips

ArcGIS Runtime SDK for Java: Building Applications. Eric

Specifications.

Hardware in the Loop Simulation for Unmanned Aerial Vehicles

Oculus Rift Getting Started Guide

Intelligent Systems Design in a Non Engineering Curriculum. Embedded Systems Without Major Hardware Engineering

ni.com The NI PXIe-5644R Vector Signal Transceiver World s First Software-Designed Instrument

AN PN7120 Arduino SBC Kit Quick Start Guide. Application note COMPANY PUBLIC. Rev July Document information

Adafruit 16-Channel PWM/Servo HAT for Raspberry Pi

Arduino Microcontroller Processing for Everyone!: Third Edition / Steven F. Barrett

Adafruit SGP30 TVOC/eCO2 Gas Sensor

Building a robot powered with RIOT OS Gilles DOFFE - 09/13/2018

nrf24l01+ Transceiver Hookup Guide

SGD 70-A 7 PanelPilotACE Compatible Display

I 2 C RedBot & DC Motor Servo Motor Control

LV8716QAGEVK Evaluation Kit User Guide

µtasker Document µtasker Hardware Timers

EE152 Final Project Report

LESSONS Lesson 1. Microcontrollers and SBCs. The Big Idea: Lesson 1: Microcontrollers and SBCs. Background: What, precisely, is computer science?

The CCD-S3600-D(-UV) is a

SGD 43-A 4.3 PanelPilotACE Compatible Display

Weekly report: January 11 - January 18, 2018

Module: Arduino as Signal Generator

DNT2400. Low Cost 2.4 GHz FHSS Transceiver Module with I/O

Firmware plugin for STSW-ESC001V1 board with ST Motor Control FOC SDK

A Closed-Loop System to Monitor and Reduce Parkinson s Tremors

Transcription:

Running the Processing environment on ARM SBCs Lessons learned & what s missing for having an Arduino equivalent on top of Linux Gottfried Haider @mrgohai

Processing

Processing a flexible software sketchbook and a language for learning how to code within the context of the visual arts

Processing a flexible software sketchbook and a language for learning how to code within the context of the visual arts started 2001 by Casey Reas & Ben Fry at MIT Media Lab

Processing a flexible software sketchbook and a language for learning how to code within the context of the visual arts started 2001 by Casey Reas & Ben Fry at MIT Media Lab since developed by a group of programmers, educators, designers (LGPL/GPL)

Processing a flexible software sketchbook and a language for learning how to code within the context of the visual arts started 2001 by Casey Reas & Ben Fry at MIT Media Lab since developed by a group of programmers, educators, designers (LGPL/GPL) based on Java (but also p5.js, Processing.py)

Demo

Processing a flexible software sketchbook and a language for learning how to code within the context of the visual arts started 2001 by Casey Reas & Ben Fry at MIT Media Lab since developed by a group of programmers, educators, designers (LGPL/GPL) based on Java (but also p5.js, Processing.py) many resources, especially for education

Processing a flexible software sketchbook and a language for learning how to code within the context of the visual arts started 2001 by Casey Reas & Ben Fry at MIT Media Lab since developed by a group of programmers, educators, designers (LGPL/GPL) based on Java (but also p5.js, Processing.py) many resources, especially for education https://github.com/processing/

Google Summer of Code

Google Summer of Code Motivation: - accessibiliy through price point (roughly equivalent to Arduino)

Google Summer of Code Motivation: - accessibiliy through price point (roughly equivalent to Arduino) - more powerful than AVR (FFT, computer vision, networking)

Google Summer of Code Motivation: - accessibiliy through price point (roughly equivalent to Arduino) - more powerful than AVR (FFT, computer vision, networking) - prospect of a fully open 3D graphics stack (GLES2)

Google Summer of Code Motivation: - accessibiliy through price point (roughly equivalent to Arduino) - more powerful than AVR (FFT, computer vision, networking) - prospect of a fully open 3D graphics stack (GLES2) - access to large repositories of FLOSS software - great to introduce users to the benefits of working with existing communities (but: ARMv6)

Google Summer of Code Results: - shipped in Processing 3.0.1 - try it out! - 3D works with the current, closed-source GLES2 driver - thanks to JOGL & Xerxes Rånby - also works with the in-progress DRM & Mesa Gallium driver by Eric Anholt (image @ http://sukzessiv.net /~gohai/vc4-buildbot/build/) - can build on x86, deploy on ARMv6 - Hardware I/O library! - should run on any ARMv6+ hard-float SBC (minus GLES2 upbringing)

Hardware I/O processing.io.* Arduino UART x x GPIO x x I2C x x SPI x x PWM ~ x LED x

Hardware I/O processing.io.* Arduino UART x x GPIO x x I2C x x SPI x x PWM ~ x LED x Caveats (non hard-realtime OS, etc) - best effort

Hardware I/O - what s missing? (and why is this in the mobile & embedded devroom?!)

Hardware I/O - what s missing? (and why is this in the mobile & embedded devroom?!) https://github.com/gohai/arduino-like-linux Comments?

Hardware I/O - Wishlist - Software PWM - Runtime pullup configuration - Make PWM sysfs export show up in udev - Race-free export of GPIO, PWM in sysfs? - A way to get from PWM channel to GPIO number

Hardware I/O - Wishlist - Software PWM kernel-land implementation using high-resolution timers Bill Gatliff had a patch in 2010 - there are others e.g. i2c-gpio wish: /sys/class/gpio/gpion/software_pwm - Runtime pullup configuration - Make PWM sysfs export show up in udev - Race-free export of GPIO, PWM in sysfs? - A way to get from PWM channel to GPIO number

Hardware I/O - Wishlist - Software PWM - Runtime pullup configuration currently only possible through device tree overlays w/ pinconf vs. digitalwrite() on INPUTs in Arduino wish: /sys/class/gpio/gpion/bias (behind config option?) - Make PWM sysfs export show up in udev - Race-free export of GPIO, PWM in sysfs? - A way to get from PWM channel to GPIO number

Hardware I/O - Wishlist - Software PWM - Runtime pullup configuration - Make PWM sysfs export show up in udev writing to /sys/class/pwm/.../export doesn t trigger events for udev (works w/ /sys/class/gpio/export) hence currently root required - Race-free export of GPIO, PWM in sysfs? - A way to get from PWM channel to GPIO number

Hardware I/O - Wishlist - Software PWM - Runtime pullup configuration - Make PWM sysfs export show up in udev - Race-free export of GPIO, PWM in sysfs? exporting a GPIO pin needs to wait for udev to do its thing currently: Thread.sleep(500) perhaps: default owner & mode taken from export node? ideas? - A way to get from PWM channel to GPIO number

Hardware I/O - Wishlist - Software PWM - Runtime pullup configuration - Make PWM sysfs export show up in udev - Race-free export of GPIO, PWM in sysfs? - A way to get from PWM channel to GPIO numbers sysfs doesn t tell you this atm

Hardware I/O - Any help greatly appreciated :) https://github.com/gohai/arduino-like-linux Comments?

Thank you FOSDEM! Gottfried Haider @mrgohai