* Getting started with embedded programming @ 2017-11-25 21:39 Andrew Shvets 2017-11-25 22:02 ` Dmitry A. Kazakov ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Andrew Shvets @ 2017-11-25 21:39 UTC (permalink / raw) Hi, I'd like to get started with embedded programming next year. What would you recommend for hardware as well as OS? I'm looking to spend no more than $50 for the hardware and this will be used for hobby projects only. Is Raspberry PI my only option or is there something else that you have tried in the past? Thanks in advance, --Andrew ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Getting started with embedded programming 2017-11-25 21:39 Getting started with embedded programming Andrew Shvets @ 2017-11-25 22:02 ` Dmitry A. Kazakov 2017-11-25 22:10 ` Andrew Shvets 2017-11-26 10:59 ` Simon Wright 2017-11-26 11:00 ` Simon Wright 2 siblings, 1 reply; 9+ messages in thread From: Dmitry A. Kazakov @ 2017-11-25 22:02 UTC (permalink / raw) On 2017-11-25 22:39, Andrew Shvets wrote: > I'd like to get started with embedded programming next year. What > would you recommend for hardware as well as OS? I'm looking to spend > no more than $50 for the hardware and this will be used for hobby > projects only. - What are the inputs (sensors) and outputs (actuators). Peripheral I/O components are usually far more expensive than the board itself - What are the controlling cycles you need 100ms, 10ms, 1ms - How much computations you plan to have - How much memory you need 1GB or more - Passive only cooling and power consumption limitations - How big and reliable the external storage must be. SD cards are useless for anything except initial booting. You may need eMMC or SSD etc. As for the OS, there is little choice. VxWorks is commercial, which leaves you with some Linux. The choice of distribution depends on the support. Some distributions are well supported, others are not. Booting ARM is a great headache. So I would recommend to take the distribution and kernel for which there is a ready-to-use image. > Is Raspberry PI my only option or is there something else that you > have tried in the past? There are better boards than Raspberry Pi, but it depends on what are going to do. E.g. ODROID xu4 is many times faster than Raspberry Pi 3. I would recommend to do all developing on a normal PC. The I/O devices can be same, mocked or emulated. Ada is 100% portable. Once everything works you can port to the board. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Getting started with embedded programming 2017-11-25 22:02 ` Dmitry A. Kazakov @ 2017-11-25 22:10 ` Andrew Shvets 2017-11-25 22:15 ` MM ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Andrew Shvets @ 2017-11-25 22:10 UTC (permalink / raw) On Saturday, November 25, 2017 at 5:02:22 PM UTC-5, Dmitry A. Kazakov wrote: > On 2017-11-25 22:39, Andrew Shvets wrote: > > > I'd like to get started with embedded programming next year. What > > would you recommend for hardware as well as OS? I'm looking to spend > > no more than $50 for the hardware and this will be used for hobby > > projects only. > > - What are the inputs (sensors) and outputs (actuators). Peripheral I/O > components are usually far more expensive than the board itself > > - What are the controlling cycles you need 100ms, 10ms, 1ms > > - How much computations you plan to have > > - How much memory you need 1GB or more > > - Passive only cooling and power consumption limitations > > - How big and reliable the external storage must be. SD cards are > useless for anything except initial booting. You may need eMMC or SSD etc. > > As for the OS, there is little choice. VxWorks is commercial, which > leaves you with some Linux. The choice of distribution depends on the > support. Some distributions are well supported, others are not. Booting > ARM is a great headache. So I would recommend to take the distribution > and kernel for which there is a ready-to-use image. > > > Is Raspberry PI my only option or is there something else that you > > have tried in the past? > > There are better boards than Raspberry Pi, but it depends on what are > going to do. E.g. ODROID xu4 is many times faster than Raspberry Pi 3. > > I would recommend to do all developing on a normal PC. The I/O devices > can be same, mocked or emulated. Ada is 100% portable. Once everything > works you can port to the board. > > -- > Regards, > Dmitry A. Kazakov > http://www.dmitry-kazakov.de Thank you for your reply. Honestly, I don't really have an answer to any of those questions. At the moment, my biggest project is a simple "Hello World!" application. Eventually, I would like to make something that can work with input from 3 small digital cameras. However, that is a way off. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Getting started with embedded programming 2017-11-25 22:10 ` Andrew Shvets @ 2017-11-25 22:15 ` MM 2017-11-25 22:22 ` Andrew Shvets 2017-11-25 22:37 ` Dmitry A. Kazakov 2017-11-26 0:42 ` Dennis Lee Bieber 2 siblings, 1 reply; 9+ messages in thread From: MM @ 2017-11-25 22:15 UTC (permalink / raw) On Saturday, 25 November 2017 22:10:59 UTC, Andrew Shvets wrote: > Eventually, I would like to make something that can work with input from > 3 small digital cameras. However, that is a way off. Go with something cheap and with a big user base. I suggest an Arduino (check for Ada support) as a first iteration. As you gain experience, upgrade. M ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Getting started with embedded programming 2017-11-25 22:15 ` MM @ 2017-11-25 22:22 ` Andrew Shvets 0 siblings, 0 replies; 9+ messages in thread From: Andrew Shvets @ 2017-11-25 22:22 UTC (permalink / raw) On Saturday, November 25, 2017 at 5:15:02 PM UTC-5, MM wrote: > On Saturday, 25 November 2017 22:10:59 UTC, Andrew Shvets wrote: > > Eventually, I would like to make something that can work with input from > > 3 small digital cameras. However, that is a way off. > > Go with something cheap and with a big user base. > > I suggest an Arduino (check for Ada support) as a first iteration. As you > gain experience, upgrade. > > M Someone used an STM32F446 in Make With Ada. http://makewithada.org/ I looked on Ebay, they're pretty cheap. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Getting started with embedded programming 2017-11-25 22:10 ` Andrew Shvets 2017-11-25 22:15 ` MM @ 2017-11-25 22:37 ` Dmitry A. Kazakov 2017-11-26 0:42 ` Dennis Lee Bieber 2 siblings, 0 replies; 9+ messages in thread From: Dmitry A. Kazakov @ 2017-11-25 22:37 UTC (permalink / raw) On 2017-11-25 23:10, Andrew Shvets wrote: > Thank you for your reply. Honestly, I don't really have an answer to > any of those questions. At the moment, my biggest project is a simple > "Hello World!" application. Well, Raspberry Pi 2/3 is definitely sufficient for that. You can accomplish it in no time. Installing and booting Debian (Raspbian) or Fedora from 8GB SD card goes out of the box. GNAT is available for armhf. That is. > Eventually, I would like to make something that can work with input > from 3 small digital cameras. However, that is a way off. Image processing can be infinitely resource consuming. You might wish a board with USB3 to attach the cameras, I assume they will be USB not CSI attached. There exist camera module multiplexers but they are relatively expensive and I am not sure if the performance is worth the money. Raspberry Pi 2/3 has 4xUSB2. Which leaves one port free. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Getting started with embedded programming 2017-11-25 22:10 ` Andrew Shvets 2017-11-25 22:15 ` MM 2017-11-25 22:37 ` Dmitry A. Kazakov @ 2017-11-26 0:42 ` Dennis Lee Bieber 2 siblings, 0 replies; 9+ messages in thread From: Dennis Lee Bieber @ 2017-11-26 0:42 UTC (permalink / raw) On Sat, 25 Nov 2017 14:10:57 -0800 (PST), Andrew Shvets <andrew.shvets@gmail.com> declaimed the following: > >Thank you for your reply. Honestly, I don't really have an answer to any of those questions. At the moment, my biggest project is a simple "Hello World!" application. > Definitely not "embedded" unless you intend to wire up some sort of serial 2x16 LCD display (by the time you get to a color graphics touch screen I consider you back into "full computer" territory <G>) >Eventually, I would like to make something that can work with input from 3 small digital cameras. However, that is a way off. How do the cameras interface... and transfer files... There may not be much beyond a USB cable and generic web-cam software. And as has been mentioned -- what type of peripherals do you need. The R-Pi is strictly digital inputs, but in R-Pi 3 format does have a quad-core 64-bit processor (albeit the normal NOOBS/Raspbian OS is only 32-bit, so doesn't take full advantage). And multiple USB ports. The BeagleBone Black only has a single core 32-bit processor, but has on-board eMMC (leaving the SD slot free for data-logging; or for booting OS trials before flashing to the eMMC). OTOH, the BBB does have built-in A/D conversion/capture. Since both of those run versions of Debian, they do have a version of GNAT available for them. Access to GPIO/peripherals will either be via the sys filesystem (open/read|write/close) [which can be done with normal I/O operations] or use tricky operations to memory map the GPIO block for low-level (faster) I/O. The BBB also has a pair of "PRU" units (Programmable real-time units) but I don't think anyone has ported an Ada compiler to them. They have access to the GPIO bypassing the Linux OS. Below those are boards using ARM M-series processors -- and no OS. GNAT has been ported to some of the STM-series boards (along with Arduino Due and Zero -- though I think the Arduino ports do not support tasking). {Pity the book didn't include the TIVA TM4C123G (and 1294/129E) since I have 2each of them). -- Wulfraed Dennis Lee Bieber AF6VN wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Getting started with embedded programming 2017-11-25 21:39 Getting started with embedded programming Andrew Shvets 2017-11-25 22:02 ` Dmitry A. Kazakov @ 2017-11-26 10:59 ` Simon Wright 2017-11-26 11:00 ` Simon Wright 2 siblings, 0 replies; 9+ messages in thread From: Simon Wright @ 2017-11-26 10:59 UTC (permalink / raw) Andrew Shvets <andrew.shvets@gmail.com> writes: > I'd like to get started with embedded programming next year. What > would you recommend for hardware as well as OS? I'm looking to spend > no more than $50 for the hardware and this will be used for hobby > projects only. > > Is Raspberry PI my only option or is there something else that you > have tried in the past? Assuming you want to use Ada -- For hardware, I know (some of) the STMicroelectronics range and Arduino Due, all based on 32-bit ARM Cortex-M. I doubt any of these are going to run Linux, though there are some RTOSs (FreeRTOS, Nuttx(?)). For Ada you can write for the bare metal (e.g. Maciej's articles[1]) - which are an excellent start, anyway - or for something higher-level try a Ravenscar-based implementation (that's with a subset of Ada tasking designed for small boards/higher integrity). AdaCore's GNAT GPL 2017 for arm-elf supports these boards: crazyflie lm3s rpi2 stm32f4 (this is the stm32f407disco board) stm32f429disco stm32f469disco stm32f746disco stm32f769disco tms570 zynq7000 and there's the Ada Drivers Library[2]. I've been working on Cortex GNAT RTS[3], which is based on FreeRTOS - so far it only supports arduino-due and stm32f4, stm32f429disco from the above list. Its USP is that it's released as GPL with the GCC Runtime Library Exception[4], so that you can release proprietary binaries using it. Not that I expect this will be much of an inducement for you! [1] http://www.inspirel.com/articles/Ada_On_Cortex.html [2] https://github.com/AdaCore/Ada_Drivers_Library [3] https://github.com/simonjwright/cortex-gnat-rts [4] https://www.gnu.org/licenses/gcc-exception-3.1.en.html ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Getting started with embedded programming 2017-11-25 21:39 Getting started with embedded programming Andrew Shvets 2017-11-25 22:02 ` Dmitry A. Kazakov 2017-11-26 10:59 ` Simon Wright @ 2017-11-26 11:00 ` Simon Wright 2 siblings, 0 replies; 9+ messages in thread From: Simon Wright @ 2017-11-26 11:00 UTC (permalink / raw) Andrew Shvets <andrew.shvets@gmail.com> writes: > I'd like to get started with embedded programming next year. What > would you recommend for hardware as well as OS? I'm looking to spend > no more than $50 for the hardware and this will be used for hobby > projects only. > > Is Raspberry PI my only option or is there something else that you > have tried in the past? Assuming you want to use Ada -- For hardware, I know (some of) the STMicroelectronics range and Arduino Due, all based on 32-bit ARM Cortex-M. I doubt any of these are going to run Linux, though there are some RTOSs (FreeRTOS, Nuttx(?)). For Ada you can write for the bare metal (e.g. Maciej's articles[1]) - which are an excellent start, anyway - or for something higher-level try a Ravenscar-based implementation (that's with a subset of Ada tasking designed for small boards/higher integrity). AdaCore's GNAT GPL 2017 for arm-elf supports these boards: crazyflie lm3s rpi2 stm32f4 (this is the stm32f407disco board) stm32f429disco stm32f469disco stm32f746disco stm32f769disco tms570 zynq7000 and there's the Ada Drivers Library[2]. I've been working on Cortex GNAT RTS[3], which is based on FreeRTOS - so far it only supports arduino-due and stm32f4, stm32f429disco from the above list. Its USP is that it's released as GPL with the GCC Runtime Library Exception[4], so that you can release proprietary binaries using it. Not that I expect this will be much of an inducement for you! [1] http://www.inspirel.com/articles/Ada_On_Cortex.html [2] https://github.com/AdaCore/Ada_Drivers_Library [3] https://github.com/simonjwright/cortex-gnat-rts [4] https://www.gnu.org/licenses/gcc-exception-3.1.en.html ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2017-11-26 11:00 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-11-25 21:39 Getting started with embedded programming Andrew Shvets 2017-11-25 22:02 ` Dmitry A. Kazakov 2017-11-25 22:10 ` Andrew Shvets 2017-11-25 22:15 ` MM 2017-11-25 22:22 ` Andrew Shvets 2017-11-25 22:37 ` Dmitry A. Kazakov 2017-11-26 0:42 ` Dennis Lee Bieber 2017-11-26 10:59 ` Simon Wright 2017-11-26 11:00 ` Simon Wright
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox