(define-public libticonv (package (name "libticonv") (version "1.1.5") (source (origin (method url-fetch) (uri "https://www.ticalc.org/pub/unix/tilibs.tar.gz") (sha256 (base32 "07cfwwlidgx4fx88whnlch6y1342x16h15lkvkkdlp2y26sn2yxg")))) (build-system gnu-build-system) (arguments ;; build fails with out --enable-iconv (...?) `(#:configure-flags (list "--enable-iconv") #:phases (modify-phases %standard-phases (replace 'unpack (lambda* (#:key source #:allow-other-keys) (invoke "tar" "xvkf" source) (invoke "tar" "xvkf" (string-append "tilibs2/libticonv-" ,version ".tar.bz2")) (chdir (string-append "libticonv-" ,version)) #t))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs `(("glib" ,glib))) (synopsis "Character conversion library for TI calculators: A part of the TiLP project") (description "This project aims to develop a multi-platform linking program for use with all TI graphing calculators (TI73 to V200PLT).") (home-page "http://lpg.ticalc.org/prj_tilp/") (license license:gpl2+)))
(define-public libticables2 (package (name "libticables2") (version "1.3.5") (source (origin (method url-fetch) (uri "https://www.ticalc.org/pub/unix/tilibs.tar.gz") (sha256 (base32 "07cfwwlidgx4fx88whnlch6y1342x16h15lkvkkdlp2y26sn2yxg")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-libusb10") #:phases (modify-phases %standard-phases (replace 'unpack (lambda* (#:key source #:allow-other-keys) (invoke "tar" "xvkf" source) (invoke "tar" "xvkf" (string-append "tilibs2/libticables2-" ,version ".tar.bz2")) (chdir (string-append "libticables2-" ,version)) #t))))) (native-inputs `(("autoconf" ,autoconf) ("autogen" ,autogen) ("automake" ,automake) ("gettext" ,gnu-gettext) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs `(("glib" ,glib) ("libusb" ,libusb))) (synopsis "Texas Instruments link cable library: A part of the TiLP project") (description "This project aims to develop a multi-platform linking program for use with all TI graphing calculators (TI73 to V200PLT).") (home-page "http://lpg.ticalc.org/prj_tilp/") (license license:gpl2+)))
I am planning to submit this to Guix after completing definitions for the other tilibs2 components.
christopher@nightshade ~/Build/tilibs2/libticables2-1.3.5$ guix describe Generation 16 Apr 11 2020 08:47:10 (current) guix 658505d repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 658505d7a92f0518e1fc4c965bdaa389a6e83f2c christopher@nightshade ~/Build/tilibs2/libticables2-1.3.5$ guix environment --pure --ad-hoc gcc-toolchain autoconf automake grep sed coreutils tar xz findutils diffutils m4 autogen libtool pkg-config libusb gawk
autoconf -i -f and
configure --enable-usb10 and
make without errors, though two deprecation warnings appear.
Am working on package definitions for tiemu and dependencies.
Was trying today to build v1.5.1 in a Guix –pure environment. This was a bit painful to figure out due to defects in the build scripts. For starters, one build script does not properly recognize the presence of git in your path, so you must delete the following lines from include/prereq-build.mk:
$(eval $(call SetupHostCommand,git,Please install Git (git-core) >= 188.8.131.52, \ git --exec-path | xargs -I % -- grep -q -- --recursive %/git-submodule))
Now here is a working Guix environment:
christopher@eowyn ~/Build/librecmc-lts$ guix environment --pure --ad-hoc gcc-toolchain perl make git coreutils grep sed bash which pkg-config binutils ncurses wget tar patch diffutils unzip bzip2 findutils gawk gengetopt python2 python file util-linux nss-certs
christopher@eowyn ~/Build/librecmc-lts [env]$ pkg-config --libs ncurses -L/gnu/store/gzp4ig4rdb1qf4i5dy1d9nl0zmj5q09y-ncurses-6.1-20190609/lib -lncursesw christopher@eowyn ~/Build/librecmc-lts [env]$ LD_LIBRARY_PATH=/gnu/store/gzp4ig4rdb1qf4i5dy1d9nl0zmj5q09y-ncurses-6.1-20190609/lib CC=gcc make menuconfig
I had a thought to patch the librecmc build scripts, and then work on a LibreCMC Guix package definition. But not sure how soon I will get to that.
It has been a few months since the last report, but I have still been working on my Scheme FM receiver project here and there. With toddlers about, and other responsibilities, it can be hard to get in more than 30 minutes of work on it a week. Also, they are fond of pressing the computer reset button in the moments of my most intense concentration.
Several weeks were spent trying to figure out how to improve program performance, enough that I could actuallt process the data in real time. The main key there was understanding how to properly arrange the processing and the decimation, to reduce calculations required. But I learned a lot in the process about efficient use of Guile Scheme and C bindings — mainly figuring out different ways to reduce function calls, type checks, and type conversions.
After quite a lot of work creating bindings, I got the bandpass filter and the fm demodulation into the processing chain. However, the data being spit out after the demodulation was all garbage, though with some patterns here and there. It took many weeks of bug hunting and studying signal theory, to root out the errors, most of which were mishandling of data pointers, though there was also some fuzzyiness in my understanding of convolution, FIR filters, and FM demodulation that I had to work through.
I got through that, and was finally able to get some data out of the receiver that sounded like real FM radio sounds. However, the desired sounds were buried deeply in distortion and noise. With some further study, I realized that I needed another filter after the FM demodulation. That seems to be what they do in the GNU Radio WBFM block. Also, I learned that in real FM broadcast radio signals, there is a stereo channel (or rather, the L-R channel) inserted as side-bands around the mono channel (or rather, the L+R channel) so you have to filter that out (or do the additional stereo processing). I inserted another filter, in the process learning a bit about C macro procedures.
After this, I was able to receive understandable FM broadcast audio, from a local country/western station. However, the audio still has a noticeable amount of static. Adjusting the filter values does affect that, so I am in the process of trying out different values to see what works best. I think I also need to do something to reverse the high-frequency “pre-emphasis” which is used in FM broadcasting.
Worked 40 meter band on Feb 22 2020, calling CQ on 7.25 Mhz with IC-746PRO using multiband antenna from Hagelbarger lookout in Fairbanks. Made contact at 12:16 AKST with KL7EDK, who reported that my signal was “not coming in strong” but said I was S-5. Finished calling CQ about 45 minutes later but did not make any other contacts.
Tuning around the bands, I found what sounded like some kind of data transmission at 14.434.79 Mhz.
Eielson Ionosonde for 12:15 AKST showed almost no data except a blip of E-layer.
Hagelbarger Lookout – 2m Propogation Test
Start date and time: 2020-02-12 20:05 AKST
End date and time: 2020-02-12 20:30 AKST
Frequency: 146.52 Mhz, simplex
Hagelbarger Lookout, northern Fairbanks, AK, USA
Stationary Operation from mobile station
GMC Jimmy, 5/8 whip antenna, 75 Watts, ICOM IC-V8000
AL7N, 20W, Colinear Vertical
Airport Way & Market St
AL7Z reads KL1TL with all bars, full quieting
KL7AJ, North Pole residence, 50W
Homebrew Ground Plan
KL7AJ reads KL1TL at nearly full quieting
KL7EDK, Farmers Loop & Steese
10 Watt Quarter Wave
KL7EDK reads KL1TL at full quieting
KL4DA, North Pole, location Plack Rd, Northpole, near the Pipeline
6-10 Watts, Diamond X 50A, 30ft off the ground
KL4DA reports KL1TL perfectly clear
Later switched to Kenwood portable hand-held
Kenwood TH-D74 transmitting at 5 Watts
KL4DA reports KL1TL having slight background static
AD4BL, 14 Mile Chena Hot Springs Rd
Diamond X 50A, transmitting 50 Watts
AD4BL reports KL1TL at full quieting
Forgot to record return signal reports, but from memory all contacts
easy to understand with some very slight background
static. KL4DA’s portable had more crackling.
Ionosonde report for 8pm AKST (Eielson):