talkiepi

package module
v0.0.0-...-0ba1c7b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2022 License: MPL-2.0 Imports: 12 Imported by: 0

README

talkiepi

assembled1 assembled2

talkiepi is a headless capable Mumble client written in Go, written for walkie talkie style use on the Pi using GPIO pins for push to talk and LED status. It is a fork of barnard, which was a great jump off point for me to learn golang and have something that worked relatively quickly.

3D printable enclosure

In the stl directory are the stl files for the enclosure I have designed specifically for the Raspberry Pi B+ board layout (I am using a Raspberry Pi 3 Model B) and the PCB and components from the US Robotics USB Speakerphone. I will be posting a blog post shortly with a full component list and build guide. For more information regarding building a full talkiepi device, go check out my blog at projectable.me.

Installing talkiepi

I have put together an install guide here.

GPIO

You can edit your pin assignments in talkiepi.go

const (
	OnlineLEDPin       uint = 18
	ParticipantsLEDPin uint = 23
	TransmitLEDPin     uint = 24
	ButtonPin          uint = 25
)

Here is a basic schematic of how I am currently controlling the LEDs and pushbutton:

schematic

Pi Zero Fixes

I have compiled libopenal without ARM NEON support so that it works on the Pi Zero. The packages can be found in the workarounds. directory of this repo, install the libopenal1 package over your existing libopenal install.

License

MPL 2.0

Author

Documentation

Index

Constants

View Source
const (
	//	no LEDs on this board, these GPIOs are free to use
	//      don't use GPIO18 with this board
	OnlineLEDPin       uint = 4
	ParticipantsLEDPin uint = 5
	TransmitLEDPin     uint = 16
	//	This is the correct GPIO for the button
	ButtonPin uint = 26
)

Raspberry Pi GPIO pin assignments (CPU pin definitions)

Variables

This section is empty.

Functions

This section is empty.

Types

type Talkiepi

type Talkiepi struct {
	Config *gumble.Config
	Client *gumble.Client

	Address   string
	TLSConfig tls.Config

	ConnectAttempts uint

	Stream *gumbleopenal.Stream

	ChannelName    string
	IsConnected    bool
	IsTransmitting bool

	GPIOEnabled     bool
	OnlineLED       gpio.Pin
	ParticipantsLED gpio.Pin
	TransmitLED     gpio.Pin
	Button          gpio.Pin
	ButtonState     uint
}

func (*Talkiepi) ChangeChannel

func (b *Talkiepi) ChangeChannel(ChannelName string)

func (*Talkiepi) CleanUp

func (b *Talkiepi) CleanUp()

func (*Talkiepi) Connect

func (b *Talkiepi) Connect()

func (*Talkiepi) Init

func (b *Talkiepi) Init()

func (*Talkiepi) LEDOff

func (b *Talkiepi) LEDOff(LED gpio.Pin)

func (*Talkiepi) LEDOffAll

func (b *Talkiepi) LEDOffAll()

func (*Talkiepi) LEDOn

func (b *Talkiepi) LEDOn(LED gpio.Pin)

func (*Talkiepi) OnACL

func (b *Talkiepi) OnACL(e *gumble.ACLEvent)

func (*Talkiepi) OnBanList

func (b *Talkiepi) OnBanList(e *gumble.BanListEvent)

func (*Talkiepi) OnChannelChange

func (b *Talkiepi) OnChannelChange(e *gumble.ChannelChangeEvent)

func (*Talkiepi) OnConnect

func (b *Talkiepi) OnConnect(e *gumble.ConnectEvent)

func (*Talkiepi) OnContextActionChange

func (b *Talkiepi) OnContextActionChange(e *gumble.ContextActionChangeEvent)

func (*Talkiepi) OnDisconnect

func (b *Talkiepi) OnDisconnect(e *gumble.DisconnectEvent)

func (*Talkiepi) OnPermissionDenied

func (b *Talkiepi) OnPermissionDenied(e *gumble.PermissionDeniedEvent)

func (*Talkiepi) OnServerConfig

func (b *Talkiepi) OnServerConfig(e *gumble.ServerConfigEvent)

func (*Talkiepi) OnTextMessage

func (b *Talkiepi) OnTextMessage(e *gumble.TextMessageEvent)

func (*Talkiepi) OnUserChange

func (b *Talkiepi) OnUserChange(e *gumble.UserChangeEvent)

func (*Talkiepi) OnUserList

func (b *Talkiepi) OnUserList(e *gumble.UserListEvent)

func (*Talkiepi) OpenStream

func (b *Talkiepi) OpenStream()

func (*Talkiepi) ParticipantLEDUpdate

func (b *Talkiepi) ParticipantLEDUpdate()

func (*Talkiepi) ReConnect

func (b *Talkiepi) ReConnect()

func (*Talkiepi) ResetStream

func (b *Talkiepi) ResetStream()

func (*Talkiepi) TransmitStart

func (b *Talkiepi) TransmitStart()

func (*Talkiepi) TransmitStop

func (b *Talkiepi) TransmitStop()

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL