Clone Arduino DFU Mode

Firstly sorry to my English. I bought same arduino on the video.

But my Arduino Can't enter DFU mode.

What should I do for put my Arduino Uno in DFU mode ?

It's hard to see in the video which pin they connected the jumper wire to. You need to connect the jumper wire to any of the GND pins on your Uno, then disconnect the wire. Do you see any change after doing that?

pert:
It's hard to see in the video which pin they connected the jumper wire to. You need to connect the jumper wire to any of the GND pins on your Uno, then disconnect the wire. Do you see any change after doing that?

Unfortunately. I'm using Linux mint. I have one ch340 clone in my hand. Do I need to install something for it in DFU mode with it ?(Like Arduino as ISP)

Are you 100% sure its is exactly the same ?
That one in the video looks to use something similar to the FTDI yet most clones use the CH340.

AFAIK CH340 cannot be used for DFU purposes.

ballscrewbob:
Are you 100% sure its is exactly the same ?
That one in the video looks to use something similar to the FTDI yet most clones use the CH340.

I bought this board.

It's very similar, but my card can't enter DFU mode. I'm tried all methods.

There is "SIMILAR" and there is "SAME"

Many Chinese vendors use a picture of the one with FTDI or 16U2 but supply a CH340 version.
You state you have a CH340 version and as i said they cannot be put into DFU.

The small chip near the USB port is the one we are interested in at the moment.

ballscrewbob:
There is "SIMILAR" and there is "SAME"

Many Chinese vendors use a picture of the one with FTDI or 16U2 but supply a CH340 version.
You state you have a CH340 version and as i said they cannot be put into DFU.

The small chip near the USB port is the one we are interested in at the moment.

my chip is 16u2

Then you should be able to get into DFU.

OP's pic

ballscrewbob:
Then you should be able to get into DFU.

OP's pic

But I can't use DFU mode.

Is there any software(or hex file) that I should use ?

Why do you want to put it in DFU mode?

pert:
Why do you want to put it in DFU mode?

I want to make a steering wheel with unojoy. I have this board and I don't have enough money for a new arduino board.

What is your evidence that it can't enter DFU mode?

pert:
What is your evidence that it can't enter DFU mode?

it still looks an arduino when I touch the pins with metal and type lsusb

Please help me.

The alternative to the DFU approach is to use an ISP programmer to flash the UnoJoy .hex file to the ATmega16U2. If you don't own a dedicated ISP programmer, you can use a spare Arduino board as an "Arduino as ISP" programmer.

Make the following connections between the programmer Arduino board and the ICSP header of the ATmega16U2 on the target Uno. Refer to the "Connections" table on the SPI library reference page to determine the pins:

| Programmer | | Target |
| - | - |
| ----------- | |------- |
| MISO | | MISO |
| ----------- | |------- |
| VCC | | 5V |
| | | (VCC on 3.3 V boards) |
| ----------- | |------- |
| SCK | | SCK |
| ----------- | |------- |
| MOSI | | MOSI |
| ----------- | |------- |
| 10 | | RESET |
| ----------- | |------- |
| GND | | GND |

The ATmega16U2's ICSP header is the 2x3 male header you were using to try to put the chip in DFU mode. Pin 1 (MISO) is the pin farthest away from the USB socket on the Uno.

Connect the programmer board to your computer with a USB cable.

File > Examples > 11.ArduinoISP > Arduino ISP

Select the port of your programmer board from the Tools > Port menu.

Sketch > Upload

Wait for the upload to finish.

You have now created your "Arduino as ISP" programmer.


The next procedure is to do a dummy upload in the Arduino IDE to get it to help generate the command we will use to upload the UnoJoy .hex file to the ATmega16U2:

File > Preferences

Check the box next to "Show verbose output during: upload".

Click the "OK" button.

Sketch > Upload Using Programmer

Wait for the process to fail (it's expected to fail, we don't actually need to do any upload).

Scroll the black console pane of the Arduino IDE window up until you see the avrdude command the Arduino IDE used to do the upload. It will look something like:

/home/per/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude -C/home/per/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -cstk500v1 -P/dev/ttyUSB0 -b19200 -Uflash:w:/tmp/arduino_build_490241/sketch_mar18a.ino.hex:i

Copy and paste this command to a text editor, where you can make the modifications needed to upload to the ATmega16U2.

Change the -p option to atmega16u2

Change the -U option to -Uflash:w:UnoJoy.hex:i

Your command should now look something like this:

/home/per/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude -C/home/per/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf -v -patmega16u2 -cstk500v1 -P/dev/ttyUSB0 -b19200 -Uflash:w:UnoJoy.hex:i

Copy the modified avrdude command to the clipboard.


Now for the upload step!

Open the UnoJoy.hex file: https://raw.githubusercontent.com/AlanChatham/UnoJoy/master/UnoJoy/ATmega8u2Code/HexFiles/UnoJoy.hex

Click the menu button in your browser.

Click "Save page as..."

Select a convenient location to save the file to.

Click the "Save" button.

Open the folder you saved UnoJoy.hex to in a Terminal window.

Paste the modified avrdude command to the command line.

Press Enter.

The upload of UnoJoy.hex should now complete successfully.


If you ever want to undo the change, you can repeat the above procedure, except this time upload the file Arduino-usbserial-uno.hex: https://raw.githubusercontent.com/arduino/ArduinoCore-avr/master/firmwares/atmegaxxu2/Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex

After uploading the Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex, you should then be able to put the ATmega16U2 in DFU mode, but now that you know how to flash the firmware with an ISP programmer, you really have no need for fooling with the DFU business.

I have CH340 arduino. Can I use this as ISP programmer

Yes.