Giter VIP home page Giter VIP logo

pico-sbus's Introduction

pico-sbus

Raspberry PI2040 SBUS HID

Turn your RC radio into a controller for your PC.

Channel mapping

The default channel map aims at being usefull for 6 channel radios while exposing as much functionality as possible.

Channel Function
1. Stick R Y
2. Stick R X
3. Stick L Y (Y Rotation)
4. Stick L X (X Rotation)
5. Button 1, 2, 3 (Low, Mid, Max)
6. Z
7. Z rotation
8. Slider
9. Dial
10. Button 4, 5, 6
11. Button 7, 8, 9
12. Button 10, 11, 12
13. Button 13, 14, 15
14. Button 16, 17, 18
15. Button 19, 20, 21
16. Button 22, 23, 24
17. Button 25
18. Button 26

TX Settings

These are the function settins on my Futaba T16IZ. I ran out of switches for channels 15 and 16.

Ch. Function Control
1 Aileron J1
2 Elevator J2
3 Throttle J3
4 Rudder J4
5 Gear SE
6 Air Brake LS
7 Aux 5 RS
8 Aux 4 LD
9 Aux 3 RD
10 Aux 2 SF
11 Aux 1 SH
12 Aux 6 SG
13 Aux 7 SC
14 Camber SB
15 Flap N/A
16 Motor N/A
DG1 N/A SD
DG2 N/A SA

Pinout

The circuit can be powered by the PICO VBUS and 3V3(out) pins when plugged in USB.

Schematic with NPN transistor

NPN Inverter and logic level translator

SBUS

Futaba servo connector: | - + D |_

  • SBUS + = 5v (VBus from PICO pin 40)
  • SBUS - = GND (from pico PIN 3, 8, 13, 18, 23, 28 or 38)
  • SBUS Data = Inverter input (CD74HCT14E pin 1)

CD74HCT14E

  • 1 = SBUS Data
  • 2 = Inverted SBUS Data - Level Shifter Signal High side
  • 7 = GND (from pico PIN 3, 8, 13, 18, 23, 28 or 38)
  • 14 = 5v (VBus from PICO pin 40)

Level Shifter (BOB-12009):

  • HV1 = Inverted SBUS Data
  • LV1 = Low level Inverted SBUS Data
  • HV = 5v (VBus from PICO pin 40)
  • LV = 3.3v (3V3(out) from PICO pin 36))
  • GND = GND (from PICO PIN 3, 8, 13, 18, 23, 28 or 38)

Raspberry PICO:

  • GP5 (pin7) = LV1 (3.3v low level inverted SBUS data)
  • VBUS (pin40) = 5V
  • 3v3(out) (pin 36)= 3.3v
  • USB = Your PC :)

Notes

SBUS functionality inspired by https://github.com/fdivitto/sbus and https://github.com/BrushlessPower/SBUS2-Telemetry

We use UART1 and GPIO5 as RX pin.

You will need both a logic level converter to change the RX voltage to 3.3v and a logic inverter.

A Sparkfun logic level converter should work: https://www.sparkfun.com/products/12009

Signal coming from the receiver needs needs to be inverted. You can use a 7400 inverter like CD74HCT14E or a transistor based NOT gate as described here https://www.electronics-tutorials.ws/logic/logic_4.html

pico-sbus's People

Contributors

mmosca avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.