Difference between revisions of "SpaceAPI:Button"

From Technologia Incognita
Jump to: navigation, search
m
(Software)
 
(30 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{Project
 
{{Project
|ProjectSkills=nanode, arduino, basic electronics
+
|picture=spacebutton_acta.jpg
|ProjectStatus=Active
+
|ProjectSkills=OpenWRT, basic electronics
 +
|ProjectStatus=Finished
 
|ProjectNiche=Electronics
 
|ProjectNiche=Electronics
 
|ProjectPurpose=Infrastructure
 
|ProjectPurpose=Infrastructure
 
}}
 
}}
 
[[category:SpaceAPI]]
 
[[category:SpaceAPI]]
 +
[[Category:Arduino]]
 +
= 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 [[PCB_Techinc_Logo|Techinc Badge]]
 +
* a wired Internet connection
 +
* a USB power adapter / mini-USB cable
 +
 +
== Design ==
 +
 +
[[File:SpacebuttonmkII.svg]]
 +
 +
== 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 ====
 +
 +
  <del>GOARCH=mips go build -ldflags="-s -w"</del>
 +
 +
  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==
 
==Nanode code==
  
https://github.com/guidocalvano/spaceapi
+
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==
 
==Wiring==
  
a -> b means a is connected to b via a wire
+
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: [https://github.com/techinc/Techinc-Notify Source]
 +
 
 +
 
 +
The app can be downloaded from [https://play.google.com/store/apps/details?id=nl.techinc.notify Google Play] or [https://github.com/techinc/Techinc-Notify/Techinc-Notify.apk/qr_code GitHub]
 +
 
 +
 
 +
== Spacebutton iterations ==
  
pin 2 -> button -> ground
+
[[Image:spacebutton_tmpinc.jpg|400px]]
 +
[[Image:spacebutton_acta.jpg|300px]]

Latest revision as of 09:32, 5 April 2019

Projects
Spacebutton acta.jpg
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

SpacebuttonmkII.svg

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


Spacebutton iterations

Spacebutton tmpinc.jpg Spacebutton acta.jpg