Just to let you know that I have a basic port of the arduino-uno board
based on an atmega328p uc.
My work is largely based on the atmega2560 port.
For now, I've managed to build the hello-world and
timer_periodic_wakeup examples, and to load and execute generated .elf
using the simavr emulator.
main(): This is RIOT! (Version: 2016.07-devel-114-gc449-paddy-uno).
You are running RIOT on a(n) arduino-uno board..
This board features a(n) atmega328p MCU..
Let me know if you're always interested by this port as suggested in
the Project Idea List[2.
Though, It certaily needs some cleanup and tests on real hardware before PR.
definitely! If you have a working port, provide a PR as soon as you see fit. I personally only have a Arduino Leonardo, but it shouldn’t be hard to find an Arduino Uno. Also: the simulated one could be helpful for future testing runs. Keep us in the loop :-).
definitely! If you have a working port, provide a PR as soon as you see
fit. I personally only have a Arduino Leonardo, but it shouldn't be hard to
find an Arduino Uno. Also: the simulated one could be helpful for future
testing runs. Keep us in the loop :-).
First of all: I'm really excited about this. The atmega328p is a very widely
used MCU and having support for RIOT would be wonderful. Thanks for the effort
and definitely +100 for sharing with the community.
I have one so I'll be able to give a try and test. As a side note, the
atmega328p has very limited ressources (32KB flash, 2KB SRAM) so this will
limit the use cases with RIOT (no network stack, etc).
Yes, it's true that this MCU has very limited resources and it will be
challenging to create a useful application. However, I think it can be
possible to run a stripped-down network application with RIOT even on this.
Without any code optimization a minimalistic GNRC application
(examples/gnrc_minimal) requires about 3kB on Z1 (MSP430/16 bit). Compiling
the same application for arduino-mega2560 requires about 1.8kB of RAM, but
without a radio driver (and thus, without allocating stack for the L2 thread).
Hence, we're already close!
P.S. Of course, even if GNRC (or another network stack) fits on the device,
the challenge to leave space for a meaningful application remains.
As a newbie in deep embedded world, there are certainly mistakes or
errors, so this is also an RFC.
I thought i had an arduino uno, but in fact it was a duemilanove (the
one with an atmega328p) so very similar to the uno. I've tested the
hello-world example on it and seen the "You are running RIOT on a(n)
arduino-uno board. This board features a(n) atmega328p MCU."
don’t want to discourage you, but you do not have to update on this mailing list for every step you do. Just the major ones are enough ;-). Those of us interested (as for example me) will most likely follow your PR anyways.
BTW: when you write your wiki page on the board can you add a section on how to use the emulator?
I now have a new git branch based on recent master which supports uno
and duemilanove models.
all common code is in boards/arduino-common and difference lives in
boards/arduino-uno and boards/arduino-duemilanove.
Should I push -f on original PR  ?
Or it is cleaner to close  and open a new PR ?