Electronics Design

I wanted to design a board that I can use later use for my final project. So I needed many output pins. I chose the ATmega 1284P as my microcontroller. As a base for adding stuff I chose the satshakit-128.

To that board I wanted to add a USB-plug for easier flashing and as possible powersupply. So I copied that over from another satshakit board and changed the schematic so it would fit the needs.

I didnt want the USB to be the only power supply, so I made an option to add a battery and use the board with either of them or even both.

The first change to fit in the USB was to attach the resets to the reset pin. The new reset here was the RST-FTDI which is important when you use USB to program.

The second change was to connect the RXD and TXD from the USB to the corresponding pins on the board. I looked these up in the datasheet of the ATmega 1248P and these were PD0 and PD1.

The next step was adding an LED and a button to fullfil the assignment. This was a little risky because I didnt knew exactly if the pins left were enough for my final project.

After then drawing lines and puzzling for multiple hours I finally came up with this mess here. I couldnt believe that everything fitted and I didnt have to use an 0 ohm resistor as a bridge. But there was still a little polishing left to make the chip more compact and faster to mill.

This is in comparison the optimized board. Probably still not perfect but a lot closer

After a review of the board I realized that everything was so crowded and I could also live without the USB-port. So I scrapped the board and designed something simpler from the same groundbase.

You can see that the right part is roughly the same, except on the bottom there you can see an LED and the pins are arranged differently. On the left side there are also 24 new pins which are all connected to ground. I also used the groundlayer for that, which made many things easier.

After finishing the new board I exported it as image with a dpi of 1500 and also created a version for the cutout.

I used them to create an .rml file on fabmodules for milling the board in the cnc-machine.

The next step was milling. Because of the size it took over an hour. After that there was a lot to solder. Here you can see the board with the microcontroller soldered on.

Several hours and some small problems later I finally got everything soldered on. I had to ask Emir here and there because some parts were soldered on incorrectly and the milling messed up the ground layer a little bit. If you look to the right of the button you can see a small cable which I used as a bridge to connect the isolated ground. And here is the result:

Now it was time to check wether everything was correct. So I used the multimeter several times to check each connection. After that I finally connected my board to the arduino.

When everything was connected, it was time to burn the bootloader. This turned out to be very problematic, because there were some loose connections. But after carefully reviewing everything for multiple times with the help of Emir it was possible.

    To burn the bootloader you have to follow these steps:
  1. DownloadMighty-1284p
  2. Close the Arduino IDE
  3. Extract the zip you downloaded and paste it to .../Programs/Arduino/hardware/
  4. Connect the Arduino to your computer
  5. In the IDE go to file > examples > ArduinoISP and upload this sketch to your arduino
  6. After that unplug the Arduino and connect it to your board. (MISO, MOSI, SCK, RESET, POWER, GROUND)
  7. Double check the connections and plug it back in.
  8. Go to tools and select
    • the right port
    • the board: avr-developers.com pinouts 16MHz using Optiboot
    • arduino as isp for programmer
  9. Finally you can click on burn bootloader and you should be finished.

After that I disconnected everything and connected the board to an ftdi cable and connected that to my board after this schematic.

When you plug in your board and can't see it in the IDE you have to install the ftdi drivers first.

Then I opened the blink sketch from examples. I had to change the led to the right pin. For the pinout I used this schematic. The pin I needed was pin 13.

And here finally is the board blinking: