Difference between revisions of "SpaceAPI:Button"
Brainsmoke (talk | contribs) |
Brainsmoke (talk | contribs) (→Software) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 14: | Line 14: | ||
The current Space button consists of: | The current Space button consists of: | ||
− | * an 8Devices Carambola2 dev board, running a | + | * an 8Devices Carambola2 dev board, running a LEDE/OpenWRT linux system |
* an industrial stateless button. | * an industrial stateless button. | ||
* a [[PCB_Techinc_Logo|Techinc Badge]] | * a [[PCB_Techinc_Logo|Techinc Badge]] | ||
Line 26: | Line 26: | ||
== Software == | == Software == | ||
− | The Carambola 2 runs a | + | The Carambola 2 runs a LEDE/OpenWRT firmware with a go program |
for the logic. | for the logic. | ||
Line 34: | Line 34: | ||
Sadly, precompiled packages of Openwrt/LEDE do not support MIPS | Sadly, precompiled packages of Openwrt/LEDE do not support MIPS | ||
− | hardware float emulation out of the box | + | hardware float emulation out of the box. |
− | |||
− | + | Luckily, Go 1.10 https://golang.org/doc/go1.10 now has support for MIPS w. soft-float: | |
− | ==== | + | ==== Compiling spacestate ==== |
− | |||
− | |||
− | |||
− | |||
− | + | <del>GOARCH=mips go build -ldflags="-s -w"</del> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | GOARCH=mips go build -ldflags="-s -w" | + | GOARCH=mips GOMIPS=softfloat go build -ldflags="-s -w" |
=== Techinc Logo State Indication code === | === Techinc Logo State Indication code === |
Latest revision as of 09:32, 5 April 2019
Projects | |
---|---|
Participants | Brainsmoke, Guido, Realitygaps |
Skills | OpenWRT, basic electronics |
Status | Finished |
Niche | Electronics |
Purpose | Infrastructure |
Spacebutton mkII
Hardware
The current Space button consists of:
- an 8Devices Carambola2 dev board, running a LEDE/OpenWRT linux system
- an industrial stateless button.
- a Techinc Badge
- a wired Internet connection
- a USB power adapter / mini-USB cable
Design
Software
The Carambola 2 runs a LEDE/OpenWRT firmware with a go program for the logic.
https://github.com/brainsmoke/spacebuttonmk2
Compiling LEDE
Sadly, precompiled packages of Openwrt/LEDE do not support MIPS hardware float emulation out of the box.
Luckily, Go 1.10 https://golang.org/doc/go1.10 now has support for MIPS w. soft-float:
Compiling spacestate
GOARCH=mips go build -ldflags="-s -w"
GOARCH=mips GOMIPS=softfloat go build -ldflags="-s -w"
Techinc Logo State Indication code
https://github.com/techinc/techinc_logo_avr/tree/master/spacebutton
make make fuses make flash
Spacebutton mkI (This spacebutton is no longer in use!!!!!)
Nanode code
https://github.com/techinc/SpaceButton
(and EtherCard fork) https://github.com/techinc/ethercard
The code uses DHCP to obtain an IP address and find a gateway.
Wiring
The button is a circuit breaker. Connected to pin 3, it pulls this input pin to ground when not pressed.
The code enables the internal pull-up resistor, so no external one is needed.
The LED is connected to pin 5, also using a pull-down circuit.
(So the led should be *on*, when pin 5 is low.)
Troubleshooting
The LED blinks:
- every four seconds: No link
- every two seconds: No DHCP
- every second: No DNS
- twice a second: Changing the space state, but no response yet from the server
- two seconds on, two seconds off: 'upstream' space state unknown.
Power
The nanode is now powered through a USB-port.
DO NOT power it using 9V. There are some issues with the voltage regulator (which is not used when fed through (5V) USB.)
Notification App
An Android app is available to monitor the current state of the space and notify when it changes. The source code is available on GitHub: Source
The app can be downloaded from Google Play or GitHub