Houston connects your lab equipment.
The command line interface is defined in
cmd/dds/main.go and offers DDS
control without any graphical or network interface.
dds --help for details.
The http interface is defined in
cmd/http/main.go and offers DDS
control over RESTful HTTP interface.
http --help for details.
For a web application as frontend you can use houston-app.
httpdev command is intended for development use only. It uses driver
mockups to check if the HTTP interface uses the driver interface as expected
without the need to have the hardware present.
We assume you have a working Go environment set up on your workstation and
go get -u github.com/gobuffalo/packr/...
executes successful. You can clone the source code via
export $REPO=github.com/bodokaiser/Houston git clone https://$REPO $GOPATH/src/$REPO
and ensure dependencies by calling
inside the project directory. Install Go Dep if required.
From here you can easily cross compile binaries for ARM by running
copy files to the target device:
scp -r bin email@example.com:~/
Code documentation is available online
or can be hosted locally with
godoc -http=:6060. To run tests do
go test ./....
How to enable SPI pins
Some Beaglebone pins are multi purpose and have to be configured accordingly.
In our case we need to set
P9.22 to SPI mode,
other pins can be left to be set to GPIO mode.
With recent releases (4.x linux kernel) you can easily configure the pins via
config-pin p9.17 spi_cs config-pin p9.21 spi config-pin p9.18 spi config-pin p9.22 spi_sclk
or permanent if you ammend
dtb_overlay=/lib/firmware/BB-SPIDEV0-00A0.dtbo disable_uboot_overlay_video=1 disable_uboot_overlay_audio=1 disable_uboot_overlay_wireless=1
in which the bootloader will enable
SPI0 on startup.
How to connect to the Beaglebone
The preferable access to the Beaglebone is via SSH. The Beaglebone should
broadcast itself as
beaglebone.local yet there may be name conflicts if
your network compromises multiple beaglebones.
For development it may be preferable to have internet access from the
Beaglebone. In case your target network does not have internet access (like
the notorius Labornetz) then we recommend to share the wifi connection over
ethernet. For macOS you can enable this feature in the sharing settings, note
eduroam cannot be shared because too enterprise. On Windows we were
not successful in getting this setup to work.
For low-level debugging for example if a kernel update went wrong, the bootloader was misconfigured or there is no network connection (no DHCP available or the like) you can still connect to the Beaglebone through a serial console, howbeit a serial (to usb) adapter will be necessary.
How to flash the internal MMC
This is necessary if your Beaglebone was delivered with an older image as we want to use Debian with a 4.x linux kernel.
We were not able to initiate the flashing procedure with Rev. A Beaglebones!
To update the internal MMC with the new image you need a micro SD card. You can
find the available images here.
We used the
2018-03-25 release with
stretch-lxqt, however in retrospect
stretch-console without the user interface bloat should be better fit.
Post download you need to extract the image and write it to the micro SD card
xzcat <bb-image>.img.xz | sudo dd of=/dev/disk2
and start the flash process by inserting the SD card into the unpowered Beaglebone, power on and hold the S2 until the LEDs start to flash.