Mega2560 vs Mega2560 ADK

I just recently retired & I want to take up electronics as a hobby.

I can't decide between the Mega2560 or the Mega2560 ADK so I have some questions.

How can an 8-bit processor access 256 KB of RAM when the other 8-bit Arduinos can access only 16 KB or 32 KB?

The ADK is a USB host but elsewhere on this forum I found out that it is possible to get a USB host shield. I had forgotten about that. So, I really don't need to get the ADK version. I don't have a smartphone but if I did, how would I use the ADK to develop Android? Android is open-source so does that mean that I can make changes to the OS using the ADK? If I had a smartphone do I really need the ADK to make changes to my smartphone ? Couldn't I install software on my computer & use it to upload changes to the Android OS?

The 8-bit processor has 16-bit registers for some functions, like memory addresses, so 0-65535 addresses are available. If a couple more bits are used, then 4 banks of memory can be accessed. The 2560 makes the addresses and control lines available for the core to access that memory just as if internal memory existed. The other chips do not.

ADK & Smartphone, need others to answer, I have not tried that yet.

Re:Android

Although Android is pseudo open source, most devices are locked so that you don't have Root access to the operating system.
BTW. Android is basically Linux.

On a lot of devices you can "Root" then, I.e gain full root access, by running various program's that exploit security weaknesses in the OS.
But not all Android devices are Root-able as each manufacturer compiles their own version of Android, so you'd need to do some research before you buy a specific device to see if it easily and safely Root-able

After having said all that... It's not absolutely necessary to Root your Android device to use it with an Arduino.

AFIK. The Mega ADK works with most Android devices, but I feel it's mainly been superseded by other approaches, see below...

A common method to communicate between Arduino and Android is to use Bluetooth in the Android and a Bluetooth to serial module connected to the Arduino.

However, after having been through this in the last 2 weeks, it seems that most cheap android devices don't come with Bluetooth.
Some may, but I can't seem to buy one in any local store here in Australia, and we get a good range of cheap Android devices.
You may however to get a cheap Android device on eBay that has Bluetooth.

So another option I am currently experimenting with is to use the OTG functionality that a lot of Android devices have, where they can become a USB host, and you can attach the Arduino via USB like you can to a PC etc.

I recently bought a $50 tablet for testing etc, and although it didn't have OTG listed in its spec, I found that if I plugged in a $5 OTG cable, that my Android tablet had OTG :slight_smile:

On the Android programming side of things, there is a library for Android dev, that has low level comms for use with Arduino devices etc, which doesn't require the Android to be Rooted

So overall... You can buy a Mega ADK if you want, but there are plenty of other options to communicate with Android.

After I sent the post, I googled "programming Android phones". I found out that one can download software & create apps for the phone & then upload them to the phone. As for actually changing the OS, I have no way of knowing how to do that.

So, based on what all of you have stated & based on my "research" I've concluded that I don't need to spend the extra few bucks to get the ADK version. As one of you stated, I can get a USB shield or a Bluetooth shield. Radio Shack has the Mega 2560 & there's a Radio Shack not too far from where I live.

The 8-bit processor has 16-bit registers for some functions, like memory addresses, so 0-65535 addresses are available. If a couple more bits are used, then 4 banks of memory can be accessed. The 2560 makes the addresses and control lines available for the core to access that memory just as if internal memory existed. The other chips do not.
I figured that the memory is in banks & the processor switched between the banks.

Yes, see Section 9 of the datasheet for more info. 8 banks of 64K, with some limitations of how much can be used.

I was looking at the specifications of the 2560 & noticed that it has 4 UARTs. I know that a UART converts parallel to serial. I suppose that the UART doesn't convert serial to parallel, right? When would one need to use 4 UARTs?

Serial to parallel for internal use; parallel to serial for external use.
4 UARTs = 4 serial interfaces to other devices.
GPS, a display, another uC, another device.