my first SMR4 voicecard is working.
I have soldered three new ones, but the data led on them do not light up.
the firmware are not uploaded on the chips, that may explain why they do not light up?
still, I could not upload the firmware while the voicecard is not plugged into the mainboard. I could upload it on the voicecard that was already working, while it was powered up (but not with the other new ones even if they are connected to the mainboard). Is it possible to flash a firmware on an unplugged/unpowered voicecard? I use an tinyusbisp programmer…
while on the course to check everything, I noticed that Q1 on the voicecard that is already working is reverse-mounted :-/ But the voicecard is working ! How can it be possible?
You always flash with VCC coming from the programmer. And how isn’t it working? Are you using avrdude? What does it say?
I might be totally wrong but Q1 doesn’t seem to play a very important role…on the schematic it says I_GAIN … I suppose you’re just lacking a little feature. Just desolder and fix it
> - the firmware are not uploaded on the chips, that may explain why they do not light up?
Why would the LEDs light up? They indicate that the MCU receives data/notes. The MCU is not receiving data since it’s not doing anything at all in its blank state.
> still, I could not upload the firmware while the voicecard is not plugged into the mainboard
Some programmers power the board, some programmers do not and the board need to be powered externally. Check with the user manual of your programmer.
> (but not with the other new ones even if they are connected to the mainboard
What happens when you do that? Have you programmed the fuses correctly and are you using the right speed?
> How can it be possible?
Not surprised here. The transistor is in the feedback loop of an op-amp, so in short the op-amp does whatever is necessary with its output to make things work.
Check Jumper JP3 on your programmer…
A propos of nothing, I’ve used two Chinese-made USBAsp programmers bought from eBay of differing models, and both have been able to power the entire 5V system of the Ambika (I use a Kypcera/Optrex display with very frugal backlight, however) Probably best to program the voicecards before plugging them in, in any case…
+1 for what gwaidan said, this is how you get power to the connected board. I’ve used the Adafruit TinyISP for programming my Ambika cards without any problems, and they were NOT plugged into the mainboard when doing so.
You can also see that I had a similar problem when programming my MIDIpal chip until I figured the powering stuff out…
I use the AVRisp mkII and it needs the voicecards to be powered bij the mainboard.
Thanks all for you help.
> Why would the LEDs light up? They indicate that the MCU receives data/notes. The MCU is not receiving data since it’s not doing anything at all in its blank state.
yes, that was one of my hypotheses, I was not sure whether the voicecard ‘pulls’ data or if the mainboard ‘pushes’ data.
> Check Jumper JP3 on your programmer….
Thank you, that did the trick with the already working board. Still no luck with the other ones though.
> What happens when you do that? Have you programmed the fuses correctly and are you using the right speed?
Actually I compiled the firmware (I had to tweak a little bit the code, I’ll send the modifications). Hence I use ‘make upload’ so I guess the command line arguments are correct (and the upload works with the already working card).
What happens is that avrdude can’t connect to the chip:
/opt/local/bin/avrdude -V -p m328p -c usbtiny -P usb \\
-B 1 -U flash:w:build/ambika_voicecard/ambika_voicecard.hex:i -U lock:w:0x2f:m
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
The only thing that may have an impact is that I bought six 220n capacitors at a local store, larger yellow ones that the two ones that I got from mouser (I made an error on quantity when I ordered the parts, I received only two, and for the sake of consistence, I soldered the six ones I bought locally). I can try to unsolder two of them on a voicecard and replace them with the two from mouser, but before doing that I want to make sure that this is actually necessary (I had some difficulties to unsolder the reversed transistor).
Those caps should have nothing to do with the MCU on the voicecard so don’t replace them.
So did you try to flash the voicecards while they are in the Ambika? Did you make sure the voicecards get some juice? Did you do voltage tests on the cards? Did you try to flash them in the same slot as the working card?
I could flash the working card using the power provided by the programmer (to be clear: the voicecard was not plugged into the mainboard).
So I guess that the other cards get as much power as the already working one.
Ok I tested voltage. There is some voltage (~5V) on 3 of the 6 pins of the ISP connector.
Which pin should I test on the MCU? I tried some of them but could not get voltage…
> Have you programmed the fuses correctly?
well I guess not, I figured out that I needed to use the command (that you put on the website):
avrdude -B 100 -V -p m328p -c avrispmkII -P usb -e -u -U efuse:w:0xfd:m -U hfuse:w:0xde:m -U lfuse:w:0xff:m -U lock:w:0x2f:m
which I guess is the ‘fuse’ command. I erroneously thought that ‘make upload’ would do it too.
Sorry for the inconvenience.
You are not using the right commande to flash the voicecard.
“make upload” writes the firmware to a voicecard that has already been initialized with the correct fuses - this command is typically used to update the firmware on an already working voicecard.
Please read the documentation
Yes, I chose ‘option 1’ and compiled the code, got errors, then wanted to accelerate the process using a wrong make command, my fault.
I should have begun with ‘option 2’.
All new voicecards are working now, many thanks for your help.
In order to get a 4 voices Ambika I need another transistor now that I cut and unsoldered the reversed one from my already working card, but this is another story…