Which board to buy - Page 1
Forum section: electronics / general

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 04, 2016, 03:38:28 pm
content: Hello guys!I'm looking to buy a board to learn more about embedded system and programming.People have been telling me about STM32 Discovery boards!What you guys would recommend? I have a budget of about 50€. It's not mandatory but it's a good limit.

author: stj
author_rank: Super Contributor
timestamp: October 04, 2016, 07:55:15 pm
content: the Nucleo 64 / 144 boards are better - they have arduino headers on them so you can use shields from ebay.cheaper too.i would go for the NUCLEO-F746ZG or the NUCLEO-F767ZIno point messing about with small stuff when the top ones are so cheap.

author: Rasz
author_rank: Super Contributor
timestamp: October 04, 2016, 08:45:41 pm
content: depends on your current level of knowledge, you could even start with $2 Arduino clone from ebayor $4 stm32 board

author: elgonzo
author_rank: Unknown
timestamp: October 04, 2016, 08:49:29 pm
content: Quote from: stj on October 04, 2016, 07:55:15 pmI agree with you except for the bit about Nucleo being cheaper than Discovery...

author: stj
author_rank: Super Contributor
timestamp: October 04, 2016, 09:09:27 pm
content: well if you compare Nucleo and Discovery with the same MCU on them - Nucleo is cheaper.i'm talking Dealer price - not stock clearance via ebay etc.

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 05, 2016, 02:26:41 am
content: Quote from: blueskull on October 04, 2016, 08:33:21 pmBut is that an FPGA or is it a mix of an FPGA with another type of device?If it can be faster than my laptop at some tasks, and if those tasks includes heavy processing, than I can remember something I might be able to do. Anyway, that's an whole other matter.Because if this is an FPGA, have an old one sitting here at home. The old Basys2...Sent from my GT-I9505 using Tapatalk

author: ebclr
author_rank: Super Contributor
timestamp: October 05, 2016, 04:27:06 am
content: Forget that FPGA things, if your purpose is to learn microntroller, Fpga will only add a layer of complication on your study, and after learn you will need to use very expensive chips on your projects.Fpga is a very powerful tool, witch amazing performance but will never surpass a micro-controller in price /performance ratio for sequential programming machine. If you want to learn FPGA then is another history.Is something like you want to learn to drive a car , and somebody sugest that you learn with a F1 Car, totally no sense right.I would sugest 2 boardsSTM32F429I-DISC1http://www.mouser.com/ProductDetail/STMicroelectronics/STM32F429I-DISC1/?qs=sGAEpiMZZMvJkDqKJH80dBW9Ucpez89T%252byheH8hFi38%3dSTM32F469I-DISCOhttp://www.mouser.com/ProductDetail/STMicroelectronics/STM32F469I-DISCO/?qs=sGAEpiMZZMufdu5QM0tCwQQ5%252b7z4ScXvnazCWkqibGI%3dKISS

author: ebclr
author_rank: Super Contributor
timestamp: October 05, 2016, 04:31:43 am
content: Nucleo is cheaper but Nucleo have nothing, only the CPU and programmer, while discovery always have a lot of Peripheral Circuitry, like LCD, sensors and other stuff, For sure Discovery is more for your money than Nucleo, Nucleo is the bare metal only

author: stj
author_rank: Super Contributor
timestamp: October 05, 2016, 04:43:05 am
content: Quote from: ebclr on October 05, 2016, 04:31:43 amthe Nucleo models i listed have USB-OTG and Ethernet.they are also F7, not F4 - they are almost twice as powerfull at the same clockspeed.http://www.carminenoviello.com/2016/01/22/getting-started-stm32-nucleo-f746zg/

author: ebclr
author_rank: Super Contributor
timestamp: October 05, 2016, 04:47:07 am
content: Can you compare thishttp://www.mouser.com/Search/ProductDetail.aspx?R=NUCLEO-F767ZIvirtualkey51120000virtualkey511-NUCLEO-F767ZIto thishttp://www.mouser.com/Search/ProductDetail.aspx?R=STM32F769I-DISCOvirtualkey51120000virtualkey511-STM32F769I-DISCO

author: stj
author_rank: Super Contributor
timestamp: October 05, 2016, 04:50:33 am
content: Quote from: ebclr on October 05, 2016, 04:47:07 amyes, the Discovery is more than 3 times the price, and 50% over budget.

author: ebclr
author_rank: Super Contributor
timestamp: October 05, 2016, 05:04:53 am
content: Here a partial list of the boards in my lab that i already playedhttps://electronicmaker.wordpress.com/development-boards/I still recommend those 2 for a beginner, A7 isn't ideal, to much power hungry, and have MIPS that only 3% of applications need

author: stj
author_rank: Super Contributor
timestamp: October 05, 2016, 05:48:58 am
content: hmm.i'm not sure why that page is FAR to wide and refuses to scale in my browser.not sure why it keeps skipping around either unless there is something underhand going on unseen like a web-bug or javascript.nice collection btw, do you actually find time to use them all?

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 05, 2016, 08:59:46 am
content: Hello again...Ok, I have been reading suggestions and of course there is always a bit of emotion when suggesting boards. Of course that each one of you loves the boards you have acquired. I'm also like that!I want something that can last a few years, even if at the beginning I'm not using 10% of it's power/features. I want something that is 100% Linux compatible. I liked the DE0 Nano SoC kit even if is a bit more expensive, but I got the idea, not sure if correct, that that one is a mix of an FPGA and something else! Please clarify me on that!

author: ebclr
author_rank: Super Contributor
timestamp: October 05, 2016, 09:27:53 am
content: Da uma olhada no manualhttp://www.terasic.com.tw/attachment/archive/941/DE0-Nano-SoC_User_manual.pdf

author: newbrain
author_rank: Super Contributor
timestamp: October 05, 2016, 09:38:35 am
content: Quote from: ebclr on October 05, 2016, 05:04:53 amPartial, even?Quite an impressive list!I also have a a number of Nucleos (32 and 64, F042, 072, 411) and Discos (F4, F429, F746) plus the odd TI MSP432s.So, in my experience:The latest Discovery boards are very nice, if you need or want to experiment with their on-board peripherals.But they lack free IOs, taken up by LCDs etc.This is a problem especially with the F746 and F469 Disco, where not much more than the Arduino connector is available.Nucleo 32 and 64 are the exact opposite: cheap bare-bone boards, not much more than a break-out plus an ST-Link.They are very easy to integrate in any project (personal examples: CEC to USB HID, PSU control and measurements, etc.)Nucleo 144, though more expensive, strike a nice compromise: you get Ethernet and USB, and there's still plenty of available IOsSo, which horn of the dilemma is the right one?I'd take both: if your budget allows, I'd go for a Nucleo 144 (not F303, F412 or F446, lacking Ethernet)anda disco: e.g. F429, cheap but still quite powerful: LCD, MEMS gyroscope, and target USB.Quote from: psysc0rpi0n on October 05, 2016, 08:59:46 amExactly. It's a dual core ARM plus FPGA. Double the fun, but double the learning curve; I am actually considering this, something like theSnickerdoodleor other Zynq based boards.But I would not get this to start on microcontrollers, as you are facing Linux on the ARM side.If by 100% Linux compatible you mean "it can run Linux" then no Nuclo/Disco or similar (Cortex-M) would do, but if the meaning is "The toolchain must run on Linux" you will have no problems with them.With the DE0-nano SoC, I'm not sure. The site and all the examples in the manual refer to a Windows environment, but Quartus SW is also available for Linux, AFAIK.

author: Rasz
author_rank: Super Contributor
timestamp: October 05, 2016, 10:06:52 am
content: Lets start from the beginning. Tell us what you already know, and what are your goals. Do you know C? python? assembler? js?Quote from: psysc0rpi0n on October 05, 2016, 08:59:46 amReal* embedded engineers dont even consider anything running linux to be embedded. Learning FPGAs will take at least half a year and _will not_ bring you any closer to learning about embedded microcontrollers/programming, its entirely different niche.seriously, buy arduino clone for couple of bucks and put at least 2-3 hours on it playing with led blinker.*Elecia for example.

author: Back2Volts
author_rank: Unknown
timestamp: October 05, 2016, 10:24:15 am
content: Quote from: psysc0rpi0n on October 05, 2016, 08:59:46 amHave you considered something like a Raspberry Pi ?

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 05, 2016, 10:28:41 am
content: I know a little bit of C and a bit less of python. Yes, I'm not an expert but I have already made a small game with the 8051 (DS89C450 from Maxim), 3 7 segment LED and a 24*4 LCD display. It was for the school project... Yes I know it is no big deal for experts for sure, but it was for a beginner!I would like to learn about microcontrollers, C, python, whatever I need to learn. I honestly don't have a specific goal! Just want to have the possibility to learn more about this world!No, I haven't considered Raspberry Pi...I like to hook up things in the breadboard, plug and unplug wires, resistors, capacitores, leds, opamps, timers, memories and all that stuff and communicate with them using a program loaded into a uC!

author: Kremmen
author_rank: Super Contributor
timestamp: October 05, 2016, 10:40:14 am
content: RasPi is not a true embedded platform. It is a poor man's Linux computer.Either go for Arduino (8 bit Atmel AVR although other Arduino options exist) or Nucleo (32 bit STM32 ARM-Cortex). The former if you want an easy start, the latter if you want to learn embedded system design and implementation in depth. It matters less which Nucleo because at this stage computing power is not an issue; any Nucleo will beat any 8 bit Arduino hands down in performance. If you are unfamiliar with the STM32 world, i absolutely recommend that you get and read through Carmine Noviello's excellent book "Mastering STM32", available in leanpub. It will walk you through the installation and configuration of a working toolchain and explain the basics of ARM Cortex architecture and practical issues that you will encounter when you actually try to do something.After going through the pain of learning the book, you will understand the workings of the actual processor and the associated firmware build environment in a way no Arduino user can ever match just by playing around with Ardus. Then of course, that is the whole point of an Arduino; they are a programming environment for non-programmers.

author: ebclr
author_rank: Super Contributor
timestamp: October 05, 2016, 10:42:15 am
content: I would suggest start simpleLatter introduce complexitytake a look herehttps://developer.mbed.org/platforms/Chose one and go.Latter after you have experience enter on the FPGA word, "Nao ponha a carroça na frente dos burros"

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 05, 2016, 11:00:22 am
content: This is getting harder by the minute!!! Some of you say to get into FPGA world, others says that is not the way! I'm still confused!

author: dannyf
author_rank: Super Contributor
timestamp: October 05, 2016, 11:05:41 am
content: I would go with the nucleo boards for the Arduino connectors.

author: Rasz
author_rank: Super Contributor
timestamp: October 05, 2016, 11:22:28 am
content: Quote from: psysc0rpi0n on October 05, 2016, 10:28:41 amBrilliant. This is already more than enough for a strong start.Forget about boards running linux, they are mini computers and not real embedded systems. They are meant for-people needing a LOT of processing power-people in a hurry that just want something done and dont care about the details (like running 4x 1GHz platform so they can blink a led with a python script over the network).-noobs coming down the stack from the Web development world who can only program in javascript and think node.js is a great embedded environment, aka people who want to play with electronics but with no desire to learn embedded.Forget about FPGA for now, this is entirely different niche, requires a lot of time and knowledge. Its not programming anymore, more like using programming language to describe and design hardware. Pretty advanced stuff.Arduino might be great for you to start with. You can either buy everything separately, like:http://www.ebay.com/itm/Mini-USB-Nano-V3-0-ATmega328P-CH340G-5V-16M-Micro-controller-Board-For-Arduino-/201539166894or go for one of these everything and a kitchen sink kits:http://www.ebay.com/itm/New-Ultimate-UNO-R3-Starter-Kit-For-Arduino-1602-LCD-Servo-Motor-Relay-RTC-LED/311615042684http://www.ebay.com/itm/New-Ultimate-UNO-R3-Starter-Kit-for-Arduino-1602-LCD-Servo-Motor-Relay-RTC-LED/221451495178http://www.ebay.com/itm/Adeept-Ultimate-Starter-learning-Kit-for-Arduino-UNO-R3-LCD1602-Servo-processing-/231677301840You can also buy one of therehttp://www.ebay.com/itm/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino-DHUS-/321569700934to cover all bases.There is enough sensors, switches, pots, drivers, actuators and other elements to play and design cool stuff with in those for >a year.Edit: Here is a site with a bunch of easy to follow projects and tutorials that will complement one of those adruino kits:http://www.tinkerplayground.com/projects/

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 05, 2016, 04:09:55 pm
content: I have almost all of those materials.I have2x step motors2 Melexis temperature sensors1x Motion sensor1x Arduino Uno Rev. 3 clone3x AtMega328P-PUOp-AmpsVoltage regulators555 TimersBasys2 Spartan3E (250k gates)BJT'sMosfet'sJ-LinkUSB-to-Serial ConverterResistorsCapacitorsDiodesZenersand so onSo, probably, of that stuff I don't need to buy much more!I have already did a Triangle Wave Generator using that 555 timer.I already did a 6 mosfet H-bridge.I already make 2 DC engines to work with that bridge and also tried with motor drivers as SN754410NE, for instance.But these were only small experiments to see stuff working!Butt probably I'm lacking things as ISP programmers and also something new!

author: ebclr
author_rank: Super Contributor
timestamp: October 05, 2016, 06:52:59 pm
content: What you did with the things you already have ?

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 05, 2016, 10:43:02 pm
content: Quote from: ebclr on October 05, 2016, 06:52:59 pmAs I said above, I did small things just to see stuff working, like the H-bridges, triangle wave generator, step motor stuff, DC motor stuff.

author: beeryt
author_rank: Newbie
timestamp: October 05, 2016, 10:46:20 pm
content: I started with a teensy 2.0 with my university and then expanded my collection to an Arduino and a Raspberry Pi

author: Back2Volts
author_rank: Unknown
timestamp: October 06, 2016, 12:37:44 am
content: Quote from: Kremmen on October 05, 2016, 10:40:14 amI am aware of that fact. He made a statement about moving heavy processing loads from his notebook... I do not see an Arduino doing that.If it can be faster than my laptop at some tasks, and if those tasks includes heavy processing, than I can remember something I might be able to do. Anyway, that's an whole other matter.His statement"I want something that is 100% Linux compatible."made me think more of a RPi than of a typical embeded system, but I am probably wrong. May be things have changed and the latest Arduino hardware can do it.

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 06, 2016, 05:58:07 am
content: Well, I know that this post will probably leads to nowhere for several reasons. I haven't stated what what my goal was, or what kind of knowledge I have and also I don't have my mind cleared of what I really want to do. Also when it comes to decide what to buy, each one of us have different opinions and as there is a such huge offer in the market, it will be really difficult to choose any platform.When I talked about to be 100% Linux compatible I meant that the platform should be able to accept third party software to compile and upload programs and was that third party software that would have to be 100% compatible with Linux because I have been trying to compile a small .c program written with Arduino C like code and avrdude complains about undefined functions such as Serial.begin or DigitalWrite or AnaloRead... This obviously has something to do with not included .c heders (.h files). And for some of the functions I know how to solve the problem but for functions such as Serial.begin or Serial.println I do not know!About the heavy load tasks I talked about, I was thinking about bitcoin mining. I know that pior to 2013, FPGAs were used to this. After that Asic chips were developed and FPGA's are no longer profitable. Anyway, but if I went to this subject, I would only want to see an FPGA's "doing" bitcoin mining, it was not to be doing it for long time. As I say, just to see stuff working.

author: stj
author_rank: Super Contributor
timestamp: October 06, 2016, 06:29:03 am
content: if your using Linux, the Nucleo and Discovery boards are good.the compiler is GCC and you can upload by just copying the file over usb to the board.it acts like a usb-stick and self-flashes!

author: newbrain
author_rank: Super Contributor
timestamp: October 06, 2016, 10:05:10 am
content: Quote from: psysc0rpi0n on October 06, 2016, 05:58:07 amThat's the beauty of forums and internet in general, but the majority here seems to agree that Disco/Nucleos are OK to learn about ARM MCUs.I see you have a J-Link, in this case even a cheapminimum STM32 systemwould do...you can't go wrong for that kind of money!Quote from: psysc0rpi0n on October 06, 2016, 05:58:07 amOK. Maybe I do not understand exactly what you mean, but I have the impression you are mixing up some levels here...so, please, don't take offense if I seem patronizing!When you program for a MCU on Win/Mac/Linux you need a cross compilation toolchain, i.e. a series of tools that take your source code and translates it (compile, link with needed libs if any etc.)for the specific processor.Several toolchains exist, including editors and IDE that make your life easier, for all the major host (your PC) and target (the MCU) platforms.For each target MCU you'll generally need a separate set of include and startup files, they are provided by the MCU vendor. A Linux (or Windows, or OsX) stdio.h will not help in any way when compiling for an ATMega or an ARM Cortex-M.Vendors often also provide some kind of driver library, to access the on-chip peripherals without resorting to register manipulation. Quality, bloat and opinions differ wildly.The Arduino ide is just one example of an integrated toolchain, which also brings along all the Arduino libraries.Avrdude is only the last link of the chain: flashing of the MCU. It ingest the results of compilation and linking and tries to write them to the HW (through some kind of programmer, included the one in Arduino bootloader). It does not know about missing stuff.So, missing those methods has nothing to do with Linux, but rather with the fact that the Arduino libraries and include files have not been passed to the compiler and linker (avr-gcc), either directly or through a Makefile.In the other thread you've received already some good advice about this.Quote from: stj on October 06, 2016, 06:29:03 amPlease note that's only true for the most recent Discovery boards(STM32F764 onward?), which include ST-Link 2.1.The older ones (e.g. STM32F4 and STM32F429 Discos) only included ST-Link 2 - no storage device emulation.

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 06, 2016, 11:29:37 am
content: No offense taken at all...In fact I made a mistake while typing. I was thinking about avr-gcc or avr-g++ instead and I typed avrdude! I know avrdude is the last chain of that tool chain you talked about! My bad!Unfortunately, for instance, AVR Studio has no support for Linux! This is what I mean about the software to be 100% compatible with Linux. I know there are thousands of tools out there that replace the proprietary software and that was why I was trying to use avr-gcc to compile an Arduino C like program to try to figure out what is needed for a successful compilation!

author: Rasz
author_rank: Super Contributor
timestamp: October 06, 2016, 12:26:40 pm
content: whatever else you pickhttp://www.ebay.com/itm/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino-DHUS-/321569700934is a no brainer at $2.5I get the feeling you might be looking more for projects than new hardware, maybe prowl adafruit for ideas (forum and yt channel), also search for a hackerspace near you

author: stj
author_rank: Super Contributor
timestamp: October 06, 2016, 03:02:58 pm
content: Quote from: psysc0rpi0n on October 06, 2016, 11:29:37 amAVR Studio-7 rarely works in windows either - go look at the complaints on the atmel forum!!they really screwed up when they wrapped it around visual studio.

author: stj
author_rank: Super Contributor
timestamp: October 06, 2016, 03:09:17 pm
content: Quote from: newbrain on October 06, 2016, 10:05:10 ami didnt know that, but some can be upgraded to J-Link OBhttps://www.segger.com/jlink-st-link.html

author: psysc0rpi0n
author_rank: Frequent Contributor
timestamp: October 06, 2016, 03:30:45 pm
content: Quote from: Rasz on October 06, 2016, 12:26:40 pmWhat you mean by "hackerspace"?

author: stj
author_rank: Super Contributor
timestamp: October 06, 2016, 05:36:48 pm
content: like a club for people making stuff.https://wiki.london.hackspace.org.uk/view/London_Hackspace

author: zapta
author_rank: Super Contributor
timestamp: October 06, 2016, 06:21:16 pm
content: Quote from: ebclr on October 05, 2016, 10:42:15 am+1.And if you will choose an NXP based board, you will get a free single package install IDE + toolchain (lpcxpresso) with a standard Eclipse UI that runs on all three platforms.

author: mac.6
author_rank: Regular Contributor
timestamp: October 06, 2016, 08:04:20 pm
content: Same with kinetis part btw, but different IDE based on eclipse too.