* 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