Help required - multiple communication methods required

Quick question from an Arduino newbie....

Can an Arduino board switch between sending data between an nRF24L01+ and Bluetooth?

I'm investigating a project that needs to send a small amount of data via nRF24L01+ from a go kart to a "ground station", every 45-60 seconds. Then when the vehicle returns, i'd like to download a larger quantity of previously logged data over Bluetooth.

The kart will be lapping in an open area, not more than a few hundred meters away.

The sending of data (lap time & sector times (up to 3)) from the nRF24L01+ will be triggered by a hall effect or reed switch, when it passes the start/finish line.

The sending of data via Bluetooth will be triggered by a button when it returns to the pits. This data will include time/GPS position/velocity/air temp/humidity every 0.1/0.2 seconds. This data is stored on a SD Card linked to the Arduino board, which is wiped clean after a successful transfer.

Any advice would be appreciated, as i'm totally in the dark on where to start... thank you.

James

1 Like

Yes.

The Arduino can talk to 2 devices... this is easily achievable... it's quite a smart little device.

Thank you for the quick response.

For the project, which Arduino board would be best suited? Uno Rev3 with Bluetooth, or Mega?

I forgot to add, that i'd like to be able to send messages/operate maybe 3 LED's remotely on the kart dashboard too, to provide information to the driver while on track.....

Thank you.

You will struggle to use nRF24s at that range

It would be hep for you to outline the actual problem that you are trying to develop a solution for.

Doesn't have to be technical... but does help if you are specific.. like "the maximum distance I need to communicate over is 250m"... for example.

TBH, range for the nRF24L01+ is probably <50m, as the pits are located next to the track. Can the "pit base station" keep trying to send the data until it receives a received response from the nRF on the kart, ie: when it goes past me?

Ideally, i'd like the option of "talking" to the driver, at any point on the circuit. If nRF24 is the wrong communication option, can you help to provide advice on the right components/boards to use?

The plan is to start simple, ie just sending "live" lap/sector times, then scale up to the data logging download & pit-to-driver communication. I want to make sure that the Arduino board i start with is capable from the start.

Forgot to add that there will also be a small 480x320 display on the kart, which will show lap/sector times etc...

I'm a design engineer, not hardware/software engineer, hence the reach out to the experts.

Previously worked for a UK based multi-championship winning enduro kart team & single seaters (up to F3) many years ago.....

I'm sure that there is scope for a low-cost arduino based system that could be made available to everyone.....

Thank you.

Apology accepted ... :wink:

Hello tg7384
I have read your specification.
As basic design I recommend using an Arduino Nano, an SD card shield and an HC12 radio module.
An intelligent and correct data transfer protocol has to be developed too.
Have a nice day and enjoy coding in C++.
Дайте миру шанс!

Not sure about the "UNO Rev3" but the UNO/ Mega 2560 form factor is really clumsy for any project unless there is a matching "shield" that performs all the interfacing for you.

As @paulpaulson mentions, the Nano is far more practical.

+1

The only issue with the HC12 is that some of the clones are defective. They are simple to use and have good range.

I have sourced genuine hc01 factory units from
https://www.rictech.nz/products/25/GENUINE-HC-12-RF-Module but they appear to be out of stock.

You can email them and see when they are expected back in stock.

Otherwise, use the most reliable vendor you can find, and not the cheapest source.

yes, without any f###ing libary

The antennas you will use are critical to your project. Particularly for the moving antenna. You need to test that communication BEFORE you finalize the design of your system. At the frequencies you are contemplating, you will find all kind of reflections and multipath distortions.

All, thank you for your valued time & informative responses.

Taking a look at the Nano board, there doesn't seem to be enough pins for everything i need.... looks like a Mega is the only option.

Just in case you think differently, here is a list of bits i need....

  1. RTC
  2. Neo-6M GPS (this comes with RTC, so can delete separate RTC?)
  3. DHT-11 temp/humidity sensor
  4. SD Card
  5. HC-12 transceiver with different antenna (SMA)
  6. Large-ish LCD/TFT (480x320 or bigger)
  7. Power button
  8. Message received button (driver to press) - prefer this to be separate, so can be positioned closer to drivers hands/fingers.
  9. Hall effect/reed switch (to pickup magnetic strips on track)
  10. 3 tri-colour LED's
  11. Bluetooth (nearly forgot this one!)

I'm not to bothered about moving to a Mega board, as it will be located underneath the front number panel (in front of the steering wheel).

Only the display/LEDs/buttons will be mounted on the steering wheel, so that unit could be quite compact, depending on the size of screen. Obviously, there will be cables that need routing to the main unit, but this shouldn't be a problem.

I've been researching the HC-12 unit, doesn't look like there are any libraries required, please correct me if i'm wrong?

Again, appreciate everyone's responses so far..

Thanks
James

Correction DHT-11 should read DHT-22/11.

Below is a quick wiring diagram that i created via Circuitico.io

Why do you need the bluetooth? You should be able to transfer the logged data using the HC12.

Good point - there will be a vast amount of data though...

Say 10 laps per outing, logging every 0.1 seconds, 45 second lap = 4500 lines of data. Is this doable?

Maybe the transmission speed is quick enough for the HC-12 unit? How long do you think it would take given the above figures?

Thanks
James

Schematic has a nRF24L01 in there, as no HC-12 available....

I think that your best solution is to pull the sd card and put it in a computer.

Quick update on the UI. See image below..

I've been trawling the internet to try to find a round display for the Arduino, but only found this 3.4" one for the Raspberry Pi.... (DM-TFTR34-359). The old question of which board is better? Arduino vs Pi?

I don't really want to have a "thick" shield beneath the screen, as there is a regulation that the display must not protrude more than 20mm from the top surface of the steering wheel plane.

Could use a square display with round bezel....?

The idea is that when the driver passes a sector - it displays in green/red, whether or not he/she is quicker/slower (0.24). The S1 area border remains green/red, then moves to the 2nd sector (with the pointer moving with it)... Obviously, this will need to be flexible if no sector times on track.

Previous lap time is in the centre.

Delta vs quickest rolling lap is underneath. Again green/red colouring.

Couple of "buttons" at the bottom to access menu/switch display mode. Could also include icons for HC-12 / Bluetooth connection status....

What do you think, too complicated, or doable? Any advice/comments would be appreciated.

Thanks
James

While I appreciate everyone’s valued responses, there is one question that I’m struggling to get an answer too…. That is basically which MCU I should use.

The project scope has changed a little, as I’m now moving to a gps based system, which gives more flexibility in adding sector times, but obviously slightly more complex on the coding side of things. There are plenty of projects out there that seem to do something similar.

My question is, if I need to write parsed gps data at 10hz to an sd card, while outputting the lap time/delta/speed on a screen, what.MCU is best to do this? I’m obviously looking to make the form factor as small as possible, sitting behind the screen on the steering wheel.

Any help would be appreciated.
Thanks.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.