| Lego Mindstorms EV3 |
| |
| Intro |
| ===== |
| |
| This is the buildroot basic board support for the Lego Mindstorms EV3 |
| programmable brick. |
| |
| The Lego Mindstorms EV3 brick comprises a Texas Instruments AM1808 SoC, with |
| an ARM 926EJ-S main processor running at 300 MHz. |
| See: |
| - https://en.wikipedia.org/wiki/Lego_Mindstorms_EV3 |
| - http://www.lego.com/en-us/mindstorms/products/ev3/31313-mindstorms-ev3/ |
| - http://www.ti.com/product/am1808 |
| |
| How it works |
| ============ |
| |
| Boot process : |
| -------------- |
| |
| The EV3 boots from an EEPROM. This loads whatever is on the built-in 16MB flash |
| (usually U-Boot) and runs it. The U-Boot from the official LEGO firmware and |
| mainline U-Boot will attempt to boot a Linux kernel from the external µSD card. |
| It will try to load a uImage (and optional boot.scr) from the first µSD card |
| partition, which must be formatted with a FAT filesystem. If no µSD is found or |
| it does not contain a uImage file, then the EV3 will boot the uImage from the |
| built-in 16MB flash. |
| |
| How to build it |
| =============== |
| |
| Configure Buildroot |
| ------------------- |
| |
| The lego_ev3_defconfig configuration provides basic support to boot on the Lego |
| Mindstorms EV3 programmable brick: |
| |
| $ make lego_ev3_defconfig |
| |
| Build everything |
| ---------------- |
| |
| Note: you will need to have access to the network, since Buildroot will |
| download the packages' sources. |
| |
| $ make |
| |
| Result of the build |
| ------------------- |
| |
| After building, you should obtain this tree: |
| |
| output/images/ |
| ├── boot.vfat |
| ├── flash.bin |
| ├── rootfs.ext2 |
| ├── rootfs.ext3 -> rootfs.ext2 |
| ├── rootfs.squashfs |
| ├── sdcard.img |
| ├── u-boot.bin |
| ├── uImage -> uImage.da850-lego-ev3 |
| └── uImage.da850-lego-ev3 |
| |
| Installation |
| ============ |
| |
| You can use either flash.bin or the sdcard.img. To load flash.bin, use the |
| official Lego Mindstorms EV3 programming software firmware update tool to load |
| the image. To use sdcard.img, use a disk writing tool such as Etcher or dd to |
| write the image to the µSD card. |
| |
| NOTE: The sdcard.img created by lego_ev3_defconfig won't boot if the official |
| LEGO firmware is installed on the EV3 (it has an old version of U-Boot that |
| doesn't know about device tree). You must either set the kernel configuration |
| option to append the device tree to the kernel or you can create a boot.scr |
| that chainloads a newer U-Boot or you can install a newer U-Boot in the flash |
| memory (just flashing u-boot.bin is enough). |
| |
| Finish |
| ====== |
| |
| To have a serial console, you will need a proper USB to Lego serial port |
| adapter plugged into the EV3 sensors port 1. |
| See: |
| - http://botbench.com/blog/2013/08/15/ev3-creating-console-cable/ |
| - http://botbench.com/blog/2013/08/05/mindsensors-ev3-usb-console-adapter/ |
| |
| The serial port config to use is 115200/8-N-1. |
| |
| Bluetooth |
| ========= |
| |
| To enable Bluetooth: |
| |
| # modprobe hci_uart |
| # /usr/libexec/bluetooth/bluetoothd & |
| # bluetoothctl |
| [bluetooth]# power on |