RoadTest: BeagleBone Green
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Raspberry Pi and Node MCU
What were the biggest problems encountered?: Lack of updated documentation. Example py scripts are using deprecated Python modules. Lack of quick guide on how to actually use the Grove interface ports and how it works on this device (difficult for beginners who just want to get a project going)
The packaging is standard and it comes with a USB cable which is a plus when you just want to get things going.
The printed startup guide is slightly confusing as it does not state that the board will appear as a storage device when you plug it in.
However, after plugging in, a readme.html could be launched and it contains all the things you need to get started including drivers and further guidance.
Drivers were installed and I was greeted with a network device which opens up on port 80 as a HTML server. From here, you could access the programming IDE and various interfaces for the device including NodeRED and Cloud9.
I’ve booted the Debian IoT image from the SD card. The board appears as a network device with the IP address of 192.168.7.2. As I try to SSH into the OS, a password was prompted and I have no clue to what the password is. There is nothing about this stated in the documentation or the image download page. Upon searching on the internet, I’ve found that the default credentials were actually “debian” and “temppwd”.
I’ve proceeded to plug in my network cable and check the link speed. This board seems to support 100mbps link speed but not 1000mbps.
The first thing to do for me here is to actually test the speed that this board could practically handle. The results were acceptable. The speed test came at an average of 80mbps download and 65mbps upload.
Do note that I have a 500mbps symmetrical connection here.
So, if you want to get the Beaglebone Green and turn it into a NAS where you attached a USB hard drive, it is going to be limited to around 8-10MB/s transfer speed. I would not personally recommend to use as an entertainment storage device but if you wanted a device that could help you store small data or cold-storage data, it is adequate.
The default IDE that runs the examples was a great way to make sure you had everything set up properly. All I needed to do is click run for the first example program and all the LED was responding as it should.
However, if you wanted to do something more serious, I would suggest heading straight for the Cloud9 IDE which you can write full-blown Python programs.
At this point, I assumed that my temperature sensor was I2C and headed to the relevant Python code example. However, upon running, it is giving warnings about deprecated Python modules.
There was no way to get the latest codes or update them as the example codes and modules were distributed with the IoT image file. You would have to manually install Python Pip and get the latest modules yourself. This proves to be quite a hassle if you just want to quickly get something up.
Overall, the IDE was neat and very easy to use as opposed to what I used to do on the Raspberry Pi. Which was to actually SSH into the Pi and use Nano to edit my codes. Having a full IDE straight without the need to configure much is very convenient.
Next, we will see the difficulty of actually using the Grove sensor ports on this board.
For the purpose of this demonstration, I have two Grove sensors hooked up which is a light sensor and a temperature sensor.
Getting started with the actual code is not difficult. The demo IDE on the onboard support page works right away without any problem. Clicking run for the demo code lights up the LED on the board as intended. This is a great way to check if everything was working.
Now to pull the data from the sensors, the Grove Sensor demo codes were consulted.
However, the example codes were not much help in my case.
As a beginner to the Groove ecosystem, I was pretty confused about how the sensors are supposed to work with the Beaglebone Green. Documentations provided was inadequate to actually get started on using the Grove interface.
One example was that the Grove Touch Sensor example gives me an example code with the port P9_22. However, I have no idea where that designation came from. I can only assume now that the right Grove port corresponds to the address port of P9_22.
Upon deeper searching for the documentation and schematics for the Grove interface that was available here on the Beaglebone Green, I've found out that the ports can be configured into multiple modes. However, for normal sensor usage, I am putting it into GPIO mode. The full available modes can be seen here:
I wanted to try out my Grove Temperature v1.2 sensor, however, the sensor turns out to be an analog sensor. Upon investigation, the Grove connector on the Beaglebone Green only supports UART and I2C sensors.
I managed to test the port with a variable resistor to simulate a touch sensor for the touch sensor demo. The P9_22 port was configured into GPIO mode and it was able to detect "touches"
In conclusion, I think the product is easy to set up but however, pretty hard to go in-depth with the lack of well-maintained latest documentations.
I was not able to figure out what sensor was supported out of the box and assumed that any Grove sensor would work.
I think they could really improve on getting some of their Grove sensor collection be a part of a good quickstart guide since that is one of the major feature of this board.