Making a custom Arduino Board

Good morning!

Note that this is best called Arduino-like board since a genuine Arduino-branded board is made by the Arduino company. We use the name Arduino board to make it easy to talk about, but a custom board as described below is technically not an Arduino board though will have the function.

Let’s suppose you’ve made your own Arduino-like device. That is, you’ve developed PCB and assembled the components onto the PCB–components such as the ATMEL MEGA328, the crystal, the resistors, capacitors, FTDI chip, headers, etc. Then how do you make your Arduino-like device programmable from the Arduino IDE like any other Arduino? Well, you need to load a bootloader onto this custom board of yours! The bootloader is responsbile for loading your future compiled sketches onto the board. Here are the steps:
What you need

  1. A regular Arduino i.e. one that already has the bootloader
  2. Your custom board
  3. Wires (male to female polarity)
  4. Computer for programming and powering the devices

Obtaining the Bootloader Code

  1. Arduino IDE: The Arduino IDE comes with the bootloader code for various Arduino boards. You can download the Arduino IDE or directly get the bootloader from the Arduino bootloaders page.
  2. Bootloader Files: Once you have installed the Arduino IDE, the bootloader files can be found in the Arduino hardware folder. Typically, the path is something like:bashCopy code{Arduino IDE installation directory}/hardware/arduino/avr/bootloaders Here, you will find folders corresponding to different boards, such as atmega for the ATmega328P used in Arduino Uno.

Installing the Bootloader

  1. Programmer Hardware: To burn the bootloader onto your custom Arduino board, you will need a programmer. Common options include:
    • Another Arduino board (acting as an ISP programmer)
    • USBasp
    • AVRISP mkII
  2. Connections: If you are using an Arduino as an ISP, connect it to your custom board as follows:Arduino as ISP PinCustom Arduino Pin

3. Burning the Bootloader:

  • Open the Arduino IDE.
  • Load the “ArduinoISP” sketch (File > Examples > 11.ArduinoISP > ArduinoISP) onto your Arduino board acting as the programmer.
  • Connect your programmer to your custom board as shown in step 2.
  • In the Arduino IDE, go to Tools > Board and select the appropriate board type for your custom Arduino (e.g., “Arduino Uno”).
  • Select the appropriate programmer from Tools > Programmer (e.g., “Arduino as ISP”).
  • Click on Tools > Burn Bootloader.

This process will burn the bootloader onto your custom Arduino board, making it ready to use with the Arduino IDE.

At KCHKNA we look forward to mass-producing Arduino-like boards starting in 2025. These will be available for sale across Africa & Asia so that many more people can easily start off their embedded programming journey. Stay tuned!