Author Topic: ARM - easy way to start with  (Read 5521 times)

0 Members and 1 Guest are viewing this topic.

Offline funkathustra

  • Regular Contributor
  • *
  • Posts: 150
  • Country: us
Re: ARM - easy way to start with
« Reply #25 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.

  • You cannot build a project like this using a single-chip microcontroller solution — nothing is fast enough or has enough flash or RAM
  • While you could use a traditional MMU-less high-end microcontroller (like an STM32F4) wired up to external RAM and flash, this will make your project very very hard to implement. No one in the industry does it this way — not even Garmin. And think of their R&D budgets compared to yours.
  • You need an embedded Linux system for any chance of implementing something like this
  • Embedded Linux systems are relatively cheap to purchase when they're produced at scale — like the Raspberry Pi — but they are very expensive to design and prototype yourself
  • BOM cost — the cost of your parts alone — will be at least $40-60. PCB prototyping costs will start in the $80-100 if you can squeeze things on a 4-layer layout, and go up to $600-800 if you need 6- or 8-layer stack-ups.
  • Do you have a reflow oven and a solder pasting set-up? If not, you'll have to have your boards assembled by an assembly house. Practically speaking, that's going to be on the order of $1000
  • 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)
  • By now, the Raspberry Pi is starting to look like a good deal — even at 100 EUR or more — wouldn't you say?
  • But the Pi isn't a magic bullet. If you want to *write* software to do any of this, that's a massive undertaking. There are projects like OpenStreetMap, but they are far inferior to the GPS in your phone.
  • So what you'll end up with is a Raspberry Pi, running a bunch of hacked-together software you find on the internet, that barely works. What have you learned? What value have you added to what you can already buy off-the-shelf? Does this project even sound fun anymore?

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.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: ARM - easy way to start with
« Reply #26 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).
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline janoc

  • Super Contributor
  • ***
  • Posts: 3785
  • Country: de
Re: ARM - easy way to start with
« Reply #27 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

or this:
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).
« Last Edit: October 21, 2017, 11:04:38 am by janoc »
 

Offline funkathustra

  • Regular Contributor
  • *
  • Posts: 150
  • Country: us
Re: ARM - easy way to start with
« Reply #28 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.
 

Offline savril

  • Regular Contributor
  • *
  • Posts: 66
  • Country: fr
Re: ARM - easy way to start with
« Reply #29 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) 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/. 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.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf