diff --git a/beaglebone-blue/accessories.rst b/beaglebone-blue/accessories.rst new file mode 100644 index 0000000000000000000000000000000000000000..9bb37a611e264b44775d3748197361d05dda1713 --- /dev/null +++ b/beaglebone-blue/accessories.rst @@ -0,0 +1,277 @@ +.. _beaglebone-blue-accessories: + +Accessories +############### + +.. _chassis_and_kits: + +Chassis and kits +==================== + +- `EduMIP <https://www.renaissancerobotics.com/edumip.html>`__ +- `Pololu Romi Chassis with geared + motors <https://www.pololu.com/category/202/romi-chassis-and-accessories>`__ + + - `Wheel encoders <https://www.pololu.com/product/3542>`__ + - `Chassis - Black <https://www.pololu.com/product/3500>`__ + +- `Sprout Runt Rover <https://www.servocity.com/sprout>`__ + +Cases +====== + +.. _cable_assemblies_and_sub_assemblies: + +Cable assemblies and sub-assemblies +======================================== + +Beware; purchased pre-made connector assembly wire colors may not +reflect true pin designations. These assemblies are readily available +from `Digi-Key <https://www.digikey.com>`__, +`SparkFun <https://sparkfun.com>`__, `Hobby +King <https://hobbyking.com>`__, `Pololu <https://www.pololu.com>`__ and +`Cables and Connectors <http://cablesandconnectors.com>`__. + +.. _jst_connector_bundle: + +JST Connector Bundle +-------------------- + +.. _renaissance_robotics_jst_jumper_bundle: + +Renaissance Robotics JST Jumper Bundle +******************************************** + +| Four of the 2-pin JST ZH (1.5mm pitch) connectors, with 150mm 28AWG + wires, for motors, +| Eight of the 4-pin JST SH (1mm pitch) connectors, with 150mm 28AWG + wires, for encoders, UART, I2C, CAN, PWR, and +| Four of the 6-pin JST SH (1mm pitch) connectors, with 150mm 28AWG + wires, for SPI, GPS, GPIO, ADC. +| `Renaissance Robotics JST Jumper + Bundle <https://www.renaissancerobotics.com/JST_Jumper_Bundle.html>`__ + +.. _conrad_beagleboard_kabel_bb_blue_kabelset: + +Conrad BeagleBoard Kabel BB-Blue-Kabelset +*********************************************** + +| 10x 4-Pin JST-SH +| 6x 6-Pin JST-SH +| 4x 2-Pin JST-ZH +| 1x 3-Pin JST-ZH +| `BeagleBoard Kabel BB-Blue-Kabelset + (Conrad.de) <https://www.conrad.de/de/beagleboard-kabel-bb-blue-kabelset-1606596.html>`__ + +.. _uart_i2c_can_quadrature_encoders_pwr: + +UART, I2C, CAN, Quadrature encoders, PWR +========================================== + +4-wire JST-SH (1mm pitch) + +- `4-wire Grove + cable <https://www.seeedstudio.com/Grove-Universal-4-Pin-to-Beaglebone-Blue-4-Pin-Female-JST-SH-Convertion-Cable-(10-pcs-pack)-p-3026.html>`__ + (`Digi-Key <https://www.digikey.com/product-detail/en/seeed-technology-co-ltd/114991495/1597-1622-ND/8558386>`__) +- `Hobby King SKU + 258000190-0 <https://hobbyking.com/en_us/jst-sh-4pin-male-with-pig-tail.html>`__ +- `SparkFun PN 10359 <https://www.sparkfun.com/products/10359>`__ +- `Cables and Connectors 4" ribbon PN + #4904 <http://www.cablesandconnectors.com/search/search.php?k=49404>`__ +- `Digi-Key + wires <https://www.digikey.com/products/en?keywords=ASSHSSH28K305>`__ +- `Digi-Key + housings <https://www.digikey.com/product-detail/en/jst-sales-america-inc/SHR-04V-S-B/455-1379-ND/759868>`__ + +.. _spi_gpio_adc: + +SPI, GPIO, ADC +=================== + +6-wire JST-SH (1mm pitch) + +- `Hobby King SKU + 258000192-0 <https://hobbyking.com/en_us/jst-sh-6pin-male-with-pig-tail.html>`__ +- `SparkFun PN 10361 <https://www.sparkfun.com/products/10361>`__ +- `Cables and Connectors 50cm length PN + #49406 <http://www.cablesandconnectors.com/search/search.php?k=49406>`__ +- `Digi-Key + wires <https://www.digikey.com/products/en?keywords=ASSHSSH28K305>`__ +- `Digi-Key + housings <https://www.digikey.com/product-detail/en/jst-sales-america-inc/SHR-06V-S-B/455-1381-ND/759870>`__ +- `6-wire Grove cable (4 + populated) <https://www.seeedstudio.com/Grove-Universal-4-Pin-to-Beaglebone-Blue-6-Pin-Female-JST-SH-Convertion-Cable-(10-pcs-pack)-p-3027.html>`__ + (`Digi-Key <https://www.digikey.com/product-detail/en/seeed-technology-co-ltd/114991496/1597-1623-ND/8558387>`__) + +Motors +========= + +2-wire JST-ZH (1.5mm pitch) + +- `Digi-Key + wires <http://www.digikey.com/product-detail/en/jst-sales-america-inc/ASZHSZH28K152/455-3079-ND/6009455>`__ +- `Digi-Key + receptacle <http://www.digikey.com/product-detail/en/jst-sales-america-inc/ZHR-2/455-1366-ND/566476>`__ + +DSM +====== + +3-wire JST-ZH (1.5mm pitch) + +- `Pololu PN# 2411 <https://www.pololu.com/product/2411>`__ + +microUSB +--------- + +standard + +Batteries +----------- + +2S1P LiPo with 3-wire JST-XH (2.5mm pitch) charge connection + +- `Hobby King 1000mAh 2S 20C + LiPo <https://hobbyking.com/en_us/turnigy-1000mah-2s-20c-lipo-pack.html>`__ +- `Hobby King 1600mAh 2S 20C + LiPo <https://hobbyking.com/en_us/turnigy-1600mah-2s-20c-losi-mini-sct-pack-part-losb1212.html>`__ + +.. _power_supplies: + +Power supplies +================== + +12V with 5.5mm/2.1mm center positive + +- Jameco: + `supply <http://www.jameco.com/z/TR9CE4100LCP-A-Globtek-50W-12V-4-16A-AC-to-DC-Regulated-Switching-Wall-Adapter_2229247.html?CID=GOOG&gclid=CL-2js2-n9ICFQQdaQodMgsLMA>`__ + and `power + cord <http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?search_type=jamecoall&catalogId=10001&freeText=38050&langId=-1&productId=38050&storeId=10001&ddkey=http:StoreCatalogDrillDownView>`__ +- `Hobby King 12V 3A + supply <https://hobbyking.com/en_us/12v-3a-interchangeable-plug-adapter.html>`__ + +.. _motors_1: + +Motors +=========== + +.. _servo_motors: + +Servo motors +------------------ + +6V DC + +- `Parallax Inc. 900-00005 Standard + Servo <http://www.digikey.com/product-detail/en/900-00005/900-00005-ND/361277?WT.mc_id=IQ_7595_G_pla361277&wt.srch=1&wt.medium=cpc&WT.srch=1&gclid=CJz-qdC9n9ICFRO4wAodOjYLuQ>`__ +- `Hobby King SKU + HD-1900A <https://hobbyking.com/en_us/power-hd-1900a-servo-1-7kg-0-08sec-9g.html>`__ +- `TowerPro SG92R-7 <http://www.towerpro.com.tw/product/sg92r-7/>`__ + +.. _dc_motors: + +DC motors +---------- + +6V, typically geared + +- `SparkFun Hobby Gearmotor - 200 RPM + (Pair) <https://www.sparkfun.com/products/13302>`__ +- `SparkFun Hobby Motor - + Gear <https://www.sparkfun.com/products/11696>`__ + +.. _radio_remotes: + +Radio remotes +================= + +- `Hobby King OrangeRX satellite + receiver <https://hobbyking.com/en_us/orangerx-r110x-dsmx-dsm2-compatible-satellite-receiver.html>`__ +- `Spektrum DSM2 Remote + Receiver <https://www.spektrumrc.com/Products/Default.aspx?ProdID=SPM9545>`__ + +GPS +====== + +- `Sparkfun GPS Receiver - EM-506 (48 + Channel) <https://www.sparkfun.com/products/12751>`__ +- `Adafruit Ultimate GPS + breakout <https://www.adafruit.com/product/746>`__ +- `Ublox Neo-M8N GPS with + Compass <https://hobbyking.com/en_us/ublox-neo-m8n-gps-with-compass.html>`__ +- `SeeedStudio Grove - + GPS <https://www.seeedstudio.com/Grove-GPS-p-959.html>`__ + +.. _replacement_antennas: + +Replacement antennas +====================== + +- `LSR + PIFA <https://www.digikey.com/product-detail/en/laird-wireless-thermal-systems/001-0014/001-0014-ND/4732758>`__ +- LSR Dipole: + `antenna <https://www.digikey.com/product-detail/en/laird-wireless-thermal-systems/001-0001/001-0001-ND/2696493>`__ + and + `cable <https://www.digikey.com/product-detail/en/lsr/080-0001/080-0001-ND/2696495>`__ +- `Anaren U.FL 2.4GHz 6MM + Antenna <http://www.digikey.com/product-detail/en/anaren/66089-2406/1173-1024-ND/3069146>`__ +- `TI approved + antennas <http://www.ti.com/lit/ug/swru437/swru437.pdf>`__ + +.. _usb_devices: + +USB devices +================ + +.. _usb_cameras: + +USB cameras +-------------- + +- `Logitech + C270 <https://www.amazon.com/Logitech-Desktop-Widescreen-Calling-Recording/dp/B004FHO5Y6>`__ +- `Logitech + C920 <https://www.amazon.com/Logitech-Widescreen-Calling-Recording-Desktop/dp/B006JH8T3S>`__ + +.. _spi_devices: + +SPI devices +=============== + +.. _spi_tft_displays: + +SPI TFT displays +------------------ + +- `Adafruit 2.4" LCD + breakout <https://www.adafruit.com/products/2478>`__ + +.. _i2c_devices: + +I2C devices +============== + +- See + `One-Liner-Module-Tests#Grove_I2C_modules <One-Liner-Module-Tests#Grove_I2C_modules>`__ + +.. _uart_devices: + +UART devices +=============== + +.. _computer_serial_adapters: + +Computer serial adapters +-------------------------- + +- `Sparkfun FTDI Cable 5V VCC-3.3V + I/O <https://www.sparkfun.com/products/9717>`__ +- `Adafruit FTDI Serial TTL-232 USB + Cable <https://www.adafruit.com/product/70>`__ + +.. _bluetooth_devices: + +Bluetooth devices +===================== + +- `WowWee Groove Cube + Speaker <https://github.com/beagleboard/beaglebone-blue/wiki/One-Liner-Module-Tests#Grove_I2C_modules>`__ diff --git a/beaglebone-blue/code.rst b/beaglebone-blue/code.rst new file mode 100644 index 0000000000000000000000000000000000000000..662252ebd2a14da94461a8129dd8a0a56bd26712 --- /dev/null +++ b/beaglebone-blue/code.rst @@ -0,0 +1,26 @@ +.. _beaglebone-blue-code: + +Play with the code +###################### + +The board has some code built in to the system that can allow you to try +out the various options. They all start with rc + +.. code:: bash + + rc_balance rc_dsm_passthrough rc_test_encoders + rc_battery_monitor rc_kill rc_test_filters + rc_benchmark_algebra rc_spi_loopback rc_test_imu + rc_bind_dsm rc_startup_routine rc_test_motors + rc_blink rc_test_adc rc_test_polynomial + rc_calibrate_dsm rc_test_algebra rc_test_servos + rc_calibrate_escs rc_test_barometer rc_test_time + rc_calibrate_gyro rc_test_buttons rc_test_vector + rc_calibrate_mag rc_test_cape rc_uart_loopback + rc_check_battery rc_test_dmp rc_version + rc_check_model rc_test_drivers + rc_cpu_freq rc_test_dsm + +Try them out to try out the various functions of the board. The source +code for these tests and demos is at `Robotics cape installer at +github <https://github.com/StrawsonDesign/Robotics_Cape_Installer>`__ diff --git a/beaglebone-blue/faq.rst b/beaglebone-blue/faq.rst new file mode 100644 index 0000000000000000000000000000000000000000..e64684503ce22e2d3accad02da6ca6d2e8e0ada4 --- /dev/null +++ b/beaglebone-blue/faq.rst @@ -0,0 +1,208 @@ +.. _beaglebone-blue-faq: + +Frequently Asked Questions (FAQs) +################################### + +.. _are_there_any_books_to_help_me_get_started: + +Are there any books to help me get started? +================================================== + +The book `BeagleBone Robotic Projects, Second +Edition <https://github.com/jadonk/BeagleBone-Robotic-Projects-Second-Edition>`__ +specifically covers how to get started building robots with BeagleBone +Blue. + +For more general books on BeagleBone, Linux and other related topics, +see https://beagleboard.org/books. + +.. _what_system_firmware_should_i_use_for_starting_to_explore_my_beaglebone_blue: + +What system firmware should I use for starting to explore my BeagleBone Blue? +=================================================================================== + +Download the latest 'IoT' image from +https://beagleboard.org/latest-images. As of this writing, that image is +https://debian.beagleboard.org/images/bone-debian-9.5-iot-armhf-2018-10-07-4gb.img.xz. + +Use http://etcher.io for writing that image to a 4GB or larger microSD +card. + +Power-up your BeagleBone Blue with the newly created microSD card to run +this firmware image. + +.. _what_is_the_name_of_the_access_point_ssid_and_password_default_on_beaglebone_blue: + +What is the name of the access point SSID and password default on BeagleBone Blue? +=================================================================================== + +| SSID: BeagleBone-XXXX where XXXX is based upon the board's assigned + unique hardware address +| Password: BeagleBone + +.. _ive_connected_to_beaglebone_blues_access_point._how_do_i_get_logged_into_the_board: + +I've connected to BeagleBone Blue's access point. How do I get logged into the board? +======================================================================================= + +Browse to http://192.168.8.1:3000 to open the Cloud9 IDE and get access +to the Linux command prompt. + +If you've connected via USB instead, the address will be either +http://192.168.6.2:3000 or http://192.168.7.2:3000, depending on the USB +networking drivers provided by your operating system. + +.. _how_do_i_connect_beaglebone_blue_to_my_own_wifi_network: + +How do I connect BeagleBone Blue to my own WiFi network? +========================================================== + +From the bash command prompt in Linux: + +.. code:: bash + + sudo -s (become superuser/root) + + connmanctl + connmanctl> tether wifi off (not really necessary on latest images) + connmanctl> enable wifi (not really necessary) + connmanctl> scan wifi + connmanctl> services (at this point you should see your network + appear along with other stuff, in my case it was "AR Crystal wifi_f45eab2f1ee1_6372797774616c_managed_psk") + connmanctl> agent on + connmanctl> connect wifi_f45eab2f1ee1_6372797774616c_managed_psk + connmanctl> quit + +.. _where_can_i_find_examples_and_apis_for_programming_beaglebone_blue: + +Where can I find examples and APIs for programming BeagleBone Blue? +======================================================================== + +Programming in C: http://www.strawsondesign.com/#!manual-install + +Programming in Python: https://github.com/mcdeoliveira/rcpy + +Programming in Simulink: +https://www.mathworks.com/hardware-support/beaglebone-blue.html + +.. _my_beaglebone_blue_fails_to_run_successful_tests: + +My Beaglebone Blue fails to run successful tests +====================================================== + +You've tried to run rc_test_drivers to ensure your board is working for +DOA warranty tests, but it errors. You should first look to fixing your +bootloader as described +http://strawsondesign.com/docs/librobotcontrol/installation.html#installation_s5 + +.. _im_running_an_image_off_of_a_microsd_card._how_do_i_write_it_to_the_on_board_emmc_flash: + +I'm running an image off of a microSD card. How do I write it to the on-board eMMC flash? +========================================================================================== + +Refer to the "Flashing Firmware" page: +https://github.com/beagleboard/beaglebone-blue/wiki/Flashing-firmware + +Meanwhile, as root, run the +/opt/scripts/tools/eMMC/bbb-eMMC-flasher-eewiki-ext4.sh script which +will create a copy of the system in your microSD to a new single ext4 +partition on the on-board eMMC. + +.. _ive_written_the_latest_image_to_a_usd_card_but_some_features_arent_working._how_do_i_make_it_run_properly: + +I’ve written the latest image to a uSD card, but some features aren’t working. How do I make it run properly? +============================================================================================================== + +It is possible you are running an old bootloader off of the eMMC. While +power is completely off, hold the SD button (near the servo headers) +while applying power. You can release the button as soon the power LED +comes on. This will make sure the bootloader is loaded from microSD and +not eMMC. + +Verify the running image using +`version.sh <https://github.com/RobertCNelson/boot-scripts/blob/master/tools/version.sh>`__ +via: + +.. code:: bash + + sudo /opt/scripts/tools/version.sh + +The version.sh output will tell you which version of bootloader is on +the eMMC or microSD. Future versions of version.sh might further inform +you `if the SD button was properly asserted on +power-up <https://github.com/RobertCNelson/boot-scripts/issues/93>`__. + +One you’ve booted the latest image, you can update the bootloader on the +eMMC using +`/opt/scripts/tools/developers/update_bootloader.sh <https://github.com/RobertCNelson/boot-scripts/blob/master/tools/developers/update_bootloader.sh>`__. +Better yet, read the `above +FAQ <https://github.com/beagleboard/beaglebone-blue/wiki/Frequently-Asked-Questions-%28FAQ%29#Im_running_an_image_off_of_a_microSD_card_How_do_I_write_it_to_the_onboard_eMMC_flash>`__ +on flashing firmware. + +.. _ive_got_my_on_board_emmc_flash_configured_in_a_nice_way._how_do_i_copy_that_to_other_beaglebone_blue_boards: + +I've got my on-board eMMC flash configured in a nice way. How do I copy that to other BeagleBone Blue boards? +================================================================================================================= + +As root, run the +`/opt/scripts/tools/eMMC/beaglebone-black-make-microSD-flasher-from-eMMC.sh <https://github.com/RobertCNelson/boot-scripts/blob/master/tools/eMMC/beaglebone-black-make-microSD-flasher-from-eMMC.sh>`__ +script with a blank 4GB or larger microSD card installed and wait for +the script to complete execution. + +Remove the microSD card. + +Boot your other BeagleBone Blue boards off of this newly updated microSD +card and wait for the flashing process to complete. You'll know it +successfully started when you see the "larson scanner" running on the +LEDs. You'll know it successfully completed when it shuts off the board. + +Remove the microSD card. + +Reboot your newly flashed board. + +.. _i_have_some_low_latency_io_tasks._how_do_i_get_started_programming_the_beaglebone_prus: + +I have some low-latency I/O tasks. How do I get started programming the BeagleBone PRUs? +========================================================================================== + +There is a "Hello, World" app at +https://gist.github.com/jadonk/2ecf864e1b3f250bad82c0eae12b7b64 that +will get you blinking the USRx LEDS. + +The `libroboticscape +software <https://github.com/StrawsonDesign/Robotics_Cape_Installer>`__ +provides examples that are pre-built and included in the BeagleBone Blue +software images for running the servo/ESC outputs and fourth quadrature +encoder input. You can use those firmware images as a basis for building +your own: +https://github.com/StrawsonDesign/Robotics_Cape_Installer/tree/master/pru_firmware + +You can find some more at https://beagleboard.org/pru + +.. _are_there_available_mechanical_models: + +Are there available mechanical models? +============================================= + +A community contributed model is available at +https://grabcad.com/library/beaglebone-blue-1 + +.. _what_is_the_operating_temperature_range: + +What is the operating temperature range? +============================================= + +\`0..70\` due to processor, else \`-20..70\` + +.. _what_is_the_dc_motor_drive_strength: + +What is the DC motor drive strength? +============================================ + +This is dictated by the 2 cell LiPo battery input, the `TB6612FNG motor +drivers <http://www.pololu.com/file/0J86/TB6612FNG.pdf>`__ and the +`JST-ZH connectors <http://www.jst-mfg.com/product/detail_e.php?series=287>`__ + +- Voltage: 6V-8.4V (typical) +- Current: 1A (maximum for connectors) / 1.2A (maximum average from + drivers) / 3.2A (peak from drivers) per channel diff --git a/beaglebone-blue/flashing-firmware.rst b/beaglebone-blue/flashing-firmware.rst new file mode 100644 index 0000000000000000000000000000000000000000..1d9bd68e0add818711a52bf0f89f9fa43cb11d47 --- /dev/null +++ b/beaglebone-blue/flashing-firmware.rst @@ -0,0 +1,106 @@ +.. _beaglebone-blue-flashing-firmware: + +Flashing Firmware +##################### + +Overview +============ + +Most Beaglebones have a built in 4 GB SD card known as a eMMC (embedded +MMC). When the boards are made the eMMC is “flashed†with some version +of the Beaglebone OS that is usually outdated. Therefore, whenever +receiving the Beaglebone it is recommend that you update the eMMC with +the last version of the Beaglebone OS or a specific version of it if +someone tells you otherwise. + +Required Items +================== + +1. Micro sd card. 4 GB minimum +2. Micro sd card reader or a built in sd card reader for your PC +3. Beaglebone image you want to flash. +4. `Etcher utility <https://etcher.io/>`__ for your PC’s OS. + +Steps Overview +================= + +1. Burn the image you want to flash onto a micro sd card using the + Etcher utility. +2. Boot the Beaglebone like normal and place the micro sd card into the + board once booted. +3. Update the micro sd card image so its in “flashing†mode. +4. Insert micro sd card, remove power from the Beaglebone, hold sd card + select button, power up board +5. Let the board flash + +Windows PCs +============= + +1. Download the `Beaglebone + OS <https://beagleboard.org/latest-images>`__ image you want to use. +2. Use the `Etcher utility <https://etcher.io/>`__ to burn the + Beaglebone image you want to use on the micro sd card you plan on + using. +3. Make sure you don’t have the micro sd card plugged into your board. +4. Boot the board +5. Connect to the board via serial or ssh so that your on the command + prompt. +6. Plug the micro sd card into the board. +7. Type dmesg in the terminal window +8. The last line from the output should say something like (the + numbering may differ slightly): + + - ``"[ 2805.442940] mmcblk0: p1"`` + +9. You want to take the above and combine it together by removing the : + and space. For the above example it will change to “mmcblk0p1†+10. In the terminal window enter the following commands: + +.. code:: bash + + mkdir sd_tmp + sudo mount /dev/mmcblk0p1 sd_tmp + sudo su + echo "cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh" >> sd_tmp/boot/uEnv.txt + exit + sudo umount sd_tmp + +11. Now power off your board +12. Hold the update button labeled ``SD`` (the one by itself) to boot + off the sdcard. +13. Restart (RST button) or power up (while still pushing SD button). + +Flashing can take some minutes. ## Linux/Mac PCs 1. Download the +`Beaglebone OS <https://beagleboard.org/latest-images>`__ image you want +to use. 1. Use the `Etcher utility <https://etcher.io/>`__ to burn the +Beaglebone image you want to use on the micro sd card you plan on using. +1. On the SD card edit the file ``/boot/uEnv.txt`` in order for the SD +card contents to be flashed onto the firmware eMMC. (Otherwise the BBBL +will do no more than boot the SD image.) Uncomment the line containing +``init-eMMC-flasher-v<number>.sh`` either manually or using these +commands substituting ``X`` with what your SD card shows in ``/dev/``: +\* ``sudo mount /dev/emmcblkXp1 /mnt`` \* ``cd /mnt`` \* +``sed -i 's_#[ ]*\(cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v[0-9]\+.*\.sh\)_\1_' boot/uEnv.txt`` + +1. Eject the sdcard from your computer. +2. Put it into your BeagleBoneBlue. +3. If your board was already powered on then power it off +4. Hold the update button labeled ``SD`` (the one by itself) to boot off + the sdcard. +5. Restart (RST button) or power up (while still pushing SD button). + +Flashing can take some minutes. + +How to tell if it is flashing? +------------------------------- + +At first a blue heartbeat is shown indicating the image is booted. On +flash procedure start, the blue user LEDs light up in a “larson scanner†+or “cylon†pattern (back and forth). + +When finished, either all blue LEDs are on or the board is already +switched off. + +If the LEDs are on for a long time then it may indicate failure +e.g. wrong image. Can be verified if boot fails, i.e. board turns off +again shortly after power up. diff --git a/beaglebone-blue/index.rst b/beaglebone-blue/index.rst new file mode 100644 index 0000000000000000000000000000000000000000..879609dc1794e204f82408bb2973e971215fe000 --- /dev/null +++ b/beaglebone-blue/index.rst @@ -0,0 +1,34 @@ +.. _beaglebone-blue-home: + +BeagleBone Blue +################ + +To optimize BeagleBone for education, BeagleBone Blue was created that integrates many components +for robotics and machine control, including connectors for off-the-shelf robotic components. +For education, this means you can quickly start talking about topics such as programming and +control theory, without needing to spend so much time on electronics. The goal is to still be +very hackable for learning electronics as well, including being fully open hardware. + +BeagleBone Blue's legacy is primarily from contributions to BeagleBone Black +robotics by `UCSD Flow Control and Coordinated Robotics Lab <http://robotics.ucsd.edu/>`_, +`Strawson Design <http://www.strawsondesign.com/>`_, `Octavo Systems <http://octavosystems.com/>`_, +`WowWee <http://www.wowwee.com/mip/>`_, `National Instruments LabVIEW <http://www.ni.com/labview/>`_ +and of course the `BeagleBoard.org Foundation <https://beagleboard.org/about>`_. + + +.. toctree:: + :maxdepth: 1 + + pinouts.rst + ssh.rst + wifi.rst + ip-settings.rst + flashing-firmware.rst + code.rst + tests.rst + accessories.rst + faq.rst + rev-c-priorities.rst + + + diff --git a/beaglebone-blue/ip-settings.rst b/beaglebone-blue/ip-settings.rst new file mode 100644 index 0000000000000000000000000000000000000000..97b21a41d3b0739b0d1aeae090e723c3f7c42d17 --- /dev/null +++ b/beaglebone-blue/ip-settings.rst @@ -0,0 +1,36 @@ +.. _beaglebone-blue-ip-settings + +IP settings +############ + +You will usually want to have a fixed ip if you are doing robotics, so +you have a standard ip to connect to. If you are already connected in +dhcp you can borrow some of the settings from that to use in your new +configurations. + +.. code:: bash + + route + +make a note of the default one, (in the example below 192.168.1.1) + +.. code:: bash + + cat /etc/resolv.conf + +make a note of the nameserver, (in the example below 8.8.8.8) + +In my case I wanted 192.168.1.7 to do this, + +.. code:: bash + + sudo -s + connmanctl config wifi_f45eab2f1ee1_6372797774616c_managed_psk --ipv4 manual 192.168.1.7 255.255.255.0 192.168.1.1 --nameservers 8.8.8.8 + exit + +the –ipv4 says to use ipv4 settings (as opposed to ipv6), the manual +means we are setting the values. 192.168.1.7 is the ip address we want. +(use your own of course). 255.255.255.0 is the network mask 192.168.1.1 +is the route to the internet. (You’re might be different, but this is +common). –nameservers 8.8.8.8 says where to find the ip address for a +given domain name. the 8.8.8.8 says use’s googles diff --git a/beaglebone-blue/media/BeagleBone_Blue_pinouts.png b/beaglebone-blue/media/BeagleBone_Blue_pinouts.png new file mode 100644 index 0000000000000000000000000000000000000000..1449f9f4127d2b33a0f7fdcd7c190628a6fa5e45 Binary files /dev/null and b/beaglebone-blue/media/BeagleBone_Blue_pinouts.png differ diff --git a/beaglebone-blue/media/pinout.jpg b/beaglebone-blue/media/pinout.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b000d3e666d5edf6250605e14b65059550ddba30 Binary files /dev/null and b/beaglebone-blue/media/pinout.jpg differ diff --git a/beaglebone-blue/pinouts.rst b/beaglebone-blue/pinouts.rst new file mode 100644 index 0000000000000000000000000000000000000000..92fc416d45517b8c2f800e206773c8a041ff1088 --- /dev/null +++ b/beaglebone-blue/pinouts.rst @@ -0,0 +1,40 @@ + +.. _beaglebone-blue-pinouts: + +BeagleBone Blue Pinouts +######################### + +.. image:: media/BeagleBone_Blue_pinouts.png + :align: center + +.. image:: media/pinout.jpg + :align: center + +- Connector pinout + `details <https://github.com/beagleboard/beaglebone-blue/blob/master/BeagleBone_Blue_sch.pdf>`__ + from schematic(s) +- `Pin + Table <https://github.com/beagleboard/beaglebone-blue/blob/master/BeagleBone_Blue_Pin_Table.csv>`__ + with some Blue : Black corelation. + +UT1 +===== + +UART (/dev/ttyS1) +-------------------- + +.. code:: bash + + config-pin P9.24 uart + config-pin P9.26 uart + +GPS +=========== + +UART (/dev/ttyS2) +-------------------- + +.. code:: bash + + config-pin P9.21 uart + config-pin P9.22 uart diff --git a/beaglebone-blue/rev-c-priorities.rst b/beaglebone-blue/rev-c-priorities.rst new file mode 100644 index 0000000000000000000000000000000000000000..e7f50eb23ee4de7da20c5024fb8a1a5e8a9defa6 --- /dev/null +++ b/beaglebone-blue/rev-c-priorities.rst @@ -0,0 +1,144 @@ +.. _beaglebone-blue-rev-c-updates: + +Rev-C updates: +############## + +Priorities +=========== + +- Update to dual-A53 processor +- Protect serial ports, QEP and others that could drive inputs while + power is off (at least 5V tolerance) +- Switch USB type-microB to USB type-C +- Add 5Gbps (SS) to USB type-C +- Add mux to support USB type-C host mode (cable flip support) +- Perform PD on USB type-C to enable charging when 20V is available, + drop barrel jack +- `Move MPU9250 to + SPI <https://github.com/beagleboard/beaglebone-blue/issues/43>`__ +- Swap out motor connectors +- Move up to 3S LiPo battery and 12V motors +- Add support for quad 3-phase motors +- Add BeagleConnect-compatible subG wireless +- Add +/- 12V support on ADC +- Add Pi-compatible CSI connector for camera +- Add 5GHz WiFi +- Add PCIe as alt-mode to USB type-C +- Add RS-485 +- Switch to push-pull microSD card cage +- Use gold plated pins +- Power motors when running on USB type-C +- TODO: Consider 28V 3-phase motors +- Switch some connectors to Click Shuttle ribbon header +- Support I3C +- Support FD-CAN +- ~Switch to Atheros9K for WiFi~ Consider going with WiLink8 discrete + and 5GHz +- On-board audio codec + +Wishlist +=========== + +- PoE expansion +- MIDI expansion +- Multi-channel audio expansion + +Features suitable to remove +============================== + +- Bluetooth (not commonly used, whereas BLE and SubG can be more + useful) +- 2.4GHz WiFi (too much interference) + +Example motors to drive +======================= + +Brushed DC +---------- + +- `DFRobot + FIT0441 <https://www.digikey.com/product-detail/en/dfrobot/FIT0441/1738-1157-ND/6588579?utm_adgroup=Motors%20-%20AC,%20DC&utm_source=google&utm_medium=cpc&utm_campaign=Shopping_Product_Motors,%20Solenoids,%20Driver%20Boards/Modules&utm_term=&utm_content=Motors%20-%20AC,%20DC&gclid=CjwKCAjw26H3BRB2EiwAy32zhVs5Yf-JZ6fIOZlI79NlxhSv1wkXs-ZDEyYi8ZD7XIP9H9fyWHnxQxoCAmEQAvD_BwE>`__ +- `Geartisan 12V + DC <https://smile.amazon.com/Greartisan-Electric-Reduction-Eccentric-Diameter/dp/B072R5QSRG>`__ + +3 phase (BLDC, 3 phase stepper, etc.) +------------------------------------- + +- `Moon NEMA 17 3 phase + stepper <https://www.moonsindustries.com/series/nema-17-smooth-hybrid-stepper-motors-b020302>`__ +- `Primopal NEMA 17 3 phase + stepper <http://www.primopal.com/web/Product4_GoodsID_25.html>`__ [ + `$6 on + Alibaba <https://primopal.en.alibaba.com/product/60637037880-811771415/1_2_degree_3_phase_dc_hybrid_china_bipolar_control_step_valve_flat_nema_17_stepper_motor_for_3d_printer_robot_arm_cnc_kit.html>`__ + ] +- `XXD A2212 KV1000 + BLDC <https://usa.banggood.com/Wholesale-XXD-A2212-KV1000-Brushless-Motor-H363-For-RC-Airplane-Quadcopter-p-57432.html?cur_warehouse=CN>`__ +- `OMC NEMA 23 3 phase + stepper <https://www.omc-stepperonline.com/3-phase-stepper-motor/p-series-nema-23-1-2deg-3-phase-stepper-motor-5-5a-1nm-141-64oz-in.html>`__ + +Proposed motor drive circuit +---------------------------- + +- Driver: https://www.ti.com/product/DRV8316 +- [STRIKEOUT:Reference design: https://www.ti.com/tool/TIDA-01516] +- [STRIKEOUT:Gate driver, shunt amp: + https://www.ti.com/product/DRV8323] +- [STRIKEOUT:FET pairs (1/2 H-bridge): + https://www.ti.com/product/CSD87353Q5D] +- Temperature sensor: https://www.ti.com/product/LM95071 + +Issues to review +================ + +- https://github.com/beagleboard/beaglebone-blue/issues?q=is%3Aissue+is%3Aopen+label%3Afix-in-rev-b +- https://github.com/beagleboard/beaglebone-blue/issues?q=is%3Aissue+is%3Aopen+label%3Afix-in-rev-c + +Integrate feedback from +======================= + +- TAMU - https://mxet.github.io/SCUTTLE/ - + https://docs.google.com/document/d/1LxO_4hpFQ1i4Vw9NmBai6ByAXrzt0i4g4wozqWoz0x4/edit?usp=sharing +- GT - https://fis.gatech.edu/multisensor-kit-mechanical-assembly/ + +GT +-- + +Blue GT feedback + +- 24V DC input option in cabinets +- 24V/12V/5V DC output helpful for sensors +- 4-20mA loop (definitely!) +- ADC (big bottleneck) (brings to NI DAQ level) +- -12V to 12V +- Current measurement (currently rectifying) + - 12/14-bit is good enough as is SAR max + - 7/8 channels is good enough + - Flexible software configuration ideal + - How much tolerance? (not seen as much more than 12V) +- Enclosure is important +- Look at Automation Direct Productivity Open +- Look at ncd.io + - Nice to have a block without doing extra jump + - Wired version would be more determinisitc + - OPC-UA, etc. when is time 0? +- 5GHz WiFi + - Better stock WiFi antennas + - Pi has better? + - USB dongle did better + - Better WiFi config +- Better PRU support + - High-school/undergrad-level + - Example code and interpreters +- Better support on image management + - eMMC to microSD + - Need to advertise it! +- Better community on-boarding +- Build on PRU and ADC advantages over Pi + +IoT workshop in November + +Review the GT cape + +Linear position sensor cape just done + +Thoughts on ribbon cables? diff --git a/beaglebone-blue/ssh.rst b/beaglebone-blue/ssh.rst new file mode 100644 index 0000000000000000000000000000000000000000..42e5ea7dab589e042ead904cebc89b115180368d --- /dev/null +++ b/beaglebone-blue/ssh.rst @@ -0,0 +1,27 @@ +.. _beaglebone-blue-passowrd: + +SSH +#### + +If you don’t have ssh installed, install it. (google is your friend) +Then `ssh debian@192.168.7.2` The board will tell you what the password +is, on my it was `temppwd`. + +To change your password use the command passwd it will ask you what your +current password is, then ask for the replacement. Then it will say it +was too simple and you have to do it again. Normal stuff. + +If you want to insist on using your simple password, try this. + +.. code:: bash + + sudo -s + (become superuser/root) + enter your password + passwd debian + (put your simple password in) + exit + (exit from superuser/root) + +When you are running as root, passwd is more compliant and will accept +simple password diff --git a/beaglebone-blue/tests.rst b/beaglebone-blue/tests.rst new file mode 100644 index 0000000000000000000000000000000000000000..6b89d828948efe2b300654e39a192ef340070730 --- /dev/null +++ b/beaglebone-blue/tests.rst @@ -0,0 +1,104 @@ +.. _beaglebone-blue-one-liner-tests: + +BeagleBone Blue tests +####################### + +ADC +===== + +- `Grove Rotary Angle + Sensor <http://wiki.seeed.cc/Grove-Rotary_Angle_Sensor/>`__ + See output on adc_1 + `source <https://github.com/StrawsonDesign/Robotics_Cape_Installer/blob/master/examples/rc_test_adc/rc_test_adc.c>`__ + +.. code:: bash + + rc_test_adc + +GP0 +==== + +- Grove single GPIO output modules like `LED Socket + Kit <http://wiki.seeed.cc/Grove-LED_Socket_Kit/>`__ + +.. code:: bash + + cd /sys/class/gpio;echo 49 >export;cd gpio49;echo out >direction;while sleep 1;do echo 0 >value;sleep 1;echo 1 >value;done + +- Grove single GPIO input modules like `IR Distance + Interrupter <http://wiki.seeed.cc/Grove-IR_Distance_Interrupter_v1.2/>`__ + or `Touch Sensor <http://wiki.seeed.cc/Grove-Touch_Sensor/>`__ + +.. code:: bash + + cd /sys/class/gpio;echo 49 >export;cd gpio49;echo in >direction;watch -n0 cat value + +GP1 +===== + +- Grove single GPIO output modules like `LED Socket + Kit <http://wiki.seeed.cc/Grove-LED_Socket_Kit/>`__ + +.. code:: bash + + cd /sys/class/gpio;echo 97 >export;cd gpio97;echo out >direction;while sleep 1;do echo 0 >value;sleep 1;echo 1 >value;done + +- Grove single GPIO input modules like `IR Distance + Interrupter <http://wiki.seeed.cc/Grove-IR_Distance_Interrupter_v1.2/>`__ + or `Touch Sensor <http://wiki.seeed.cc/Grove-Touch_Sensor/>`__ + +.. code:: bash + + cd /sys/class/gpio;echo 97 >export;cd gpio97;echo in >direction;watch -n0 cat value + +UT1 +===== + +- `Grove GPS <http://wiki.seeed.cc/Grove-GPS/>`__ + +.. code:: bash + + tio /dev/ttyO1 -b 9600 + +GPS +==== + +- `GPS Receiver - EM-506 <https://www.sparkfun.com/products/12751>`__ + +.. code:: bash + + tio /dev/ttyO2 -b 4800 + +I2C +==== + +.. _grove_i2c_modules: + +Grove I2C modules +--------------------- + +The Linux kernel source has some `basic IIO SYSFS interface +documentation <https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-iio>`__ +which might provide a little help for understanding reading these +entries. The ELC2017 conference also had `an IIO +presentation <http://elinux.org/images/b/ba/ELC_2017_-_Industrial_IO_and_You-_Nonsense_Hacks%21.pdf>`__. + +- `Digital Light Sensor <http://wiki.seeed.cc/Grove-Digital_Light_Sensor/>`__ + +.. code:: bash + + cd /sys/bus/i2c/devices/i2c-1;echo tsl2561 0x29 >new_device;watch -n0 cat 1-0029/iio\:device0/in_illuminance0_input + +- `Temperature & Humidity + Sensor <http://wiki.seeed.cc/Grove-TemptureAndHumidity_Sensor-High-Accuracy_AndMini-v1.0/>`__ + +.. code:: bash + + cd /sys/bus/i2c/devices/i2c-1;echo th02 0x40 >new_device;watch -n0 cat 1-0040/iio\:device0/in_temp_raw + +Motors +======== + +.. code:: bash + + rc_test_motors diff --git a/beaglebone-blue/wifi.rst b/beaglebone-blue/wifi.rst new file mode 100644 index 0000000000000000000000000000000000000000..8744892df6e30e2e0194a02334a6ac034b0a24ae --- /dev/null +++ b/beaglebone-blue/wifi.rst @@ -0,0 +1,35 @@ +.. _beaglebone-blue-wifi: + +WiFi Setup +############# + +On my network, I’m set up as ip 192.168.1.*. To turn your wifi on, do the following. + +.. code:: bash + + sudo -s + (become superuser/root) + cd /etc/network/ + ifconfig + (Note the wifi inet address, if it is already set, you are done!) + connmanctl + tether wifi off + enable wifi + scan wifi + services + (at this point you should see your network appear along with other stuff, in my case it was "AR Crystal wifi_f45eab2f1ee1_6372797774616c_managed_psk") + nano interfaces + (or whatever editor you like) + remove the comment # from the wifi lines so it now appears like + ##connman: WiFi + # + connmanctl + connmanctl> tether wifi off + connmanctl> enable wifi + connmanctl> scan wifi + connmanctl> services + connmanctl> agent on + connmanctl> connect wifi_f45eab2f1ee1_6372797774616c_managed_psk + connmanctl> quit + exit + note that you will need to fill in your own network data diff --git a/index-tex.rst b/index-tex.rst index f7de0d008c30e48d36262aa70cf21480f303db87..774f7f1714a270ad0767658ab974b6c58e166fa9 100644 --- a/index-tex.rst +++ b/index-tex.rst @@ -13,4 +13,5 @@ BeagleBoard Docs support/index.rst beaglebone-black/index.rst beaglebone-ai-64/index.rst - pocketbeagle/index.rst \ No newline at end of file + pocketbeagle/index.rst + beaglebone-blue/index.rst \ No newline at end of file diff --git a/index.rst b/index.rst index 5a79cef60281823d51df5935fb9ee4fb49babf0d..a7b488d467cda07c8ba58f8fed2e0b0cdb8dd486 100644 --- a/index.rst +++ b/index.rst @@ -26,7 +26,7 @@ Sections beaglebone-black/index.rst beaglebone-ai-64/index.rst pocketbeagle/index.rst - + beaglebone-blue/index.rst Indices and tables ############################