If you are have the Message "No FabScanPi HAT or compatible device found" in your log file you need to check the following options.
- First double check the solder joints of the 40-pin Header of the FabScanPi-HAT. If you are sure that there are no 'cold' solder joints move on reading, otherwise resolder those joints. Try again and have a look to the logs. If the error still occurs continue reading with 3.
- Check if your fabscanpi-server version is 0.8.0 or higher. Have a look into your default.config.json and check the serial baudrate. It should be 57600 for fabscanpi-server >= 0.4.2. If you changed the baudrate and the error still occurs continue with reading 3.
- Your bootloader is bricked, what means that you need to flash a new bootloader to your FabScanPi HAT. Continue with reading "How to flash the FabScanPi HAT Bootloader?"
How to flash the Bootloader?
! If you want to leave the HAT connected to the pi during the flashing process. Be sure you stopped the FabScanPi Server. You can use the following command to do that. !
$ sudo /etc/init.d/fabscanpi-server stop
Option A: Using Raspberry Pi for flashing.
Connect the FabScanPi HAT pins as described below. (solder some wires to the solder pads). Use a resistor 2k2...5k6 in series for every signal. (see picture for details)
RPi -> Target IO25 -> Reset IO11 -> SCK IO10 -> MOSI IO9 -> MISO GND -> GND
Download bootloader:
$ wget https://github.com/watterott/RPi-UNO-HAT/raw/master/docs/bloader.hex
Edit the file avrdude.conf and add the following lines:
$ sudo nano /usr/local/etc/avrdude.conf programmer id = "pi_isp";
desc = "GPIO bitbang";
type = "linuxgpio";
reset = 25; sck = 11;
mosi = 10;
miso = 9;
;
Flash bootloader:
$ avrdude -c pi_isp -p m328p -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:m
Option B: Using Arduino Uno (device ttyACM0 or ttyUSB0 ) for flashing.
Connection (Arduino Uno connected to RPi via USB):
Uno -> Target
D10 -> Reset
D13 -> SCK
D11 -> MOSI
D12 -> MISO
GND -> GND
Download bootloader and ISP firmware:
$ wget https://raw.githubusercontent.com/watterott/RPi-UNO-HAT/master/software/bloader.hex $ wget https://raw.githubusercontent.com/watterott/RPi-UNO-HAT/master/software/isp.hex
Flash ISP firmware to Arduino Uno:
$ avrdude -c arduino -P /dev/ttyUSB0 -b 115200 -p m328p -e -U flash:w:isp.hex:i
or
$ avrdude -c arduino -P /dev/ttyACM0 -b 115200 -p m328p -e -U flash:w:isp.hex:i
Flash bootloader:
$ avrdude -c stk500v1 -P /dev/ttyUSB0 -b 19200 -p m328p -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:m
or
$ avrdude -c stk500v1 -P /dev/ttyACM0 -b 19200 -p m328p -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:m
If you are have the Message "No FabScanPi HAT or compatible device found" in your log file you need to check the following options.
- First double check the solder joints of the 40-pin Header of the FabScanPi-HAT. If you are sure that there are no 'cold' solder joints move on reading, otherwise resolder those joints. Try again and have a look to the logs. If the error still occurs continue reading with 3.
- Check if your fabscanpi-server version is 0.8.0 or higher. Have a look into your default.config.json and check the serial baudrate. It should be 57600 for fabscanpi-server >= 0.4.2. If you changed the baudrate and the error still occurs continue with reading 3.
- Your bootloader is bricked, what means that you need to flash a new bootloader to your FabScanPi HAT. Continue with reading "How to flash the FabScanPi HAT Bootloader?"
How to flash the Bootloader?
! If you want to leave the HAT connected to the pi during the flashing process. Be sure you stopped the FabScanPi Server. You can use the following command to do that. !
$ sudo /etc/init.d/fabscanpi-server stopOption A: Using Raspberry Pi for flashing.
Connect the FabScanPi HAT pins as described below. (solder some wires to the solder pads). Use a resistor 2k2...5k6 in series for every signal. (see picture for details)
RPi -> Target IO25 -> Reset IO11 -> SCK IO10 -> MOSI IO9 -> MISO GND -> GNDDownload bootloader:
$ wget https://github.com/watterott/RPi-UNO-HAT/raw/master/docs/bloader.hexEdit the file avrdude.conf and add the following lines:
$ sudo nano /usr/local/etc/avrdude.conf programmer id = "pi_isp";
desc = "GPIO bitbang";
type = "linuxgpio";
reset = 25; sck = 11;
mosi = 10;
miso = 9;
;Flash bootloader:
$ avrdude -c pi_isp -p m328p -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:mOption B: Using Arduino Uno (device ttyACM0 or ttyUSB0 ) for flashing.
Connection (Arduino Uno connected to RPi via USB):
Uno -> Target
D10 -> Reset
D13 -> SCK
D11 -> MOSI
D12 -> MISO
GND -> GNDDownload bootloader and ISP firmware:
$ wget https://raw.githubusercontent.com/watterott/RPi-UNO-HAT/master/software/bloader.hex $ wget https://raw.githubusercontent.com/watterott/RPi-UNO-HAT/master/software/isp.hexFlash ISP firmware to Arduino Uno:
$ avrdude -c arduino -P /dev/ttyUSB0 -b 115200 -p m328p -e -U flash:w:isp.hex:ior
$ avrdude -c arduino -P /dev/ttyACM0 -b 115200 -p m328p -e -U flash:w:isp.hex:iFlash bootloader:
$ avrdude -c stk500v1 -P /dev/ttyUSB0 -b 19200 -p m328p -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:mor
$ avrdude -c stk500v1 -P /dev/ttyACM0 -b 19200 -p m328p -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:m
Thanks Mario, flashing the bootloader worked for me! So happy.
I download this hex file : https://github.com/watterott/RPi-UNO-HAT/blob/master/software/bloader.hex
and used to flash this: sudo avrdude -c pi_isp -p m328p -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:m
I have figured out that I needed to be in the folder /etc to edit the proper .Conf file, I still however get an error of unable to start avr rc=1
Once I get a chance I will add clips from the log file, I have added it to another post with this same topic
I may have screwed up soldering to the reset button pad on the hat I'm currently using, so I'm going to solder pins to the other hat I have that has the same no bootloader issue
*heres a clip of the logfile after editing the proper file
pi@fabscanpi:~ $ sudo /etc/init.d/fabscanpi-server stop fabscanpi-server stopped.
pi@fabscanpi:~ $ sudo avrdude -c pi_isp -p m328p -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:m
avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
pi@fabscanpi:~ $ sudo avrdude -F -c pi_isp -p m328p -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:m
avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x10e8db
avrdude: Expected signature for ATmega328P is 1E 95 0F
avrdude done. Thank you.
*curious if any pad on the reset button can be soldered to since there are 4 pads , i think maybe i screwed up one trying to solder to it
*if i try again
pi@fabscanpi:/usr/local/etc $ avrdude -F -c pi_isp -p m328 -e -U flash:w:bloader.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m -U lock:w:0x0F:m
Can't export GPIO 24, already exported/busy?: Device or resource busy
avrdude done. Thank you.
*or i get this error as well
Can't open gpioX/direction: Permission denied
avrdude done. Thank you.
*(dont mind the pin 24 change i did that to see if it was just pin 25 not working as both pins are giving this error when running the command