Topics

DRAWS on Pi 3b+ with Raspbian Buster #draws

Jon Gross
 

I have followed the notes here (https://docs.google.com/document/d/1Wq-jNLXYuREIOcr0OVu1FxPNhDFGuCOu6dX5OQ2BVxA/edit#).  I'm on my second go-round with a fresh image.

I can't seem to get the drivers to load properly.

Curious if anyone out there running buster on a 3b+ gotten the sound card to work?

Output of "showudrc.sh":

pi@raspberrypi:~ $ sudo n7nix/bin/showudrc.sh
==== Sound Card ====
No udrc sound card found.
==== Pi Ver ====
 Pi 3 Model B+ Mfg by Sony UK
 Has WiFi
==== udrc Ver ====
Found a DRAWS
 
     HAT ID EEPROM
Name:        hat
Product:     Digital Radio Amateur Work Station
Product ID:  0x0004
Product ver: 0x0106
UUID:        999d4843-b4d4-44cf-b488-3015da0573cf
Vendor:      NW Digital Radio
 
==== sys Ver ====
----- image version
2019 07 11 20:42:56 PDT: image_install.sh: image install script START
----- /proc/version
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
 
----- /etc/*version: 10.0
 
----- /etc/*release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
 
----- lsb_release
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
 
---- systemd
   Static hostname: raspberrypi
         Icon name: computer
        Machine ID: b487ea14459143c1b7d198356e08876f
           Boot ID: e3682e09b4284de3a39f151c0a37ae38
  Operating System: Raspbian GNU/Linux 10 (buster)
            Kernel: Linux 4.19.57-v7+
      Architecture: arm
 
---- modules
 
Command 'apt-get install udrc-dkms' failed or was not run.
 
---- kernel
dpkg-query: no packages found matching udrc-dkms
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name               Version      Architecture Description
+++-==================-============-============-=================================
ii  raspberrypi-kernel 1.20190709-1 armhf        Raspberry Pi bootloader
 
Directory: /proc/device-tree/soc/i2c@7e804000/tlv320aic32x4@18 exists and status is okay
 
---- syslog
 
---- dmesg
 
---- compass
Compass preference file not found: /etc/apt/preferences.d/compass
Compass apt sources list file not found: /etc/apt/sources.list.d/compass.list
---- compass package files
ls: cannot access '/var/lib/apt/lists/archive.compasslinux.org_*': No such file or directory
 
----- Dire Wolf version 1.5
 
==== Filesystem ====
/dev/root        59G  2.2G   54G   4% /
 
==== boot config ====
 
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
 
[all]
#dtoverlay=vc4-fkms-v3d
 
# enable udrc/draws if no eeprom
dtoverlay=draws,alsaname=udrc
force_turbo=1
 
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
 
---- gpsd
/usr/local/sbin/gpsd
gpsd: 3.19 (revision 3.19)
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/lib/systemd/system/gpsd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-07-11 21:57:38 PDT; 4min 26s ago
  Process: 523 ExecStart=/usr/local/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES (code=exited, status=0/SUCCESS)
 Main PID: 524 (gpsd)
    Tasks: 1 (limit: 2200)
   Memory: 1.0M
   CGroup: /system.slice/gpsd.service
           └─524 /usr/local/sbin/gpsd -n /dev/ttySC0 /dev/pps0
 
Jul 11 21:57:38 raspberrypi systemd[1]: Starting GPS (Global Positioning System) Daemon...
Jul 11 21:57:38 raspberrypi systemd[1]: Started GPS (Global Positioning System) Daemon.
 
---- chrony
crw------- 1 root root    241, 0 Jul 11 21:57 /dev/pps0
crw-rw---- 1 root dialout 239, 0 Jul 11 21:57 /dev/ttySC0
crw-rw---- 1 root dialout 239, 1 Jul 11 21:57 /dev/ttySC1
-- chrony sources
210 Number of sources = 6
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
#? GPS                           0   3     0     -     +0ns[   +0ns] +/-    0ns
#? PPS                           0   3     0     -     +0ns[   +0ns] +/-    0ns
^+ triangle.kansas.net           3   6   177    57    -66us[ +664us] +/-   83ms
^- you.dontlike.us               3   6   177    57  -4799us[-4069us] +/-  110ms
^- 0.time.dbsinet.com            2   6   177   117   -620us[ +111us] +/-   84ms
^* tesla.selinc.com              2   6   177    56  +2716ns[ +733us] +/-   38ms
-- chrony tracking
Reference ID    : 4A75D602 (tesla.selinc.com)
Stratum         : 3
Ref time (UTC)  : Fri Jul 12 05:01:07 2019
System time     : 0.000000026 seconds slow of NTP time
Last offset     : +0.000730021 seconds
RMS offset      : 0.002060165 seconds
Frequency       : 2.778 ppm fast
Residual freq   : -0.583 ppm
Skew            : 0.666 ppm
Root delay      : 0.013313225 seconds
Root dispersion : 0.029869111 seconds
Update interval : 64.1 seconds
Leap status     : Normal
-- chrony sourcestats
210 Number of sources = 6
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
GPS                         0   0     0     +0.000   2000.000     +0ns  4000ms
PPS                         0   0     0     +0.000   2000.000     +0ns  4000ms
triangle.kansas.net         7   3   200     -0.583      5.207    -90us   156us
you.dontlike.us             7   3   201     +0.986     10.467  -4630us   323us
0.time.dbsinet.com          6   4   136     -0.902      2.373   -726us    34us
tesla.selinc.com            7   7   201     -0.583      8.417  -7639ns   265us
 
---- sensors
-rw-r--r-- 1 root root 171 Jul 11 21:58 /etc/sensors.d/draws
rpi_volt-isa-0000
Adapter: ISA adapter
in0:              N/A
 
ads1015-i2c-1-48
Adapter: bcm2835 I2C adapter
+12V:         +0.00 V
in5:          +2.50 V
User ADC 1:   +0.00 V
User ADC 2:   +0.00 V
 

LA9KOA - Karl
 

Hi, Jon

I actually did a fresh install of Buster on a RPi3b+ while I was waiting for my RPi4 to arrive. So it is possible to run Buster on RPi3.
(RPi4 require Buster to boot, but the setup of Buster should be the same regardless of running on RPi3 or 4. I was able to just move the SD card over to my the RPi4 when it arrived)

The boot config can be a bit tricky. The lines need to be in the right order.
The drivers in Buster are already patched to work with DRAWS. However some of the scripts under n7nix/ are not updated for this, so if run they will move the in-kernel drivers out but not be able to build new drivers.
If this happened to you, you should see two driver files under /home/pi/tmp/ 

All this from memory. I will update with a copy of my boot config and exact name of the drivers when I get home. If noone else beat me to it :)

Best,
Karl LA9KOA

la4rha@...
 

Hi Jon,

Your /boot/config.txt seems to be the same as the one on my RPi4, so that looks correct. 

The 2 files Karl refers to that might have been moved to /home/pi/tmp, are 

   /lib/modules/4.19.57-v7+/kernel/sound/soc/codecs/snd-soc-tlv320aic32x4-i2c.ko

   /lib/modules/4.19.57-v7+/kernel/sound/soc/codecs/snd-soc-tlv320aic32x4.ko

Brgds,
LA4RHA, Lars

LA9KOA - Karl
 

Lars is faster than me :)

If someone get a similar problem with RPi4, you should note that there are two variants of the kernel involved.

RPi3 by default boot the -v7+ variant that Lars refers above.
RPi4 use the -v7l+ variant (the difference is the lowercase LIMA)

The name of the modules are the same, but the path to the modules is different. 
When I moved mye SD card with Buster from a RPi3 to a RPi4 it automagically chose the right kernel.

Jon, I hope you get some help from all this. You could run `lsmod` and see if the two modules are loaded:
snd-soc-tlv320aic32x4
snd-soc-tlv320aic32x4-i2c
If the modules show up, you could see if there is any relevant info in `dmesg` that can give a clue why sound (and probably GPS) is still not working.

Good luck!

Karl

Jon Gross
 

Aha!  Thank you both.

Instead of running the n7nix code, I've been using it as inspiration, and gotten things to recognize the sound card, thanks to n7nix, Lars and Karl and all the docs that exist in the wiki.

I ended up doing a(nother!) stock buster install, adding the tlv* modules to my /etc/modules, modifying my boot/config.txt, and now it looks like it's on it's way to functionality.

I may add a page to the wiki with my approach in case someone else wants to do it by hand as well.

Thanks all!

-jon KJ7GDX

Jon Gross
 


Thanks!

What I ended up doing was basically this:

1. vanilla buster install
2. update all the things (apt update ; apt upgrade)
3. add snd-soc-tlv320aic32x4-i2c and ax25 to /etc/modules
4. add dtoverlay=draws,alsaname=udrc and dtparam=audio=on to /boot/config.txt
5. install ax25, gpsd, hamlib, and related dev packages with apt
6. compile/install dire wolf from source

The hardware is working (gps confirmed, radio interface not yet confirmed), and I'm still working on getting the ax25 stuff configured and direwolf wired up correctly, but I think the hardware is functional now, as I'm seeing the sound card and the gps is working great.

Thanks again for your help!

-jon

Jon Gross
 

For anyone following along at home, I did get all the hardware working, ax25 configured and dire wolf configured.

I installed pat, and am able to get the LED on the draws to light up when pat is trying to connect over ax25, so as soon as I can build my 6pin din -> wouxun HT cable I can start seeing how it works.

Thanks to everyone for all the assistance.

Goodbye signalink, and hello pi+draws.

-jon, KJ7GDX

 

To all using an HT with DRAWS:

Clamp on Ferrite Beads are recommended on both ends of the Cable to prevent RFI from interfering with the Pi.

73
Bryan K7UDR

Frank Ivan
 

Hi Jon,

Can you tell me where you got the snd-soc-tlv320aic32x4-i2c.ko file and do you also need UDRC and snd-soc-tlv320aic32x4.ko?  Is there a ax25.ko? Where do you put those files in /lib/modules?  Did you need to do a insmod command?

Thanks
Frank - K0FEI

On Jul 12, 2019, at 12:02 PM, Jon Gross <jong@...> wrote:


Thanks!

What I ended up doing was basically this:

1. vanilla buster install
2. update all the things (apt update ; apt upgrade)
3. add snd-soc-tlv320aic32x4-i2c and ax25 to /etc/modules
4. add dtoverlay=draws,alsaname=udrc and dtparam=audio=on to /boot/config.txt
5. install ax25, gpsd, hamlib, and related dev packages with apt
6. compile/install dire wolf from source

The hardware is working (gps confirmed, radio interface not yet confirmed), and I'm still working on getting the ax25 stuff configured and direwolf wired up correctly, but I think the hardware is functional now, as I'm seeing the sound card and the gps is working great.

Thanks again for your help!

-jon