From 72d6f35da90d7c197e76c3b4e1e2f024bae5f72c Mon Sep 17 00:00:00 2001 From: "M@" Date: Sun, 3 Aug 2014 16:08:30 -0400 Subject: [PATCH] added a bunch of todo items --- TODO | 25 +++- overlays/robobonobo-00A0.dts | 223 +++++++++++++++++++++++++++++++++++ 2 files changed, 242 insertions(+), 6 deletions(-) create mode 100644 overlays/robobonobo-00A0.dts diff --git a/TODO b/TODO index 87857dd..629bb40 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,4 @@ Firmware: - check if everything in fragments 0-7 are necessary LOW - check if the other analog channels can be disabled LOW rename all the device overlays Hardware: @@ -13,13 +11,28 @@ Hardware: add 3rd solenoid driver channel (4th? Do we need to support dual yaw piston option?) add 3rd analog port for string pots look into 12V switching regulator for solenoids and pressure sensors + choose cables and connectors + choose enclosures + update schematic and pcb layout + bypass ports for manual control + Software: pull out the deadband parameters from closed loop test centralize all the parameters, a model file probably write calibration scripts - do constant velocity test - make realtime graphing (over the network) + make realtime graphing (over the network) (maybe storm?) start thinking about interfacing with the existing code - FRP? - start thinking about a UI + start thinking about a UI (LOW) + document a comm protocol + hook up all the networking code + do the physics + add force inputs to BBB code + import the gate code and the IK + import the joystick code + enforce speed ramps at all times + port SoftStopAwareSpeedManager to python, integrate + check out the pyode code, adapt it? + make E stop + write server code + diff --git a/overlays/robobonobo-00A0.dts b/overlays/robobonobo-00A0.dts new file mode 100644 index 0000000..f371d8b --- /dev/null +++ b/overlays/robobonobo-00A0.dts @@ -0,0 +1,223 @@ +/* + * Copyright (C) 2014 M@ Dunlap + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/dts-v1/; +/plugin/; + +/ { + compatible = "ti,beaglebone", "ti,beaglebone-black"; + + /* identification */ + part-number = "battle_bone"; + version = "00A0"; + + /* state the resources this cape uses */ + exclusive-use = + /* the pin header uses */ + "P8.11", /* eQEP2B (GPIO1_13) */ + "P8.12", /* eQEP2A (GPIO1_12) */ + "P8.17", /* GPIO0_27 */ + "P8.18", /* GPIO2_1 */ + "P8.19", /* pwm: ehrpwm2A */ + + "P9.11", /* GPIO0_30 (UART4_RXD) */ + "P9.12", /* GPIO1_28 (GPIO1_28) */ + "P9.21", /* UART2_TXD */ + "P9.22", /* UART2_RXD */ + "P9.27", /* eQEP0B (GPIO3_19) */ + "P9.28", /* GPIO3_17 (SPI1_CS0) */ + "P9.29", /* pwm: ehrpwm0B (SPI1_D0) */ + "P9.30", /* GPIO3_16 (SPI1_D1) */ + "P9.31", /* pwm: ehrpwm0A (SPI1_SCLK) */ + "P9.33", /* AIN4 */ + "P9.35", /* AIN6 */ + "P9.36", /* AIN5 */ + "P9.37", /* AIN2 */ + "P9.38", /* AIN3 */ + "P9.39", /* AIN0 */ + "P9.40", /* AIN1 */ + "P9.42", /* eQEP0A (GPIO3_18): TODO: set GPIO0_7 to input */ + + + /* the hardware IP uses */ + "ehrpwm0A", + "ehrpwm0B", + "ehrpwm2A", + "eqep0A", + "eqep0B", + "eqep2A", + "eqep2B", + "tscadc", + "uart2"; + + /* Experimental am33xx unknown overlay */ + fragment@0 { + target = <&epwmss0>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&ehrpwm0>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&ecap0>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@3 { + target = <&epwmss1>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@4 { + target = <&ehrpwm1>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@5 { + target = <&epwmss2>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@6 { + target = <&ehrpwm2>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@7 { + target = <&ecap2>; + __overlay__ { + status = "okay"; + }; + }; + + + /* Working PWM fragments */ + fragment@8 { + target = <&am33xx_pinmux>; + __overlay__ { + pwm_P8_19: pinmux_pwm_P8_19_pins { + pinctrl-single,pins = <0x020 0x4>; /* P8_19 (ZCZ ball U10) | MODE 4 */ + }; + }; + }; + + fragment@9 { + target = <&ocp>; + __overlay__ { + pwm_test_P8_19 { + compatible = "pwm_test"; + pwms = <&ehrpwm2 0 5000000 1>; + pwm-names = "PWM_P8_19"; + + pinctrl-names = "default"; + pinctrl-0 = <&pwm_P8_19>; + + enabled = <1>; + duty = <5000000>; + status = "okay"; + }; + }; + }; + + + fragment@16 { + target = <&am33xx_pinmux>; + __overlay__ { + pwm_P9_14: pinmux_pwm_P9_14_pins { + pinctrl-single,pins = <0x048 0x6>; /* P9_14 (ZCZ ball U14) | MODE 6 */ + }; + }; + }; + + fragment@17 { + target = <&ocp>; + __overlay__ { + pwm_test_P9_14 { + compatible = "pwm_test"; + pwms = <&ehrpwm1 0 5000000 1>; + pwm-names = "PWM_P9_14"; + pinctrl-names = "default"; + pinctrl-0 = <&pwm_P9_14>; + enabled = <1>; + duty = <0>; + status = "okay"; + }; + }; + }; + + fragment@18 { + target = <&am33xx_pinmux>; + __overlay__ { + pwm_P9_16: pinmux_pwm_P9_16_pins { + pinctrl-single,pins = <0x04c 0x6>; /* P9_16 (ZCZ ball T14) | MODE 6 */ + }; + }; + }; + + fragment@19 { + target = <&ocp>; + __overlay__ { + pwm_test_P9_16 { + compatible = "pwm_test"; + pwms = <&ehrpwm1 1 5000000 1>; + pwm-names = "PWM_P9_16"; + pinctrl-names = "default"; + pinctrl-0 = <&pwm_P9_16>; + enabled = <1>; + duty = <0>; + status = "okay"; + }; + }; + }; + + fragment@20 { + target = <&ocp>; + __overlay__ { + #address-cells = <1>; + #size-cells = <1>; + + tscadc { + compatible = "ti,ti-tscadc"; + reg = <0x44e0d000 0x1000>; + + interrupt-parent = <&intc>; + interrupts = <16>; + ti,hwmods = "adc_tsc"; + status = "okay"; + + adc { + ti,adc-channels = <0 1 2 3 4 5 6 7>; + }; + }; + + test_helper: helper { + compatible = "bone-iio-helper"; + vsense-name = "AIN0", "AIN1", "AIN2", "AIN3", "AIN4", "AIN5", "AIN6", "AIN7"; + vsense-scale = <100 100 100 100 100 100 100 100>; + status = "okay"; + }; + }; + };/**/ + +};