Hoping someone out there can assist me with providing some clear direction on which Arduino board to base a project around.
The project, is a gps based laptimer for all kinds of motorsport.
After setting the start/finish line (& sectors) with either pre-defined coordinates or by the driver pressing a button, i want to be able to do the following:-
Write the gps coordinates & velocity, with lap & sector number, to an sd card @ 10Hz.
Display on a 4d systems screen the lap number, previois lap time, current sector time & delta vs fastest lap. Maybe also speed too.
Id like a board that i can expand the range of inputs (like THP, throttle/brake position/g sensor etc...)
Being a complete nonse when it comes to these sorts of things, i'm requesting input to which microcontroller would do the trick, starting with the basics but having the capability to expand later down the line....
The dashboard will be built around the microcontroller, so id rather not change it down the line....
You need to buy an Arduino and play with it to be able to work things through for yourself.
This isn’t a beginners project and you have a learning curve to get around first
Purchase one of the lower cost Arduino and start working on each device one by one. If you find when combine all your code your Arduino is lacking, purchase a larger one.
Take a guess and purchase a more capable microcontroller. You will still have to do #1
Note, When changing from one microcontroller to another using the Arduino IDE you do not have to change any of the code. Or if there is some differences the change will be minor. And by that time you will be much more comfortable than now.
The key advantage of the Nano is that you can just plug it on a breadboard and don't have to fiddle around with Dupont wires - far easier to work with, in my opinion, and easier to set aside your whole setup if you need your desk space for something else.
@OP, you can 'expand the range of inputs" on basically every microcontroller by using a) sensors with a I2C controller (I2C is a bus system through which you can connect multiple input or output devices to just two pins on the microcontroller and is supported on basically every microcontroller), or b) multiplexers.
Using something like the Arduino Mega or Arduino Due (both of which have a loooooooot of inputs / outputs) will save you a bit of hassle in that regard but it might also end up as a rat's nest of loose wires.
ive done dozens of arduio projects on nanos, megas & zeros. They have served me well over the years. but I recently discovered the esp32 dev boards (not a new thing, but new to me) and I seriously doubt I ever run another atmel328.
highlights:
-has arduino core, integrates into arduino ide & platformio without hassle (coding like any other arduino)
-nearly every pin is interruptable & pwm cabable
-240 mhz proccessor (no thats not a typo)
-integrated bluetooth, wifi & espNow(small packet peer to peer wifi)
-more GIO pins (though many not accessible of different dev boards)
downsides: the ones I have are wide, too wide for a standard breadboard. That's my only complaint so far.
you get all this for the same cost as a nano, ~$6. and if you want to use is as a really basic board to learn, getting a "blink" sketch going is no different then any other arduino.
You wanna start easy & have huge rumor for expansion...seriously consider the esp32, its just a better arduino.
Ive read numerous threads about certain processors not being able to write the data to an sd card quuck enough (<0.1 secs).. while also doing everything else they need to. I ideally want to target 10hz logging for this project,
Ive read that the Uno is quicker than the Mega, but some of the smalller boards are even quicker....
Im sinking in jargon (sorry to offend), i just need a goodd starting point with capability to expand...
Cheers
GPS as a lap timer would be dubious, unless perhaps the laps are 10-20km per loop.
Sector timing similar, maybe 2km per segment.
The problem is ‘dilution of’ precision of the recorded position…
If you look at two identical GPS units held next to each other, they’ll likely be some metres apart on the map.
At motorsport speeds, those 2-10 metres* will be the difference between first and third position.
It’s possible - with very expensive, high speed GPS units, or using dGPS (mm accuracy), but you’ve got a long way to get there.
You may have noticed many motorsports use small RF. transponders - giving a passing position accuracy of less than a metre.
The Uno runs at 16MHz, which is not much on the grand scheme of things. The Mega 2560 runs at the same speed. The Nano Every runs at 20MHz.
There's not much difference there and if you want higher speed, you need something ARM-based (e. g. Arduino Due) or something like the ESP32 which mtraven suggested.
(Though I'm not sure where I could get an Arduino Nano or an ESP32 for $6, they're both in the €10~€15 range where I live).
((edit: got kHz and MHz confused for a sec. Fixed now.))
...it is pretty clear to everybody who isn't in the mood for jokes that you meant "MHz", rather than 1/1000th of the Planck constant (h) times whatever the heck "z" is supposed to be...
Before you chose an Arduino board (or ESP etc) consider the devices you want to interface with. Most sensors and RTC's run at 3.3volts or less. If you choose a 5V processor you will forever be dealing with level shifters so the 5V processor I/O does not destroy the sensor(s).
starting with the basics but having the capability to expand later down the line....
You can only "expand" by adding external devices that accomplish the expansion.
You will probably end up with something like a Arduino MKR Zero. The ESP32 is great but the I/O is limited as the built in radio consumes some resources.
Quite honestly I think you should purchase a couple of ESP32's and start working with your devices. Trying to pick the final processor is a waste of time (IMHO) you will spend more time trying to find the "perfect" board than just starting and learn what you will really need. Think of the Nike slogan "just do it".