The Spocket

Uit Projectgroep .540
Ga naar: navigatie, zoeken

Introduction

What is The Spocket?

A broken Baofeng UV5r
This is the original PC-Board:

Baofenguv5r.jpg Baofenguv5rinside.jpg


The schematic:
Baofenguv5rchem.jpg


Today is presents like this:
Blackhole.jpg


A blackhole until public pictures...

What do you need?

The Hardware:

  • a broken portable p.ex. UV5r
  • a Orange Pi Zero 512Mb
  • a batterypack
  • a charger

The Software:

  • a package to download at www.florhans.bzh/pg540

ask your password by mail :f4vsj@florhans.bzh

Install V3 Package in home:

Install WiringOP:maybe for raspi? https://github.com/zhaolei/WiringOP

for the OPI https://github.com/tumugin/WiringOP http://www.orangepi.org/Docs/WiringPi.html

Matrixkeypad (Raspi) https://tutorials-raspberrypi.de/raspberry-pi-keypad-tastatur/

https://forum.armbian.com/topic/7111-need-help-in-using-4x4-matrix-keypad-on-orangepi-zero-gpio/ https://forum.armbian.com/topic/2001-suggestions-on-connecting-membrane-1x4-keypad-to-orangepi-pc/ https://forum.armbian.com/topic/6187-how-to-use-4x4-keypad-and-16x2-lcd-with-orange-pi/ https://tutorials-raspberrypi.com/connecz-raspberry-pi-kecpad-code-lock/ in home/keypad

pyaudio...



les nouveautés : - Armbian Buster à jour au 9 sept 2019 - Svxlink 19.09.01 - Version officielle 1.7

- support de l'ajout d'un salon régional non géré par le RRF. (à configurer sur le spot) 104# en DTMF & accessible par le dashboard local. - l'interface graphique est en http et https (https indispensable pour la localisation automatique) - VPN Hamnet toujours disponible - Dwservice installé par défaut ( code à renseigner ) prise en main a distance sans ouverture de port.

- suppression des services non utilisé ou très peu. - code source de svxlink 19.09.01 inclus dans /usr/src

4x4 keypad

https://www.noah.org/wiki/tones
#!/usr/bin/env python

To install dependencies on Mac OS X run the following commands:
   sudo brew install portaudio
   sudo pip install --allow-external pyaudio --allow-unverified pyaudio pyaudio
DTMF
               1209 Hz 1336 Hz 1477 Hz 1633 Hz
       697 Hz  1       2       3       A
       770 Hz  4       5       6       B
       852 Hz  7       8       9       C
       941 Hz  *       0       #       D
2015
Noah Spurrier noah@noah.org

import math
import numpy
import pyaudio
import sys
import time
def sine_wave(frequency, length, rate):
   length = int(length * rate)
   factor = float(frequency) * (math.pi * 2) / rate
   return numpy.sin(numpy.arange(length) * factor)
def sine_sine_wave(f1, f2, length, rate):
   s1=sine_wave(f1,length,rate)
   s2=sine_wave(f2,length,rate)
   ss=s1+s2
   sa=numpy.divide(ss, 2.0)
   return sa
def play_tone(stream, frequency=440, length=0.20, rate=44100):
   frames = []
   frames.append(sine_wave(frequency, length, rate))
   chunk = numpy.concatenate(frames) * 0.25
   stream.write(chunk.astype(numpy.float32).tostring())
def play_dtmf_tone(stream, digits, length=0.20, rate=44100):
   dtmf_freqs = {'1': (1209,697), '2': (1336, 697), '3': (1477, 697), 'A': (1633, 697),
                 '4': (1209,770), '5': (1336, 770), '6': (1477, 770), 'B': (1633, 770),
                 '7': (1209,852), '8': (1336, 852), '9': (1477, 852), 'C': (1633, 852),
                 '*': (1209,941), '0': (1336, 941), '#': (1477, 941), 'D': (1633, 941)}
   dtmf_digits = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '0', '#', 'A', 'B', 'C', 'D']
   if type(digits) is not type():
       digits=str(digits)[0]
   digits = .join ([dd for dd in digits if dd in dtmf_digits])
   for digit in digits:
       digit=digit.upper()
       frames = []
       frames.append(sine_sine_wave(dtmf_freqs[digit][0], dtmf_freqs[digit][1], length, rate))
       chunk = numpy.concatenate(frames) * 0.25
       stream.write(chunk.astype(numpy.float32).tostring())
       time.sleep(0.2)
if __name__ == '__main__':
   p = pyaudio.PyAudio()
   stream = p.open(format=pyaudio.paFloat32,
                   channels=1, rate=44100, output=1)
#    # Play concert pitch.
#    play_tone(stream, length=2.0)
#    time.sleep(0.4)
   # Dial a telephone number.
   if len(sys.argv) != 2:
       digits = "2219415"
   else:
       digits = sys.argv[1]
   play_dtmf_tone(stream, digits)
   stream.close()
   p.terminate()

The Installation

1 download you software package

2 create your SD-Card

3 Insert the SD-Card in you Orange Pi

4 Start-up your Orange Pi

5 Wait until the "bleep"

6 Use your Spocket as usual

7 have fun!

Troubleshooting

  • error 1
  • error 2
  • error 3