User Tools

Site Tools


rc:dev:sbus_client

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rc:dev:sbus_client [2014/10/08 23:11] – [Typical Frame] redoxrc:dev:sbus_client [2023/11/24 21:55] (current) – external edit 127.0.0.1
Line 2: Line 2:
  
 ## Overview ## Overview
 +
 +Well... Not much to say here. I have the radio, the receiver, a Teensy3.1 and some spare time. Let's hook everything together =D
 +
  
 ## Protocol ## Protocol
Line 7: Line 10:
 ### Technical details ### Technical details
  
-    Baudrate...+The technical details originaly come from __Uwe Gartmann__ from the MBed website (source link in the Links section)Because it would have been to easy to use standard settings, SBus serial communications use:
  
-### Trame+* A baudrate of 100000 b/s 
 +* An inverted logic 
 +* One parity bit 
 +* Two stop bits 
 +* MSB first (that the only common thing !)
  
-    F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx yy 00+Luckily, the Teensy3 can manage that =)
  
 +The SBus protocol sends a message every 7ms (high speed mode) or every 14ms (low speed mode).
  
-* (0x)F0 is the start byte. It should always be 0xF0. You can sync on that I guess if you want to. +### SBus protocol
-* (0x)xx are the data bytes. There should be 22 of them+
  
-  SBus manages 16 analog channels, and uses 11bits for each, so 11*16/8 => 22 bytes. +A common SBus message requires 25 bytes of data: 
-  They could have made our lives easier and used 12bits per channel, but No... So: + 
 +    F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx yy 00 
 + 
 + 
 +* F0 is the start byte. It should always be 0xF0. You can sync on that I guess if you want to. 
 +* xx are the data bytes. There should be 22 of them. SBus manages 16 analog channels, and uses 11bits for each, so 11*16/8 => 22 bytes.
   * CH1 uses the first data byte (let's call it D0), and the 3 Most Significant Bits (MSB) of D1   * CH1 uses the first data byte (let's call it D0), and the 3 Most Significant Bits (MSB) of D1
   * CH2 uses the 5 Least Significant Bits (LSB) of D1, and the 6 MSB of D2   * CH2 uses the 5 Least Significant Bits (LSB) of D1, and the 6 MSB of D2
-  * And so on... CH3 uses the 2 lSB  of D2, the whole D3, and the MSB of D4...See, its not that easy to process...+  * And so on... CH3 uses the 2 LSB  of D2, the whole D3, and the MSB of D4...See, its not that easy to process (12bits would have been too simple ^^ )...
  
-(0x)yy is the flag byte+* yy is the flag byte
   * Bit 7 (0x80) is CH17, it's a digital/binary channel.   * Bit 7 (0x80) is CH17, it's a digital/binary channel.
   * Bit 6 (0x40) is CH18, same.   * Bit 6 (0x40) is CH18, same.
Line 29: Line 41:
   * Bit 4 (0x10) indicates __Failsafe mode__   * Bit 4 (0x10) indicates __Failsafe mode__
   * Bits 3-0 are not used and sould be 0   * Bits 3-0 are not used and sould be 0
-(0x)00 is the stop byte. It should always be 0x00. You can also do some check to check there was no lost/added byte in the serial communication.+* 00 is the stop byte. It should always be 0x00. You can also do some check to check there was no lost/added byte in the serial communication.
  
 ### Typical Frame ### Typical Frame
  
     F0 2E 90 FB 1F 1D EC 8E 0F B6 F3 DE 07 C6 A0 D4 1A 83 50 6A 0D 41 A8 00 00     F0 2E 90 FB 1F 1D EC 8E 0F B6 F3 DE 07 C6 A0 D4 1A 83 50 6A 0D 41 A8 00 00
-    + 
 * Starts with 0xF0 * Starts with 0xF0
 * Flag is 0x00, no error. * Flag is 0x00, no error.
Line 48: Line 61:
  
 ## Code ## Code
 +
 +Well, it's heavily adapted from the [[:rc:dev:sport_master|SmartPort Master code]]. Same warnings, same wiring (Gnd on Gnd, Vcc on Vcc, SBus signal on TX1/PB17). It doesn't do much, but might help start/debug another project...
 +
 +Here's the last version of the code: {{:rc:dev:sbus:tsysbusrecv_20141008_1942.tar.gz|}}
 +
 +## Next ?
 +
 +* Decode the CH* values
 +* Port to Attiny (cost, embeddable, ...)
 +* Emulates a joystick with Teensy3, so I can use the RC simulator softwares without any cable.
  
 ## Links ## Links
/home/share/www/redox.ws/wiki/data/attic/rc/dev/sbus_client.1412809916.txt.gz · Last modified: 2023/11/24 21:55 (external edit)