Dit is een oude revisie van het document!
Tascam RC-10
https://old.ghielectronics.com/community/codeshare/entry/1062
by iamin Nov. 25, 2015 | Snippet | Licensed as Apache 2.0 | 1577 views
You can use this code to emulate Tascam RC-10 wired remote control with a NETMF device. It can be useful if you need to control such Tascam portable audio recording devices as DR-40, DR-100MKII, DR-60DMKII, DR-70D and DR-701D.
The hardest part was to figure out the communication protocol it is using. As far as I know, it is not publicly documented.
- It turns out it is an async serial (9600, 8/E/1).
- Data is sent over 2.5mm TRS connector, where sleeve is GND, ring is 3.3V and tip is signal (internal 10K pull-up is installed, at least in my DR-100MKII).
- If a button is released quickly there will be two bytes sent with a 150 ms sleep period between them (see Short.png). I am attaching a summary of bytes for each button. However, if you keep a button depressed for a longer period of time a repeat byte will be sent multiple times in between those two bytes (see Long.png).
- The data sequence will look like this:
- 1st byte, 99.5 ms sleep time,
- repeat byte, 99.5 ms sleep time,
- repeat byte, 99.5 ms sleep time,
- repeat byte …
- 10.5 ms sleep time, 2nd byte.
- Only 1st and 2nd bytes need to be sent in order to emulate a button press, i. e. you do not need to send repeat byte(s), but you can if you want to.
You can use either SignalGenerator or SerialPort class to send data, either one has its own advantages and disadvantages.
' Emulate Play button using SignalGenerator Thread.Sleep(3000) Dim sg As New SignalGenerator(DirectCast(64, Cpu.Pin), True) sg.SetBlocking(True, New UInteger() {104, 104, 104, 104 * 2, 104, 104 * 3, 104 * 2 + 150 * 1000, 104, 104, 104 * 2, 104, 104 * 5}) ' Emulate Play button using SerialPort Dim uart As New SerialPort("COM1", 9600) uart.Parity = Parity.Even uart.Open() Thread.Sleep(3000) uart.WriteByte(137) ' First byte Thread.Sleep(150) uart.WriteByte(9) ' Second byte