atmega328p arduino spi problems tft display brands

Is there a difference between the NANO and MEGA that would account for ST7735 displays working on NANO and not working on MEGA? I"m using the same pins on both....

By these two functions, You can find out the resolution of the display. Just add them to the code and put the outputs in a uint16_t variable. Then read it from the Serial port by Serial.println();. First add Serial.begin(9600); in setup().

In this article, you will learn how to use TFT LCDs by Arduino boards. From basic commands to professional designs and technics are all explained here.
In electronic’s projects, creating an interface between user and system is very important. This interface could be created by displaying useful data, a menu, and ease of access. A beautiful design is also very important.
There are several components to achieve this. LEDs, 7-segments, Character and Graphic displays, and full-color TFT LCDs. The right component for your projects depends on the amount of data to be displayed, type of user interaction, and processor capacity.
TFT LCD is a variant of a liquid-crystal display (LCD) that uses thin-film-transistor (TFT) technology to improve image qualities such as addressability and contrast. A TFT LCD is an active matrix LCD, in contrast to passive matrix LCDs or simple, direct-driven LCDs with a few segments.
In Arduino-based projects, the processor frequency is low. So it is not possible to display complex, high definition images and high-speed motions. Therefore, full-color TFT LCDs can only be used to display simple data and commands.
In this article, we have used libraries and advanced technics to display data, charts, menu, etc. with a professional design. This can move your project presentation to a higher level.
In electronic’s projects, creating an interface between user and system is very important. This interface could be created by displaying useful data, a menu, and ease of access. A beautiful design is also very important.
There are several components to achieve this. LEDs, 7-segments, Character and Graphic displays, and full-color TFT LCDs. The right component for your projects depends on the amount of data to be displayed, type of user interaction, and processor capacity.
TFT LCD is a variant of a liquid-crystal display (LCD) that uses thin-film-transistor (TFT) technology to improve image qualities such as addressability and contrast. A TFT LCD is an active matrix LCD, in contrast to passive matrix LCDs or simple, direct-driven LCDs with a few segments.
In Arduino-based projects, the processor frequency is low. So it is not possible to display complex, high definition images and high-speed motions. Therefore, full-color TFT LCDs can only be used to display simple data and commands.
In this article, we have used libraries and advanced technics to display data, charts, menu, etc. with a professional design. This can move your project presentation to a higher level.
Size of displays affects your project parameters. Bigger Display is not always better. if you want to display high-resolution images and signs, you should choose a big size display with higher resolution. But it decreases the speed of your processing, needs more space and also needs more current to run.
After choosing the right display, It’s time to choose the right controller. If you want to display characters, tests, numbers and static images and the speed of display is not important, the Atmega328 Arduino boards (such as Arduino UNO) are a proper choice. If the size of your code is big, The UNO board may not be enough. You can use Arduino Mega2560 instead. And if you want to show high resolution images and motions with high speed, you should use the ARM core Arduino boards such as Arduino DUE.
In electronics/computer hardware a display driver is usually a semiconductor integrated circuit (but may alternatively comprise a state machine made of discrete logic and other components) which provides an interface function between a microprocessor, microcontroller, ASIC or general-purpose peripheral interface and a particular type of display device, e.g. LCD, LED, OLED, ePaper, CRT, Vacuum fluorescent or Nixie.
The display driver will typically accept commands and data using an industry-standard general-purpose serial or parallel interface, such as TTL, CMOS, RS232, SPI, I2C, etc. and generate signals with suitable voltage, current, timing and demultiplexing to make the display show the desired text or image.
The LCDs manufacturers use different drivers in their products. Some of them are more popular and some of them are very unknown. To run your display easily, you should use Arduino LCDs libraries and add them to your code. Otherwise running the display may be very difficult. There are many free libraries you can find on the internet but the important point about the libraries is their compatibility with the LCD’s driver. The driver of your LCD must be known by your library. In this article, we use the Adafruit GFX library and MCUFRIEND KBV library and example codes. You can download them from the following links.
You must add the library and then upload the code. If it is the first time you run an Arduino board, don’t worry. Just follow these steps:Go to www.arduino.cc/en/Main/Software and download the software of your OS. Install the IDE software as instructed.
By these two functions, You can find out the resolution of the display. Just add them to the code and put the outputs in a uint16_t variable. Then read it from the Serial port by Serial.println(); . First add Serial.begin(9600); in setup().
First you should convert your image to hex code. Download the software from the following link. if you don’t want to change the settings of the software, you must invert the color of the image and make the image horizontally mirrored and rotate it 90 degrees counterclockwise. Now add it to the software and convert it. Open the exported file and copy the hex code to Arduino IDE. x and y are locations of the image. sx and sy are sizes of image. you can change the color of the image in the last input.
Upload your image and download the converted file that the UTFT libraries can process. Now copy the hex code to Arduino IDE. x and y are locations of the image. sx and sy are size of the image.
In this template, We converted a .jpg image to .c file and added to the code, wrote a string and used the fade code to display. Then we used scroll code to move the screen left. Download the .h file and add it to the folder of the Arduino sketch.
In this template, We used sin(); and cos(); functions to draw Arcs with our desired thickness and displayed number by text printing function. Then we converted an image to hex code and added them to the code and displayed the image by bitmap function. Then we used draw lines function to change the style of the image. Download the .h file and add it to the folder of the Arduino sketch.
In this template, We created a function which accepts numbers as input and displays them as a pie chart. We just use draw arc and filled circle functions.
In this template, We added a converted image to code and then used two black and white arcs to create the pointer of volumes. Download the .h file and add it to the folder of the Arduino sketch.
In this template, We added a converted image and use the arc and print function to create this gauge. Download the .h file and add it to folder of the Arduino sketch.
while (a < b) { Serial.println(a); j = 80 * (sin(PI * a / 2000)); i = 80 * (cos(PI * a / 2000)); j2 = 50 * (sin(PI * a / 2000)); i2 = 50 * (cos(PI * a / 2000)); tft.drawLine(i2 + 235, j2 + 169, i + 235, j + 169, tft.color565(0, 255, 255)); tft.fillRect(200, 153, 75, 33, 0x0000); tft.setTextSize(3); tft.setTextColor(0xffff); if ((a/20)>99)
while (b < a) { j = 80 * (sin(PI * a / 2000)); i = 80 * (cos(PI * a / 2000)); j2 = 50 * (sin(PI * a / 2000)); i2 = 50 * (cos(PI * a / 2000)); tft.drawLine(i2 + 235, j2 + 169, i + 235, j + 169, tft.color565(0, 0, 0)); tft.fillRect(200, 153, 75, 33, 0x0000); tft.setTextSize(3); tft.setTextColor(0xffff); if ((a/20)>99)
In this template, We display simple images one after each other very fast by bitmap function. So you can make your animation by this trick. Download the .h file and add it to folder of the Arduino sketch.
In this template, We just display some images by RGBbitmap and bitmap functions. Just make a code for touchscreen and use this template. Download the .h file and add it to folder of the Arduino sketch.

As I can read your link, the shield is using D2-D8 and A0-A3, leaving some pins unused. So some Arduino pins are still free to use, just the shield is in the way to get connected there.
create intermediate shield (there are many, which allow you connect to arduinou on bottom and stack antother shield on top, draw your wires from there (and maybe even put some circuities on the middle shield, if you want
(something like this https://www.aliexpress.com/item/UNO-Prototype-DIY-shield-kit-for-Arduino-UNO-Universal-Extend-Board-UM-UNO/32555004112.html or any "arduino universal shield"
use pins D10-D13 as they are connected also to ISP header https://www.arduino.cc/en/Tutorial/ArduinoISP and could be connected from there. As they are part of SPI interface
It is possible to connect more arduinos, there are so much different ways, that it is hard to write here all - choose one, that would suit you best. (anyway you would need some access to some pins anyway )

The Arduino Uno is probably the most popular Arduino board, and for good reason. It’s relatively small, very inexpensive (especially clone boards) and has a wealth of support code and documentation. It’s also likely the first Arduino board you started working with, for some of you it may even be the only Arduino board you own.
You’ll find that the majority of projects and demonstrations that I perform on this website and on the YouTube channel use an Arduino Uno. It’s also my favorite Arduino board.
But the real value of the Arduino Uno is as a development or prototyping board. With an Arduino Uno and a solderless breadboard you can quickly bring ideas and concepts to life, its connectors work well with jumper wires and the wealth of code available for the Arduino platform makes development tasks a breeze.
After you finish you’ll have a working project but it may not be a practical one to use in the real world. It has no enclosure and as it consists of an Arduino Uno, a solderless breadboard and various wires, modules, and components. It’s actually pretty fragile.
One big thing that you’ll need to factor into your decision is the Arduino Uno itself. It may be perfect for your permanent project, but again, it may not be.
The Arduino Uno is a wonderful device. With a generous helping of digital I/O ports, 8 analog-to-digital converters, I2C, Serial and SPI interfaces and onboard voltage regulation it is suitable for powering a wide variety of devices. It has a built-in USB port and onboard LEDs and can provide both 5-volt and 3.3-volt low-current power supplies for your peripheral devices.
The Arduino Nano– This small board can do everything an Arduino Uno can, it even has two additional analog to digital converters. It has a mini USB connector instead of the bulky Type B connector used on the Arduino Uno. Cost wise it’s a bit less expensive.
The ATmega328– This is the solution you’ll be reading about in this article. It’s the microcontroller that powers the Arduino Uno, and it can be used all on its own.
The original Arduino Uno and its clones used the 28-pin DIP (Dual Inline Package) version of the ATmega328. Other clones and boards like the Nano and Pro Mini make use of surface mount versions, this explains why the Nano and Pro Mini have two additional analog to digital converters.
As you can see from the diagram above the ATmega328 has several pins that have two, or even three, functions. You can change the functions of these pins programmatically within your sketch, the same is true of the Arduino Uno (which makes perfect sense as the Uno is based upon the ATmega328).
When converting your design from an Arduino Uno to a raw ATmega328 chip it is helpful to be able to relate the pinouts on the ATmega328 to the connections on an Arduino Uno. The following pinout diagram has been relabeled to show the Arduino Uno equivalent functions:
An example might be helpful to help you equate the pins on an Arduino to those on an ATmega328. For that reason, I’ve put together a very simple project that can be quickly prototyped on an Arduino Uno. We will then look at what is required to move our simple project to an ATmega328.
After building this you’ll realize that using an entire Arduino Uno is a real overkill, as only three digital I/O pins are put to use. It also would lend itself well to being mounted into a Star Wars toy or a custom 3D-printed enclosure.
I took the easy road and used an excellent sketch that has been on GitHub for over 6 years. It is theArduino Song sketch by Nick Sort, you can take a look at it here:
If you look closely an an Arduino Uno board you’ll notice that aside from the ATmega328 there really are not very many components. Most of the “extra” parts have to do with either the USB to serial interface or with the internal 5-volt and 3.3-volt regulators.
In actual fact, you can put together a functional equivalent of an Arduino Uno using only an ATmega328 and five parts. You can even wire on up without any additional parts if you are willing to run it at a lower clock frequency.
A “bootloader” is code that is burned onto the ATmega328 chips EEPROM. This code is loaded when the processor is powered up or reset and it sets up things like the clock frequency and a number of the internal registers. It also gets the ATmega328 ready to accept programs from the Arduino IDE on its serial RX and TX pins.
The Arduino Bootloader is essentially what makes an ATmega328 into an “Arduino”. It is open source code that is already available in your Arduino IDE, and you can use the Arduino IDE to load a bootloader into a blank ATmega328 chip.
You might not need to do this though. You can purchase an ATmega328 with the bootloader already installed. That is what I did for this project. Look for an ATmega328 chip that has the letters “PU” at the end of the part number, i.e. ATmega328P-PU.
If you do need to burn your own bootloader there are many resources that will show you how, including the one on theofficial Arduino website. You can also get dedicated devices that burn bootloaders automatically, useful if you have dozens or hundreds of chips to set up.
Assuming that you have an ATmega328 with a bootloader burned onto it you are now ready to wire it up. You will need a few extra components for your “homemade Arduino”.
You can use an Arduino Uno to load the sketch onto the ATmega328, but only if you have the right kind of Arduino Uno. Let me explain what I mean by “right kind”:
The original Arduino Uno, as well as several clones, use a 28-pin DIP version of the ATmega328. The same type of ATmega328 that we are going to be programming.
This chip was mounted in an IC socket and thus can be removed. And the ability to remove the chip from its socket provides us with two methods of using the Arduino Uno to program an ATmega328 for our stand-alone configuration.
Of course, if your Arduino Uno clone uses a surface mount chip then you’re out of luck. But fear not, there is a third method of programming an ATmega328 that doesn’t require an Arduino Uno at all.
Simply use the Arduino Uno as you normally would and program your sketch onto it. Then carefully remove the ATmega328 from your Arduino Uno and use it on the breadboard, wired as we have seen earlier.
The IC socket on the Arduino Uno is not really made for repeated removals and insertions. Eventually, you will degrade or damage it if you do this a lot.
The second method also requires an Arduino Uno that has a 28-pin DIP version of the ATmega328. As with the first method you’ll need to remove the processor from the Arduino board. Unlike the first method, however, you will just be putting the ATmega328 aside. After we are done you can put it back into the IC socket.
This method will make use of the USB to serial converter that is built into the Arduino Uno. The outputs of this converter are always available on pins 0 and 1 of the Uno’s digital I/O connecter. With this method we will just send those outputs to our ATmega328 on a breadboard.
Again remember,although it isn’t shown in the diagram above you need to have all of the other wiring to the ATMega328 as well. This diagram only shows theadditional connections you need to make using the Arduino Uno!
What you are doing is tying the RX (receive) pin of the Arduino Uno to the RX pin on the ATmega328 (pin2). You are also connecting the TX (transmit) pin on the Uno to the ATmega328 TX pin (pin 3). And, finally, the Reset pin on the Arduino Uno is connected to the Reset pin on pin 1 of the ATmega328.
There seems to be a lot of conflicting advice on the web regarding how you setup the Arduino IDE to program your ATmega328 using this method. Some suggest that you change the board type.
I have not found that to be necessary. I just leave my Arduino IDE set exactly as it was when programming my Arduino Uno normally. And it worked every time.
When you are loading your sketch you should notice that a few of the LEDs on the Arduino Uno wil blink, just like they do normally. It’s a good indication that everything is working properly.
But what do you do if your Arduino clone uses a surface mount chip, or if you just don’t want to pull the chip out of the socket on your board? Let’s look at another method that doesn’t use an Arduino Uno at all.
The FTDI Adapter is a USB to serial convertor that is commonly used to program an Arduino Pro Mini and other microcontrollers that do not have a USB port. The “FTDI” abbreviation comes from the original manufacturers’ name, a Scottish company calledFuture Technology Devices International.
Also, note that unlike the previous method which used the Arduino Uno the FTDI method requires you to reverse transmit and receive. So the RX output from the FTDI adapter connects to the TX pin (pin 3) on the ATmega328 and the TX output from the FTDI adapter is attached to the RX pin (pin 2) on the ATmega328.
Once again I found I didn’t need to make any changes in my Arduino IDE, it just worked as it always did. One thing to note however is that the computer in my workshop is LINUX (Ubuntu 16.04) and if you are using a Windows computer you may need to install a driver to use the FTDI adapter.
This method of programming an ATmega328 has a lot of advantages once you get it working, the primary one being that it is completely independent and does not require you to modify an Arduino Uno.
Learn how to transfer your Arduino Uno projects to an ATmega328 chip so you can create a permanent version in a custom enclosure. Uses a Star Wars music box as an example.

Amateur Radio Single Sideband Transceiver Controller for Arduino and SI5351 Clock generator. Includes Dual VFO, single or double band support for 20 and 40 meter bands, CAT control, optional S-meter, multiple supported displays including options include 20x4 LCD, Color TFT, and 2.8" Nextion Touch Screen

The Arduino Uno is probably the most popular Arduino board, and for good reason. It’s relatively small, very inexpensive (especially clone boards) and has a wealth of support code and documentation. It’s also likely the first Arduino board you started working with, for some of you it may even be the only Arduino board you own.
You’ll find that the majority of projects and demonstrations that I perform on this website and on the YouTube channel use an Arduino Uno. It’s also my favorite Arduino board.
But the real value of the Arduino Uno is as a development or prototyping board. With an Arduino Uno and a solderless breadboard you can quickly bring ideas and concepts to life, its connectors work well with jumper wires and the wealth of code available for the Arduino platform makes development tasks a breeze.
After you finish you’ll have a working project but it may not be a practical one to use in the real world. It has no enclosure and as it consists of an Arduino Uno, a solderless breadboard and various wires, modules, and components. It’s actually pretty fragile.
One big thing that you’ll need to factor into your decision is the Arduino Uno itself. It may be perfect for your permanent project, but again, it may not be.
The Arduino Uno is a wonderful device. With a generous helping of digital I/O ports, 8 analog-to-digital converters, I2C, Serial and SPI interfaces and onboard voltage regulation it is suitable for powering a wide variety of devices. It has a built-in USB port and onboard LEDs and can provide both 5-volt and 3.3-volt low-current power supplies for your peripheral devices.
The Arduino Nano– This small board can do everything an Arduino Uno can, it even has two additional analog to digital converters. It has a mini USB connector instead of the bulky Type B connector used on the Arduino Uno. Cost wise it’s a bit less expensive.
The ATmega328– This is the solution you’ll be reading about in this article. It’s the microcontroller that powers the Arduino Uno, and it can be used all on its own.
The original Arduino Uno and its clones used the 28-pin DIP (Dual Inline Package) version of the ATmega328. Other clones and boards like the Nano and Pro Mini make use of surface mount versions, this explains why the Nano and Pro Mini have two additional analog to digital converters.
As you can see from the diagram above the ATmega328 has several pins that have two, or even three, functions. You can change the functions of these pins programmatically within your sketch, the same is true of the Arduino Uno (which makes perfect sense as the Uno is based upon the ATmega328).
When converting your design from an Arduino Uno to a raw ATmega328 chip it is helpful to be able to relate the pinouts on the ATmega328 to the connections on an Arduino Uno. The following pinout diagram has been relabeled to show the Arduino Uno equivalent functions:
An example might be helpful to help you equate the pins on an Arduino to those on an ATmega328. For that reason, I’ve put together a very simple project that can be quickly prototyped on an Arduino Uno. We will then look at what is required to move our simple project to an ATmega328.
After building this you’ll realize that using an entire Arduino Uno is a real overkill, as only three digital I/O pins are put to use. It also would lend itself well to being mounted into a Star Wars toy or a custom 3D-printed enclosure.
I took the easy road and used an excellent sketch that has been on GitHub for over 6 years. It is theArduino Song sketch by Nick Sort, you can take a look at it here:
If you look closely an an Arduino Uno board you’ll notice that aside from the ATmega328 there really are not very many components. Most of the “extra” parts have to do with either the USB to serial interface or with the internal 5-volt and 3.3-volt regulators.
In actual fact, you can put together a functional equivalent of an Arduino Uno using only an ATmega328 and five parts. You can even wire on up without any additional parts if you are willing to run it at a lower clock frequency.
A “bootloader” is code that is burned onto the ATmega328 chips EEPROM. This code is loaded when the processor is powered up or reset and it sets up things like the clock frequency and a number of the internal registers. It also gets the ATmega328 ready to accept programs from the Arduino IDE on its serial RX and TX pins.
The Arduino Bootloader is essentially what makes an ATmega328 into an “Arduino”. It is open source code that is already available in your Arduino IDE, and you can use the Arduino IDE to load a bootloader into a blank ATmega328 chip.
You might not need to do this though. You can purchase an ATmega328 with the bootloader already installed. That is what I did for this project. Look for an ATmega328 chip that has the letters “PU” at the end of the part number, i.e. ATmega328P-PU.
If you do need to burn your own bootloader there are many resources that will show you how, including the one on theofficial Arduino website. You can also get dedicated devices that burn bootloaders automatically, useful if you have dozens or hundreds of chips to set up.
Assuming that you have an ATmega328 with a bootloader burned onto it you are now ready to wire it up. You will need a few extra components for your “homemade Arduino”.
You can use an Arduino Uno to load the sketch onto the ATmega328, but only if you have the right kind of Arduino Uno. Let me explain what I mean by “right kind”:
The original Arduino Uno, as well as several clones, use a 28-pin DIP version of the ATmega328. The same type of ATmega328 that we are going to be programming.
This chip was mounted in an IC socket and thus can be removed. And the ability to remove the chip from its socket provides us with two methods of using the Arduino Uno to program an ATmega328 for our stand-alone configuration.
Of course, if your Arduino Uno clone uses a surface mount chip then you’re out of luck. But fear not, there is a third method of programming an ATmega328 that doesn’t require an Arduino Uno at all.
Simply use the Arduino Uno as you normally would and program your sketch onto it. Then carefully remove the ATmega328 from your Arduino Uno and use it on the breadboard, wired as we have seen earlier.
The IC socket on the Arduino Uno is not really made for repeated removals and insertions. Eventually, you will degrade or damage it if you do this a lot.
The second method also requires an Arduino Uno that has a 28-pin DIP version of the ATmega328. As with the first method you’ll need to remove the processor from the Arduino board. Unlike the first method, however, you will just be putting the ATmega328 aside. After we are done you can put it back into the IC socket.
This method will make use of the USB to serial converter that is built into the Arduino Uno. The outputs of this converter are always available on pins 0 and 1 of the Uno’s digital I/O connecter. With this method we will just send those outputs to our ATmega328 on a breadboard.
Again remember,although it isn’t shown in the diagram above you need to have all of the other wiring to the ATMega328 as well. This diagram only shows theadditional connections you need to make using the Arduino Uno!
What you are doing is tying the RX (receive) pin of the Arduino Uno to the RX pin on the ATmega328 (pin2). You are also connecting the TX (transmit) pin on the Uno to the ATmega328 TX pin (pin 3). And, finally, the Reset pin on the Arduino Uno is connected to the Reset pin on pin 1 of the ATmega328.
There seems to be a lot of conflicting advice on the web regarding how you setup the Arduino IDE to program your ATmega328 using this method. Some suggest that you change the board type.
I have not found that to be necessary. I just leave my Arduino IDE set exactly as it was when programming my Arduino Uno normally. And it worked every time.
When you are loading your sketch you should notice that a few of the LEDs on the Arduino Uno wil blink, just like they do normally. It’s a good indication that everything is working properly.
But what do you do if your Arduino clone uses a surface mount chip, or if you just don’t want to pull the chip out of the socket on your board? Let’s look at another method that doesn’t use an Arduino Uno at all.
The FTDI Adapter is a USB to serial convertor that is commonly used to program an Arduino Pro Mini and other microcontrollers that do not have a USB port. The “FTDI” abbreviation comes from the original manufacturers’ name, a Scottish company calledFuture Technology Devices International.
Also, note that unlike the previous method which used the Arduino Uno the FTDI method requires you to reverse transmit and receive. So the RX output from the FTDI adapter connects to the TX pin (pin 3) on the ATmega328 and the TX output from the FTDI adapter is attached to the RX pin (pin 2) on the ATmega328.
Once again I found I didn’t need to make any changes in my Arduino IDE, it just worked as it always did. One thing to note however is that the computer in my workshop is LINUX (Ubuntu 16.04) and if you are using a Windows computer you may need to install a driver to use the FTDI adapter.
This method of programming an ATmega328 has a lot of advantages once you get it working, the primary one being that it is completely independent and does not require you to modify an Arduino Uno.
Learn how to transfer your Arduino Uno projects to an ATmega328 chip so you can create a permanent version in a custom enclosure. Uses a Star Wars music box as an example.

I am particularly fond of the SPI interface because it uses a minimum number of I/O pins. This means that since even a minimal Arduino (one based on an ATmega328) can drive a low-cost TFT with I/O left for other tasks, the cost may be kept down. Nowadays, it is realistic to implement a basic Arduino with a 2.2″ TFT for less than 10€. An ATmega328 with an Arduino bootloader goes for 1,50€ on Ebay, a 2.2″ SPI TFT goes for about 3,50€, so “vintage” character LCDs are definitely on their way out.
Obviously, you need the TFT display itself. I don’t care where you buy it from – you may get it from Adafruit or SparkFun or iTead or any one of the “big name” shops or you may get it from Ebay (a.k.a. “China”). In my experience, it doesn’t really matter as long as you know what you are purchasing. For example, on Ebay when you search for 2.4″ SPI TFT LCD you will come across this:
They are essentially the same TFTs, but the first one is ~1€ cheaper than the second one. The difference is the PCB that is included. Do not underestimate this PCB. If you go for the plain TFT you will have to solder it to a suitable PCB like this one:
But let’s backtrack just a bit. How does one select a TFT? Surely, one would think that size and resolution are the most important factors. I say sure, as long as you have the software part covered. In order to actually show stuff on a TFT you need an appropriate library. You should not take for granted that such a library indeed exists for that gorgeous hi-res IPS TFT that you found for 10€ on Ebay. Many sellers on Ebay just write the word “arduino” on the TFT’s description without giving it much serious thought. Plus you should expect zero (0) support from most Ebay sellers. Most of them can’t and won’t help you if you run into trouble with your code.
So, you should always do a little research. Google is your friend. A good start is Karlsen Henning’s UTFT library. Being billed as a Universal TFT Library it does indeed support a large number of TFT controllers. If your display’s controller is included in UTFT’s compatibility list, you are somewhat covered. I say somewhat because UTFT is not always the best choice since it has a pretty heavy footprint. It will consume the better part of an ATmega328’s flash memory capacity. Fortunately, there are other libraries out there. I will go into more detail later on.
So, you got a TFT and are faced with the task of hooking it up to the Arduino. Relax, it’s simple. You only need to connect 4 or 5 wires, plus power and GND. Let’s start with the basics.
1) Power (Vcc). Most displays need 3.3V to function. This is a requirement of the TFT panel itself as well as of the driver IC that is always part of the assembly (it is an embedded part – you can not really see it). But as you probably know, most Arduinos run on 5V. Display manufacturers that make products for Arduino of course know that and usually include an on-board regulator that takes 5V as input and gives the necessary 3.3V. In most cases there is a selector on the PCB (jumper, solder bridge, or something) that lets you configure the board for 5 or 3.3 volt operation. Look out for that.
2) LED power. This pin controls the backlight of the TFT panel. It consists of a number of LEDs, depending on the size of the LCD panel. Bigger panel means more LEDs and thus more power consumption. It is usually connected to GND or to 5V/3.3V. Some times a current limiting resistor is also necessary. Other times the resistor is built-in and so is a mosfet that allows you to adjust the LED backlight’s brightness by connecting it to a pin that supports PWM (some of the more expensive TFTs support this). In any case, read the manual. You may come across a Chinese TFT that you had to have but then noticed that it has sparse if any documentation. If this happens, play it safe by connecting the LED pin to GND through a resistor (a few hundred ohms is usually a good starting point). If it lights, it means that the polarity is OK. If it does not, try applying 5 or 3.3V to it (through the resistor). If it lights but is too dim, use a smaller resistor. Usually each LED draws about 10-15mA, so if you know how many LEDs your TFT uses you can estimate its power draw and thus select a proper resistor.
We also have the Reset pin. Some times you can get away with connecting it to the Arduino’s reset pin, but it is better to connect it to a normal pin in order to have better control over it.
A special note here: Signalling is usually done at 3.3V unless the TFT’s manufacturer has implemented some kind of level shifting on board the PCB. This level shifting may be done by an IC (best case), or a bunch of transistors and resistors (fair enough..) or just 1.2K resistors (a bit of a kludge, but it usually works). It is important to be careful not to send 5V into a TFT that only supports 3.3V logic because in that case you will most likely damage the TFT.
At this point you need to take a break from the hardware and consider the software, since your choice of library will dictate the particulars of the next step, which is the connection of the signal wires to the Arduino.
Ugly (blocky) fonts if you scale them to a non-native size. This is being fixed by 3rd party code that now supports a small number of proportional fonts but is nowhere near as versatile as UTFT’s code.
Depending on your choice of library, you may need to use the hardware SPI pins for CLK and MOSI or you may be free to use any pins you like. It really just depends on the library.
You may notice that most libraries say that you can just connect the TFT Reset pin to the Arduino Reset Pin. If you do that, you should put 0 as the reset pin.

Spice up your Arduino project with a beautiful touchscreen display shield with built in microSD card connection. This TFT display is 2.2" diagonal and colorful (18-bit 262,000 different shades)! 240x320 pixels with individual pixel control. As a bonus, this display has a optional Capacitive Touch Panel Controller FT6236 and resistive touch panel with controller XPT2046 attached by default.
The shield is fully assembled, tested and ready to go. No wiring, no soldering! Simply plug it in and load up our library - you"ll have it running in under 10 minutes! Works best with any classic Arduino (UNO/Due/Mega 2560).
This display shield has a controller built into it with RAM buffering, so that almost no work is done by the microcontroller. You can connect more sensors, buttons and LEDs.
Of course, we wouldn"t just leave you with a datasheet and a "good luck!" - we"ve written a full open source graphics library at the bottom of this page that can draw pixels, lines, rectangles, circles and text. We also have a touch screen library that detects x,y and z (pressure) and example code to demonstrate all of it. The code is written for Arduino but can be easily ported to your favorite microcontroller!
If you"ve had a lot of Arduino DUEs go through your hands (or if you are just unlucky), chances are you’ve come across at least one that does not start-up properly.The symptom is simple: you power up the Arduino but it doesn’t appear to “boot”. Your code simply doesn"t start running.You might have noticed that resetting the board (by pressing the reset button) causes the board to start-up normally.The fix is simple,here is the solution.

The first Arduino board based on an ARM processor. Features 2 channel 12-bit DAC, 84 MHz clock frequency, 32-bit architecture, 512 KB flash and 96 KB SRAM. Unlike most Arduino boards, it operates on 3.3 V and is not 5 V tolerant.
Arduino Yún is the combination of a classic Arduino Leonardo (based on the ATmega32U4 processor) with a Wi-Fi system on a chip (SoC) running Linino, a MIPS Linux based on OpenWrt.
Although the hardware and software designs are freely available under copyleft licenses, the developers have requested that the name "Arduino" be exclusive to the official product and not be used for derivative works without permission. The official policy document on the use of the Arduino name emphasizes that the project is open to incorporating work by others into the official product.
As a result of the protected naming conventions of the Arduino, a group of Arduino users forked the Arduino Diecimila, releasing an equivalent board called Freeduino. The name "Freeduino" is not trademarked and is free to use for any purpose.
The following boards are fully or almost fully compatible with both the Arduino hardware and software, including being able to accept "shield" daughterboards.
Seeeduino V4.2 is an Arduino-compatible board, which is based on ATmega328P MCU, Arduino UNO bootloader, and with an ATmega16U2 as a UART-to-USB converter. The three on-board Grove interface can make your board connect to over 300 Grove modules.
LoRaWAN Class A/C Ultra long range communication Ultra low power consumption Arduino programming (based on Arduino Zero bootloader). Embedded with lithium battery management chip 4 Grove connectors onboard
LoRaWAN Class A/C Ultra long range of communication GPS communication Ultra low power consumption Arduino programming (based on Arduino Zero bootloader). Embedded with lithim battery management chip 4 Grove connectors onboard
Built on Dragino Wi-Fi IoT module HE and ATmega32U4 Compatible with Arduino Yun Support 2.4 GHz Wi-Fi, 802.11 b/g/n Built-in Ethernet port and USB 2.0 Running OpenWrt system
inviot U1 (arduino-compatible) all-in-one board with LCD, rotary encoder, RTC DS3231, EEPROM, buzzer, push buttons, RGB Led, NRF24 plug, and ESP8266 plug.Added features:
Japanese Arduino compatible kit using Uno board setting. Includes two mini-B USB sockets, 1602 LCD socket, 5 V or 3.3 V power selection, breadboard area.
Platino is an Arduino compatible board that supports 28-pin and 40-pin AVR devices. The board features multiple footprints for user interface elements like LCDs, pushbuttons, rotary encoders, LEDs and buzzer, supported by an extensive library. Bootloaders are available for all supported processors. On its backside are Arduino shield compatible connectors plus other extension connectors.
A low cost Arduino clone using the ATmega168/ATmega 328/ATmega 8 and designed for prototyping, it includes onboard peripherals such as an RGB LED, switches, IR LED, TSOP and LDR.
Minimalistic version of Arduino: small, without serial converter. Available as a kit, board only or assembled. Smaller than Arduino, with different footprint.
It has an improved automatic voltage selector, resolves problems during programming caused by shields that use the serial port, with an automatic serial port selector, and has the LM1117 voltage regulator.
Fully Arduino compatible board, that fits perfectly on a Raspberry Pi, and can be programmed through the Raspberry Pi"s serial interface. It also breaks out the Raspberry Pi"s SPI and I²C interfaces, or can be used as a stand-alone Arduino when powered with the external power header.
A low cost, high power, shield-compatible, complete Arduino-compatible board kit. Based on the Duemilanove, it comes with a 5 V / 1 A voltage regulator (optional 3.3 V regulator). Designed for low component count and for ease of assembly.
A South African Arduino-compatible board derived from the Duemilanove, it features mostly through-hole construction except for the SMD FT232RL IC, power selection switches, option for a Phoenix power connector instead of DC jack, extra I/O pads for using Veroboard as shields. Designed for easy assembly in countries where exotic components are hard to find. PCB layout and board now available on Circuitmaker as Open Source Hardware
Includes both 3.3 V and 5 V regulators for shields, D13 pin isolated with a MOSFET of which can also be used as an input. Can be connect to Arduino using CAT5 cable.
Arduino Due with onboard Ethernet, software-compatible with Arduino Ethernet shield, D13 pin isolated with a MOSFET of which can also be used as an input.
Uses Arduino Due form factor and largely compatible pin allocation. Runs at 5 V, but can be modified to run at 3.3 V. Triple-core, 32-bit, 200 MHz Aurix processor. 4 MB flash, 550 kB SRAM, 128 kB DataFlash. Optional CIC61508 safety monitor. Arduino IDE supported via add-in, plus Eclipse-based tools with multicore debugger.
MBZ Pro Mega is an Arduino compatible stand-alone board with a prototyping area and built-in Wi-Fi. Featuring a compact design, it helps to shrink Arduino projects and make it permanent.
Embed version of Mega 2560 CH340G/ATmega2560 - compatible with Arduino Mega 2560 board. Built on the Atmel ATmega2560 microcontroller and USB-UART interface chip CH340G.
Compatible with Arduino shields and Pmod extension cards. ARM Cortex-A9 CPU (max frequency 667 MHz) and FPGA fabric, 512 Mb RAM, 8 Gb eMMC storage, on-board Wi-Fi and Bluetooth, USB 2.0 host.
Special purpose Arduino-compatible boards add additional hardware optimised for a specific application. It is kind of like having an Arduino and a shield on a single board. Some are Shield compatible, others are not.
This is a minimalist tracked platform based on the Arduino Duemilanove. Has an ATmega328 with Arduino bootloader, a dual H-bridge and additional prototyping space and headers. It is compatible with many shields, though four digital pins are used when operating the motor controller. Has an onboard voltage regulator, additional LEDs, a temperature sensor, and a light sensor. Part of the DFRobotShop Rover kit.
An Arduino-compatible board designed for inertial measurement and inertial navigation of aircraft, cars, and boats. It uses the ATmega128RFA1 and a variety of sensors IMU for various applications.
An Arduino Mega 2560 compatible board designed for auto-piloting and autonomous navigation of multirotor aircraft. Designed to be stacked with sensor bobs and boards with several breakout boards available.
Universal platform for wireless data transmission in the frequency band 868 MHz. The board combines features of Arduino Mini and the radio EZRadioPRO for receiving and transmitting data. With DataFlash.
WIOT is an Open Source, rechargeable, Li-Ion battery powered, Arduino compatible, development board designed around the ATmega32U4 processor and ESP8266 Wi-Fi Module.
FPGA-based drop-in replacement for Arduino UNO R3; offers faster clock rates and overall applications speed, higher-performance through vendor-supplied hardware-specific library functions utilizing FPGA; half of FPGA"s space remains available for further customizations including ones written by end user
iono is a general-purpose industrial controller based on Arduino, suitable for professional use (e.g. industrial automation, building automation). It features wide-range power supply, analog/digital inputs with robust protection circuits, power relays with double-winding latching bistable coils, 0÷10 V analog output, DIN rail case.
These boards are compatible with the Arduino software, but they do not accept standard shields. They have different connectors for power and I/O, such as a series of pins on the underside of the board for use with breadboards for prototyping, or more specific connectors. One of the important choices made by Arduino-compatible board designers is whether or not to include USB circuitry in the board. For many Arduino tasks, the USB circuitry is redundant once the device has been programmed, so that circuitry can be placed in the cable between development PC and board, thus making each instance of the board less expensive, potentially smaller, and more power efficient.
Seeeduino XIAO is the smallest Arduino compatible board in Seeeduino Family. It is an Arduino microcontroller that is embedded with the SAMD21 microchip. The interfaces of Seeeduino XIAO is rich enough in such a tiny Dev. Board as well.
Built around ATmega 2560 @ 16 MHz Massive GPIOs: 70 digital I/Os, 16 analog inputs and 4 UARTs, etc. Small form factor, 30% smaller than Arduino Mega 3.3 V and 5 V dual mode. Can be powered through a battery or through an AC to DC adaptor
A very power efficient breadboard friendly Arduino compatible board with onboard RFM69W/RFM69HW transceiver and a stock speed of 16 MHz @ 3.3 V. You can solder your own antenna or connect an antenna via U.FL connector.
BBFuino come with the ATmega328 controller, loaded with Optiboot (Arduino UNO"s bootloader), compatible with Arduino IDE and sample code, design to fit breadboard for prototyping and learning, lower down the cost by taking out the USB to UART IC, so the board has the basic component to operate.
The Crumbuino-Nano is a low-cost module comparable to the Arduino-Nano and can be used as Arduino-Nano in the Arduino-IDE. The Arduino bootloader is preloaded, hence the module is ready-to-use. The documentation shows the pin mapping of Arduino-naming to module pinout.
The Crumbuino-Mega is a low-cost module comparable to the Arduino-Mega 2560 and can be used as Arduino-Mega 2560 in the Arduino-IDE. The Arduino bootloader is preloaded, hence the module is ready-to-use. The documentation shows the pin mapping of Arduino-naming to module pinout.
Freeduino USB Mega 2560, designed in India with Male headers (coming soon with Female Headers). Suitable for use in project, R&D, device and applicationsFreeduino USB Mega 2560 is a cost-effective and 100% pin and software compatible to the popular Arduino Mega 2560. Uses through hole components and has male headers.
Freeduino nano designed in India, completely breadboard friendly, elegant and compact design.Freeduino Nano is a low cost Arduino Nano compatible board with mini USB connector using SMD components Freeduino Nano.
The world"s first wireless 3D position, inertia, and orientation beacon. Designed in the San Francisco bay area, this board provides a 10-DoF IMU with on-board ATmega32U4 chip (the same as the Arduino Leonardo).
A combination of an ATmega328P and an I²C based RGB backlit LCD interface (software compatible with the Adafruit RGB LCD shield), along with a USB serial programming interface done as a "backpack" module for the LCD.
The modified Arduino IDE allows the compiled user sketch to be uploaded onto the processor either with or without the proprietary GNSS software. NavSpark has 17 GPIO pins, which include two UARTs, 1 I²C, 1 SPI, 1 PWM, and a trigger. The first UART is usually used by the GNSS software to output NMEA 0183 data, although this can be disabled. This UART communicates over USB through a PL2303 serial converter and the transmit output is also made available on a pin. A 1 pulse per second signal is produced on a dedicated pin when a valid fix has been made.
There is a GPS-only version, a combined GPS/GLONASS version, and a GPS/Beidou version. An adaptor board adds a JST connector for a lithium-ion battery, a charger for the battery, and a microSD card slot connected to the SPI pins.
An Arduino-compatible board that includes a battery backed up real-time clock and a four channel DAC. Most Arduino-compatible boards require an additional shield for these resources.
An Arduino Duemilanove compacted down to a breadboardable device (36 mm x 18 mm) that can be inserted into a standard 600 mil 28-pin socket, with USB capability, ATmega328P, and 6 onboard LEDs.
An Arduino-compatible board designed specifically for driving LEDs. It is generally used to drive an 8x8 RGB LED matrix using row scanning, but it can be used for other things.
A miniature Arduino compatible board with all of the digital and analog I/O pins brought out into a single line of pins (SIP). Available as a kit, intended for use with a solderless breadboard.
SODAQ, an Arduino Compatible Solar Powered sensor board The Raspberry Pi-sized SODAQ board is built for Solar Powered Data Acquisition. It is fitted with a Lipo charge controller and 12 Grove sockets for plug and play prototyping. It runs at 3.3 V and 8 MHz. It also comes with a DS3231 Real Time Clock and 16 Mbit serial flash for data logging. Its "bee" socket can use a range of different modules, like Xbee, RFbee, Bluetoothbee and GPRSbee to make the board communicate. The latest version has the powerful ATmega1284P microcontroller with 128 KB program space and 16 KB RAM and is still Arduino IDE compatible.
Arduino compatible board designed specifically for RF mesh network experiments. It features 10 I/Os, a 10-pin ISP programming connector, a connector for a standard LCD display (in 4 bit mode) and a connector for a 2.4 GHz RF module.
Arduino Mega compatible board designed specifically for robots requiring large numbers of servos. A built in 3 A switchmode power supply allows servos to plug directly into the board. Pin spacing allows making custom shields from standard prototype board.
Teensy++ 2.0 microcontrollerA slightly more powerful version of the Teensy 2.0. It has 46 I/O pins; 8 KB RAM; 128 KB of flash; 10-bit ADC; UART, SPI, I²C, I²S, Touch and other I/O capability.
A very small board based on the Freescale MK20DX128VLH5 CPU. It has 34 I/O pins; 16 KB RAM; 128 KB of flash; 16-bit ADC; 3xUARTs, SPI, I²C, I²S, Touch and other I/O capability. Version 3.0 is not recommended for new designs.
Same form factor as Teensy 3.0. Based on the Freescale MK20DX256VLH7 CPU. It has 34 I/O pins; 64 KB RAM; 256 KB of flash; 2x16-bit ADC; 12-bit DAC; 3xUARTs, SPI, 2xI²C, I²S, CAN bus, Touch and other I/O capability. All digital pins are 5 volt tolerant. Teensy 3.2 adds a more powerful 3.3 volt regulator, with the ability to directly power ESP8266 Wi-Fi, WIZ820io Ethernet and other power-hungry 3.3 V add-on boards.
Form factor compatible with Teensy 3.0/3.1/3.2, with more pins directly available. Based on the NXP/Freescale MK64FX512VMD12 CPU. It has 58 I/O pins; 256 KB RAM; 512 KB of flash; 27 analog inputs on 2x16-bit ADC; 2x12-bit DAC; 17 timers (20 PWM outputs); 6xUARTs, 3xSPI, 3xI²C, 2xI²S, CAN bus, On-board Micro SD Card, Touch and other I/O capability. All digital pins are 5 volt tolerant.
Form factor compatible with Teensy 3.0/3.1/3.2, with more pins directly available. Based on the NXP/Freescale MK66FX1M0VMD18 CPU. It has 58 I/O pins; 256 KB RAM; 1024 KB of flash; 25 analog inputs on 2x16-bit ADC; 2x12-bit DAC; 19 timers (22 PWM outputs); 6xUARTs, 3xSPI, 3xI²C, 2xI²S, CAN bus, 2nd USB (Host mode supported); On-board Micro SD Card, Touch and other I/O capability. I/O pins are not 5 V tolerant.
The teensy 4.0 has an NXP i.MXRT1062 ARM Cortex-M7 at 600 MHz with 1024 KB RAM (512 KB is tightly coupled), 2048 KB flash (64K reserved for recovery & EEPROM emulation), two USB ports, both 480 Mbit/s, three CAN bus channels (one with CAN FD), two I²S Digital Audio, 1 S/PDIF Digital Audio, 1 SDIO (4 bit) native SD, SPI, all with 16 word FIFO, 3 I²C, all with 4 byte FIFO, 7 serial, all with 4 byte FIFO, 32 general purpose DMA channels, 31 PWM pins, 40 digital pins, all interrupt capable, 14 analog pins, 2 ADCs on chip, Cryptographic Acceleration, Random Number Generator, Pixel Processing Pipeline, Peripheral cross triggering and more in a tiny 1.4 by 0.7 inch teensy 3.0/3.1/3.2 form factor
A lower cost version of the Teensy 3.1/3.2. It has 27 I/O pins; 64 KB of flash; 12-bit DAC; 3xUARTs, 2xSPI, 2xI²C, I²S, Touch and other I/O capability. I/O pins are not 5 V tolerant. No FIFOs on serial 1 and serial2. Fewer hardware timers.
Requires updates to Arduino IDE (or download special version) and driver under Windows. Includes regulator for battery power away from PC. Very low cost.
A compact (35 mm x 70 mm), low voltage, battery powered Arduino-compatible board with onboard wireless capable of ranges up to 120 m. The Wireless Widget was designed for both portable and low cost Wireless sensor network applications.
An Arduino-compatible board that includes a Zigbee radio (XBee). The ZB1 can be powered by USB, a wall adapter or an external battery source. It is designed for low-cost Wireless sensor network applications.
An open source enhanced Arduino-compatible board that uses an ATmega16/32/324/644 instead of an ATmega168. This provides 16/32/64 KB of flash, and 32 general I/O pins in a 40-pin DIP device.
uChip mounted on a breadboard Arduino Zero compatible, with narrow (0.3" row spacing) 16-pin DIP footprint (breadboard compatible). It features built-in buck (to power external circuitry) and boost (to power USB devices when operating as a USB host) converters and software selectable output voltage.
The following non-ATmega boards accept Arduino shield daughter boards. The microcontrollers are not compatible with the official Arduino IDE, but they do provide a version of the Arduino IDE and compatible software libraries.
Pin compatible with Arduino but uses the ethernet enabled PIC microcontroller to connect to the Internet. Allows sending of email, display of javascript enabled webpages, and remote web based access and control from around the world.
32-bit MIPS-M4K PIC32MX processor boards (40-80 MHz). The Arduino libraries have been implemented natively for the PIC32MX and these kits run in a fork of the standard Arduino IDE, MPIDE
32-bit MIPS-M4K PIC32MZ processor boards (200 MHz). The Arduino libraries have been implemented natively for the PIC32MZ and these kits run in a fork of the standard Arduino IDE, MPIDE
HiFive1 boardUno form factor, 5 V and 3.3 V, 19 digital I/O (9 PWM), 0 analogue in. 16 MB QSPI flash (execute in place, with 16 KB icache), 16 KB SRAM. Arduino IDE support with 16/256/320 MHz presets and port of Arduino library. Also works with standard C/C++, stdio, GDB from the shell. Hardware multiply (4 cycles) and divide (32 cycles).
The EVAL-ADICUP3029 is an Arduino Uno form factor compatible platform based on the ultra low power ADuCM3029 32-bit ARM Cortex™-M3 microcontroller. The platform is designed to be a development and prototyping vehicle to get design ideas from concept to production with a minimal risk and faster time to market. The EVAL-ADICUP3029 is designed for IOT (Internet of Things) applications in mind, and therefore comes with on board Wi-Fi and Bluetooth 5.0 capabilities. A free version of CrossCore Embedded Studios (an Eclipse-based Analog Devices Interactive Development Environment) is supplied to the designer for debugging and application development. Add-on hardware modules, MCU drivers and software application examples help form a complete ecosystem that designers can leverage into their final product.
Arduino form factor compatible ARM Cortex-M3 Development Platform: 24-bit data acquisition system that incorporates dual high performance, multichannel sigma-delta (Σ-Δ) analog-to-digital converters (ADCs), a 32-bit ARM Cortex™-M3 processor, and flash/EEPROM memory on a single chip. The platform has an Arduino-Due compatible form factor and has two additional PMOD connectors. It is accompanied by an Eclipse-based development environment.
DAQduino is iCP12 usbStick that built in Arduino form of external ports connection. With these I/O ports, user can easily plug in different type of 3rd party Arduino extension boards with direct connection to USB port and SmartDAQ software. Great tool for parallel USB I/O control, signals monitoring (6 ch. oscilloscope) and data acquisition.
Chipino is an electronics prototyping platform based on a Microchip PIC microcontroller. It was designed to use the same footprint and connection scheme as the official Arduino boards to allow Arduino shields to be used with Chipino.
Dual core ARM Cortex-M4/M0, 264 KB SRAM, 4 MB flash, mbed HDK, Arduino-compatible headers. The Bambino 210E has the same features as the 210, but adds a 10/100 Ethernet port, 8 MB flash, microSD socket, and Xbee Socket
Based on the Parallax Propeller; interfaces with standard Arduino shields. The Propeller comes with a free IDE called "propeller tool", and an alternative IDE tool is available.
Board based on a PIC microcontroller, with native USB support and compatibility with the Arduino programming language plus an IDE built with Python and sdcc as compiler.
168 MHz Cortex-M4 (STM32F4) with up to 1,408 KB of code storage and 164 KB of RAM. On-board USB, Ethernet, Wi-Fi, SD card slot. Support for the .NET Micro Framework. Development environment is MS Visual Studio and C#. Pin compatible with Arduino shields although drivers are required for some shields.
72 MHz 32-bit ARM (GHI Electronics USBizi chips) micro-controller boards with support for the .NET Micro Framework. Pin compatible with Arduino shields, although drivers are required for some shields.
Freescale 32-bit Coldfire MCF51JM128 based Arduino Shield Compatible development board. Programmable in StickOS BASIC, and C or assembly language using Flexisframework or CodeWarrior with a step-by-step debugger. The Firebird32 is also available in a special model based on the 8-bit MC9S08JM60.
"Firmware Update 1.2.1 - available now, with BLE mode". forum.arduino.cc. 13 November 2018. Archived from the original on 2018-12-18. Retrieved 2018-12-17.
"Arduino Blog- Arduino Nano: all-in-one design for breadboard use". Arduino.cc. 2008-05-15. Archived from the original on 2013-06-01. Retrieved 2013-01-18.
"Arduino Blog- Arduino Mega: bigger, more powerful, still blue". Arduino.cc. 2009-03-26. Archived from the original on 2014-01-16. Retrieved 2013-01-18.

The Arduino Nano is another popular Arduino development board very much similar to the Arduino UNO. They use the same Processor (Atmega328p) and hence they both can share the same program.
The Arduino Nano is very much similar to the Arduino UNO. They use the same Processor (Atmega328p) and hence they both can share the same program. One big difference between both is the size. UNO is twice as big as Nano and hence occupies more space on your project. Also, Nano is breadboard friendly while Uno is not. To program an Uno, you need a Regular USB cable; whereas for Nano, you will need a mini USB cable. Thetechnical difference between Uno and Nano is shown below:
There is a considerable amount of difference between the Arduino Nano and the Arduino mega as the processor used itself is different. Arduino Mega is more powerful than an Arduino Nano in terms of speed and number of I/O pins. As you might guess, the size is also bigger than an Arduino UNO. Arduino Mega is normally used for projects which require a lot of I/O pins and different communication protocols. The technical difference between Nano and Mega is shown below.
The Arduino board is designed in such a way that it is very easy for beginners to get started with microcontrollers. This board especially is breadboard friendly, and that"s why it is very easy to handle the connections. Let’s start with powering the Board.
Serial Pins 0 (Rx) and 1 (Tx): Rx and Tx pins are used to receive and transmit TTL serial data. They are connected with the corresponding ATmega328P USB to TTL serial chip.
The first step would be to install the Arduino IDE which is available for download for free from the below link. After installing Arduino, you might also want to install the drivers (link given below) for your Arduino to communicate with your Computer.
Once arduino IDE is installed on the computer, connect the board with computer using USB cable. Now open the arduino IDE and choose the correct board by selecting Tools>Boards>Arduino/Nano, and choose the correct Port by selecting Tools>Port. Arduino Uno is programmed using Arduino programming language based on Wiring. To get it started with Arduino Uno board and blink the built-in LED, load the example code by selecting Files>Examples>Basics>Blink. Once the example code (also shown below) is loaded into your IDE, click on the ‘upload’ button given on the top bar. Once the upload is finished, you should see the Arduino’s built-in LED blinking. Below is the example code for blinking:

The Arduino NANO V3 is based on a 32kB Atmega328P-AU with 16MHz and Mini-USB port. Our Arduino NANO module comes with the CH340G USB-UART chip, which is the most common USB TTL interface chip in the world. This helps to avoid driver and compatibility issues as they are known for less popular and often counterfeit USB-UART chips like FTDI or Prolific.
Our Arduino NANO V3 development module features a more powerful voltage regulation and a lower minimum operating voltage compared to the module from Italy.
The ATmega328 on the Arduino NANO V3 has 32kB flash memory, thereof 2kB is used for the bootloader. The ATmega328 has 2 KB of SRAM and 1 KB of EEPROM. Each of the 14 digital pins on t
Ms.Josey
Ms.Josey