HATs for balenaFin

Hi there,

I was wondering what would need to be done to get a specific HAT to work with the BalenaFin. We use PiSound (from Blokas) HATs on our RPIs, but recently fell in love with the BalenaFin for obvious reasons, but the HAT does not seem to work properly with the drivers installed. We did include the blob provided on your git to see if that would help, but it still isn’t detected.

If you have any directions to point me in to get it to work, we’d greatly appreciate it!

Thanks,
Kevitto

Hi @Kevitto ! I confirm it should just work :tm: the same way as the RPI - can you please provide me more info on your environment (raspbian/balenaOS/etc? - what version? ) and the installation steps you performed? afaikt it should only require you to load the pisound overlay from config.txt ( or if you are using balenaCloud, set it within the BALENA_HOST_CONFIG_dtoverlay config variable. )

@curcuz Hello! Thank you for the quick response. I’m running raspbian version 9.9 and not using balenaCloud. I’ve loaded the pisound overlay from config.txt as well as the balena-fin.dtbo (balena first, pisound second). The OS is a working copy of raspbian that used to run on my raspberry pi 3b+ and the BalenaFin is a 1.1 model running a 3b+ lite control module. Are there other configurations I need to have done to work from an already installed 3B+ installation?

Thank you for your help,

Kevitto

Here is the output of my dmesg as well, if that can help.

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.19.57-v7+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1244 SMP Thu Jul 4 18:45:25 BST 2019
[ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Raspberry Pi Compute Module 3 Plus Rev 1.0
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] cma: Reserved 8 MiB at 0x3dc00000
[ 0.000000] On node 0 totalpages: 255488
[ 0.000000] Normal zone: 2246 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 255488 pages, LIFO batch:63
[ 0.000000] random: get_random_bytes called from start_kernel+0xac/0x4b4 with crng_init=0
[ 0.000000] percpu: Embedded 17 pages/cpu s39488 r8192 d21952 u69632
[ 0.000000] pcpu-alloc: s39488 r8192 d21952 u69632 alloc=17*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 253242
[ 0.000000] Kernel command line: coherent_pool=1M bcm2708_fb.fbwidth=1440 bcm2708_fb.fbheight=900 bcm2708_fb.fbdepth=16 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:12:F0:E0 vc_mem.mem_base=0x3f000000 vc_mem.mem_size=0x3f600000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=PARTUUID=df72fdd3-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 989824K/1021952K available (8192K kernel code, 629K rwdata, 2176K rodata, 1024K init, 821K bss, 23936K reserved, 8192K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xbe800000 - 0xff800000 (1040 MB)
lowmem : 0x80000000 - 0xbe600000 ( 998 MB)
modules : 0x7f000000 - 0x80000000 ( 16 MB)
.text : 0x(ptrval) - 0x(ptrval) (9184 kB)
.init : 0x(ptrval) - 0x(ptrval) (1024 kB)
.data : 0x(ptrval) - 0x(ptrval) ( 630 kB)
.bss : 0x(ptrval) - 0x(ptrval) ( 822 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] ftrace: allocating 26351 entries in 78 pages
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[ 0.000007] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[ 0.000023] Switching to timer-based delay loop, resolution 52ns
[ 0.000281] Console: colour dummy device 80x30
[ 0.000909] console [tty1] enabled
[ 0.000965] Calibrating delay loop (skipped), value calculated using timer frequency… 38.40 BogoMIPS (lpj=192000)
[ 0.001010] pid_max: default: 32768 minimum: 301
[ 0.001366] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.001402] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.002332] CPU: Testing write buffer coherency: ok
[ 0.002810] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.003484] Setting up static identity map for 0x100000 - 0x10003c
[ 0.003653] rcu: Hierarchical SRCU implementation.
[ 0.004476] smp: Bringing up secondary CPUs …
[ 0.005332] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.006264] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.007131] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.007251] smp: Brought up 1 node, 4 CPUs
[ 0.007334] SMP: Total of 4 processors activated (153.60 BogoMIPS).
[ 0.007358] CPU: All CPU(s) started in HYP mode.
[ 0.007378] CPU: Virtualization extensions available.
[ 0.008373] devtmpfs: initialized
[ 0.021136] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4
[ 0.021428] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.021476] futex hash table entries: 1024 (order: 4, 65536 bytes)
[ 0.022087] pinctrl core: initialized pinctrl subsystem
[ 0.022963] NET: Registered protocol family 16
[ 0.025975] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[ 0.031674] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.031710] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.031932] Serial: AMBA PL011 UART driver
[ 0.034344] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[ 0.069866] bcm2835-dma 3f007000.dma: DMA legacy API manager at (ptrval), dmachans=0x1
[ 0.071789] SCSI subsystem initialized
[ 0.072043] usbcore: registered new interface driver usbfs
[ 0.072119] usbcore: registered new interface driver hub
[ 0.072232] usbcore: registered new device driver usb
[ 0.090298] raspberrypi-firmware soc:firmware: Attached to firmware from 2019-07-09 14:41, variant start_cd
[ 0.100129] raspberrypi-firmware soc:firmware: Firmware hash is 6c3fe3f096a93de3b34252ad98cdccadeb534be2
[ 0.111805] clocksource: Switched to clocksource arch_sys_counter
[ 0.200613] VFS: Disk quotas dquot_6.6.0
[ 0.200724] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.200935] FS-Cache: Loaded
[ 0.201179] CacheFiles: Loaded
[ 0.211223] NET: Registered protocol family 2
[ 0.212041] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
[ 0.212106] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.212237] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.212442] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.212601] UDP hash table entries: 512 (order: 2, 16384 bytes)
[ 0.212668] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[ 0.213000] NET: Registered protocol family 1
[ 0.213615] RPC: Registered named UNIX socket transport module.
[ 0.213642] RPC: Registered udp transport module.
[ 0.213664] RPC: Registered tcp transport module.
[ 0.213686] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.215374] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[ 0.218369] Initialise system trusted keyrings
[ 0.218574] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[ 0.228421] FS-Cache: Netfs ‘nfs’ registered for caching
[ 0.229001] NFS: Registering the id_resolver key type
[ 0.229047] Key type id_resolver registered
[ 0.229069] Key type id_legacy registered
[ 0.229100] nfs4filelayout_init: NFSv4 File Layout Driver Registering…
[ 0.231393] Key type asymmetric registered
[ 0.231423] Asymmetric key parser ‘x509’ registered
[ 0.231494] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[ 0.231698] io scheduler noop registered
[ 0.231723] io scheduler deadline registered (default)
[ 0.231996] io scheduler cfq registered
[ 0.232021] io scheduler mq-deadline registered (default)
[ 0.232045] io scheduler kyber registered
[ 0.235125] bcm2708_fb soc:fb: FB found 1 display(s)
[ 0.272141] Console: switching to colour frame buffer device 180x56
[ 0.292877] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 1440x900
[ 0.295348] bcm2835-rng 3f104000.rng: hwrng registered
[ 0.295845] vc-mem: phys_addr:0x00000000 mem_base=0x3f000000 mem_size:0x3f600000(1014 MiB)
[ 0.296597] vc-sm: Videocore shared memory driver
[ 0.297068] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[ 0.308166] brd: module loaded
[ 0.318511] loop: module loaded
[ 0.319271] Loading iSCSI transport class v2.0-870.
[ 0.320134] libphy: Fixed MDIO Bus: probed
[ 0.320364] usbcore: registered new interface driver lan78xx
[ 0.320583] usbcore: registered new interface driver smsc95xx
[ 0.320762] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[ 0.348788] dwc_otg 3f980000.usb: base=(ptrval)
[ 0.549173] Core Release: 2.80a
[ 0.549281] Setting default values for core params
[ 0.549450] Finished setting default values for core params
[ 0.749917] Using Buffer DMA mode
[ 0.750026] Periodic Transfer Interrupt Enhancement - disabled
[ 0.750194] Multiprocessor Interrupt Enhancement - disabled
[ 0.750358] OTG VER PARAM: 0, OTG VER FLAG: 0
[ 0.750499] Dedicated Tx FIFOs mode
[ 0.757017] WARN::dwc_otg_hcd_init:1045: FIQ DMA bounce buffers: virt = bdd04000 dma = 0xfdd04000 len=9024
[ 0.763333] FIQ FSM acceleration enabled for :
Non-periodic Split Transactions
Periodic Split Transactions
High-Speed Isochronous Endpoints
Interrupt/Control Split Transaction hack enabled
[ 0.793828] dwc_otg: Microframe scheduler enabled
[ 0.793888] WARN::hcd_init_fiq:457: FIQ on core 1
[ 0.799996] WARN::hcd_init_fiq:458: FIQ ASM at 80650d3c length 36
[ 0.806183] WARN::hcd_init_fiq:497: MPHI regs_base at be810000
[ 0.812371] dwc_otg 3f980000.usb: DWC OTG Controller
[ 0.818526] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[ 0.824700] dwc_otg 3f980000.usb: irq 56, io mem 0x00000000
[ 0.830829] Init: Port Power? op_state=1
[ 0.836861] Init: Power Port (0)
[ 0.843062] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[ 0.849204] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.855361] usb usb1: Product: DWC OTG Controller
[ 0.861526] usb usb1: Manufacturer: Linux 4.19.57-v7+ dwc_otg_hcd
[ 0.867708] usb usb1: SerialNumber: 3f980000.usb
[ 0.874440] hub 1-0:1.0: USB hub found
[ 0.880562] hub 1-0:1.0: 1 port detected
[ 0.887136] dwc_otg: FIQ enabled
[ 0.887143] dwc_otg: NAK holdoff enabled
[ 0.887148] dwc_otg: FIQ split-transaction FSM enabled
[ 0.887159] Module dwc_common_port init
[ 0.887449] usbcore: registered new interface driver usb-storage
[ 0.893650] mousedev: PS/2 mouse device common for all mice
[ 0.900585] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[ 0.906934] bcm2835-cpufreq: min=600000 max=1200000
[ 0.913542] sdhci: Secure Digital Host Controller Interface driver
[ 0.919714] sdhci: Copyright© Pierre Ossman
[ 0.926339] sdhost-bcm2835 3f202000.mmc: could not get clk, deferring probe
[ 0.932798] sdhci-pltfm: SDHCI platform and OF driver helper
[ 0.939550] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.945896] hidraw: raw HID events driver © Jiri Kosina
[ 0.952291] usbcore: registered new interface driver usbhid
[ 0.958416] usbhid: USB HID core driver
[ 0.965285] vchiq: vchiq_init_state: slot_zero = (ptrval), is_master = 0
[ 0.972933] [vc_sm_connected_init]: start
[ 0.979183] vc_vchi_sm_init: failed to open VCHI service (-1)
[ 0.979192] [vc_sm_connected_init]: failed to initialize shared memory service
[ 0.991477] [vc_sm_connected_init]: end - returning -1
[ 0.999005] Initializing XFRM netlink socket
[ 1.005152] NET: Registered protocol family 17
[ 1.011436] Key type dns_resolver registered
[ 1.018072] Registering SWP/SWPB emulation handler
[ 1.024900] registered taskstats version 1
[ 1.031025] Loading compiled-in X.509 certificates
[ 1.044411] uart-pl011 3f201000.serial: cts_event_workaround enabled
[ 1.050743] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 81, base_baud = 0) is a PL011 rev2
[ 2.059418] console [ttyAMA0] enabled
[ 2.071370] sdhost: log_buf @ (ptrval) (fdd07000)
[ 2.082636] Indeed it is in host mode hprt0 = 00021501
[ 2.182473] random: fast init done
[ 2.204682] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[ 2.217711] of_cfs_init
[ 2.226424] of_cfs_init: OK
[ 2.235941] Waiting for root device PARTUUID=df72fdd3-02…
[ 2.308668] mmc0: new high speed MMC card at address 0001
[ 2.321432] mmcblk0: mmc0:0001 DG4016 14.7 GiB
[ 2.332147] usb 1-1: new high-speed USB device number 2 using dwc_otg
[ 2.345638] mmcblk0boot0: mmc0:0001 DG4016 partition 1 4.00 MiB
[ 2.358102] Indeed it is in host mode hprt0 = 00001101
[ 2.430357] mmcblk0boot1: mmc0:0001 DG4016 partition 2 4.00 MiB
[ 2.442971] mmcblk0rpmb: mmc0:0001 DG4016 partition 3 4.00 MiB, chardev (246:0)
[ 2.461303] mmcblk0: p1 p2
[ 2.495041] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 2.509828] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[ 2.534402] devtmpfs: mounted
[ 2.549322] Freeing unused kernel memory: 1024K
[ 2.560781] Run /sbin/init as init process
[ 2.622133] usb 1-1: New USB device found, idVendor=0424, idProduct=9514, bcdDevice= 2.00
[ 2.636980] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 2.651502] hub 1-1:1.0: USB hub found
[ 2.661972] hub 1-1:1.0: 5 ports detected
[ 2.991859] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[ 3.032500] systemd[1]: System time before build time, advancing clock.
[ 3.132149] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00, bcdDevice= 2.00
[ 3.147333] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.164341] smsc95xx v1.0.6
[ 3.186273] NET: Registered protocol family 10
[ 3.198760] Segment Routing with IPv6
[ 3.239496] random: systemd: uninitialized urandom read (16 bytes read)
[ 3.255551] random: systemd: uninitialized urandom read (16 bytes read)
[ 3.275600] systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[ 3.275938] smsc95xx 1-1.1:1.0 eth0: register ‘smsc95xx’ at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:12:f0:e0
[ 3.308277] systemd[1]: Detected architecture arm.
[ 3.374018] systemd[1]: Set hostname to .
[ 3.421903] usb 1-1.4: new low-speed USB device number 4 using dwc_otg
[ 3.446887] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read)
[ 3.475648] uart-pl011 3f201000.serial: no DMA platform data
[ 3.601380] usb 1-1.4: New USB device found, idVendor=046d, idProduct=c31c, bcdDevice=64.02
[ 3.617448] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.632355] usb 1-1.4: Product: USB Keyboard
[ 3.644174] usb 1-1.4: Manufacturer: Logitech
[ 3.674132] input: Logitech USB Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/0003:046D:C31C.0001/input/input0
[ 3.762659] hid-generic 0003:046D:C31C.0001: input,hidraw0: USB HID v1.10 Keyboard [Logitech USB Keyboard] on usb-3f980000.usb-1.4/input0
[ 3.813175] input: Logitech USB Keyboard Consumer Control as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.1/0003:046D:C31C.0002/input/input1
[ 3.912118] input: Logitech USB Keyboard System Control as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.1/0003:046D:C31C.0002/input/input2
[ 3.934488] hid-generic 0003:046D:C31C.0002: input,hiddev96,hidraw1: USB HID v1.10 Device [Logitech USB Keyboard] on usb-3f980000.usb-1.4/input1
[ 3.956666] systemd[1]: Listening on Syslog Socket.
[ 3.980901] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[ 4.030771] systemd[1]: Reached target Swap.
[ 4.054161] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[ 4.080180] systemd[1]: Listening on udev Kernel Socket.
[ 4.104592] systemd[1]: Listening on Journal Socket.
[ 4.128493] systemd[1]: Listening on Journal Socket (/dev/log).
[ 4.229667] i2c /dev entries driver
[ 4.949033] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 5.074136] systemd-journald[114]: Received request to flush runtime journal from PID 1
[ 5.385797] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[ 5.393633] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[ 5.393651] [vc_sm_connected_init]: start
[ 5.394051] vc_sm_cma_vchi_init: failed to open VCHI service (-1)
[ 5.394064] [vc_sm_connected_init]: failed to initialize shared memory service
[ 5.403084] media: Linux media interface: v0.10
[ 5.502510] videodev: Linux video capture interface: v2.00
[ 5.544469] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 5.544616] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 5.563039] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[ 5.576917] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[ 5.579769] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[ 5.588436] bcm2835_mmal_vchiq: Failed to open VCHI service connection (status=-1)
[ 5.612213] bcm2835_mmal_vchiq: Failed to open VCHI service connection (status=-1)
[ 5.612551] bcm2835_audio soc:audio: card created with 8 channels
[ 5.625916] pisound: Searching for spi device…
[ 5.625935] pisound: Found!
[ 5.731958] pisound: Reading card info failed: -22
[ 5.732006] pisound: pisnd_spi_init failed: -22
[ 5.732060] snd-rpi-pisound: probe of soc:sound failed with error -22
[ 6.858349] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 6.910589] cfg80211: Loaded X.509 cert ‘sforshee: 00b28ddf47aef9cea7’
[ 7.314680] smsc95xx 1-1.1:1.0 eth0: hardware isn’t capable of remote wakeup
[ 7.315470] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 7.535035] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SSFS
[ 8.828692] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 8.830938] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xD1E1
[ 62.644028] random: crng init done
[ 62.644040] random: 7 urandom warning(s) missed due to ratelimiting
[ 63.747097] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[ 63.750642] Bridge firewalling registered
[ 64.304843] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready

It seems like the BalenaFin will not take any HATs that I have over here. Status lights on the HATs never show up and my mini screens never turn on the backlight. I’m starting to suspect this might be a defective board.

Am I missing something? Do I have to ‘turn on’ GPIO pins, or power to the pins?

Thanks,
Kevitto

Hello @Kevitto ,

If the HATs are not being powered on, the most probable cause is that the fuse that protects the HAT power pins has been blown.

There’s a quick test you can perform to see if it’s indeed a blown fuse. If you switch the fuses as shown here:

and the balenaFin doesn’t power up, it means that the HAT fuse is causing the issues. This usually happens when plugging a faulty HAT or if the HAT hasn’t been properly connected.

Cheers,
Nico

The fuse has been replaced and I can confirm it works. But the PiSound doesn’t work still. I guess we’ll be looking for an alternative to the BalenaFin. Thank you for your help.

Hello @Kevitto, glad you found the problem. Could you please tell us a bit more about the issues you’re facing with the PiSound HAT?

Cheers,
Nico.

Hey @Kevitto the balenaFin is 100% compatible with the HAT specification and has its header mapped exactly as the rpi3/rpi3+ . The issue you are facing must be sw related and if you could share more info I’m pretty confident we could help figuring it out

Ok, I’ll try to give as much information as possible. We use the PiSound HAT as a sound acquisition card, it comes with a tiny software bundle to run it, in which it starts with a Bluetooth sync. I currently reinstalled Raspbian on the balenaFin for me to remove as many possible issues as I could, but the PiSound never initializes. I am running Raspbian Stretch 9.9 Lite (Linux raspberrypi 4.19.57-v7+ #1244), and the DMESG I pasted earlier is no longer the same, since the issue with the fuse was resolved.

Once installed, the software tells me the PiSound is not found, but I’ve installed about 100 of those on RPI 3B and 3B+, and I’ve never encountered this issue. I have a screen module for 3B+, and it seems to work with the GPIO pins, but not the PiSound. It states it uses 5.1V on a normal PI, don’t know if there’s something with the amount of power the BalenaFin can provide.

Thanks for all your help, ask away if ever you need any more information.

Kevin

it comes with a tiny software bundle to run it

@Kevitto thanks for the info - is this software bundle open source? can you please point it to me?

Also, can you please try with our maintained version of raspbian for the balenaFin? https://www.balena.io/fin/1.1/docs/downloads/

Yes, it’s here: https://blokas.io/pisound/install-pisound.sh
I am currently using the maintained version of raspbian for tests, because I figured if I can get that one running I can figure out what the difference is between yours and the one I’m using.

@Kevitto I didn’t fully understand if you were using our version of Raspbian or the standard RPi one.

In any case, since the PiSound uses the I2C interface, you will need to either use our pre-configured version of Raspbian or configure yours using the files available here.

Cheers,
Nico.

Yes, sorry. I meant to say I am using YOUR maintained version of raspbian. Specifically the one built for BalenaFin with the right dt-overlay and fixes.

@Kevitto we’ve ordered a PiSound to test it internally and provide any additional configuration steps if required. As Carlo mentioned above, the balenaFin is fully compatible with the HAT specification, so it should be a SW/configuration issue.

I’ll get back to you as soon as I have news.

Cheers,
Nico.

I… Holy crap, I seriously underestimated your team. I apologize profusely for that. That is great news! Please keep me posted on any developments, and I will be sure to follow-up!

Thank you so much,

Kevitto

1 Like

@Kevitto just to keep you posted, I got a PiSound HAT here today so will test it on the Fin v1.1 and see if we can work out what’s going on.

Hey @Kevitto, I got a chance to play with this today.

I first tried our version of Raspbian Lite for the balenaFin (available here). To get the pisound to work on this OS, I added dtoverlay=pisound to the bottom of /boot/config.txt after dtoverlay=balena-fin-updated.

I next tried the latest Raspbian Buster Lite (available here), for this I had to add dtoverlay=pisound and dtoverlay=balena-fin.

After I added these overlays the pisound-config tool reported the device information and I used speaker-test -c2 -twav -l7 to test the sound output via the 5.25mm jack on the pisound after changing the default system soundcard to pisound with the config tool.

In both cases I added the extra overlay to config.txt before installing the pisound software using curl https://blokas.io/pisound/install-pisound.sh | sh.

I hope this helps, let us know how you get on.

You guys are great! It works! Even on the original build with adding the overlay for balena-fin-updated!

Thank you so much!

Your team is amazing, and I cannot commend your responses and dedication to making the hardware work enough. I have a couple weeks of testing to do before I have a clean version of this, but if everything goes to plan, we’ll be switching to the BalenaFin!

Thanks again,

Kevitto

1 Like

@Kevitto that’s awesome, I am glad you got it working and thanks for the compliments! I hope the Fin works out for you now but you know where to find us if you hit any further issues.