EEVblog Electronics Community Forum

Electronics => Microcontrollers => Topic started by: sasa on October 18, 2017, 09:10:23 am

Title: ARM - easy way to start with
Post by: sasa on October 18, 2017, 09:10:23 am
Can anyone point ARM series/model MCU which do not require expensive environment (programmer/JTAG) to be flashed or even it is flash-less and use free compiler?

It is for plain hobby purpose and project is a GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis, etc. In short, it should have functionality as any today standard car GPS navigation device.

I would prefer to start with ARM, rather than to use any advanced MCP/ATMEL MCU.
Title: Re: ARM - easy way to start with
Post by: nctnico on October 18, 2017, 09:45:24 am
I'd look at a Raspberry Pi or something else which runs Linux.
Title: Re: ARM - easy way to start with
Post by: wilhelm on October 18, 2017, 09:50:51 am
STM Nucleo
http://www.st.com/en/evaluation-tools/stm32-mcu-nucleo.html?querycriteria=productId=LN1847 (http://www.st.com/en/evaluation-tools/stm32-mcu-nucleo.html?querycriteria=productId=LN1847)
Title: Re: ARM - easy way to start with
Post by: danadak on October 18, 2017, 11:00:52 am
Cypress PSOC -

For me what stands out is -

1) Routability
2) Fast 12 bit SAR A/D and slow 20 bit DelSig
3) DFB (Digital Filter Block) that is dual channel, handle FIR or IIR filters, or DFB
can be used as a GP fast processor block, similar to RISC block
4) MSI logic elements GUI based and/or the UDB Verilog capability. Eg. the FPGA
like capability
5) Onboard Vref
6) IDAC, VDAC, OpAmps (up to 4), comparator, mixer, switch cap, analog mux....
7) LCD,  COM, UART, I2C, I2S, One Wire, SPI, Parallel, LIN, CAN, BLE, USB
9) Custom components capability, create with schematic capture or Verilog
10) DMA to offload processes like filters, COM, Display
11) ARM M0 (PSOC 4) or M3 (PSOC  5LP) or 8051 core(PSOC 3) or M0+/M4 dual core PSOC 6
12) Extensive clock generation capabilities
13) All components supported by extensive prewritten APIs

https://www.element14.com/community/thread/23736/l/100-projects-in-100-days?displayFullThread=true (https://www.element14.com/community/thread/23736/l/100-projects-in-100-days?displayFullThread=true)

http://www.cypress.com/documentation/code-examples/psoc-345-code-examples (http://www.cypress.com/documentation/code-examples/psoc-345-code-examples)

Great video library

Attached component list.  A component is an on chip HW resource.

Free GUI design tool with schematic capture, "Creator". Components have rich API library attached
to each component. Compilers free as well.

PSOC 4 is low end of family, consider 5LP parts as well. PSOC 4 also has arduino footprint boards (pioneer) as well. PSOC 6 dual core M0+/M4.

https://www.elektormagazine.com/labs/robot-build-with-cypress-psoc (https://www.elektormagazine.com/labs/robot-build-with-cypress-psoc)

http://www.cypress.com/products/32-bit-arm-cortex-m-psoc (http://www.cypress.com/products/32-bit-arm-cortex-m-psoc)



https://brightcove.hs.llnwd.net/e1/uds/pd/1362235890001/1362235890001_5241352463001_2606504288001.mp4?pubId=1362235890001&videoId=2606504288001 (https://brightcove.hs.llnwd.net/e1/uds/pd/1362235890001/1362235890001_5241352463001_2606504288001.mp4?pubId=1362235890001&videoId=2606504288001)



Regards, Dana.
Title: Re: ARM - easy way to start with
Post by: Psi on October 18, 2017, 11:04:51 am
any stm32 discovery board, they are ~$10 and have programmer and debugger on the pcb.

i use embitz IDE which uses gcc but there are other good ide's too.

downside with stm32 is the peripheral library is a mess
Title: Re: ARM - easy way to start with
Post by: technix on October 18, 2017, 11:10:11 am
In the Arduino brand there is Arduino Zero and Arduino M0 Pro. Both board comes with built-in Atmel EDBG debugger over SWD. You can use Eclipse CDT and OpenOCD as the software stack.
Title: Re: ARM - easy way to start with
Post by: Kjelt on October 18, 2017, 11:31:05 am
In the Arduino brand there is Arduino Zero and Arduino M0 Pro. Both board comes with built-in Atmel EDBG debugger over SWD. You can use Eclipse CDT and OpenOCD as the software stack.


You are serious in advicing to use an M0 for these requirements, what are you drinking thinking ?

Quote from: TS requiirements
GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis

I would go at least M4 even M7 or better as nico already suggested go for a raspberry pi or beaglebone black kind of processing power to handle the GB's of map data, voice synthesizing and generating a fancy GUI on a touchscreen.  It would make the job a lot easier.
Title: Re: ARM - easy way to start with
Post by: sasa on October 18, 2017, 01:12:58 pm
Thank you all for answer.

BTW, to be clear, I'm not really interested for any dev. boards, but rather for bare ARM chip and homemade whatever is needed for the project.

As well, RPI is an overkill.
Title: Re: ARM - easy way to start with
Post by: Kalvin on October 18, 2017, 01:19:43 pm
Develop the core system using a proper development environment (Like PC or RasPi), and abstract the low-level stuff to be as portable as possible. When you have the core functionality developed and tested you can then determine the actual hardware resources needed, and you will be be able to select the microcontroller that is sufficient for your purposes.
Title: Re: ARM - easy way to start with
Post by: nctnico on October 18, 2017, 01:39:44 pm
Thank you all for answer.

BTW, to be clear, I'm not really interested for any dev. boards, but rather for bare ARM chip and homemade whatever is needed for the project.

As well, RPI is an overkill.
No it is not. With your requirements you need an OS to deal with the various processes, reasonably fast graphics, some processing power for audio, storage space, memory, etc. This is way out of reach for a microcontroller so you'll need a SoC. If you are going to write everything from scratch you'll be working fulltime on this project for the next 5 years and even then you'll find you won't be able to do it on a (higher end) microcontroller running at 100MHz tops and something like 512kB of flash.
Title: Re: ARM - easy way to start with
Post by: technix on October 18, 2017, 02:41:57 pm
If you are doing the GPS stuff you may want to start somewhere higher. The M0 will not scratch it - unlikely for even a M7 on that matter. You might want to use Linux and maybe Android to make use of the vast library of existing GPS code.

Maybe first check if any existing Android tablet or iPad would suffice your needs? You may want to use the variants with cellular functionalities, as it seem to me like a common feature for cellular basebands to come with a built-in GNSS receiver. If not, it is still a better idea to use Raspberry Pi 3 + GPS module (or Raspberry Pi + cellular module with GNSS functionality + SIM card with data plan, if you want to have online map capabilities)
Title: Re: ARM - easy way to start with
Post by: sasa on October 18, 2017, 04:07:27 pm
This project will be great extension of something I already done with pure ATmega328p.

It had:
- Nokia 5510 display, displaying standard GPS data and several other screens contain various statistic and analyze for satellites (signal strength, visibility, etc).
- Use menus and IR remote to change windows and makes setting.
- SD card, saving full NMEA data received every second in the file.
- Selecting places from SD card and show speed, distance and ETA. Saving full NMEA data  is not deactivated in that mode.
- Draws only 50mA when fix, allowing 42 hours with 3xAA batteries. Draws 90-100mA during initial searching for satellites (30s).
- Show voltage of battery and show warning when low.

And worked perfectly. All libraries was made from scratch in C++ and pure 32K...

Missing "GO HOME" function, maps and its rudimentary display with implementation of short path finder algorithm and primitive voice synthesis could be made with in 2560's 256K, I already started...

However, pure Nokia 5510 display is obviously a toy to display graphic on screen and if already upgrade old project, I would upgrade MCU as well.

I doubt it will last 5 years, more likely few months working 1-2 hours a day in free time to accomplish at least functional and looking decent, with at least 8h battery life. I do not want Wi-Fi and no fancy devices, just homemade one and open sky...

With nowadays mobile phones, Wi-Fi and google maps, this may looks as a pointless project... However, this is just a toy project comparing with this one:

http://www.homebrewcpu.com (http://www.homebrewcpu.com)

But I understand him completely...
Title: Re: ARM - easy way to start with
Post by: ataradov on October 18, 2017, 04:11:44 pm
I would prefer to start with ARM, rather than to use any advanced MCP/ATMEL MCU.
ARM does not make CPUs, they only make cores. And ARM is ad advanced as it gets at the moment.

And yes, you seem to be getting ahead of yourself. You should probably pick a simpler task to get a feel for capabilities of actual devices.
Title: Re: ARM - easy way to start with
Post by: funkathustra on October 18, 2017, 04:12:28 pm
Rather than just throwing out random suggestions for generic microcontrollers, maybe we can all notice the project requirements?
It is for plain hobby purpose and project is a GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis, etc. In short, it should have functionality as any today standard car GPS navigation device.

The Arduino DUE and Cypress PSoC are terrible suggestions for this project; I don't know why they were even mentioned. Neither has an LCD controller, runs nearly fast enough to do voice synthesis or graphics, nor has enough RAM.

The STM32F4 might be able to be coaxed into building this (as it has an LCD controller and supports external SRAM), but what you really need is an application ARM processor, not a microcontroller. That's how Garmin and companies like that build this stuff. Once you have an application ARM processor on a board, you can get Linux/QNX/Windows Embedded/whatever OS up and running, which should make building out the system much easier.

Since you want to use bare chips instead of dev boards, I'd recommend looking at the Freescale/NXP i.MX6SL or even the ULL. These come in large, 0.8mm-pitch BGAs that are easy to solder, and can be squeezed into a 4-layer PCB stackup (especially the ULL), which will make prototyping a lot cheaper. You didn't mention battery constraints, but the i.MX6UL/ULL both have enough integrated LDOs that I've been able to get away without a PMIC on non-power-critical designs --- you only need two buck regulators to get a DDR3L-based system up and running.

You're most likely underestimating the complexity of this project by several orders of magnitude. Most embedded Linux projects I work on have a minimum 6-month time frame, with multiple developers working on them.

When you have 800 MHz parallel memory interfaces flying around a board, layout (especially power delivery and length-tuning) becomes critical. You'll need a good understanding of Linux kernel compilation and Device Tree stuff, as you'll have to integrate touchscreen drivers into the kernel, as well as configure the TFT's parallel RGB interface with the proper resolution/timing/front/back-porch settings.

At the application level, you're kind of on your own --- I don't know of any off-the-shelf path-planning libraries that are easy to integrate. I think graphics work is going to be especially challenging. None of that mapping data is open-source --- in fact, the vendors that create it often sell it to other companies, because it is so valuable.
Title: Re: ARM - easy way to start with
Post by: donotdespisethesnake on October 18, 2017, 04:54:29 pm
With nowadays mobile phones, Wi-Fi and google maps, this may looks as a pointless project...
Well, you said it.

If the goal is just to re-invent the wheel and have fun taking as long as you like building it from the ground up, then it doesn't really matter where you start. Asking for advice also seems rather pointless, as you are so sure of what you want and ignore sensible suggestions. Quite often people just seem to want a "magic answer" instead of doing their own research.

There are dozens of cheap ARM boards around, just buy one and get on with it!
Title: Re: ARM - easy way to start with
Post by: rsjsouza on October 18, 2017, 04:59:33 pm
When you have 800 MHz parallel memory interfaces flying around a board, layout (especially power delivery and length-tuning) becomes critical. You'll need a good understanding of Linux kernel compilation and Device Tree stuff, as you'll have to integrate touchscreen drivers into the kernel, as well as configure the TFT's parallel RGB interface with the proper resolution/timing/front/back-porch settings.
With that in mind, perhaps the Octavo device (https://octavosystems.com/)? Fully compatible with BeagleBone (based on AM335x) but with a lot of complicated routing already inside its package. A dev kit is also quite cheap: the PocketBeagle at $25.
Title: Re: ARM - easy way to start with
Post by: funkathustra on October 18, 2017, 05:18:17 pm
When you have 800 MHz parallel memory interfaces flying around a board, layout (especially power delivery and length-tuning) becomes critical. You'll need a good understanding of Linux kernel compilation and Device Tree stuff, as you'll have to integrate touchscreen drivers into the kernel, as well as configure the TFT's parallel RGB interface with the proper resolution/timing/front/back-porch settings.
With that in mind, perhaps the Octavo device (https://octavosystems.com/)? Fully compatible with BeagleBone (based on AM335x) but with a lot of complicated routing already inside its package. A dev kit is also quite cheap: the PocketBeagle at $25.
This is definitely a good idea.
Title: Re: ARM - easy way to start with
Post by: Jeroen3 on October 18, 2017, 05:36:44 pm
not require expensive environment

It is for plain hobby purpose and project is a GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis, etc.
1. GNU ARM + Segger edu.
2. Limited time project
3. High LOC subjects.
Getting this, including board design, running on a bare metal processor will take some significant time.
I suggest getting a rpi zero and using more off-the-shelf stuff with a gui framework to get this running. Like Qt.
Title: Re: ARM - easy way to start with
Post by: donotdespisethesnake on October 18, 2017, 08:27:33 pm

I suggest getting a rpi zero and using more off-the-shelf stuff with a gui framework to get this running. Like Qt.

+1

Raspberry Pi is very cheap, plus lots of accessories available. Invariably when people ask about a project like this, it has been done before, and 30 seconds searching on Google will find them. For example, https://smstextblog.blogspot.co.uk/2014/01/raspi-sat-nav.html A couple of days and one could have a working system.

Title: Re: ARM - easy way to start with
Post by: ebclr on October 19, 2017, 12:01:35 am
This small list of board who can be programmed with a free online compiler

https://os.mbed.com/platforms/
Title: Re: ARM - easy way to start with
Post by: lucazader on October 19, 2017, 09:39:12 am
Have a look at this:
http://www.st.com/en/evaluation-tools/32f769idiscovery.html (http://www.st.com/en/evaluation-tools/32f769idiscovery.html)

STM32F7 processor (nice and fast)
Comes with external flash and ram if needed.
800*480 touchscreen display.
Already has an audio codec on board for high quality audio output.
Built in debugger.

Not too expensive considering the hardware that you get with it. Especially if this is a hobby project.

However it may be easier to go with a Raspberry Pi on this one. Probably easier to get up and running.

Title: Re: ARM - easy way to start with
Post by: danadak on October 19, 2017, 11:14:27 pm
Quote
The Arduino DUE and Cypress PSoC are terrible suggestions for this project; I don't know why they were even mentioned. Neither has an LCD controller, runs nearly fast enough to do voice synthesis or graphics, nor has enough RAM.

The STM32F4 might be able to be coaxed into building this (as it has an LCD controller and supports external SRAM), but what you really need is an application ARM processor, not a microcontroller. That's how Garmin and companies like that build this stuff. Once you have an application ARM processor on a board, you can get Linux/QNX/Windows Embedded/whatever OS up and running, which should make building out the system much easier.

I concur, that might have been a poor recommendation on my part. Although the ST part also does not have
necessary RAM either. I was thinking along the lines of architecture where LCD has a separate controller (or whole
job done on FPGA/ASIC). PSOC has components internal to interface to external controllers. Note PSOC 6 has
enough internal SRAM to handle small displays, 288KB. Buffer use only, not direct display memory. But family
is still preliminary. Internal DMA would handle that refresh to display RAM.

http://www.cypress.com/file/385916/download (http://www.cypress.com/file/385916/download)

I might take exception to speech capability as PSOC has a dedicated digital filter block that can
be used for other high speed tasks.

I stand corrected :).


Regards, Dana.
Title: Re: ARM - easy way to start with
Post by: technix on October 20, 2017, 05:16:26 am
Since you've mentioned TFT, touch screen and GPS, I would prefer to offload the vast amount of basic framework code to existing Linux OS.
That's to say, your platform better supports Linux.
Yes, you can do that with uC-OSiii or whatever RTOS with GUI, but then porting to another platform is not that easy, and some RTOSes may come with a huge price.
I would say, unless you need it to boot in seconds, or you need some very high reliability, the modern cheapest solution is to run Linux.

Depending on product type, if it's for hobby, consider RPi or Chinese SoCs (AllWinner, Rockchip, etc.). None of those are committed to be available for a long time, so prepare for EOL at any time.
For long term industrial products, consider Microchip SAM, NXP iMX or TI Sitara. These are guaranteed to be in production for at least 10 years.

Both RPi and AM3358 (Sitera, BeagleBone) are easy to use thanks to the huge user base, and if you want to go hard core, iMX and AllWinner are there.
In case you want to touch iMX and AllWinner without using Android, you will need to learn low level Linux programming and Yocto.
For RPi and AM3358, it's likely that knowing Python is all what you need.

The above applies to you if you just want to use ARM SoCs in a product. If you want to learn how a SoC is built (how peripherals are connected to ARM core, how boot works, etc.), you need to consider Zynq or Cyclone V (Xilinx and Intel FPGAs with ARM HPS).
Or maybe just use Android and slap some kind of existing GPS software on it. You do reduce yourself to a system integrator, but it is the fastest way to push a product prototype out.
Title: Re: ARM - easy way to start with
Post by: sasa on October 20, 2017, 08:18:43 am
Well, you said it.

If the goal is just to re-invent the wheel and have fun taking as long as you like building it from the ground up, then it doesn't really matter where you start. Asking for advice also seems rather pointless, as you are so sure of what you want and ignore sensible suggestions. Quite often people just seem to want a "magic answer" instead of doing their own research.

There are dozens of cheap ARM boards around, just buy one and get on with it!

You obviously does not understand at all what is the purpose of the post and further explanation is pointless - read it careful and try to understand before decide to answer. Instead you deliberately insinuate and your goal is probably just trolling as obviously you have nothing better to do.

Read other comments carefully as well - no body except you reacted similar. Read my personal info and my level in electronic. If you expect that any question is asked by  professional EE, you are missing the point of this forum - register on a closed EE forum or avoid reading such threads. As well, if professional EE ask that kind of questions. it would be better for anyone (companies where applying for job and himself) to burn his diploma out.

Expecting from hobbyist to read 1000s pages of documentation just to chose suitable MCU is rather cynical.

As well, you have no grasp about my country laws, so generally stating "cheap" may be in your country and I deliberately keep that info private. I can buy here RPI for 100 Euro from local store (or if order outside of county with all custom taxes on 25 Euro board > 100 Euro or brick instead a board), however I wont and prefer to use bare ARM chip and easy flashing - as I already clearly noticed, you obviously did not read. Then it is better to restrain yourself from partially reading, misunderstanding, making bad assumptions and conclusions and writing such messages. All that if your goal indeed is not trolling around...

Etc, etc..

Every thread ends-up with misunderstandings, personal attacks, off topic comments, point of doing anything and a at end point of life... And these kind of messages make this forum as any - a bad place for hobbyists and beginners.

I wanted to avoid this, but you asking for it.
Title: Re: ARM - easy way to start with
Post by: donotdespisethesnake on October 20, 2017, 07:49:38 pm
As well, you have no grasp about my country laws, so generally stating "cheap" may be in your country and I deliberately keep that info private.

Ok, I will assume you live in the USA. I would be too embarrassed to admit that as well  ;D Also the USA has the highest taxes of any country, probably, the highest taxes ever. That's what I was told. I think probably they are, many many people say they are. That would explain why you have to pay so much.

Anyway, we can do this backwards. Tell us what ARM chips are available to you at what you consider a reasonable price, and we can tell you whether they are suitable.
Title: Re: ARM - easy way to start with
Post by: funkathustra on October 21, 2017, 12:12:54 am
You obviously does not understand at all what is the purpose of the post and further explanation is pointless
To be fair to donotdespisethesnake, you never really articulated what the purpose was. Was it to build... a product? A personal project? Do you want to use bare chips instead of dev boards because you want to practice designing PCBs? Or do you think it's going to save cost?

Without context, we don't know your intentions.

So the best we can do is state facts, and then let you decide, on your own, how to proceed, given the context you never provided us.


I think that's why a lot of people on this thread are getting a little tongue-in-cheek with their comments. Please don't take offense to it, but that's just sort of the attitude around here. You might as well have started a thread about wanting to build an Android smartphone from scratch "to learn Microcontrollers"

If you want to learn to program ARM microcontrollers, you should start with a microcontroller project. A GPS navigation system is not a microcontroller project (you're not using a single MCU-specific peripheral — heck, even the GPS connects to the MCU over UART, which normal computers have).

And then, you could refer to everyone else's comments in this thread about mbed, PSoC, whatever.
Title: Re: ARM - easy way to start with
Post by: nctnico on October 21, 2017, 09:51:30 am
  • You will spend several months on the PCB design alone, as you probably don't have much background in high-speed routing. Do you have an Altium license? You'll need a nice EDA tool to speed up length-tuning, and KiCAD isn't quite there yet (though it's getting closer)
That is nonsense. Altium brings nothing extra to the table for these kind of designs. I've seen people creating SoC designs with several BGAs using PCB for Linux with some guidance about DDR routing and which traces to keep equal in length. Also if the board doesn't need to be super dense you can have it ready in 3 weeks full time. A more ergonomic CAD package will make things easier but most will be gained at the logistics side of it (creating a bill of materials).
Title: Re: ARM - easy way to start with
Post by: janoc on October 21, 2017, 11:00:29 am
Can anyone point ARM series/model MCU which do not require expensive environment (programmer/JTAG) to be flashed or even it is flash-less and use free compiler?

It is for plain hobby purpose and project is a GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis, etc. In short, it should have functionality as any today standard car GPS navigation device.

I would prefer to start with ARM, rather than to use any advanced MCP/ATMEL MCU.

ARM MCUs/CPUs can be all programmed using the free GCC toolchain and most(all) ARM families are really well supported.

And re expensive JTAG - all you need is a $2 dongle like this:

https://www.aliexpress.com/item/ST-Link-V2-new-stlink-mini-STM8STM32-STLINK-simulator-download-programming-With-Cover/32719963657.html (https://www.aliexpress.com/item/ST-Link-V2-new-stlink-mini-STM8STM32-STLINK-simulator-download-programming-With-Cover/32719963657.html)

or this:
https://www.aliexpress.com/item/Die-Jlink-OB-ARM-emulator-debugger-jlink-programmierer-downloader-link-statt-V8-SWD/32763735160.html (https://www.aliexpress.com/item/Die-Jlink-OB-ARM-emulator-debugger-jlink-programmierer-downloader-link-statt-V8-SWD/32763735160.html)

ARM chips have the advantage that the JTAG/SWD interface is standardized and published by ARM directly, so most vendors follow it and you don't need any proprietary/expensive tools.

Of course, since you will be going the free/low cost route, you will need to spend some time reading online tutorials on how to set up GCC, OpenOCD and configure your IDE of choice to use them but that is hardly an insurmountable issue. There is plenty of documentation out there.

The primary advantage of buying the expensive tooling is that most of this setup work is done for you by the vendor and it is guaranteed to work. On the other hand, if one of those $2 dongles doesn't work, you bin it and buy another one  :-// So you don't really get a lot more over the open source/free tools (and many of the expensive tools are only basically repackaged free ones) if you are willing to spend the time and effort as a hobbyist.

(that doesn't mean the expensive tools don't have their place - but that is mostly in the pro market where the time savings, having someone to grab by the neck and shake if something isn't working and some of the more advanced/obscure features that the free tools may not be implementing or implementing well are an advantage).
Title: Re: ARM - easy way to start with
Post by: funkathustra on October 21, 2017, 07:20:34 pm
That is nonsense. Altium brings nothing extra to the table for these kind of designs. I've seen people creating SoC designs with several BGAs using PCB for Linux with some guidance about DDR routing and which traces to keep equal in length.
Since when does KiCad easily serpentine traces to enforce length rules? What about T-topology length tuning? Altium's xSignals dramatically reduce the time I spend messing with that crap.

Also if the board doesn't need to be super dense you can have it ready in 3 weeks full time.

Sure, maybe for you or me, as we know what we're doing. The OP is coming from an Arduino background, and I assume has very limited PCB design experience. Combine that with my assumption that this is a side project, instead of a 40-hour/week job. I bet it would take someone several months to learn all this stuff from scratch and route a board.
Title: Re: ARM - easy way to start with
Post by: savril on October 21, 2017, 11:19:58 pm
It is for plain hobby purpose and project is a GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis, etc. In short, it should have functionality as any today standard car GPS navigation device.

Designing a GPS navigation system which could be comparable to commercial one is a bigger project than it seem. Route planning is more difficult than tracing a straight line from A to B or the shortest path algorithm. You have to take care of speed limit of each road. To be better, taking care of actual traffic is better. This king of algorithm is not easy to do. Route planning such as the Travelling salesman problem (https://en.wikipedia.org/wiki/Travelling_salesman_problem (https://en.wikipedia.org/wiki/Travelling_salesman_problem)) is a classic problem exposed in computer science engineering course.

If I was to do it myself, I would use open source software software. Such as OpenStreetMap database and something like OptaPlanner: https://www.optaplanner.org/. (https://www.optaplanner.org/.) Same for speech synthesis.
Which would take me to using something like a raspberry pi.
Using a Linux computer (such as the raspberry) would be better because you could test it on your own computer without having to upload it to a device. It give a faster round trip between coding and testing, which would be nice for a big project such as this.

But even if you complete the project, I doubt you'll be satisfied with the result compared to commercial offering (with respect). So if I were you, I'll try to find another project. Or try to get a team of enthusiasts to help you do it.