Chorus RF Laptimer with 8in1 PCB
I would like to introduce you to my most current project. I am very conscious to keep this article short and concise, but will of course include all important information that is required in order to re-construct.
A short preliminary remark: how I came upon this project
I had been on the search for an affordable and most important, functioning, FPV-lap timer for my friends and me. This led my attention to the Chorus RF Laptimer. This project had been brought to life by Andrey Voroshkov (Minsk). Спасибо за проект 😉 !
Every pilot is able to build his or her own timer and combine these on the field, so that multiple pilots can be tracked. I, however, wanted to build a timer for eight (8) pilots, which does not require stacking or to be connected modularly.
The tracker is controlled via a Bluetooth App or alternatively, a Windows-based GUI version is currently being developed.
Since PCB-Design is something completely new for me, I have been spending time nearly daily for the past weeks and months learning about PCB-Design. A huge support in this endeavour was Yannik from RaceQuadStore.com (FPV Shop). He answered all of my questions for weeks with exact and very helpful answers, which was an enormous help. Thanks again!
Now on the my 8in1 Tracker. My goal was to build a tracker that is as small and cost-efficient as possible. I had my V2 (the second PCB that I designed) finalized and produced and would like to introduce to you.
- 1 Features
- 2 What is needed
- 3 Optional Equipment
- 4 Photos of Equipment
- 5 flash Software
- 6 The PCB
- 7 Shematics
- 8 configure the Bluetooth Module
- 9 Chorus RF Laptimer Infos & Assembly
- 10 The App
- 11 Windows GUI
- 12 Range Extender
- 98 mm × 98 mm PCB
- 92 mm × 92 mm Mounting holes for the case (3mm holes)
- up to eight (8) Tracker (you can use fewer; this simply requires the bridging of the unused RX/TX positions)
- Buzzer for audible signals (the code must be adjusted, so that it functions 100%)
- Double XT60 LiPo Input (redundance: when 1 LiPo is almost empty, simply connect a fresh one before disconnecting the old one)
- double MicroUSB 5V Input (Adafruit MicroUSB Breakout Board) (redundance: when 1 powerbank is almost empty, simply connect a fresh one before disconnecting the old one)
- A serial port via the RJ45 jack (Connection for one of my range extenders)
- Two (2) serial ports as Pin-Headers
- 5 V StepDown (ideally requires a heatsink)
- stackable: All components will be connected via plug and can therefore very easily be exchanged or expanded.
- Cooling: durch das „stacked“ Design werden alle Bauteile ausreichend gekühlt (zusätzliche Kühlkörper dennoch empfohlen)
- No SMD COMPONENTS. Everyone should be able to successfully assemble it 😉
What is needed
- 1x 8in1 PCB (will be made available once all tests have been successfully completed)
- 8x RX5808 Module
- 3x Shottkydiode 3A 40V
- 8x Shottkydiode 1A 40V
- 8x Arduino Pro Mini (ATMEGA328 328p 5V 16MHz)
- 1x FTDI Adapter
- “lots” of Pin Headers/Jacks (I never counted 😉 ) (normal + Header or round)
- 1x HC-05 Bluetooth Module
- 1x Piezo Buzzer
- 2x Adafruit Micro UBS Breakout Board
- 2x XT60 Jacks
- 24x Resistor 100k (z.B. Conrad)
- 1x Resistor 1k (z.B. Conrad)
- 1x Resistor 10k (z.B Conrad)
- 1x RJ45 Socket (optional Breakout Board)
- 1x 5V Stepdown (DMO 2 fixed 5 V or MP1584EN)
- Modified Arduino Software, so that the Buzzer functions correctly (available soon)
- original Arduino Software is functional (please do not solder the Buzzer!)
- Android App (ChorusRFLaptimer-release.apk) or the optional Windows GUI from Daniel
- Heatsinks for Stepdown
- Heatsinks for RX5808 Module
- 1 Pair 2.4 GHZ Link (2x UART RF Wireless Transceiver Module + USB to TTL RS232)
- 1 Pair Ethernet Link (USR-TCP232-T2 RS232 Serial to Ethernet Module)
- 4x RS485 Link (Max485)
Photos of Equipment
In order to flash the Arduinos, you will need the Arduino IDE and an FTDI Adapter.
Note: Always flash every Arduino when disassembled. Download the current Arduino Software from the Github Project, unzip the Package and open the “.ino” File
Connect your Arduino Pro Mini to the FTDI Adapter and then to the computer.
The FTDI Adapter and Arduino will be connected via the identically labelled connectors. Simply press the FTDI Adapter into the pin holes of the Arduino and hold them together during the flashing
DTR -> DTR
RXD -> TXD
TXD -> RXD
5V -> 5V
CTS -> CTS
GND -> GND
Now you must select the correct COM-Port, select Arduino “ATmega328(5V 16MHz)” as the processor, and “Arduino Pro or Pro Mini” as the board.
No flash the code! 🙌
The final step requires you to click “Sketch” -> “Upload”. The code will be compiled and written to the Arduino.
(will be made available once all tests have been successfully completed)
Since Seeedstudio.com only asks 5$ for 10pcs 10mm × 10mm, my goal was to fit all components onto a 10 ×10 board. That was not so easy in the beginning, but once all parts were made to be plug-n-play, it all became possible.
DipTrace Files / Gerber Files
I designed the PCB using the freeware 500 Pin Version from Diptrace. I found that working with the software was very convenient and effective. Unfortunately, however, the library of components is limited to standard parts meaning that I had to create nearly each and every piece myself.
(Files will be made available once all tests have been successfully completed)
Most of the circuit design was of course carried over from the Chorus Project. It was, however, completely redrafted and refitted for my 8in1 board. For the redundant power supply and buzzer, for example, I used several diodes.
(Shematics will be made available once all tests have been successfully completed)
configure the Bluetooth Module
The Bluetooth module needs to be set with a Baudrate of 115200. There are several online instructions for doing this.
A rough guide is:
- Connect the HC05 Module via the FTDI Adapter to the computer
- Open the Arduino IDE, select the COM Port and open the “Serial Monitor”
- Enter the following command in order to edit the Baudrate: “AT+BAUD8” (the module then answers “OK115200”)
Tipp: Set a PIN Code, so that other people cannot access your Lap Timer
Chorus RF Laptimer Infos & Assembly
redundancy Power Supply
Here you can input a LiPo or a 5 V Powerbank. When 1 powerbank/LiPo is almost empty, simply connect a fresh one before disconnecting the old one)
The Bluetooth module can be attached at several different spots. It was clear to me from the beginning, that the module could not be attached on the inside of the casing, due to the dreadfully limited range of this module. It would be all too easy, if sufficient Smartphones on the market would support Bluetooth Class 1. This honour currently only goes to the newest iPhone models. This technology allows a range (100mw/20dBm) of about 100m.
I attached an RJ45 Jack to the board, so that an external Transreceiver could be used.
I made the power supply by using a single stepdown. The module should be operated with 5V and the consumption of all components is cumulatively about 2A. The stepdown can deliver up to about 3A, but will get very hot while being used and therefore should have a heatsink attached. Unfortunately, the silkscreen (label) of the step-down is wrong, but the pins are correct. (+ and – reversed) Please note, when soldering.
The RX5808 modules run internally on 3.3V. When operated with 5V, the surplus energy is transformed into warmth. Ideally, the modules should be operated with 3.5V, but I decided against this as I did not want to use a second stepdown. When using heatsinks, the modules stay lukewarm to the touch.
Fewer than 8 Trackers? No problem!
If you do not wish to install all eight (8) timers, you only need bridge the empty TX/RX slots.
I don’t want to bore you with a lot of words to the APP, because it is pretty self-explanatory.
Dear Daniel is currently working on a Windows GUI. This is able to be downloaded here. The tracker will simply need to be connected to a windows computer using the FTDI Adapter.
Unfortunately, the GUI is not available for Mac OSX.
The biggest problem to be overcome with the lap timer is currently the limited range of the Bluetooth. The HC-05 module is only able to reach about 15-20m, if you are lucky. For safety reasons, we sit a minimum of 30-50m away from our track. I am currently investigating possible solutions for the range issue. I would like to illustrate a few of the solutions, all of which are currently in the development phase. Once I find one or more solutions, I will make it known.
I am currently pursuing the solution that uses a wired Full duplex RS485 Link. All expansions should then comfortably be able to be used via Plug and Play via the RJ45 jack.
Alternative Bluetooth Modul (Class 1)
I obtained the Bluetooth Mate Gold from SparkFun, which is what is being used by Team KA-NICKEL and has been claimed to have been tested to a range of about 60m.
If what is being claimed by “Kanickel” holds-up, then this would be the optimal, yet most expensive solution.
By the way, this was already my idea to create a type of gateway. However, if the range with one module can already be brought up to 60m, then the gateway becomes superfluous.
Via Cable using RS232 Protocol
Markus Dicks uses the tracker with a lower Baudrate (9600). This way he is able to cover a distance of 30m using a network cable. This solution is perhaps the easiest and also work, but unfortunately, RS232 connections are not conceived for longer distances and there’s not a guarantee that it will work for everyone.
Via Cable using RS485 Protocol
A better cabled solution is able to be utilized using the RS485 protocol. I am currently working on a full duplex link, which can simultaneously power the Bluetooth module. Using this method, a range of 100m and more could be possible. A step-up regulator can, if needed, be installed. If not, the solder bridge circuit will simply be closed. The step-up is used to compensate any loss in voltage over longer distances and bring the current back up to 5V.
Using RF: 2.4Ghz or 433MHz
A second possibility can be achieved using a radio frequency. This allows a range of potentially 500m. However, I have not yet successfully been able to get the radio module functioning properly (Comms work, just not with Chorus and the Bluetooth module).
Connect the 2.4GHz RS232 module with the FTDI (TX/RX RX/TX GND/GND VCC/VCC)
After setting the current in the 2.4GHz RS232 module, connect the CMD Pin with GND
Open a serial monitor on baudrate 9600
Set the ID with the following command: “AT+ID=xxxx”
Set the baudrate to 115200 with the following command: “AT+BAUD=7”
design PCB V2: ✓ done have the PCB produced: ✓ done QC for the PCB: ✓ everything is correct except for the labelling on the silkscreen at the step-down (+ and – are reversed) General functionality test: ✓successful, except for the Vbat recognition (could be resistance with incorrect tolerances or a program error) Test with a Racer: ✓ successfully completed with Deniz
- Test with 3-6 Racer: at my local field, once the weather improves
- Test with 8 Racer: hopefully at the ChickenRun FPV Race in Hannover
- design a Case: either with Lasercut or 3D-Print
- Insulate the case: Important will be to insulate the sides, so that the signal can only enter from “above”.
- Range extender cable: preparations are underway. The first PCB design has not yet been completed.
- Range extender wireless: Parts have arrived, however they are not yet working with Chorus (technically should be possible, though)
- Extended Step-Down test: The Stepdown with heatsinks should be left running for a few hours, and again with the casing
- Rework the Arduino code to work with the Buzzer: finished in theory, but still needs to be tested for compatability with the original software.
- Make the Code, Gerberfiles and other Files available for download: when all tests have successfully been completed
- Upload the project to Seeedstudio.com: When all tests have been completed
- Port onto a Teensy 3.6: Yannik is currently working on the Porting. Advantage of this is that none of the Arduinos would be necessary anymore and it will become even more minimalistic. Stay tuned!