Bricked my voicecards

Hello,

I tried to customize and compile the AMBIKA code.
But it seems I screwed it up hard. :cold_sweat: I could emergency-reload a working controller firmware, but on the firmware update page, it now says “port 1 device ?” etc.
It seems now I cannot update the voicecard firmware anymore.
Also all 6 voice cards emit a sine tone around 1000 Hz (the frequency is a bit different for each voice card).

How can I fix this? Do I need to get an ISP programmer? Or can I do this with my Arduino UNO?

Thanks!

Hi guys,

I fiddled around a bit.
I figured out how to use my Arduino as ISP (https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP), removed all but one voicecard, connected the arduino to the ISP header of the remaining voicecard, and tried to flash the original hex files (Mutable Instruments | Ambika - Firmware installation).

I still get “port 1 device ?”, and the voicecard is now silent.

Does this look alright? It sometimes says “failed”, but then seem to succeed writing in the next line?

I appreciate any tips! Thanks!

avrdude -B 100 -V -p m328p -c arduino -P /dev/ttyACM2 -e -u -U efuse:w:0xfd:m -U hfuse:w:0xde:m -U lfuse:w:0xff:m -U lock:w:0x2f:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: reading input file "0xfd"
avrdude: writing efuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;  
Writing | ################################################## | 100% 0.05s

avrdude: 1 bytes of efuse written
avrdude: reading input file "0xde"
avrdude: writing hfuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;  
Writing | ################################################## | 100% 0.05s

avrdude: 1 bytes of hfuse written
avrdude: reading input file "0xff"
avrdude: writing lfuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;  
Writing | ################################################## | 100% 0.06s

avrdude: 1 bytes of lfuse written
avrdude: reading input file "0x2f"
avrdude: writing lock (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;  
Writing | ################################################## | 100% 0.05s

avrdude: 1 bytes of lock written

avrdude done.  Thank you.
avrdude -B 1 -V -p m328p -c arduino -P /dev/ttyACM2 -U flash:w:ambika_voicecard.hex:i -U flash:w:ambika_voicecard_boot.hex:i -U eeprom:w:ambika_voicecard_eeprom_golden.hex:i -U lock:w:0x2f:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "ambika_voicecard.hex"
avrdude: writing flash (28506 bytes):

Writing | ################################################## | 100% 4.79s

avrdude: 28506 bytes of flash written
avrdude: reading input file "ambika_voicecard_boot.hex"
avrdude: writing flash (32762 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 32762 bytes of flash written
avrdude: reading input file "ambika_voicecard_eeprom_golden.hex"
avrdude: writing eeprom (1024 bytes):

Writing | ################################################## | 100% 4.19s

avrdude: 1024 bytes of eeprom written
avrdude: reading input file "0x2f"
avrdude: writing lock (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;  
Writing | ################################################## | 100% 0.06s

avrdude: 1 bytes of lock written

avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.

avrdude tells me the fuse bits are all 0.
I’m confused. Unfortunately I don’t have the in-depth experience with microcontrollers.
I need help please :pleading_face:

I think I finally managed to flash a voice card. I had not put a 10uF capacitor between reset and ground on the UNO, and did not specify the baudrate.

export ARDUINOPORT=/dev/ttyACM0 

sudo chmod a+rw $ARDUINOPORT

avrdude -b 19200 -B 100 -V -p m328p -c arduino -P $ARDUINOPORT -e -u -U efuse:w:0xfd:m -U hfuse:w:0xde:m -U lfuse:w:0xff:m -U lock:w:0x2f:m

avrdude -b 19200 -B 10 -V -p m328p -c arduino -P $ARDUINOPORT -U flash:w:ambika_voicecard.hex:i -U flash:w:ambika_voicecard_boot.hex:i -U eeprom:w:ambika_voicecard_eeprom_golden.hex:i -U lock:w:0x2f:m

Here is a photo of my little DIY setup:
https://imgur.com/NHi4HGa