Midiboy not working (no image on display): how to troubleshoot?

Hi

Yesterday I solder all the components.
I power midiboy thru USB cable; first test with a main power adapter, second with the cable plugged in a notebook USB port.
I switch the power switch on … and no image appears on the display.
Also trying in bootloader mode (press button B before switch on).

With a simple multimeter I make these tests:
Volt DC
I measure +5 volt at
atmega Vcc: pin 7
optocoupler Vcc: pin 8
display header Vcc: pin 2

Continuity
I measure 0.5 ohm (tester: beeps) between
opto gnd (pin 5) and atmega gnd (pin 8)
opto gnd (pin 5) and display header gnd (pin 1)

At least the power rail seems to be fine.

I can visit a friend of mine, he has a good digital oscilloscope.
Are there any other test to troubleshoot ?
What about the XTAL or any cpu pin ?

Best regards, Massimo

Can I check if the ATmega is programmed or not?

Hi, please check Pin 6 of ATmega, it should read as a positive voltage, around 4.5V - 5V when it’s powered on.

You can use the MIDI OUT pins marked with green arrow for the black multimeter probe.

If you read a value close to 0V, it means that the ATmega is not running (like due to XTAL issues) or that an unprogrammed chip slipped in during packaging of the kit.

With the Midiboy powered on (I read 5 volt on the display Vcc), on pin 6 of the cpu I read 0,18 Volt.
I don’t know if I have a faulty xtal or a cpu without firmware.

Ciao, Massimo

Hi,
i have the same problem.
=> Black screen after powering up
=> VCC is ok at all components
but 0,07V at pin 6 of the ATMEL
and connected to the pc /var/log/messages log no new usb-device :frowning:
seems the cpu don’t work (firmware?)
how can i fix it?

Hi Martin, it’s possible that you received an unprogrammed ATmega328P by our mistake. Please reach out to us by e-mail (hello@blokas.io) and we’ll send you another chip. :slight_smile:

hi,
i got the new chip last friday and tried it out now.
it looked good the blokas-logo is displayed correctly but:
1243.308608] usb 1-7: new low-speed USB device number 11 using xhci_hcd
[ 1243.437235] usb 1-7: device descriptor read/all, error -71
[ 1243.550485] usb 1-7: new low-speed USB device number 12 using xhci_hcd
[ 1243.678307] usb 1-7: device descriptor read/all, error -71
[ 1243.678346] usb usb1-port7: attempt power cycle
linux dosn’t like him :frowning:
the same at the productive gentoo machine as at patchos@pi400
any hints?

Hi Martin, this could be caused by a physical assembly issue on the board itself, please double check the marked areas in this post:

ok,
i checked the board before inserting the new AT328 and found no faults. i will try to flash an other AT328 myself. can’t be voodoo to get it working :slight_smile:

1 Like

Could you just in case post the pictures of your assembly? Of course there’s that much that can be observed from photos, I’ve seen one Midiboy with a burnt USB data trace so it had no contact, and it was barely visible from up close, I only noticed it after finding out with a multimeter that a contact was not being made between pins expected to be connected together.

ok i checked the circut wit a multimeter:
from the data pins of the USB-Cable are 68Ohm to pins 4 and 5 and 1,5k to pin 6
the Z-Diodes are ok too. Display is working it shows the blokas logo.


Could you double check if the USB port pins are not bridged together? It’s difficult to see from the picture, but the solder seems quite close between the data pins.

Also please try holding down the B button while connecting the USB cable or powering the device on using the switch.

both done, data pins ok, button B pressed more than one time :frowning:

last idea i have is, that the board consume to much power, that would be a typical reason for the usb-errors:
1243.678307] usb 1-7: device descriptor read/all, error -71
[ 1243.678346] usb usb1-port7: attempt power cycle
i will check the current while using it with battery

ok, i checked the board and can’t find any faults.
i tried to upload a sketch via isp and got this message:

Arduino: 1.8.19 (Linux), Board: "Midiboy"

Der Sketch verwendet 9306 Bytes (32%) des Programmspeicherplatzes. Das Maximum sind 28672 Bytes.
Globale Variablen verwenden 1073 Bytes (52%) des dynamischen Speichers, 975 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
***/home/patch/arduino_arm/arduino-1.8.19/hardware/tools/avr/bin/avrdude -C/home/patch/arduino_arm/arduino-1.8.19/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -P/dev/ttyACM0 -b19200 -Uflash:w:/tmp/arduino_build_466915/midichords.ino.hex:i ***

avrdude: Version 6.3-20190619
*** Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/***
*** Copyright (c) 2007-2014 Joerg Wunsch***

*** System wide configuration file is “/home/patch/arduino_arm/arduino-1.8.19/hardware/tools/avr/etc/avrdude.conf”***
*** User configuration file is “/home/patch/.avrduderc”***
*** User configuration file does not exist or is not a regular file, skipping***

*** Using Port : /dev/ttyACM0***
*** Using Programmer : stk500v1***
*** Overriding Baud Rate : 19200***
*** AVR Part : ATmega328P***
*** Chip Erase delay : 9000 us***
*** PAGEL : PD7***
*** BS2 : PC2***
*** RESET disposition : dedicated***
*** RETRY pulse : SCK***
*** serial program mode : yes***
*** parallel program mode : yes***
*** Timeout : 200***
*** StabDelay : 100***
*** CmdexeDelay : 25***
*** SyncLoops : 32***
*** ByteDelay : 0***
*** PollIndex : 3***
*** PollValue : 0x53***
*** Memory Detail :***

*** Block Poll Page Polled***
*** Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack***
*** ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------***
*** eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff***
*** flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff***
*** lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00***
*** hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00***
*** efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00***
*** lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00***
*** calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00***
*** signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00***

*** Programmer Type : STK500***
*** Description : Atmel STK500 Version 1.x firmware***
*** Hardware Version: 2***
*** Firmware Version: 1.18***
*** Topcard : Unknown***
*** Vtarget : 0.0 V***
*** Varef : 0.0 V***
*** Oscillator : Off***
*** SCK period : 0.1 us***

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x000000 (retrying)

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

avrdude: Device signature = 0x000000 (retrying)

Beim Hochladen des Sketches ist ein Fehler aufgetreten
Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
*** Double check connections and try again, or use -F to override***
*** this check.***

avrdude done. Thank you.

so i double checked all connections
it looks all fine

but it seems that the 328 hate me

How did you connect the ATmega328P to your programmer? Its fuses are set to use external crystal clock, so you must provide 8MHz - 20MHz signal on the XTAL pins for it to respond. The circuit for it is very simple, requires 2 x18pF ceramic caps and a crystal in the correct frequency range, see Q1 here: https://github.com/BlokasLabs/Midiboy-Schematics/blob/master/Midiboy.pdf

Also, are you using 3.3V for power supply or 5V during programming?