Installation

After building your DOTS module and having it checked, you can start to flash the microcontroller with the firmware. Install avrdude on your operating system. I am using a Mac with an MRVISP MKII to flash my modules. I had troubles using USBasp flash devices.

Connect the ICSP pin header to the device, ensuring correct orientation by checking the pinout diagram. Do not connect the power header to a Eurorack power supply and the ICSP at the same time.


Setting Fuses

Before flashing the firmware, you need to set the correct fuses for the ATmega328P to work with the 16 MHz external crystal. The fuse settings are:

Low Fuse: 0xFF High Fuse: 0xD8 Extended Fuse: 0xFF

Use this avrdude command to set the fuses and flash the firmware (replace COM7 with your programmer's port and adjust the path to your .hex file):

avrdude.exe -c avrispmkII -p m328p -P COM7 -b 57600 -U flash:w:"path/to/dots.ino.hex":a -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xFF:m

Note: This command flashes the .hex file without a bootloader and sets the fuses for 16 MHz external clock operation.


Alternative Methods

The repository uses PlatformIO to manage environments. Choose the device's environment, build the code, hit burn Bootloader and then try to upload it to the device. This part could work right away or may require some troubleshooting. If the device signature is empty (0x000000), check for connection issues and try another cable. Do not move the device during this process. If you have just installed VSCode with avrdude and PlatformIO, try rebooting the system.

The release files include also a already compiled .hex file. You can use avrdude to flash the firmware with this command:

avrdude -c avrispmkII -p m328p -P usb -U flash:w:{{path-to-firmware}}/firmware.hex

If you are using the Arduino IDE, you may need to install the ATmega328P board.

Hints

  • 1
    Try different cables. Yes i mean it
  • 2
    Check the board for any faulty solder joints
  • 3
    If you're having scrolling issues, encoder behavior varies even 20 detent types differ by manufacturer. Try other models or adjust the code.