GithubHelp home page GithubHelp logo

chorus-rf-laptimer's People

Contributors

anunique avatar evgen48 avatar fape avatar highway11 avatar lnx13 avatar nisse43 avatar raveerk avatar sidhnor avatar smeat avatar voroshkov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chorus-rf-laptimer's Issues

Store Channel, Pilot Name, and RSSI settings of each device between sessions

A nice feature would be if the system could remember the last used settings for each device:

  1. Channel/Band selection
  2. Pilot name
  3. RSSI Threshold. (this one may be debatable, as this might be better to set every time?)

Also (but less important) store these preferences: Enable Sounds, Enable Speech, Laps To Go, Min Lap Time

For example, at our weekly meetups, we always use the same 5 channels, (IMD5) and often even the same Pilots so it would be nice to be able to turn on the Chorus and the app automatically sets them all to the last used settings. This would make setup time very fast.

Only one Pro Mini

Hi,
wouldn't it be possible to use one Arduino only. Wire all the spi pins as in the rx5808 diversity, but use different pins for the chip Select pins. So if you have for rx5808, wire chipselect 1 to d1, cs 2 to d2 ...
So you would use only one arduino, the stackability is a bit worse, because you have to limit it to number of rx5808, but to be honest who needs more than 8 different modules?
If my rx5808s ever arrive, I will test this.
Greetings
Mario

Possibility to change VOLTAGE_DIVIDER_CONSTANT in app instead of hardcoded

Hi Voroshkov,

Let me start by saying: THANK YOU SO MUCH for this great project and making it opensource.

I noticed that in the hardware schematics you use a voltage divider with 10K and 1K, however, I found this a bad choice for a 3S lipo that I will use since the resolution is really low with this kind of voltage divider and the use of a 3S Lipo:

Full 3S lipo: 12.6V --> 1.145V out of the voltage divider
Empty 3S lipo: 9.9V --> 0.9V out of the voltage divider

The resolution with this divider is 0.245 volt (+/- 50 digital resolution)

I choose to use a voltage divider with 10K and 22K, since it gives much better resolution:

Full 3S lipo: 12.6V --> 3.938V out of the voltage divider
Empty 3S lipo: 9.9V --> 3.094V out of the voltage divider

The resolution with this divider is 0.844V (+/- 172 digital resolution)

In the app (AppState.java) on line 43 you hardcoded the voltage divider constant that is used for the final battery voltage calculation:

public static final double VOLTAGE_DIVIDER_CONSTANT = 11; //(10K + 1K)/1K

It would be great to not hard code this, but make it editable in a configuration menu (or maybe advanced configuration menu?).

Improvment: Link up to 3 receiver per arduino

Hi,

First thanks for sharing this, it is really great.

Why didn't you link more receiver per Arduino? I think you can put up to 3 per arduino.
Was it because the loop will take more than 1ms?

If not, it might be an improvment that allow to have cheaper kit for 3 drones (which is great for friend racing!)

Thanks!

Cannot get the RF rx5808 module to work

I recently ordered 4 rx5808 modules from Banggood and when they finally arrived and I removed the metal casing, the resistor that you explain how to remove is not installed from the beginning. I solder the wires following the diagram and cannot get the app to let me calibrate/change the frequency or pilot. What does the "Lipo Voltage" go into (Red lead on the diagram), and how might I go about fixing this issue?

8in1 PCB Version 2

OK guys,

a while ago, i created a 8in1 PCB for the Chorus Tracker. It was my first design and of course the PCB was not 100% correct. There were some GND Pins of the Arduino not connected together "GND Island Fail".

Now i came up with the Idea to create a stackable design.

So there will be a 10x10 PCB with all the RX5808 receiver on top. You can either direct solder them or stackable with Pin Headers.

A second PCB, the Main PCB will be connected also with pin headers.

I will create a second Main PCB for the Delta 5 Tracker as well. So one can choose if he wants to build delta5 or chorus.... or even another tracker.

All Arduinos from the PCB before can be used for this PCB as well. 2 pin headers were added becaus i included a buzzer which is shared with all 8 nodes via some schottky diodes.

There is also an option to mount two XT30 connectors to the PCB and also a stepdown (Pololu 5V, 2.5A Step-Down D24V25F5) to power the whole unit via a LiPo. Second option is to power the unit via a external 5V source (powerbank)

Why two XT30? If the battery will run out of power, just connect a fresh one and charge the old one.

An other feature is the Rj45 jack where you can plug in a network cable to extend the range of your bluethooth.

What is your opinion? Whats missing?

1

2

3

4

5

7

6

COM connection Android app

is it possible to add com connection to the android app? I would like to use a 3dr Radio 433mhz as link to the unit as the bluetooth connection isnt working reliable for me. But Android app only shows WIFI or Bluetooth as option.

Improvement: Store ideal RSSI trigger values for each pilot and pilot assignment on groups

RSSI trigger values should be assigned to pilots to improve accuracy and mitigate mis-triggers / early triggers.

In below table if Node 3 (5800) is calibrated for Pilot C having an ideal rssi trigger at 195 when he passes the gate then a slightly powerful or a well tuned antenna/vtx as in the case of Pilot G would trigger the timer earlier than expected.

Of course with the current version, one could just simply adjust the trigger level for each and every heat/run for each node but that would be a lot of time wasted in the end.

image

Android app > no main screen

After launch of Chronos app there's only white screen, No any keys/writings is shown.
I'm using Yotaphone 2 (android 5.0)

Trigger on peak RSSI

Trigger lap time on peak RSSI. With only rssi > rssiThreshold, precision is very sensitive to vtx/antenna power and rssiThreshold value.

Help with Arduino Nano

Hi,
I just finished assembling a Solo device, but with Arduino Nano (not having Arduino Pro Mini). For now I have missed the part for voltage Lipo monitoring. That said, everything connects to the application via the bluetooth module, but I did not understand, the FREQ android app page, what is that number next to Device # 1, in my case 234. Going to the PILOTS page, RSSI Threshold gives me Always 1, and until I insert the above mentioned number (234), but it does not give me the option to set it, START RACE (1PILOT) does not appear on the RACE page. Once START RACE starts and I try to make a ride with the quadcopter (walking naturally for now, both with powered and non armed motors, but I do not think it makes any difference) when I step in front of the device nothing happens and does not ring buzzer. I would need help to figure out what the problem is, especially with wiring, since I am using Arduino Nano, but it should be compatible. I have only one device, so I did not connect the 4 pins to series more devices; In addition I did not even have the bridge to shorten two pins of Bluetooth (loopback jumper in scheme), I seemed to understand that it was to do for multiple connected devices.

My PinOut and configuration:

I supply everything from lipo - bec USB to mini USB - Arduino nano;
Ch1-Ch2-Ch3 (RX5808) - 1k resistors - D12-D11-D10 (Arduino nano);
GND (RX5808) - GND (HC-06 Module) - one of the 2 GNDs (Arduino nano);

  • 5v (RX5808) - 5V (Arduino nano) - VCC (HC-06 Module);
    RSSI (RX5808) - A6 (Arduino nano);
    Positive (Buzzer) - D6 (Arduino nano);
    GND (Buzzer) - one of the 2 GNDs (Arduino nano);
    RX0 (Arduino nano) - TXD (HC-06 Module);
    TX1 (Arduino nano) - RXD (HC-06 Module).

I attach some photos and thank you in advance.
setup
freq
pilots
race
solo device

Race Report - Ability to add/remove avail info

I see that Freq. was added, then removed from the .csv report. Is it possible to make it an option to select what you'd like in report?

Examples to turn on/off:
Lap
pilot name
freq.
band/channel
RSSI (for better tuning)

Thanks in advance.

RSSI not shown on last device

Have 4 devices, on the Pilots tab the last device RSSI shows "1". If I do "Set" it works correctly. Laps are also triggered correctly.

screenshot_20170322-191731

screenshot_20170322-191715

Feature Request: WS2812 LEDs

Why not hooking up a WS2812 LED Stripe to the first node?

  1. Pilot Colors
    Every Pilot gets a color and the start gate will shine in the pilots color when passing it.

  2. Visual Countdown
    add a bright ws2812 led panel in front of the starting pads or even the whole start gate.
    So there is a visual start sign. When the race is finished or the pilot has max laps, the gate will show red.

What do you think?

Code: https://github.com/adafruit/Adafruit_NeoPixel

screenshot_20170626-110541

RSSI values drop to zero when race starts

I do not if this is meant to happen, but when the race starts the values go to zero. Are there any more descriptive details on how to setup the RSSI values to racing?

Idea: Alternative connection through FTDI/UART

Reason: BT and 2.4GHz are often jammed by frsky and other stuff. 433MHz for example will handle without a problem with much more longer distances.

Idea: Connect FTDI converter through OTG cable.
To FTDI you can connect any device like:

  • straight cable to arduino
  • 433MHz (or other) modems on frequencies which are not in use by race quads.

Application: need to be changed.

Arduino side: no need - just any other device than BT module.

Hardware: For example FTDI based on CH340G (tested with library) and pair of transmiting devices which can handle 115kbps on air.

Proposed library: https://github.com/mik3y/usb-serial-for-android

I'm not so expeirenced with java but for now only FTDI library is merged.

Timed Race Feature

In MultiGP style races, we use a timer to see how many laps can be completed in a specified time.

I've added a rudimentary version of this feature in my branch, and if others are interested maybe this can be added to the master branch.

Right now it's very simple, you can specify how long you want the timed race (1,1.5,2,2.5 minutes) and it reads out verbal warnings at 1 minute, 30 seconds, 10 seconds, and when the timer is up.

Different Modes for the Android app

Hello, I have been using the Android app a lot and love it, but I was wondering if there was a modded version of the app that includes a point mode where there is a countdown timer and during that set time, people race to get the most amount of laps. When the time is over people can finish their lap and then they are done. This is similar to how normal multigp races are scored.

Cannot Calibrate Timers in Chorus App

Now that the lap timers that will connect, I have all of the functionality except in the race tab, the calibrate timers button does not show when the app connects with the device. Also, where is the button to set the current threshold?

Feature request : allow communication with LapTimer modules using OTG USB device (3DR telemetry receiver, FTDI, ...)

Hi,

This is the first issue I write on GitHub... :)
I made several laptimer modules since a few days, and it works like a charm. I'm using Bluetooth to UART modules as recommended, but the range is not so great.

I was thinking : in fact, the whole thing is based on serial communication. To extend the range of operation, we could use something else instead of Bluetooth, that would be connected as an OTG USB device on the smartphone.

For instance, I was thinking about using a 3DR radio telemetry combo like this one : https://www.banggood.com/3DR-Radio-Telemetry-433MHZ-Module-For-APM-APM2-Europe-p-85233.html?rmmds=search

Unfortunately, for the moment the LapTimer app only connects to Bluetooth devices. Do you think you could implement something to improve the application, so that any other supported serial communication device connected via OTG USB can be used ? I'm thinking about EZ-GUI app also, which supports this kind of thing.

Thank you for reading :)

BR,
Fabien (sky022)

Feature Requeste - Smart RSSI Detecting

I always hate to calibrate the RSSI values before the race when you are two groups.

Why not measure the RSSI of each quad when they passes the first time the start/-finish gate like its done by the Delta5 Tracker?

Show frequency in app

Sometimes my friends dont know the band and channel, but the frequency in MHz.
Could this be shown under the band and channel in the freq tab?

Built with 5 SOLO issue

Hello, I built a Chorus version with 5 SOLO. I have an issue when selecting players: name of 5th and 1st are the same and 5th SET rssi value doesn't change from 0, rtx receive the signal, but button SET doesn t work..only strange bip...any idea?
(Wirimg is ok, Uno pro are all ok...)
thanks

Configurable messages for laps announcements

Improvement to #33:

Instead of numerous checkboxes and pre-configured messages for announcing lap times, accept a user- specified message with predefined constants, like "PILOT. Lap LAPNUM Time LAPTIME..."

I can't connect with Windows GUI

Hello everyone,

I can not connect to the Windows application.

I connect my CHORUS 5 in 1 through a FTDI to my pc, I open the windows GUI and I get the startup window, but I only get the baud rate dropdown, I put it in 11520 and the COM port dropdown does not appear .

What's going on? My FTDI works correctly, I installed the firmware on all my mini arduino with it. And in the Windows Device Manager I appears as connected on the COM3 port.

Let's see if someone can help me.

I've also tried connecting it to GOOGLE CHROME's EASYRACELAPTIMER app, but it will not let me.

Add possibility to manage laps in race results

Add possibility to

  • add any lap time to previous lap
  • delete any lap

Useful in situations when someone makes invalid lap time due to missing gates etc.
(Exported reports must be consistent with the updates made)

First Pilot/Device only reads 1018 for the RSSI level no matter what

I have two lap timers and when they connect with the phone, the lap timer with the Stepdown (Timer 1/ Pilot 1) does not give an accurate RSSI level. The second lap timer on the other hand, does work in the app and pc version. All of the wiring is the exact same on both devices and in the diagram, and I have tried everything in the troubleshooting section.

Allow disabling selected channels

Need ability to disable some channels/pilots when number of racing pilots is less than amount of Solo devices in Chorus. Otherwise you have to setup thresholds for each channel, even for those that are not used.

[Feature Request] Android app > Use speech API to say last\best times

I think it will be great to hear last lap time once app got it from Chorus device.
Also it will be useful to hear best lap time right after last lap time.
smth like "Last lap: 23.6 sec... Best lap: 18.2 sec"
For the new best lap it will be just like "New Best lap: 15.8 sec"

[Feature Request] Freq management

Hi Andrew,

I've got several ideas regarding frequencies management in Android app:

  1. Display Freq, not only Channel and Band
  2. Add ability to auto choose Using Freq from app\on device start-up (to make it more independent from android app):
    2.1. Plug in battery in drone
    2.2 Turn on Chorus device (or press it's button) (at 1-2 m distance)
    2.3 Chorus should scan all available bands and choose the one with strongest RSSI (
    ). Play sound when ready, go into Timer mode, play sound again
  3. Save last used settings in App\or (and) Chorus device (Pilot name and Freq)

P.s. Timer mode is just like Race mode, but without limitations of lap number - just to save the timings

APP fix - not working with more than 4 units

If connected 5 or 6 units, Android app, can controll only 4 first, 5ft unit will change 1 unit values, 6th unit not changing band/channel (tested with 9600 and 57600 baud rate)

Bluethooth Range

Hey Guys,

Whats your Bluethooth Range? HC05 has a pretty bad range so here is an idea.

To keep the Tracker Compact, we might use a class 1 bluethooth module. That will get us 100+ meters range: https://www.sparkfun.com/products/12580

The bad thing is, that most smartphones dont support class 1 except the iPhone 7 i think.

So, maybe its possible to write an Chrome App, or standalone App for a Laptop and use this Class 1 Bluethooth Adapter.

https://www.sparkfun.com/products/9434

A friend also tested various wifi modules like ESP... he only got 10 meters and had TCP/IP packages losts

...or..

is there any "Android App" Emulator which accepts bluethooth connectivity? So we can emulate the App on WIN/MAC

TIMED RACE OPTION for rc buggies

Hi! Great features so far! We tried it on the rc track for buggies, and is working superb! Only needed option for time limit for counting the laps/best lap. Can it be added 5 10 15 20 and 30 min of race, for counting the laps? This can be very usefull for rc car training

Android apk build

I am not Android developer, so maybe stupid question, but I am not able to compile the application with this error:

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring project ':app'.

Could not resolve all dependencies for configuration ':app:_debugApk'.
Project :app declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :bluetoothspp.

Please could you help me?

[request] - Manual RSSI input

Request for manual RSSI input in Text format in android APP.

RSSI can only be Set/Clear and Increased or decreased by the value of 1, every time +/- is pressed.

It would be a plus to allow RSSI values to be directly inserted, as text format, for manually set the value.
E.g.. if we want to set manually an RSSI of 243, "+" must be pressed until that values is reached. In text, we would be able to directly input the value "243".

hey man , i am impressed.

Hi there !
Congratulations for this Project! i am impressed.!!!
i made my self a firmware mixed for Realacc RX5808 Diversity Moduel Fatsharks , i added some OSD also .
I wanted to ask you something if you know , i want to implement "a fine tuning" method . or even free channel search ,
What i am saying is that i want to search throught the channels
from 5865 way to 5917
with step ++ 5865 , 5866, 5867 ....

i know that the channels goes through SPI registers like
0x2906, 0x2910, 0x291A, 0x2984, 0x298E, 0x2998, 0x2A02, 0x2A0C, // Band F / Airwave

What i dont know is how to pass through for example 5866 (not exists to the table of channels) spi register !! so the problem is how to find the register for the right channel

Save results

It would be nice, if the results could be saved as csv or something similar.

Error while compiling

I have to use Arduino 1.0.5 because it`s the only version which is running without problems on my GalliumOS, while compiling i always get the following error message:

#################################################################################
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=8000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/standard /tmp/build7368876175063967868.tmp/chorus_rf_laptimer.cpp -o /tmp/build7368876175063967868.tmp/chorus_rf_laptimer.cpp.o
In file included from chorus_rf_laptimer.ino:225:0:
sendSerialHex.h: In function ‘uint8_t send4BitsToSerial(uint8_t, uint8_t)’:
sendSerialHex.h:80:16: error: ‘class HardwareSerial’ has no member named ‘availableForWrite’
if (Serial.availableForWrite() >= 5) { // e.g. "S1R1\n"
^
sendSerialHex.h: In function ‘uint8_t sendByteToSerial(uint8_t, uint8_t)’:
sendSerialHex.h:93:16: error: ‘class HardwareSerial’ has no member named ‘availableForWrite’
if (Serial.availableForWrite() >= 6) {
^
sendSerialHex.h: In function ‘uint8_t sendIntToSerial(uint8_t, uint16_t)’:
sendSerialHex.h:106:16: error: ‘class HardwareSerial’ has no member named ‘availableForWrite’
if (Serial.availableForWrite() >= 8) {
^
sendSerialHex.h: In function ‘uint8_t sendLongToSerial(uint8_t, uint32_t)’:
sendSerialHex.h:119:16: error: ‘class HardwareSerial’ has no member named ‘availableForWrite’
if (Serial.availableForWrite() >= 12) {
^
sendSerialHex.h: In function ‘uint8_t sendLaptimeToSerial(uint8_t, uint8_t, uint32_t)’:
sendSerialHex.h:132:16: error: ‘class HardwareSerial’ has no member named ‘availableForWrite’
if (Serial.availableForWrite() >= 14) {
^
chorus_rf_laptimer.ino: In function ‘void readSerialDataChunk()’:
chorus_rf_laptimer.ino:731:67: error: invalid conversion from ‘uint8_t* {aka unsigned char*}’ to ‘char*’ [-fpermissive]
In file included from /usr/share/arduino/hardware/arduino/cores/arduino/HardwareSerial.h:28:0,
from /usr/share/arduino/hardware/arduino/cores/arduino/Arduino.h:193,
from chorus_rf_laptimer.ino:51:
/usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:76:10: note: initializing argument 1 of ‘size_t Stream::readBytes(char*, size_t)’
size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer
^
chorus_rf_laptimer.ino: In function ‘void sendProxyDataChunk()’:
chorus_rf_laptimer.ino:788:36: error: ‘class HardwareSerial’ has no member named ‘availableForWrite’
##################################################################################
Can someone help me fixing that ? or is there a workaround ? I goggled a lot but didnt found a working fix for that.

Thanks
Moe

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.