• Spring 2024 meetup in Calgary - tentative date Saturday, April 20/2024. Other regions are also discussing meet ups. If you want one in your area get going on organizing it! discussion
  • We are having email/registration problems again. Diagnosis is underway. New users sorry if you are having trouble getting registered. We are exploring different options to get registered. Contact the forum via another member or on facebook if you're stuck. Update -> we think it is fixed. Let us know if not.
  • Spring meet up in Ontario, April 6/2024. NEW LOCATION See Post #31 Discussion NEW LOCATION

Arduino Mega

Susquatch

Ultra Member
Administrator
Moderator
Premium Member
@jcdammeyer @phaxtris @whydontu @YYCHM @PaulL & any other die-hard Arduino fans I may not remember.

Have you seen the latest Arduino release? Dual core with WiFi and analog outputs! It's expensive but lots and lots of clout for one-offs where time trumps the cost! Access to 76 pins on the board. You can even run different programs on each of the two cores. Might be a challenge to coordinate them, but my mind is reeling with the possibilities! For complicated hardware control this thing should be the cats meow.

Guessing it won't be long before the cost comes down significantly.

 

phaxtris

(Ryan)
Premium Member
Premium Member
Wow, that is one serious Arduino! Might make a real good CNC controller
 

slow-poke

Ultra Member
Good to know. I have used the SAMD21 Arduino boards for a few projects in the past. When I need to do something serious I prefer the TI DSP offerings which are near impossible to get for far too long at this point.
 

PaulL

Technologist at Large
Premium Member

jcdammeyer

John
Premium Member
While obviously amazing it's still an Arduino. The ESP32 already has dual cores and other features and programmed from the Arduino IDE but it's harder to get into the dual cores. OTOH, some pretty cool modules even if I/O restricted. I have a couple of these.

And although I have yet to play with the newer Arduino 2 development environment I'm not sure it has the same level of low level development tools that say Texas Instruments has for the F28379D which has dual cores, A/D, CAN, Quadrature encoder support along with separate floating point processor etc.


I have one of these and have seriously considered using it instead of the PIC32 for my ELS upgrade. Got distracted with other projects but it's still sitting on my workbench.

The down side of most other processors, compared to Arduino is once the Arduino library is available for that processor it's so easy to add external hardware. True, if it stops or resets every 17.26 hours there is no way to debug much of the code or know where it's happening.
 

jcdammeyer

John
Premium Member
poop. 3.3v logic
That's a problem with the Teensy 4.1 used in the AR4 Robot Arm compared to the Teensy 3.5 used in the AR3 Arm. I have both in addition to the Mega 2650 which was used in the non-closed loop AR2.
The AR4 major change is the encoders are built into the motors while the AR3 used the more expensive CUI encoders mounted on the back. The CUI Encoders will work with the AR4 software but I think I'll have to make a level translator board to make the 5V encoder outputs compatible with the Teensy 4.1.

This problem shows up all over the place with 5V verses 3V I/O. Just need to be aware of it.
 

slow-poke

Ultra Member
I worked on a project (not my design) that had qty 256, 8 bit PIC's spread over many boards in a a big chassis. I replaced them all with qty 1, 32bit floating point DSP, on one small board and improved overall system performance. Talking about a crazy design. I much prefer to "upscale" the uC from the get-go to future proof.
 

jcdammeyer

John
Premium Member
I worked on a project (not my design) that had qty 256, 8 bit PIC's spread over many boards in a a big chassis. I replaced them all with qty 1, 32bit floating point DSP, on one small board and improved overall system performance. Talking about a crazy design. I much prefer to "upscale" the uC from the get-go to future proof.
My biggest project had 1500 PICs and two M9S12's all communicating via CAN bus. Would have been very difficult to replace them with a 32 bit floating point DSP. ;)

What kind of project had the 256, 8 bit PICs? Inquiring minds need to know...
 

TorontoBuilder

Ultra Member
@jcdammeyer @phaxtris @whydontu @YYCHM @PaulL & any other die-hard Arduino fans I may not remember.

Have you seen the latest Arduino release? Dual core with WiFi and analog outputs! It's expensive but lots and lots of clout for one-offs where time trumps the cost! Access to 76 pins on the board. You can even run different programs on each of the two cores. Might be a challenge to coordinate them, but my mind is reeling with the possibilities! For complicated hardware control this thing should be the cats meow.

Guessing it won't be long before the cost comes down significantly.



Wow this could up the potential of projects. On the other hand I can get two programs to run simultaneously on multiple cheaper boards for far less cost.

I really want to use one of these for something, just to say I did.
 

Susquatch

Ultra Member
Administrator
Moderator
Premium Member
Wow this could up the potential of projects. On the other hand I can get two programs to run simultaneously on multiple cheaper boards for far less cost.

I really want to use one of these for something, just to say I did.

I get that totally. I feel the fire too. Prolly be a very long time before I ever do though.

To be fair, I have not even remotely explored it.

I agree that two much cheaper modules could run two programs simultaneously, and get a lot of the benefit. However they couldn't share the data space simultaneously so they would have to talk to each other to do exchange data. I don't think that is the leap forward envisioned here. I think they envision two processors sharing data more like a video board or a floating point processor in a computer.

I do like the the access to so many pins on the board. Especially the analog outputs. Access to analog outputs has been missing in the other boards I've looked at. Course I prolly just missed it. Murphy's law says I'm gunna see it all over the place tomorrow.
 

phaxtris

(Ryan)
Premium Member
Premium Member
Do esp32's have a dual core varient?

I think that could be real useful with the new Arduino, allowing you to run event monitoring code in the background without having to use interrupts or slow down the main code with your monitoring stuff

Even if there are other ways, this is an all in one package, it could be real popular with educational programs, maybe not with the average hobbiests, that's a pretty powerful little board, probabaly a little over kill for the average project, but I can still see them selling
 

Susquatch

Ultra Member
Administrator
Moderator
Premium Member
Do esp32's have a dual core varient?

I don't know. Good question!

Not just a dual core though. Has to be separate CPUs doing their own thing (like your interrupt & main code suggestion) to be truly useful.
 

phaxtris

(Ryan)
Premium Member
Premium Member
Not just a dual core though. Has to be separate CPUs doing their own thing (like your interrupt & main code suggestion) to be truly useful.

Coding for dual core is way way above my skill levels, but i thought with a dual core you could do just that? code so that one process runs on one core while a different process on the other, is that not how it works ?
 

Susquatch

Ultra Member
Administrator
Moderator
Premium Member
Coding for dual core is way way above my skill levels, but i thought with a dual core you could do just that? code so that one process runs on one core while a different process on the other, is that not how it works ?

There are dozens of strategies. Some I know, some I don't. Just a few examples.

1. One core executes code in advance hoping that it will be needed. If it is, clock cycles are saved.

2. One core handles certain functions while the other does something else. Sort of like team work.

3. One core handles subroutines for the other. So the first doesn't have to save status and push/pull registers. Everything goes faster.

All the above are different from separate processors running their own code. The above are primarily designed to increase speed.

Separate processors must be programmed to do whatever they do. So one is programmed to handle Interrupts just like you suggested while the other runs the main code. Or perhaps one handles the display, or does calculations, or manages hardware, or or or.

The former requires compatible compilers with a few special rules but is otherwise more or less invisible to the programmer.

The latter requires intimate involvement of the programmer.

I'm sure there are other aspects too.

Regardless, I would be much less interested in speed improvements than I would be in parallel processing for functionality. You have definitely hit one of the Achilles Heels of such systems. A lot can go wrong with Interrupts. It would be nice to have them handled separately.
 
Last edited:

phaxtris

(Ryan)
Premium Member
Premium Member
so you could write your monitoring process into a function and have one of the cores handle the monitoring function while the other runs the rest? then the main core is not bothered while the secondary core is running what ever function is required for monitoring

or does that not still really work ?

when i took computer science multiple cores was not a thing yet...and i only took it until grade 11

i know they had multi cpu mother boards as far back as the 286/386/486 days, but def not mainstream... i tried to find one when pentium computers came out and the 86 stuff was bargin bin...i never did manage to find a working board
 

Susquatch

Ultra Member
Administrator
Moderator
Premium Member
Yes, I think that's the general idea. Those old motherboards did what I hope the Arduino mega does. They were not what is called dual core or quad core etc today.

Might be interesting to take a boo at what the designers actually mean today though. As people change, so do the concepts, definitions, and implimentations. Who knows, maybe my understanding is as outdated as I am!!!
 
Top