215 IX: IX Raspberry Software Repository (215.html)

Keywords

ICH180RR "IX Software Family" "Misc. IX functions" "IX Software List" ISO9003 Overview meld requires prepIX versions package OReilly keywords n.py nShowDefs.py class def global import markers o-markers source "used calls" dunders Issues progname= files "IX Software" n.sh IX_textpack "IX Software System" macros entities Python minicom putty O'Reilly ChatGPT textpack n.sh RPi.GPIO RPI5GPIO RPI7GPIO pir2_CheckUp pir2_CheckUp_C.py PiR2 MicroPython "Wio Clock" WioClock beep.py device.py PASM " PIO" PIO MMBASIC PicoMite PASM PicoMite_User_Manual "Library/Repository Search" "Use the last copy found"

/KeywordsEnd

(To enlarge .....Click it)
thumb: IXimage.jpg
IX or (IX by DC) or "|><"


This article is a part of the IX family of software.

TABLE OF CONTENTS

  keywords
Introduction

IX Raspberry Software Repository
  Non-Software Repositories Also Created by the WebMaster
  Prioritized Coding
ISO9003 Version List Repository (THE MAIN VERSION LIST)
  (with links to the different versions of code)
  Notes
  < end of the main version list >

Special Software Groups
  Package Library Names
  Pico Software List
  List of The Author's Python Functions (Sorted)
    Function List (version parameter count)
     < will be used by requires & prepIX >
  Software from Article 211
  FFRequest FFQ system
  Pix Packet Protocol
  test_Tx_pico.py: Outline

IX Raspberry Software Repository ISSUES
  Using "textpack" Under Windows 10

CODE OVERVIEW USING n.py
  Evolution: nshowdefs.py to n.py
  ISSUES with n.py
  Examples of n.py Output
    Example 1 :modules & defs in a function package
    Example 2: all keywords in the nShowDefs.py program
    Example 3: all keywords in a short program
ISSUES with n.py

Library/Repository Function Search/Use by python/Thonny

Recent IX Software Code To Be Included
  SOFTWARE TO ADD TO THIS REPOSITORY
Very Comprehensive List of IX Functions
Modules Referring To "Global"
Wio Clock Functions for the Wio Terminal
MehInCharge (html & php code) - tba
PiR2 system (mature A&C)      - tba
PiR2 Task Scheduling
VIX Functions (for data vectors)
pico ADC functions from Article 164
IXp Macro PreProcessor  - tba
   functionList         - tba
   n.py  (overview)     - tba
   prepIX               - tba
   requires             - tba
   fOrder               - tba

Future Plans
  RPi 5B Issues
  Wio Terminal CircuitPython

Other Thoughts
  RPi 5B UART Connector
  Raspberry Pi 5B : A Delight
  ChatGPT

Sources

Introduction

IX Raspberry Software Repository

This article serves as an ISO9003 Version List for the IX Software created and/or used by the webmaster: D@CC.

Each function / program / pkg in this IX Software Repository was created for a specific project or was stored in a software package (library). It was/is stored in the named microSD card or on an SSD. It is also described in the specified IX Article. Of course, it might be referenced in other (unlisted) IX Articles. Click on the name of the Function() / Program / Pkg to see its description. Click on the specified version of the Function() / Program / Pkg to see the code corresponding to this version.

The information in this article is sorted by the function / program / pkg name (in the 3rd column). If nothing is displayed when a web-link is clicked, nothing is on file [for example: function AAegFunc()].

The Project/Pkg, Repository and Function/Program/Pkg-descriptions are web-links to text files. These files and the versioned code-files are all located in this article, 215.html . The web-links to articles (eg 212.html) are clickable links to the actual articles. All files normally with ".py" extensions have an additional suffix of ".txt" so that they can be displayed in a browser display window. (When finished, hit the "back" symbol to close the browser display window.)

Click on the Function() / Program / Pkg name to see its description. Click on the version number (often "vnull_") to see the actual code. The IX Macro facility introduces some unusual words or phrases. See the prepIX lexicon in Article 196 for various definitions. The ixmRPC lexicon in Article 193 defines words or phrases pertaining to Remote Procedure Calls. All code modules run on a Raspberry Pi computer or on a product related to one, eg a pico or a Wio Terminal.

The programs that comprise the IXp macro software system are IXp.py, n.py (using functionList.py), prepIX.py, prepIX_I.py, textpack.py, ix_pkg.py [deprecated by pkg_py.py], VersionParms.csv and requires(). Work can be found on _Flb01S032G. The first version of them is almost complete but is not yet useable (as of 2024CMar01). The pairs of functions that IXp will use are also not yet available. Much of the necessary software in Article 215 has been assembled, but needs to be finished and tested.

Non-Software Repositories Also Created by the WebMaster

The author's iGalri.com website contains hundreds of interesting captioned photos including many phtos of family members of the author. A google-like search mechanism has been created (by the author) to display all photos having a specific word or phrase in its caption. Some of these captions include a web link where more information can be found. Genealogy work by the author can be retrieved by using the google-like FreeFind search mechanism in the "Articles By Old King Cole". This search mechanism restricts its search to all articles written by the author. It also searches the articles referenced as sources for his articles. Relevant photos can be found attached as memories to individuals in the world family tree at the FamilySearch website (Source 05). The FamilySearch website is a free website. However to access its information, a user account and password must be created in order to log into this site. Information stored there, about living persons, is kept private. A link to Victor (Vic) Charles Cole [fsid: L69G-PMF], the deceased father of the webmaster can be found in Source 06.

The author's family tree is maintained using the Legacy software. A copy of the GEDCOM database of the author's family tree can be found in Source S120:26 in Article 120. It contains over 18,000 related individuals but no non-text media. It contains no audio, no photos nor videos. A family tree of the COLE peerage in England is available in Source S120:02 in Article 120 and in Article 25. There is no known linkage between the webmaster's COLE ancestors and the COLE peerage.

The author would be remiss without mentioning "The Wayback Machine" (Source S25:29) which is a snapshot of all the webpages on the internet as they were before 2020. Of course, password controlled information and contents of databases are excluded. In "The Wayback Machine", the author was able to view his personal webpage named www.ColeDavid.com as it was long ago, soon after he created it. Of course, the author did not create "The Wayback Machine". Links exist to versions of the Henderson directory (a listing of persons and companies) beginning before the telephone era. Some links to the Henderson directory can be found in Source S145:13 and S145:14 .

Source 12 [all_pkg.py] is a package of all of the source code in this repository as of 2024CMar01, but its markers are all lacking the "#" prefix. It has not been edited or updated since then. Some modules contain double "pack-markers". But Source 12 is the author's first effort to house all of these functions and programs in one file, to make them easier to transfer. The author apologizes for any limited descriptions that appear in the list below. Many of these descriptions did not warrant the time required to write them. Contrast them with pir2.py (specifically pir2.txt) which lists many articles referring to the PiR2 Area Controller.

Prioritized Coding

As of 2024CMar01, the WebMaster intends to prioritize work on the following coding:

	show(isShow,vName,v="IX_strInParm2",sN=0)      #.py
        # eg show(1,"strCharA")
	#    ix=1;n=200  #at 200 and earlier than:
        #    show(ix,"listA",v=listA,sN=n+10)  #list at 210
	#    show(ix,"idName",v=idName,sN=210) #int  at 210
	#    show(1,"pi",v=pi)                 #float
	#    show(1,"isTrue",v=isTrue)         #bool
	#    numJ=(-2+3.1j)                    #eg complex
	#    show(1,"numJ",v=numJ)             #complex
	#    show(1,"aJson",v=aJson)           #json
	#    show(1,"None",v=None)             #None
	#    show(1,"nullA",v=nullA)           #null
	f3(x)                                          #.py
	#   formats & returns a 9-char string
	# f3(-88.1234) returns "  -88.123"
	# f3("abc")    returns "ERRf3:no#"
	inputWto(strPrompt,to=30,mp3Prompt="",defaultReturnStr="IX_timedOut")  #.py
	# a=inputWto("Hit Enter [within 10 seconds]: ",to=10)
	#   returns strIn,True or defaultReturnStr,False
	# a=inputWto("yourName? ")
	#   returns strIn,True or defaultReturnStr,False
	# a=inputWto("yourName? "     ,defaultReturnStr="Joe",to=0) #during testing
	#   returns "Joe",True                         #immediately #during testing
	# a=inputWto("yourName? ")   #,defaultReturnStr="Joe",to=0) #after testing
	#   returns strIn,True or "IX_timedOut",False            #after testing
	ix/ix_eDict.txt             #must be in /home/pi/Desktop/IX_assets/
	ix_grep(strTarget,path_fileName="eDict",strSplit="=",strip='"',strComment="#")  #.py
        # ix_grep("myName") returns: "David Cole" from ix_eDict.txt
	ix/ix_pkg.py [deprecated by ix/pkg_py.py]
	ix_pkg_test.py
	textpack.py  #CLI below:
	> IXp> python textpack show_py.py ix/ix_pkg.py [deprecated by fPkg_py.py]
	> IXp> python textpack show_py.py ix/fPkg_py.py [deprecates ix_pkg.py]
	# will add "show_py.py" to package ix/fPkg_py.py [deprecates ix_pkg.py]
        # f will contain: f3(), inputWto(), requires(), show(), commandOS()
        # p will contain: n.py, n.sh, textpack.py
	# IXp can: add duplicates (last copy will be found and used)
	#          add statements preceding a "def ", but they will be ignored by python
	#          NOT add modules already containing markers
        #          ensure the presence of one empty statement after each module
        # NB users should not add modules that have statements preceding a def.
        #    modules can be a macro or a text file (eg, help, json, data).
	

ISO9003 Version List Repository (THE MAIN VERSION LIST)

--------------------   < THIS COLUMN IS [WILL BE] SORTED > (? means "More work needed")
Project/Pkg  pkg
 uSD  #.html
 Function() / Program / Pkg ........ Brief Description .........
  v02, v01, v00, test
toSerialFileFromList
_____________ 
______________
______________________________________________________________________________
_____________
Projects/pix/pico
Fla53S 177
_mod8 ... mod6 folder for hello from _mod8 in pico 5/30/2022
vnull_
Projects/pix/pico
Fla53S 177
_mod8 ... mod6 folder for hello from _mod8 in pico 5/30/2022
vnull_
na         na
na       na
AAegFunc() ... This is an example of a function with no description nor version of code.
0vnull_
na         na
na       na
AAvnullFunc() ... This is an example of a function description without a version of code.
0vnull_
PiR2_Software
Fla53S 174
access_global() ...PiR2: eg access_global(gName,AorR,value)... (139,214).html 7/2/2021
3vnull
adcRead_pkg.py
Fla58S 174
adcRead_pkg.py ...from ADS1115Runner_wComments.txt & 174 Source 11...2022CMar23
v02, v01, bu, vnull_
Projects/pix/pico
Fla53S 202
adcValue() ...pico_4f31:Test in printTemp.py..177.html 7/2/2021
0vnull?
Pi Software
Fla75S 174
afTest07.py ...program to test Thonny Packages... 2022BFeb28
v07_
Projects/pix/pico
Fla53S 215
all_pkg.py ...all *.py.txt [Note 07] items [wo desc] 7z[w desc].. 2024BFeb18
215.7z_ ↓, vnull_
ambRead_pkg.py
Fla53D 212
ambLight() ... Measures ambient Light (analog)
3v01?, 3v00?
ambRead_pkg.py
Fla53D 212
ambLightB() ... Measures ambient Light device B(analog)
3v02_, 3v01_, 3v00_
Pi Software
KIOXIA 215
anyCLI.py ... python grep program explores CLI args 2024CMar09
v02_, v03_
textpack_pkg.py
KIOXIA 174
apkg_textpack_py.py ... [deprecates IX_textpack_pkg_py.txt] ...2022CMar13
apkg_py.py ↓, IX_..pkg_py.py [depr] ↓
Projects/pix/pico
Fla75S 202
bChar() ... converts b'z' to "z" for the Pi Pico ... 7/2/2021
1vnull_?, bChar_Test
Projects/Wio
Fla89S 186
BlinkBlueLed ... Blinks led on Wio Terminal ... 3/18/2023
v05_, v04_ v03_ v02_ v01_ Note_
Pi Software
KIOXIA 217
bu_zip.sh ... bu_zip.sh.....CLI to zip/backup Desktop daily .. 2024 C Mar 25
vnull_
Projects/IXp
Fla53S 196
buildIX.py ... buildIX is deprecated by prepIX 2023 K Nov 02
vnull_
Projects/Wio
Flb03     211
buildIX_WioT_v01o02_2023EMay16 ... buildIX_WioT_v01o02_2023EMay16 ... 2023EMay16
v01o02_
Projects/Wio
Flb03S 211
buildMain_WioT_v01o01_2023EMay15 ... buildMain_WioT_v01o01_2023EMay15 ... 2023EMay15
vnull_
Projects/pix/pico
Fla75S 177
buttonAction() ... function reads Pico button ... 5/30/2022
vnull_
Pi_Software
none     211
CD2_pkg.py ...CD2 dongle package . . . . . ..2023KNov02
vnull_?
Pi_Software
Fla95S 155
commandOS() ... commandOS("cmd") aka osCommand see 173,174,211 c2015
1vnull_, macroDef_, 1vnull_, TestA_
Projects/WioClock
none     189
createSquareRows() ..MicroPython. WioClock: createSquareRows() ... 2023 D Apr 05
vnull_
Projects/pix/pico
Fla75S 177
del_global() ... Pico del_global.py test program ... 2022BFeb22
vnull_
Projects/Wio
none     216
device() ... device() to determin RPi/WioT/WioTC ... 2023 E May 22
0vnull_, test
Projects/pix/pico
Fla53S 164
deviceReset_pico #04 PicoLe-22: Maker Pico Demo:leds blink>. . . . 177 2021EMay24
vnull_
Pi Software
KIOXIA 217
duDesktop.sh ... duDesktop.sh..CLI to show size of Desktop folder .. 2024 C Mar 25
vnull_
Projects/pix/pico
Fla53D 164
esp01uart_pico ...#14 esp01uart_pico.py monitor rx on pin 0..164 2022FJun11
vnull_
ix/ix_pkg.py
Fla53S 155
f3() ... formats any number into exactly 9 characters (ie ready to be printed) 7/2/2021
v00, vnull_?
Projects/pix/pico
Fla53S 177
fadeLed_pico() ... using fadeLed.pio for PWM, fading the brightness of an LED 2022EMay30
vnull_, pio_
Projects/PIO/pico
none 177
fadeLed() ... using PIO for PWM, fade the brightness of an LED 2022EMay30
vnull_
Projects/FFRequest
Fla53S 173
FFRequest.py ... FFRequest FFQ (MMBasic) in FFRequest system 173 2023 K Nov 02
vnull_
Projects/pix/pico
Fla53S 214
findNth() ... findNth occurance of subStr in str. . 2022EMay30
3vnull_
Pi_Software
none     167
Flash Drive, uSD & Device List ... List of uSD,Fla,Device:# etc see Article 167 2014 G Jul 29
vnull_
Pi_Software
KIOXIA 217
FRUM() ... FRUM(pkg,module,name2) for IXf 2024CMar20
3vnull_, FRUM_C_
Pi Software
none 177
fun_globals() ... fun_globals.py test program ... 2022BFeb22
B_, vnull_
Projects/pix/pico
Fla53S 164
funcGen_pico_wPot_pico.py ..#02. funcGen_pico_wPot_pico:generates sin wave 2022EMay30
vnull_
functionList_pkg.py
Flb01S 190
functionList_pkg.py ...find function names for n.py from Flb01 in Fla58D...4/2/2022
vnull_
Pi Software
none 215
functions.global.php ... This php file is for jetpack (uses json) 2023CMar10
vnull_
GED_Software
Fla99S205
GedExplore.py ...explore any genealogy GEDCOM ..see 206 2023ISep22
v06_, output
Pi_Software
none     205
GED_Software ...GED_Software genealogy GEDCOMs. . . see 206 2023KNov02
vnull_? ↓
ix/ix_pkg.py
Flb03S 211
getSub() ... getSub(a,b,c,d) w getSub() ...2023LDec01
4_v00_, 4_vnull_
PiR2_Software
Fla53S 174
get_targTempLo() ...PiR2: get_targTempLo() eg ... (139,214).html 7/2/2021
3vnull
Projects/pix/pico
Fla53S? 161
get_voltage_pico_test.py ... get_voltage of a pico ADC 2021 C Mar 20
vnull_
Pi_Software
Fla57S 174
global_and_isTypeStr ...global_and_isTypeStr. incomplete. see Fla68 2022CMar03
vnull_
PiR2_Software
Fla53S 174
globalAccessList ...PiR2 System gAL: globalAccessList. see Fla68 2022CMar04
gAl_, vnull_
CD2_pkg.py
Fla53D 208
initCD2() ... initCD2() in Test_readCD2 (dongleCD2)... 2023JOct302
Test_
Pi_Software
Fla53S 190
inputWto() ... inputWto to request input with a timeOut 2022CMar12
3vnull_
Projects/pix/pico
Fla53S 177
intRed_pico.py ... uses buttons and interrupts to control LEDs 2022EMay30
vnull_
Pi_Software
Fla53S 211
ix_eDict.txt ... ix_eDict houses grep-able IX software entities..210.html.2024BFeb07
vnull_
ix/ix_pkg.py
Fla53S 211
ix_grep() ... ix_grep(a,b,c,d,e) in ix_pkg ...2023LDec03
5_v00_, 5_py_, Test
Projects/pix/pico
Fla53S 164
IX_libr_pico.py ..#06 IX_libr_pico 2022EMay30
vnull_vnull_
Projects/IXp
Flb03S 211
IX_log.sh ... IX_log.sh..CLI part of Environ.sh .. 2023 K Nov 02
vnull_, output_
Pi Software
none 208
IX_menu_i ... IX_menu_i program .demo a menu..206,207.. 2022BFeb22
vnull_
Pi_Software
Fla75S 174
IX_package_py ... IX funcs eg inputWto(),f3(),printSho(), textpack() S174:06..2022CMar12
null_
Pi_Software
none 210
IX_pkg_info ... IX_pkg_info.txt TOP Packages and Control Files of Modules... 2024BFeb27
null_
Pi_Software
Fla53S 211
ix_pkg.py? ... [now pkg_py.py] ix functions pkg eg ix_grep() 13029c ...2023LDec03
ix_pkg.py [depr] ↓, .py_, pkg_py.py_
Projects/IXp
Flb03S 211
IXp.py ... IXp_v2d.py.txtv..CLI part of IXp preprocessor .. 2023 K Nov 02
v2d_, v2lii_, vnull_
Projects/WioClock
none 189
listForSquareDigit() ..MicroPython. WioClock: listForSquareDigit() ... 2023 D Apr 05
1vnull_
Projects/WioClock
none 189
localDateTime() ..MicroPython. WioClock: localDateTime() ... 2023 D Apr 05
1vnull_
Pi_Software
none 165
MAK Pi ADC ...MAK Pi ADC: test_mainReadMsg_pi.py.txt..... 2021 F Jun 22
vnull_
Projects/pix/pico
Fla53S 164
maker-pi-pico-rgb-led_pico.py ..#05 uses buttons & interrupts to control RGB LED 2022EMay30
vnull_
MicroPython_SW
Fla53S 208
menus ... menus & improvised programs...also see 190 .. 2021BFeb17
vnull_, Wio_v01o01_i, Wio_v01o01
Pi_Software
none     189
MicroPython_SW ...MicroPython_SW eg Wio Clock 2023 D Apr 02
vnull_
Projects/pix/pico
Fla53S 177
mid() ... pico: mid.py = BASIC Mid(strA,n,Len) same as str(strA)[n-1:n+Len-1] Issue:complex 5/30/2022
3vnull_2, 3old00b, mid_test.py
Projects/pix/pico
Fla53S 177
mod5 ... mod5 folder for hello 5/30/2022
vnull_
Projects/pix/pico
Fla57S 177
mpyRead mpyRead() pico Fla52S,Fla75S 174,175.html 2022EMay30
mpyRead.py.txt , vnull_
Projects/pix/pico
Fla53S 177
mpy_uart_pico.py ... pico uart tx and rx at 600 baud 2022EMay30
vnull_
textpack_pkg.py
Fla53S 174
n.py ... overview of Python code or pkg 6.57 & 11.8KB 7/2/2021
v05, v04, v03, v02, vnull
textpack_pkg.py
Fla53S 174
n.sh ... overview of Python code or pkg using n.py 2024BFeb10
vnull_
Pi_Software
Fla95S 155
osCommand() ... osCommand("cmd") aka commandOS see 173,174,211 c2015
1vnull_, 1vnull_, TestA_?
Pi_Software
Fla53S 174
pack() ... pack() used by textpack_py.py on CLI 5/30/2022
0vnull_0
Pi_Software
KIOXIA 217
packFromSerialFile() ...packFromSerialFile() for IXf constants ... 2024CMar23
vnull_
Projects/pix/pico
Fla53S 177
parseComplex() ... pico: parse / print a complex number (Issue: returns null) 5/30/2022
2vnull_0
Software
none     43
Pi_Software ... Raspberry Pi Software ...2023LDec03
_py_, .py_
Projects/pix/pico
Fla53S 164
piButton_pi() ...piButton_pi used by test_piButton_pi.py (#12)......... 2021FJun18
vnull_, test
Projects/pix/pico
Fla53S 164
picoButton_pico.py ...#03 picoButton (PicoLe-22) monitors pico button on 22 177 2022EMay30
vnull_
Pi_Software
Fla53S 43
PiR2_Software ... PiR2_Software ... see pir2_software... 5/30/2022
vnull_
PiR2_Software
Fla53S139
PiR2_Task_Scheduling.py ...PiR2_Task_Scheduling 2020 E May 05
v04_
Pi_Software
Fla53S214
pir2_CheckUp.py ...pir2_CheckUp.py w/wo RPi5GPIO (test as RPi7GPIO) see 211. 2024BFeb04
vD_, vC_
PiR2_Software
Fla75S139
pir2_Software.py ...pir2 Area Controller see 128,139,170,211,214 etc... 2020 E May 04
pir2main.py_, pir2main_A70.py.txt_, pir2main_pi_A58.py_, pir2main.py_, pir2globals.txt_, pir2A.py_, pir2data.py_, pir2main_Issues.txt_, pir2.sh_, eg_log.txt_, PIR2_pdf
Pico_Software
Fla53S177
PixObj.py ...Dummy Class Objects for Pix... 2024BFeb15
vnull_
Pi_Software
Fla53S 211
pkg_py.py ... [was ix_pkg.py] ix functions pkg eg ix_grep() 13029c ...2024CMar07
pkg_py_py(txt), pkg_py.py ↓, ix_pkg.py [depr] ↓
Pi_Software
Fla53S 177
plot() ... plot: to print (plot) a vector (Issue: python 2) 5/30/2022
1vnull_0
Projects/IXp
Fla53S 211
preParse() ... preParse() used in IXp .....also 212... 2023LDec01
1vnull_, 1v00_, test_
Projects/IXp
Fla53S 209
prepIX.py ... prepIX() final part of IXp preprocessor see 196 2023 K Nov 02
v02_, vnull_, main_
Projects/IXp
Fla53S 196
prepIX_I.py ... prepIX_I() first part of IXp preprocessor 2023 K Nov 02
vnull_
Projects/pix/pico
Fla53S 177
printPicoUniqueId.py ... printPicoUniqueId (notes for MMBasic) 2022EMay30
vnull_
Pi_Software
Fla53S 174
printSho ... printSho to print the sho() function 5/30/2022
vB_, vnull_
Projects/pix/pico
Fla53S 177
printTemp.py ... print pico core temp 2021GJul02
vnull_
Projects/pix/pico
Fla53S 177
printTimTemp_pico.py ... print time & pico core temp 2022EMay30
vnull_
Pi_Software
none     182
Projects/IXp ...IXp macro 183,193,196,206,207,209,210,215,217..2023KNov02
vnull_ ↓
Pico_Software
Fla53S 177
Projects/pix/pico ...various pico s/w modules from Fla53S in Fla58D...5/30/2022
do.7z[Note 06] ↓
Pico_Software
Fla53S 177
Projects/PIO/pico ...[Note 11] various pico PIO code from Fla53S d Fla58D...5/30/2022
vnull_, e53S.7z[Note 06]? ↓
Pi_Software
none     182
Projects/FFRequest ...A&C FFQ FFrequest Queue Software. . . . . . . 2023KNov02
vnull_ ↓
Pi_Software
none     182
Projects/Wio ...Wio Terminal projects . . . . .210..2023KNov02
vnull_ ↓
Projects/pix/pico
Fla53D 180
RAPasc.py() ... RAPasc(nn,cvrsFactor) pico.used in ixProbe.. 2022FJun11
2vnull_, test
Projects/pix/pico
Fla53D 180
readADC_pico() ...#07 readADC_pico(nn,cnvrt=5.035477e-05) pico.used in ixProbe.164 2022FJun11
2vnull_, testvMeter, test
Projects/Wio
none     186
ReadRpiSystemStatus ... ReadRpiSystemStatus (CPython) S186:04 by SeeedStudio ... 2020 A Jan 01
vnull_
ix/ix_pkg.py
Flb03S 211
replSub() ... replSub(a,b,c,d) w getSub() ...2023LDec01
4_v00_, 4_vnull_
Projects~IXp
Flb03S 210
requires() ... requires...part of IXp preprocessor also 209. ..2023 K Nov 02
4_v01_, 4_vnull_
Pi_Software
Fla53S214
RPi5GPIO.py ...RPi5GPIO as RPi7GPIO to replace RPi.GPIO see 211.html ... 2024BFeb04
v7_
Pi_Software   f
KIOXIA 217
runPython() ...eg runPython("IXf","prog.pyix","parms") for IXf 2024DApr03
3vnull_
Projects/pix/pico
Fla75S 174
serTxC_pico serTxC_pico Fla52S 174.html 2022EMay30
serTxC_pico.py , vnull_
Projects/pix/pico
Fla53S 177
serTx_pico.py serTx: pico "Pix Packet Protocol", w PixObj.py Fla52S 174.html 2022EMay30
serTx_2021F18.py , D3_pico.py , D2_pico.py , D_pico.py , testTxC_pico.py , C_pico.py
Projects/pix/pico
Fla57S 177
serTxRx_Fast_pico.py ... explores lost char using txrx (fast/slow) 2022EMay30
vnull_
Projects/pix/pico
Fla53S 164
serReadWrite_pi ...... #15 serReadWrite_pi ...............177 2021EMay24
vnull_
Projects/WioClock
none     189
setLocalDateTimeCorrectionForCurrentLocalTime() ..MicroPython. WioClock: calc correction ... 2023 D Apr 05
2vnull_
Pi_Software
Fla53S 174
sho() ... sho("ss",1) see printShoB to print this function 2022CMar12
verB_
Pi_Software
Fla53S 155
selectCode_commandOS_macro ... selectCode_commandOS_macro 2024CMar11
vnull_
Pi_Software
Fla53S 155
selectCode_f3_macro ... selectCode_f3_macro 2024CMar11
vnull_
Pi_Software   f
Fla95S 211
show() ... show("ss",ss,1) deprecates sho("ss",1) see 155,209 2022BFeb23
2vnull_0, 4v00_0, TestA_
Pi_Software   m
none     217
showIt ... showIt.pyix macro Def see 183,210 2023 J Oct 19
vnull_,   test_ ↓
Projects/WioClock
none 189
showList() ..MicroPython. WioClock: showList() ... 2023 D Apr 05
4vnull_0
Projects/WioClock
none 189
showMP() ..MicroPython. WioClock: showMP() fut replaces show()... 2023 D Apr 05
4vnull_0
Projects/PIO/pico
none 177
sigGen() ... using PIO for sigGen, signal Generation 2022EMay30
vnull_
Projects/pix/pico
Fla53S 177
signalGenerator_pico.py ... signalGenerator (sigGen.pio) & samp sin w 2022EMay30
vnull_; pio_ ↓
Projects/pix/pico
Fla53S 177
signalGenerator_w_Pot_pico.py .. signalGenerator w PIO & pot & sampled sine wave 2022EMay30
vnull_
Projects/pix/pico
Fla53S 177
signalGenerator_wo_Pot_pico.py .. signalGenerator w PIO wo Pot & sampled sine wave 2022EMay30
vnull_
Projects/pix/pico
Fla53S 177
signalGenerator_w_PotOn1_pico.py .. signalGenerator w PIO w PotOn1 & samp sin w 2022EMay30
vnull_
Projects/pix/pico
none     184
Spico ...future Spico pico.that searches for life.177.html 7/2/2021
vnull_
Projects/WioClock
none     189
strHHMIfromClock() ..MicroPython. WioClock: strHHMIfromClock() ... 2023 D Apr 05
4vnull_
Pi_Software
KIOXIA 217
stress.sh ..stress.sh bash script to stress the RPi 5B.. 2024 C Mar 11
vnull_
Projects/WioClock
none     189
strip() ..MicroPython. WioClock: strip(str,isShow=False) ... 2023 D Apr 05
4vnull_
Projects/pix/pico
Fla53D 164
strToComplex ...#10 strToComplex sync converts a str or number to e* ..164 2022FJun11
vnull_,
Projects/pix/pico
Fla53D 164
syncRTC_pico ...#08 syncRTC_pico: sync pico RTC to Pi Time ..164 2022FJun11
vnull_,
Projects/pix/pico
Fla53D 164
syncRTC_pi ...#09 syncRTC_pi sync pico RTC to Pi Time ..164 2022FJun11
vnull_,
Pi_Software
Fla53S 202
test_blinkLED.py ... test_blinkLED.py.txt tests 'from ix_pkg import ixTestC' ..Device:58. 2021GJul03
vnull_
Projects/Wio
Flb03S 216
test_device_i.py ... test_device_i.py main on WioTerminal ... 2023 E May 22
vnull_
Pi_Software
Fla53S 177
Test_readCD2works.py ... Test read CD2 dongle ................. 2022EMay30
vnull_
Pi_Software
Fla53S 202
test_ixTestC.py ... test_ixTestC.py tests 'from ix_pkg import ixTestC' ... 2024KNov25
vnull_
Projects/pix/pico
Fla53S 164
test_piButton_pi.py ...#12 test_piButton_pi Device:58........... 2021FJun18
vnull_
Projects/pix/pico
Fla53S 164
test_timer_pi.py ...#13 test_timer03_pi, RPi scheduler 2022EMay30
vnull_, test_time03_pi.py, test_timer03_pi.py
Projects/pix/pico
Fla53S 177
test_Tx_pico.py ... test_Tx_pico ................. 2021BFeb07
vsnI_ , vsnH_, vsnG_, vsnF_, vsnE_, vsnD_
Projects/pix/pico
Fla53S 177
test_VSYS_pico.py ... test VSYS (voltage) pico pin29 ..... 2022EMay30
vnull_
Projects/pix/pico
Fla53S 177
testButton_pico.py ... testButton pico / IX_libr_pico.py ..... 2022EMay30
vnull_
Pi_Software
Fla53S 177
testLeds.py ... testLeds on RPi Pi (needs work) ..... 2022EMay30
vnull_
Projects/pix/pico
Fla53S 177
testLeds_pico.py ... testLeds pico / IX_libr_pico.py ..... 2022EMay30
vnull_
Pi_Software
Fla53S 177
testPlot.py ... testPlot calls plot(vector) (needs work) 164.html ..... 2021EMay22
vnull_
Projects/pix/pico
Fla53S 177
testRx_pico.py ... testRx_pico ................. 2021BFeb07
vsnD_
Projects/pix/pico
Fla53S 164
testUtime.py ...#11 testUtime() pi vs pico....... 2021FJun18
vnull_
Pi_Software   b
KIOXIA 217
testX_batch.py ... testX_batch.py in "b" for IXf 2024DApr04
vnull_, test_
Pi_Software   b
KIOXIA 217
test3_py_batch ... test3_py_batch in "b" for IXf 2024DApr02
vnull_, test_
Pi_Software   b
KIOXIA 217
test3_py.bix ... test3_py.bix (deprecated by test3_py_batch.py) 2024CMar21
vnull_, test_
Pi_Software   e
KIOXIA 217
test3_py_entDefs.pyix ... test3_py_entDefs.pyix in ePkg_py.py 2024CMar21
vnull_
Pi_Software   s
KIOXIA 217
test3_py.pyix ... test3_py.pyix stub in sPkg_py.py 2024CMar21
vnull_
Projects/pix/pico
Fla53S 164
textLoop_pico.py ...#00 textLoop_pico ................. 2021 E May 19
vnull_
Pi_Software
none     183
textpack_pkg.py ...textpack_pkg project . . . . .174..2023KNov02
vnull_ ↓
Pi_Software
Fla53S 177
textpack.py ... textpack & vwin10.by O'Reilly.... 2021BFeb17
vwin10_, vnull_
Projects/pix/pico
Fla53S 177
tickLed.py ... tickLed class wo methods ............ 2022EMay30
vnull_
Projects/pix/pico
Fla53S 177
tickLed_pi.py ... tickLed_pi class wo methods........68. 2022EMay30
vnull_
Pi_Software
KIOXIA217
toSerialFileFromList() ...toSerialFileFromList() for IXf ... 2024CMar23
vnull_
RPi5GPIO
none     214
unity() ...unity() as part of RPi5GPIO for RPi constants ... 2024BFeb04
vnull_
Pi_Software
KIOXIA 217
unpackToList() ... unpackToList(pkg,module) for IXf 2024CMar20
2vnull_, test_
Projects/pix/pico
Fla53S 180
vMeterIXA_pico.py ...vMeterIXA_pico.py ixProbe uses Device:105 ................. 2021FJun18
vnull_
Projects/WioClock
none     189
waitForInput() ..MicroPython. WioClock: waitForInput()... 2023 D Apr 05
3vnull_0
Projects/Wio
Flb03S 189
WioClock ... WioClock ... 2023 D Apr 02
v02o11_
Projects/Wio
none     215
WioButtonsAndSwitches ... WioButtonsAndSwitches.py.txt ... 2024 C Mar 02
vnull_
Projects/WioClock
none     189
workInProgress() ..MicroPython. WioClock: workInProgress().creates big #.. 2023 D Apr 05
1vnull_
Projects/pix/pico
Fla53S 177
ws2812() ... for StateMachine in maker-pi-pico-rgb-led_pico.txt 2022EMay30
vnull_0

Note 01: for Functions only, the Version number is prefixed by a number, which is the max # of parameters passed in
Note 02: for Functions only, the Version number is sufffixed by a number indicating the # of results returned.
       "_0" is 0, "" or "_1" is 1, "_2" is 2 etc (NB returning the usual 1 result is no suffix.)
Note 03: Flash Drive Fla94D032G/BUsByH/2023LDec04 contains backups of many Fla (Flash) drives (from Fla33S008G to Flb03S032G)
Note 04: pocket Flash Drive Fla58D064G (lost) is not backed up on Fla94D
       but was backed up on Seagate _Fla58D064G_2022D02_BUs
       and was backed up on Seagate _Fla58D064G 2022D02_BUs/2022D02_BUs
       and was backed up on Seagate _Fla58D064G F:/BUs_ByH/2023/2023KNov23/_Fla58D064G
       and was backed up on Seagate _Fla58D064G F:/BUs_ByH/2023/2023KNov23/_Fla58D064G/BUs_ByH Fla:(Fla52 -Fla76)
       and was backed up on Seagate _Fla58D064G F:/BUs_ByH/2023/2023KNov23/E/_Fla58D064G_2022B09 empty
       and was backed up on Seagate _Fla58D064G/
              F:/BUs_ByH/2023/2023KNov23/_Fla58D064G/BUs_ByHand/2022EMay30/pico_4f31_on_Fla53/
              See list of modules in pico_4f31_on_Fla53/ (below)
              The replacement Pocket Flash Drive is Flb07D064G (130 MBS).
              It contains a recent backup of Fla58D064G .

Note 05: The third column above houses mostly Python code (Programs and Functions). But some Python libraries (packages) are also included as are a small number of Linux Bash scripts. These Bash scripts simplify the invocation of the code. It is worth mentioning that the Thonny variant of Python cannot be invoked on the command line. Therefore some Python programs that require CLI parameters need to be run from the command line in Terminal mode using normal Python.
(To enlarge .....Click it)
IMG_0221.jpg
Linux icon

Note 06: ["do" means ditto] This very large zip file, e53S.7z (eg 90MB) contains all home/pi/ folders and files for the whole Fla53S032G uSD as of 2024BFeb11. To find this file: ^F then find "e53S" . Use Express zip.
Note 07: ["do" means ditto] This zip group, 215.7z, contains all the various Python code modules in 215.html. Use Express zip.
Note 08:  a program named ANY.py vsn code used to be stored as ANY_py.txt, but is now (as of 2024BFeb01) stored as ANY.py.txt
     a program named ANY.py desc is stored as ANY.txt
     a program named ANY_py.py desc is stored as ANY_py.txt
     a program named ANY_pi.py desc is stored as ANY_pi.txt
     a program named ANY_pico.py desc is stored as ANY_pico.txt
Note 09: a function named ANYFUNC(): desc is stored as ANYFUNC_py.txt, but vers code as ANYFUNC.py.txt (as of 2024BFeb01) stored as ANY.py.txt
Note 10: some functions have different code for the pi and the pico. They have "_pi" and "_pico" in their names respectively
a function that is the same code for the pi and the pico, has "_py" in its name.
Note 11: The webmaster has decided to include PIO routines in this repository, even though there is no compiler for them.
The first " PIO" examples are fadeLed.pio and sigGen.pio . The author created a new ".pio" extension. More info:(Source 25). Source 26 (Appendix E pp134) clearly explains PIO coding for the Raspberry Pico. It introduces PicoMite and PASM (PIO Assembler written in MMBASIC) language and the PicoMite_User_Manual . The PIO code for the pico state machines can be found in "Projects/PIO/pico"
Note 12: A directory list of many Python pico programs from _Fla75032G as of 2022BFeb25 can be seen at Source 27.
The actual files can be found at backup drive:
G:\BUs_ByH\2023\2023KNov23\_Fla58D064G\BUs_byHand\2022BFeb25\_Fla75S032G\Desktop\pico>type dir_pico.txt .

Should also include all modules/files from IX_pkg_info.txt .

end of list of software code module examples (and Notes)

Special Software Groups

IX Package Library Names

Use IXc FRUN() to unpack any module into the current folder. The module markers is '#" + ':'*10 + 'textpak=>' + moduleName Beware that many functions and programs are misplaced in the wrong packages :( .
(The author's secretary is overworked and underpaid.)

Beware: python uses packages (with .py extensions) as libraries, but without markers. Each "def " statement acts as a python marker. Each IX package can generally be used as a python library.


                  py:python    (future)                               
 Functions  pkg* all-devices   only-pi   pkg* only-pico      only-wio
 ---------- ---- -----------   --------- ---- ------------   -----------
 batch (IXp)   b bPkg_py.py    bPkg_pi.py     bPkg_pico.py   bPkg_wio.py(fut)
 entities(IX)  e ePkg_py.pyix  ePkg_pi.pyix   ePkg_pico.pyix ePkg_wio.pyix(fut)
 functions     f fPkg_py.py**  fPkg_pi.py   o fPkg_pico.py   fPkg_wio.py

 macros (IX)   m mPkg_py.pyix  mPkg_pi.pyix   mPkg_pico.pyix mPkg_wio.pyix(fut)
 stubs (IX)    s sPkg_py.pyix  sPkg_pi.pyix   sPkg_pico.pyix sPkg_wio.pyix(fut)
 test pgms**** 	 tPkg_py.py    tPkg_pi.py     tPkg_pico.py   tPkg_wio.py
 app pgms      a aPkg_py.py*** aPkg_pi.py   p aPkg_pico.py   aPkg_wio.py


		  A stub is a python program needing preprocessing by IXf
		    because it contains macros or entities.

	     **** test programs are like minor apps that are poorly documented
		    NB The "test pgms" package (tPkg_py.py) contains the most 
		    modules but unfortunately the least documentation.

              *** aPkg_py.py initial contents:
                     n.py, n.sh, textpack.py IXf.py(fut)

               ** fPkg_py.py (deprecates ix_py.py) initial contents will be:
                   commandOS(), f3(), functionList(), inputWto(), posNxFnUsed(), 
                   requires(), show(), osCommand()
                   deprecated names: ix_py.py,  py_pkg.py (changing asof 2024CMar)
                   2024CMar07 on _KIOXIA_GTLL SSD changed in Desktop/IX_assets/ix

		* pkg (abbr.) letter [used by FRUM() in IXf]

Pico Software List

(To enlarge .....Click it)
thumb: pico_4f31_on_Fla53.jpg
Projects/pix/pico
  aka pico_4f31_on_Fla53

List of The Author's Python Functions (Sorted)

Each of the functions in the following list can be found in the "ISO9003 Version List Repository" at the beginning of this article.

Function List (version parameter count)

FunctionName	  vsn Parameter Count
		       In,Out
---------------	  ----- - -
AAegFunc,	  vnull,0,1
AAVnullFunc, 	  vnull,0,1
adcValue, 	  vnull,0,?
ambLight, 	  v00,  3,?
 ambLight,	  v02,  3,?
ambLightB, 	  v00,  3,1
 ambLightB,	  v01,  3,1
 ambLightB,	  v02,  3,1
bChar, 		  vnull,1,1
buttonAction,	  vnull,2,1
commandOS,	  vnull,1,1
createSquareRows, vnull,4,0
device,		  vnull,0,1
f3, 		  v00,  1,1
fadeLed_pico,	  vnull,?,?
findNth, 	  v00,  1,1
getSub, 	  vnull,4,1
 getSub, 	  v00,  4,1
initCD2, 	  vnull,1,0
inputWto,	  vnull,4,2
ix_grep, 	  vnull,5,1
ixTestC, 			??
listForSquareDigit,vnull,1,1
localDateTime,	  vnull,2,1
mid, 		  vnull,3,2
 mid, 		  v00,  3,2,  ?? fix
mpyRead,          vnull,1,1
osCommand,	  vnull,1,1
pack, 		  vnull,0,0,  ??
parseComplex, 	  vnull,2,0
piButton_pi,      vnull,1,1
plot, 		  vnull,1,0
preParse, 	  vnull,1,0
 preParse, 	  v00,  1,0
pwm_prog,	  vnull,0,0
RAPasc,           vnull,2,1
readADC_picoNOTE, vnull,2,1,NOTE:cnvrt=
readCD2, 	  vnull,1,1
replSub,	  vnull,4,1
 replSub,	  v00,  4,1
requires,	  vnull,2,1,  ??
 requires,	  v01,  2,1,  ??
setLocalDateTimeCorrectionForCurrentLocalTime.txt, vnull,2,1
sho,		  verB, 2,0
show,		  vnull,4,1,   Where is my best vsn of show()? #################????????????
showMP,		  vnull,4,0
strHHMIfromClock, vnull,4,1
stripNOTE,	  vnull,2,1,NOTE:isShow=False  
unity, 		  vnull,1,1
waitForInput,	  vnull,3,1
workInProgress,	  vnull,1,1
ws2812,		  vnull,0,0
/VersionParms.csv


End of Function Version Parameters List

Software from Article 211

The IX_assets/ix folder in Flb03S032G is shown below:

(To enlarge .....Click it)
thumb: Flb03S032G_in_202.jpg
Flb03S032G_in_202.jpg


The code modules can be downloaded from Source 18 in this article.

As of 2024BFeb19, yet to include in the Repository:
Y means included
	ix_pkg.py	Y

	getSub()	Y
	getSub_v00()	Y
	initCD2()	Y
	ix_grep()	Y
	ix_grep_v00()	Y
	ixTestB()
	ixTestC()	Y
	preParse()	Y
	preParse_v00()	Y
	readCD2()	Y
	replSub()	Y
	replSub_v00()	Y
	requires()	Y

	GED		Y
	IX_log.sh	Y
	IXp.sh		Y
	MAK Pi ADC	Y
	menus		Y
	pir2.sh		Y
	Spico		Y
	Wio Terminal	Y
	Wio Clock	Y
	

FFRequest FFQ system

The Acquisition and Control System named FFRequest is described in Article 173. For a brief description see "Projects/FFRequest" in the ISO9003 list at the beginning of this article. The modules of this system are:
	Eg FFControl(FFQ,RequestStr)
	
	                Functions already coded are preceded by a "Y"
	Y FFBackup	making a backup of the FFQ to a text file.
	Y FFControl	written by the user (see example below)
	Y FFErrorReport	an error handler
	Y FFflag	returns the value of the current flag in the FFQ record
	  FFKiosk	the placing of the Order request (at the Kiosk)
	  FFLatestTime	returns the LatestTime in the FFQ record
	Y FFLog		every request & result is timestamped and logged in the FFQueue log file
	Y FFRequest	the main request function that is invoked by the user
	Y FFRestore	restoring the FFQ from a text file at start-up
	  FFResult	returns the current result of the requested Order
	  FFSave	saving the FFQ to a text file at program shut-down
	  FFSetflag	sets the pending lag in the FFQ record to either "Y" or "N" or "X"
	  FFSetResult	sets the ResultStr in the FFQ record
	  FFStatus	the status of the next pending Order
	Y FFTimeMsec	returns the time in seconds with 3 decimal digits
	

Pix Packet Protocol

Two years ago, the author defined the "Pix Packet Protocol" in article 177. The first attempt to implement it was on a Raspberry Pico. The program was named "serTxC_pico.py", which appears in the above ISO9003 list. A 2nd version was serTxD_pico.py. In 2024, the author slightly altered the serTxD code so that it would run on a Raspberry Pi without Rx/Tx hardware by displaying the serial IO characters. (A similar version is planned to run on the Raspberry Pi 5B which has Rx and Tx hardware.) He named this most recent version "serTx_D2_pico.py" on 2024BFeb14 (also in the above list). Version A of the Pix Packet Protocol is simply defined as:
    #A
    #C

    msgOut = """
    #S +
    #M +
    #E +
    #P +
    #X"""

    #where
    #A is the letter "A" meaning "16 byte packets (pktSize)"
    #C is t100c  (100 character time delay: "roman numeral C")
    #S is SOM: "["
    #M is Message text to be sent including a prefix of "16" (will be followed by EOM)
    #E is EOM: "]"
    #P is the padding characters (enough EOMs to fill the packet)
    #X is t10c  (ten character time delay: "roman numeral X")

    #Most messages will have   msgOut = "AC" "SMEPX"
For the message: "Hello,JoeMaxRoyBob" the actual 2 16-byte packets sent should be:
"[16Hello,JoeMaxR"
 1234567890123456   #facilitates counting the characters (not transmitted)
"oyBob]]]]]]]]]]]"
The benefits of version A of the Pix Packet Protocol are:
All ASCII characters are permitted in the message except "?".
Packet Lengths are small.  This favors an interactive Ascii protocol. 
All ASCII messages are readable by humans, including the "control" 
characters: "[" & "]" in the message character count.
The only 7-bit ASCII character NOT allowed in message content is "?".
The timing can be adjusted to facilitate human testing.
Little or no message encoding/decoding is required if "?" is avoided.
Version A of the Pix Packet Protocol has the following issues:
Issue 01: When transmitting, the 3rd "o" is missing when sending "Hello,JoeMaxRoyBob".
Issue 02: The prefix "[16" was included in the message in version A, but keeping the msg 
             len at 16 (counting the "[" and the "]" as message characters).
             This is desired!! But the "[16" is contained only in the first packet.
Issue 03: The length of the message does not accompany the message.
             A parity bit can be included in every byte of the message.
Issue 04: No "?" characters are allowed in the actual incoming message.  This constraint will 
                     eventually be relaxed.
             This is a quick (and dirty) solution for eliminating any "]" in a message
             When encoding, every "]" is converted to "?". 
             When decoding the message, the prefix of "[16" will be removed.
             When decoding the message, all "]" at the end of the message are removed.
             When decoding the message, every "?" is converted back to a "]".
Issue 05: See Article 177 which should suggest processing the outgoing message to encoding every
             "/" into "//" and every "[" into "/S" and every "]" into "/E" instead of prohibiting any "?".
Issue 06: How to delete (uncreate) the machine Obj??  Is such a function necessary?
Issue 07: This "Pix Packet Protocol" differs from and is much simpler than the USB protocol.
Issue 08: Within each packet, the prefix "[16" and at least one suffix "]" is necessary.
Issue 09: The control functions to be used will be (hopefully) easily converted into 
             control functions similar to those of both the pico and the Raspberry Pi 5B.
             For now, they only work for the pico.  The full list of its functions follow:

             Control functions are:
                 Obj=machine.uart()  #Obj oop class object creation
                 Obj.any()           #Obj method  returning True or False
                 Obj.read()          #Obj method
                 Obj.write()         #Obj method
                 ????                #Obj deletion (not needed)
             Non-control IX functions are:
                  bChar() na
	          mpyRead()
	              Obj.any()
	              Obj.read()
	          serRx_pico()
	              Obj=machine.uart()
	              mpyRead()
                  serTx_pico()
                      Obj=machine.uart()
                      txParse()
                  show() na
                  testTx_pico()   #main
                  testRx_pico()   #main
                  txChar() na
                  txParse()
                      sendThisPack()
                          Obj.write()
                      sendLastPack()
                          Obj.write()
             End of function list
             A more recent (as of 2024CMar05) list can be found in Source 28
Issue 10: Interrupts needed.  To read everything that is transmitted, interrupts are needed.
The version named "serTxD3_pico.py" is the latest version of the function serTxC_pico.py . Much documentation accompanies (is included in) the actual code. All referenced functions are defined in the code. Four libraries were created containing functions to replace the imported objects and methods that would actually do the transmitting and receiving. They are: IXled_onboard, IXmachine, IXutime and IXuart and are stored in the same folder as the main program. They can be seen in the PixObj.py file. Some of this code still needs to be added to this repository. A partial list can be found in Source 28.

There exist many portions of the code in "serTxD3_pico.py" that are hobbled. These sections of code are prefixed by the statement "if False :". In this manner, the functionality of these portions has been removed from the code. It is expected that these code segments may be "turned on" in a later version of this program or for debugging purposes.

test_Tx_pico.py: Outline

The pix packet protocol, in "test_Tx_pico.py" or in "serTxD3_pico", is being developed using the following program outline:

#   test_pktixRx_pi.py   OUTLINE
#
#All Use: int,str,time,strip,hex,float

#txToBeSent->|1.test_TxG_pico
#               ------------
#               1.RAPasc(->strRAPasc
#                 -------
#                 1.readADC_pico(->adcVoltage
#                 2.serTx_pico(->True
#                   -----------
#                   1.txParse(
#
#
#            |a.txParse(->a.sendThisPack(->|
#            |            b.sendLastPack(->|->a.uart.write(->GP5
#            |  --------  --------------
#            |  1.txchar(   
#            |  2.sleep(
#            
#
#
#            |0.testpktixRx(
#            |  ------------
#txIncoming->|1.machine.UART(
#            |2.serRx_pico(->oP
#            |  -----------
#            |  1.mpyRead(->strA
#                 --------                    
#                 1.bChar(->txtRead))))))))))))))

To be able to receive the packets, it became clear that interrupt software would be required. . . .

IX Raspberry Software Repository ISSUES

ISSUE 01: packages might contain multiple modules of the same name. It is NOT clear if textunpack or textselect or Python uses the first or last such module that is encountered. (Use n_v05.py [see n.py on Flb01S032G] for an overview of the contents of a code module or package.)

ISSUE 02: The author encountered an issue when writing the Bash script for n.sh (above). There appear to be numerous ways to "get" specific characters from a variable string on the command line. But a web-search of this issue only found solutions by invoking non-Bash software on the Terminal command line. The author needed to "get" the first character from the control string of a bash command, but discoved no way to do this. Apparently some implementations of Linux provide a "$[$file:0:1}" or substring solution, but Bookworm on the Raspberry Pi does not support this. There might be Bash-related software that can be implemented, the author is not aware of a solution to this issue. On the command line, one can code "s1 = $file | cut -c1-1" but neither work in a Bash script.

ISSUE 03: Multiple "def " and multiple markers and code preceding the "def " can be included. This is undesirable.

Using "textpack" Under Windows 10

One of the main uses of a textpack system is to move multiple programs from one system to another. The author attempted to use textpack to move many programs from a Windows 10 computer to the web. It was necessary to modify textpack (see version vwin10) to work under windows. It was difficult to create the list of modules to be packaged. Under Windows 10, a simple "*.py.txt" could not be used in the Windows 10 Command Prompt. A batch file was necessary. The resulting package can be seen in Source 12. It suffers from a number of issues.

CODE OVERVIEW USING n.py

Evolution: nshowdefs.py to n.py

One of the most significant Python programs that the author has created is "n.py" first on Flb01S032G, now on _KIOXIA_GTLL. The evolution of "n.py" has been an interesting journey. This journey started when the author began studying the various Python software libraries. Fortunately, the structure of a normal local Python library is quite simple. Each module in a library is delineated by a "def " statement eg "def show(...):", which defines a Python function. Libraries normally house such Python functions and only such functions. But libraries should be able to house main programs, data and even macros, if macros existed in Python. The extension of libraries to house more than functions is where the "n.py" journey started.

The author discovered that O'Reilly had expanded libraries to house more than functions. Prior to learning and using Python, the author had used macros in other programming languages on other computers. The author created a system of macros (called IXp) for the Raspberry. This IXp macro system can be used for software other than Python (eg HTML). But the use of IXp for Python programs will only be described here.

Complicated programs are assembled by importing functions, appending functions from the current directory and then some from local libraries, finally ending these with a main program module. This list of modules is put together to form a major Python program. In some cases, a number of small and large programs are put together with a menu that allows the user to select which program to run. The availability of macros permits macro variables (called entities) to guide the automatic generation of code segments within the Python functions and main programs. Some macros are defined in-line and some are defined and stored in libraries. The order of all these modules is that the external (non-in-line) macros are placed (loaded) first, functions (possibly using macros) are placed (loaded) next, then the main program module (that invokes the functions or macros) is placed (loaded) last. Version control of functions is a major issue, but is not addressed by normal Python. The normal Python import facility adds (includes) functions in modules, but the absence of version control hampers a healthy evolution of functions over the years. The author has created a special "requires()" function (Source 01) that replaces (truly adds to) the Python "import" facility. The "requires()" function adds version control when it is used to replace the Python "import". In order to replace the "import" facility, it is necessary to preprocess the final Python main module. This preprocessor is called prepIX. This whole system created by the author is called the IX Software system. The libraries created for the IX Software System have been improved in that they can include hashtotals. This evolution of the IX Software system has led to a superior library system that is called the IX_textpack_pkg.py system. This system of libraries (packages) has been designed to remain compatible with the Python library package system. The prepIX can produce one large module of Python code including a main module. Or the IX Software system can produce individual functions or programs that can be stored and assembled to create meaningful final Python modules.

Nevertheless, the IX Software System is made up of standalone functions, standalone macros, packages (libraries of either), imported libraries and main modules. When a number of these modules are selected, a complicated selection of source code modules can result in a meaningful Python program. Sometimes, this group of modules contains hundreds or thousands of statements (lines of code). The author has often wished that he could have a high-level overview of a select group of modules or of a "final" program made up of Python code. With this in mind, the author has produced the n.py program that can provide such an overview. It is described in more detail further down in this article.

While the IX_textpack library was being developed, a small utility program called nShowDefs.py was developed. It simply lists the names of each of the modules that exist in a library (or package). It was a simple extension to cause nShowDefs.py to also list the functions defined in each module. The author discovered that the list of the "def " names within each module in the list of "module" names was an interesting summary or overview of any package (or list of packages) or program. The nShowDefs.py program led to an interesting shell routine called "n.sh". This small shell routine could be invoked as "sh n.sh *.py" on the Raspberry Command Line. This simple command would process either a package or a list of Python modules (functions or programs) or any combination of these and should run nShowDefs.py to process all of these modules. It could even process all the Python packages, functions and programs in a single directory. The resulting output would be a list of module names with a list of all the "def" functions in the whole directory. This is of enormous value when searching for the different versions of code for a "lost" function.

A function was needed that could scan lines of code to find valid function names. To do this, the author needed to learn how to use the "re" library for "regular string matching'. A function name can only be comprised of certain characters. The result (as of 2024CMar06) is v05 of functionList() which uses posNxFnUsed(), the latter making heavy use of the "re" library functions: re.findall, re.finditer, re.search and re.sub. It quite successfully finds any function name (or function names) in a line of code. It should still undergo extensive testing to ensure its accuracy, but to-date (up to 2024CMar06) it has been quite successful.

The list of all the functions within a list of modules proved to be very enlightening and provided an early "overview" of the code modules selected. The author considered what other information could be gleaned by a more detailled "overview" of the contents of a group of code modules. What other types of information could be gleaned by examining the code modules? The following topics (keywords) came to mind:
      CLI  keyword type  description
      ---  ------------  ---------------------------------------------------------------
	c  class	([oop]classes are similar to, but more powerful than a function)
	d  def		(names of function definitions)
	g  global	(global variable names)
	i  import	(names of imported functions) 
	m  markers	(markers delineating items in IX libaries or IX packages, [usually module names] )
	o  o-markers	(markers delineating items in the original O'Reilly packages)
	s  source	(names of sources eg web links)
	u  used calls   (invocations of functions, these are function uses [each "call" of a function]
	                      it was found to be useful to exclude all normal Python function calls [eg print()] )
	_  dunders	(dunders signify special Python names such as __name__ or __main__" etc)
	a  all		all of the above
	   -all		provides a complete list of lines that contain any keywords
	
Perhaps a few more "keywords" should be added to the above list:
	"f" might report the names of files being opened
	"I" might report outstanding "Issues" that remain.
	"L" might report the List of Functions that are "required"
	"n" might report the actual "progName="
	"P" might report the "Purpose" of the code
	"r" might report each full "requires()" statement
	
As time passes, more keywords will indeed be added to n.py. But the author's n.py program continues to be a star the IX Software system.

The n.py program is usable today, in fact the author often uses this n.py overview program to provide an overview of a program or package.

ISSUES with n.py

ISSUE 01 : function names preceded by "(" are not recognized. (2024CMar06)

Examples of n.py Output

 Example 1 :modules & defs in a function package

pi@raspberrypi:~/Desktop/a/sandBox $ python n.py -md <functionList_pkg.py

#::: Enhanced n.py v05 [IX pkg names list prg -h for help]:
# 30 m posNxFnUsed.py
# 32   def posNxFnUsed(inStr,posIn0) :
# 35   def posNxFnUsed_v1(inStr,posIn0,v="v03") :
# 128 m functionList.py
# 129   def functionList(testStr) :
# 132   def functionList_v1(testStr) :
# 196 m posNxFnUsed.py
# 199   def posNxFnUsed(inStr,posIn0) :
# 202   def posNxFnUsed_v2(inStr,posIn0) :
# 342 m posNxFnUsed_test.py
# 343   def t2() :
# 387   def posNxFnUsedZZ(inStr,posIn0) :
# 390   def posNxFnUsed_v2(inStr,posIn0) :
# 530 m t2.py
# 531   def t2() :
# 574 m functionList.py
# 576   def functionList(testStr="#:::",v="v02") :
# 580   def functionList_v02(testStr,v) :
# 623 m functionList_test.py
# 624   def mainroutine() :
# 653 m posNxFnUsed.py
# 655   def posNxFnUsed(inStr,posIn0,v=3) :
# 659   def posNxFnUsed_v3(inStr,posIn0,v) :
# 765 m t03.py
# 766   def mainroutine() :
# 818 m t16.py
# 832   def mainroutine() :
# 853 m posNxFnUsed.py
# 855   def posNxFnUsed(inStr,posIn0,v=4) :
# 863   def posNxFnUsed_v4(inStr,posIn0) :
# 966 m t17.py
# 980   def mainroutine() :
# 1004 m functionList.py
# 1006   def functionList(testStr="#:::",v=3) :
# 1013   def functionList_v03(testStr) :
# 1055 eof
#::: end of list by n.py v05
#/functionList_pkg_Output.txt

Note that many test programs related to "functionList()" (named t3.py, t17.py etc) have been included in the function library.


 Example 2: all keywords in the nShowDefs.py program 

pi@raspberrypi:~/Desktop/a/sandBox $ python n.py -a <nShowDefs.py

#::: Enhanced n.py v05 [IX pkg names list prg -h for help]:
# 16   #       and the lines that contain "def "                          # 
# 23  import sys
# 24  # from textpack import marker            # use common separator key but
# 28   def names():
# 30       print("#::: nShowDefs also reports the def s")
# 45                       if line.find("def ")==-1 :      #DC special
# 49                            #found def                 #DC
#::: WARNING: pkg has no markers
# 64 eof
#::: end of list by n.py v05
#/nShowDefs_Output.txt

 Example 3: all keywords in a short program
 The actual code for the "Test_readCD2works.py" is in Source 03, for comparison.

pi@raspberrypi:~/Desktop/a/sandBox $ python n.py -all <Test_readCD2works.py

#::: Enhanced n.py v05 [IX pkg names list prg -h for help]:
# 1  import sys, time
# 5   def initCD2(PPin):
# 6      import RPi.GPIO as GPIO
# 9    setmode()
# 10    setmode()
# 16    setup()
# 26 m readCD2.py
# 27   def readCD2(PPin):
# 28      import RPi.GPIO as GPIO
# 32    CD2_Dongle()
# 34    setmode()
# 35    setup()
# 49    CD2_Dongle()
# 65  import RPi.GPIO as GPIO
# 66    setmode()
# 66    setup()
# 87    readCD2()
# 93 eof
#::: end of list by n.py v05
#/Test_readCD2works_py_Output.txt
The last example (immediately above) is an example of a program that uses "Classes", "Objects" and "Methods". The methods cannot be distinguished from functions even though they always have a prefix before the function name. But some imported functions also have similar prefixes. Examples of such methods in the above code are "GPIO.setmode()" and "GPIO.setup()". Programmers who make use of the GPIO pins to attach electronics will certainly be familiar with such classes. It is difficult to identify such objects through a brief overview of the code. It is strange that "class" was not found in Example 3. Occassionally, the n.py or n.sh routines will misinterpret comments in the code and will report them as a key names. One example of this exists in the third code example above. It is the "CD2_Dongle()" which is a device name not a function name. It only appears in comment lines but is mistakenly listed in the overview. As can be seen, no function/method definition name exists for a CD2_Dongle(). No "def CD2_Dongle()" function was reported or listed in the "n.py" overview.

The program providing such an overview has been named "n.py". It can provide either an amazing overview of a complex Python program, or a detailled overview of a single Python program. Even a complex function becomes simpler to understand. Running "n.py" on a package can be instructed by the control "-dim" to simply list the names of the defs, the imports and the modules. These names are listed in the order that they are found in each module. The actual statement number is shown for each line reported. These statement numbers correspond to those listed in Python error messages.

Library/Repository Function Search/Use by python/Thonny

Recently (2024CMar06) the author wrote a small program named "fOrder_test.py" to discover which function is actually used by Thonny or Python when more than one copy of a function (of the same name) exists in a location. This only applies to two locations: in-line code and packages. Apparently, both Thonny and python thoroughly examine each whole "location", and both make use of the last copy found in the location. This is NOT the way the IXp Software system currently works. Therefore the IXp Software system should be changed to match the search procedures of Thonny and Python. It should make a thorough search of each location and use the last copy found, rather than using the first copy found. Of course, the author's use of the word "copy" means "having the same name" not "housing identical code".

It is also interesting to note that Thonny (but not python) finds "from fname import fname" when searching for a function in the current folder. What a shame that they operate differently. It is also interesting to note that they both use the last copy that they find in a location, but when searching a list of possible folders or libraries (in a specific order) they use the copy that is found in the first folder or library when examining them in order. The author believes that subsequent locations or libraries are not explored by Thonny and python, probably to reduce the total search time.

Another interesting result (of fOrder_test.py) is that a standard python function (not needing any import ststement eg "input()" ) can be over-ridden by defining the function using in-line code.

The fOrder.py program should be used to determine exactly how MicroPython and CircuitPython search for functions.


Conclusion Thonny and python use the last "copy" of a function (that is found) in the first library/package/repository (where it is found), noting that libraries/packages/repositories are searched in a specific order.



Recent IX Software Code To Be Included

SOFTWARE TO ADD TO THIS REPOSITORY

See article 211 for more related information.

Many of the following are in article 211.
Also see articles 155, 164, 174, 190, 196.
----------------------------------------
module				In 215.html
ix_eDict.txt				Y
ix_grep()				Y
requires_v01_py.txt			Y
ix_pkg_py.txt ?				Y
ix_py_pkg.txt ?
IX_log.sh				Y
preParse()				Y
getSub()				Y
buildMain_WioT_v01o01_2023EMay15_i.py	Y
isInstance() not isinstance()
adcRead_pkg.py				Y
isTypeStr()
f3()					Y
As pf 2024BFeb23. the author has made a first pass through the above lists of functions/programs (to be included in this Article). He has so many software projects to work on, that he will be very busy over the next few months.

Very Comprehensive Lists of IX Functions
***************************************

Source 19 is a very comprehensive list of IX functions (from Article 174) albeit dated.
All functions listed there should be included in this article.
Article 190 contains another function list.




Source 07 by Raspberry Tips shows how an RPi OS can be configured to use UART serial communications.

The 3 year old Video Source V215:01 by DroneBot Workshop is over 1 hour long but shows in detail how to set up, program and use the Raspberry Pico.

Modules Referring To "Global"

Module Name				uSD Drive[Note]	Article
-----------------------------		---------	-------
access_global_list_definition.py	Fla57[22]	174
access_global.py			Fla57[22]	174
del_global.py   			Fla57[22]	215
fun_globals.py				Fla73,Fla57[22]	215
functions.global.php			Fla39[3C]	215
GB1_Globals.php				Fla39[07]	215
Global_en.txt (4B pin)			RPi 4B[4B]	130
get_global.py				Fla57[03]	174
global_and_isTypeStr.py			Fla68,Fla57[03]	174,215
globals_del.py				Fla57[22]	215
global.txt				G:hp_I[10][16]	215
globaljs				Fla39		na
opengl_global.bas					na
pax_global_header			Fla90[02]	na
posNxFnUsed.py				Flb01		215
qb_framework_global.bas					na
set_global.py				Fla57[03]	174
var-2-global.py				Fla58[06,23]	215
viper_globals.py			Fla58[23]	215
virtual_keyboard_global.bas		G:hp_Insignia	na
target.globals.h			Fla58		na
test_globalsC.py			Fla33[13]a35[04]215
 A,B,C

Note 02: 2019LDec02
Note 03: 2022CMar03 includes other functions (see below)
Note 04: 2023LDec04
Note 06: 2022AJan06
Mpte 07: 2019CMar07
Note 10: 2017JOct10
Note 17: 2017JOct03
Note 13: 2020FMay13
Note 16: 2022FJun16
Note 22: 2022BFeb22
Note 23: 2023KNov23
Note 3C: 2023CMar10
Note 4B: 2018JOct04

in G:BUs_ByH/2023/2023JOct06/E/2022/BUsE/Fla58

Other modules related to globals can be found in Fla35, Fla39, Fla57, Fla68, Fla73 and Flb01.

The use of globals is described in Article 174.  The code for the following functions is
included in global_and_isTypeStr.py. See Source S174:04 for the code.  These functions 
are mentioned in Article 174:

	access_global_list_definition()
	access_global()
	get_global()
	global_and_isTypeStr()
	set_global()
	get_targTempL0()
	isTypeStr()

Wio Clock Functions for the Wio Terminal

Find the code for WioClock_v02o11_2023DApr05_i.py in S189:09 .

The following MicroPython functions are used by the Wio Clock program in Article 189.

	beep()  		# future
	createSquareRows()  				# exists
	isDevice()  		# future
	listForSquareDigit()				# exists
	localDateTime()					# exists
	setLocalDateTimeCorrectionForCurrentLocalTime() # exists    
	show()  	#deprecated MicroPython		# exists
	showMP()  	#deprecates show MicroPython # future
	showList()  					# exists
	strHHMIfromClock()  				# exists
	strip()		#no strip in MicroPython	# exists
	waitForInput()  				# exists    
	workInProgress()    				# exists
	

PiR2 Task Scheduling

PiR2_Task_Scheduling04.txt contains:

Callable Tasks
**************
Add_TASK()			#done --
Next_Launchable_TASK_Number()
Remove_TASK()			#done --
TASK_Sleep()			#done   actually runs the task
Next_TASK()
init_TASK()			#done --
launch_TASK()			#done --
display_TASK_array(()

PiR2_Sound_Detected()
PiR2_Loop()
PiR2_Init()

This is an unfiniished project as of 2023BFeb26.

VIX Functions (for data vectors)

None of the following functions have been added to this repository as of 2024BFeb28.
v  makeVectorVIX(nRange,type = "square")
v  makeJSON(dt,wholeDays,wholeSeconds,fracSeconds,sRate, hertzEstimate)

   analyzeFFT_VIX()	To analyze  a VIX vector using FFT
   convertVIXtoEDT()	To convert  a VIX vector to Equal DT (EDT) VIX
   graphN_VIX()		to graph    N VIX vectors in a RPi window.
v  makeVectorVIX()      To create   a VIX vector from a mathematical wave definition
v  makeJSON()		To Create   a JSON file describing a VIX vector
   makeTimeStampTIX()	To create   a TIX timestamp & details in JSON format
   periodOfVIX()	To analyze  a VIX vector to calculate its regular period
   piR2_toVIX()		To create   a VIX vector from a PiR2 log
   sampleVIX_imp()	To create   a VIX vector using Pico ADC readings
v  vectorMathLibrary_2023FJun30_py.py VIX Vector Math Library 

See Article 203 Source S203:13 for more information.

pico ADC functions from Article 164

None of the following functions have been added to this repository as of 2024BFeb28.
	picoButton(GPnn,waitTime)
	readADC(nn,cnvrt)
	readWaveADC(nn,cnvrt,n,fmt,DT)
	picoWaveADC(nn,cnvrt,n,fmt,DT,bps)
	piWaveADC(nn,cnvrt,n,fmt,DT,bps)
	generateWave(nn,cnvrt,n,vector,DT)
	

Future Plans

Eventually the code for each function/program/pkg listed above will be accompanied by its hash total. This will ensure the integrity of all code contained in an "IX package". Any two sets of code (usually different versions of the same function) can be compared. The author suggests that "meld" be used on a Raspberry Pi for such comparisons. Consult the webmaster if you wish to receive a copy of any uSD, SSD or Flash Drive mentioned above. All of the code described has the usual caveat of "Buyer Beware" as no guarantees exist. Please inform the webmaster of any errors in the above code. Expect no immediate assistance in the correction of any such errors (as of 2024BFeb08).

As of 2024BFeb10, the author has only one Drive with this exact IX software configuration loaded and running. His only SSD housing the above programs is the 256GB KIOXIA_GTLL which is a (Toshiba) NVMe PCIe SSD. The OS loaded on this drive is Linux Bookworm OS-64. It can run on an RPi 5B or an RPi 4B using a USB-3 interface.

Of course, this article, being housed on the Web, permits any of the programs to be downloaded to computers running the Raspberry Bookworm OS, MicroSoft Windows and perhaps the Apple IOS. The author does not test his software on Apple products.

RPi 5B Issues

When the RPi 5B was announced in late 2023, the author was eager to purchase one and start experimenting with it. The reported speed improvements of the RPi 5B were very attractive, but a few issues exist that might make it difficult for the author to use the RPi 5B. The issues that concerned him the most were:

1. RPi.GPIO would not (maybe never) be supported on the RPi 5B.  Many of his electronics-related projects made use of RPi.GPIO.
2. Many Python programs would need a relatively new virtual environment for them to run.
3. Making use of the PCIe connector/interface was delayed because of the non-availability of a relevant "HAT"
4. The RPi 5B would require the latest version (Bookworm) of the 64-bit OS. New OS versions can initially be worrisome.
5. Raspberry had introduced a brand new RPi1 chip to control many of the communications channels. It could really
mess things up . . . or improve things
Usually, the author immediately orders a newly released Raspberry Pi computer, to minimize the delay time waiting for it to arrive. He waited two months before ordering a RPi 5B.

He decided to make the following preparations instead:

A. Install the 32-bit version of Bookworm OS on an RPi 4B using a USB-3 interface. Once installed the author began to learn about the differences in this new OS. Fortunately, the differences were few, for him at least.

B. He discovered that the PiNEBERRY HAT had been developed to make use of the PCIe I/F on the RPi 5B. So, he ordered one, even though he didn't yet have a RPi 5B. It took months to arrive, but so did a RPi 5B.

C. He started learning about gpiozero. He had never used it because it seemed to him that the RPi.GPIO I/F was superior and permitted him to use either physical or logical GPIO Pin numbers. This seemed to be his biggest hurtle.

D. He hoped that the virtual environment for Python on the RPi 5B would not be problematic. But he wouldn't know what it would entail until he delved into the Python and gpiozero software and the GPIO hardware.

E. He frequently reviewed the Raspberry-related Web news sites to keep up-to-date on news about the Raspberry Pi 5B.

Well, the author's work on issue 1 (Job C) was the most worrisome, so he tackled it first. He didn't need a RPi 5B to begin the conversion work. Both the RPI.GPIO and the gpiozero software code would work on one of his RPi 4B computers. He discovered that it would be possible to make a new software interface that would minimize the conversion work needed for all his existing software. He was successful in creating this new software interface that he called RPi5GPIO. He designed it so that the conversion work would be minimized, and so that his existing software could easily work on the future RPi 5B. He discovered that the conversion could be reduced to changing 1 character in most of his small Python GPIO programs. The creation of the RPi5GPIO library to replace the RPi.GPIO library took about the same amount of time as it took for him to order and receive a RPi 5B. In December 2023, his first RPi 5B arrived.

He used the new Raspberry imager software to load a microSD with Bookworm-64. It worked right out of the box as soon as he plugged the microSD card into the RPi 5B. He was hoping that a RPi 4B power supply could provide enough power. . . and it did . . . barely. He hooked up a new SSD with Bookworm-OS-64 using a USB-3 "HAT" and usb-3 cable. It also worked immediately. He was on a roll. He loaded some small GPIO software programs that used gpiozero. They worked as well. Then he tried to use his new RPi5GPIO software (calling it RPi7GPIO) that permitted him to use gpiozero on the RPi 5B. He needed to do some debugging, but it worked within a week or so. Then he turned his attention to the NVMe PCIe connector on the RPi 5B. Without a HAT, he could not proceed. Then the PiNEBERRY Pi HAT arrived. he had a little difficulty connecting it to the RPi 5B, because he had never used this type of "ribbon cable" called a FPC cable. Following a Web Source and a video (Video Source V210:01 in article 210) by Jeff Geerling, he discovered exactly which software changes were necessary. Finally, he was able to "see" the 256GB NVMe PCIe SSD on the RPi 5B using a microSD card containing Bookworm OS-64. He quickly used the new Raspberry Pi Imager software to install Bookworm OS-64 on the RPi 5B on an SSD. Finally he was up and running . . . barely. He had not ordered any type of cooling for the RPi 5B nor a bigger Power Supply, but he soon discovered that the RPi 5B did not run very hot, it never throttled the clock. Nevertheless, he orderd some cooling equipment and better power supplies for the RPi 5B. By this time a second RPi 5B arrived, this one even had 8GB.

During this process, he was changing boards, HATs, computers and software versions quite often. Some sloppy connecting (by him) burned out a Cytron Maker CM4 board. And he somehow fried the RPi 5B when he tried to plug in an external power supply that was not made by Raspberry. Fortunately, he saw the PiNEBERRY TOP HAT work on the RPi 5B before he fried the RPi 5B. But he could not get the RPi 5B with 8GB of ram to work with the PiNEBERRY HAT nor the WaveShare hat. So he decided that he would make do with the USB-3 connection to use the RPi 5B or RPi 4B. He ordered a third RPi 5B, just in case. As of 2024BFeb10, he plans to order some new PiNEBERRY boards and extra FPC cables from both PiNEBERRY and from WaveShare. The author had recently received the WaveShare HAT that does the same job as the PiNEBERRY HAT. Now that he knows that the RPi 5B will work for him, he is satisfied to do most of his development work on either the RPi 4B (or the RPi 5B) with the Bookworm OS-64 SSD connected via USB-3.

The author recenly was able to convert the software for his main GPIO project so that it would use his new RPi5GPIO library. He thought that this was a good time to update most of his software to comply with ISO9003 version control. (This article [215.html], is the result). The author must admit that software version control has not been uppermost in his priorities over recent years. Recently, he has not yet discovered a need to provide a virtual enviroment on the RPi 5B for Python. Perhaps, he might need to address it in the future, but not at the moment.

So the author has been dusting off some of his old microSD cards and Flash Drives. He has set up a stable SSD drive (KIOXIA_GTLL) running Bookworm OS-64 on a RPi 4B. And he has begun to marry his Python function library to the package library on the SSD drive. He has done a little bit of software conversion away from RPi.GPIO using his new RPi5GPIO conversion library. He has documented a novel "home/pi/Desktop folder" design revamp on the SSD attached to the RPi 4B via USB-3. He has recently been documenting his function and program libraries. Over the past 2 years, he has been developing a Python macro preprocessor, called prepIX, to run on the Raspberry Pi family of computers. He believes that it will run well on the RPi 5B with the SSD attached via the new NVMe PCIe interface.

Wio Terminal CircuitPython

The webMaster recently (as of 2024CMar02) discovered a CPython Programming Guide written by SeeedStudio for its Wio Terminal. It's weblink is at Source 22. The Project Categories that appear below do not apply to the Programming Guide, but describe the web-site where the guide is found.

(To enlarge .....Click it)
thumb: CPython_for_WioT.jpg
CPython for WioTerminal: Project Categories


To see the Raspberry Pi GPIO Pin names used by Circuit Python (for the Wio Terminal), do the following in Thonny after connecting the WioTerminal and selecting Circuit Python.
>$ import board
>$ print(dir(board))
this gives the following list....
'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'BUTTON_1', 'BUTTON_2', 
'BUTTON_3', 'BUZZER', 'CS', 'D0', 'D1', 'D10', 'D13', 'D2', 'D3', 'D4', 'D5', 
'D6', 'D7', 'D8', 'D9', 'DAC0', 'DAC1', 'DISPLAY', 'GYROSCOPE_INT', 
'GYROSCOPE_SCL', 'GYROSCOPE_SDA', 'I2C', 'I2S_BCLK', 'I2S_LRCLK', 'I2S_SDIN', 
'I2S_SDOUT', 'IR', 'LED', 'LIGHT', 'MIC', 'MISO', 'MOSI', 'RTL_CLK', 'RTL_CS', 
'RTL_DIR', 'RTL_MISO', 'RTL_MOSI', 'RTL_PWR', 'RTL_READY', 'RTL_RXD', 'RTL_TXD', 
'RX', 'SCK', 'SCL', 'SDA', 'SD_CS', 'SD_DET', 'SD_MISO', 'SD_MOSI', 'SD_SCK', 
'SPI', 'SWITCH_DOWN', 'SWITCH_LEFT', 'SWITCH_PRESS', 'SWITCH_RIGHT', 
'SWITCH_UP', 'TFT_BACKLIGHT', 'TFT_CS', 'TFT_DC', 'TFT_MISO', 'TFT_MOSI', 
'TFT_RESET', 'TFT_SCK', 'TX', 'UART', 'board_id'

 These can be used to access the various features of the Wio Terminal.


Source 24 is an easy-to-read guide to using Circuit Basic to control many popular electronic devices such as the Wio Terminal.

Source 23 shows how to use the WioTerminal as a "limited" display for a Raspberry Pi computer.

Other Thoughts

RPi 5B UART Connector

Source 08 is a link to a question about the RPi 5B Debug UART. Source 09 is a specification of the Raspberry Pi 3 Debug Port. It has a maximum baud rate of 921,600 bps which can be configured with an EEPROM parameter. Video Source V215:02 by Cytron Technologies named Power up Raspberry Pi 5 for the first time with UART debug mode (for headless setup) is a silent video.

In Source 10, ennud describes how to use the built-in uart that uses physical pins 8 and 10 (which are GPIO 14 and GPIO 15 respectively). In this video, the author shorts them together and learns how to "echo" his typed characters back to himself. The author is also taught how to use minicom software to communicate serially with another device. The use of minicom is described in his Article 172 and Article 177. Putty software also works like minicom. There is mention of "Echo on/off". The video explains how to control the non-RPi 5B uart on these pins. But this video does not yet show how to use the non-GPIO TxRx port on the RPi 5B.

Beware when connecting other serial devices to the GPIO pins. The voltages on these pins must not exceed 3.3V.

In Article 172, the author explains in detail how to install and use minicom. The minicom software is an asynchronous serial VT100 terminal emulator with file transfer capabilities. The minicom software works well on any USB port of the Raspberry Pi. The author uses minicom to communicate with the Raspberry pico and also with the Wio Terminal. The author usually turns on "wordwrap" when using minicom.

Raspberry Pi 5B : A Delight

See Source 13 for a delightful review of the Raspberry Pi 5. Source 14 is a more in-depth review of the RPi 5B by PCWorld. Source 16 by Jonathan Bray is another RPi 5B review. It contains a range of performance benchmarks and diverse photos of the RPi 5B. Source 15 by All3DP describes 5 3D-printable cases for the Raspberry Pi 5B. Some allow the use of small non-Raspberry fans. Source 17 (dated Jan 2023 by Les Pounder with tomsHARDWARE) explains how to use a camera with Python Code.

ChatGPT

In Source 11 O'Reilly provides an introduction to ChatGPT.

Sources

Video Sources

Video Source V215:01: Raspberry Pi Pico - Control the (I/O) World (63:05ms) by DroneBot Workshop c 2021 B Feb 13
Video Source V215:02: Power up Raspberry Pi 5 for the first time with UART debug mode (for headless setup) (00:59ms) by (silent) Cytron Technologies on Oct 5 2023

Web Sources

Web Source S215:01:www requires_v01_py.txt by D@CC on 2023JOct26
Web Source S215:02:www list of Software_For_Raspberry_2024BFeb07 (text) by D@CC on 2024BFeb07
Web Source S215:03:www Test_readCD2works.py (as text) by D@CC on 2024BFeb09
Web Source S215:04:www MLS by D@CC on 2024BFeb09
Web Source S215:05:www Family Search WebSite by D@CC on 2024BFeb10
Web Source S215:06:www Victor (Vic) Charles Cole (1918-2010) [FSID: L69G-PMF] at the Family Search WebSite by D@CC on 2024BFeb10
Web Source S215:07:www Using RPi OS for UART Serial Comm. by Raspberry Tips c 2024BFeb10
Web Source S215:08:www RPi5 UART connector type and voltage by jgrzelak c 2023xOct04
Web Source S215:09:www Raspberry Pi 3-pin Debug Connector Specification (RP-003130-SP-3 by Raspberry Pi Trading LTD c 2023xOct04
Web Source S215:10:www Basic UART loopback communication issues by ennud c 2017CMar25
Web Source S215:11:www What Are ChatGPT and Its Friends? by O'REILLY c 2023
Web Source S215:12:www all_pkg.py (as text) by D@CC on 2024BFeb17
Web Source S215:13:www My Raspberry Pi 5 is a delight by Jacob Fox on 2024BFeb07
Web Source S215:14:www RPi 5B: A huge upgrade by PCWorld on 2024BFeb07
Web Source S215:15:www 3D-printable cases for the RPi 5B by All3DP on 2024AJan03
Web Source S215:16:www RPi 5B: A huge upgrade by Jonathan Bray on 2024AJan26
Web Source S215:17:www Using RPi Camera Module 3 with Python Code by Les Pounder on 2023AJan14
Web Source S215:18:www replSub_v00.py module from Flb03S032G_ix (as text) by D@CC on 2024BFeb21
Web Source S215:19:www IX_Python_Functions.txt (from Article 174) by D@CC on 2022 C Mar 20
Web Source S215:20:www JSON RDASC Vector File Example by D@CC on 2024 B Feb 28
Web Source S215:21:www Circuit Python Release 8.21 by CPython Contributors on 2024 C Mar 02
Web Source S215:22:www ...WioTerminal CircuitPython by SeeedStudios before 2024 C Mar 02
Web Source S215:23:www Display RPi info on a Wio Terminal Display by SeeedStudio c2020
Web Source S215:24:www CircuitPython Essentials by Kattni Rembor on 2022BFeb14
Web Source S215:25:www Build a digital-to-analogue converter by Ben Everard on 2022GJul01
Web Source S215:26:www PicoMite (MMBasic) with PIO by Mick Ames c 2021
Web Source S215:27:www dir_pico_75S_2022BFeb25.txt (as text) by D@CC on 2024CMar04
Web Source S215:28:www List of CodeToAdd.txt (from Source 27) by D@CC on 2024CMar05

/SourcesEnd


There is a way to "google" any of the part-numbers, words or phrases in all thi articles. This "google-like" search limits itself ONLY to his articles. Just go to the top of "Articles by Old King Cole" and look for the "search" input box named "freefind".

Click here to return to Articles by Old King Cole

Date Created:2024 B Feb 07
Last Updated:2024 D Apr 06

All rights reserved 2024 by © ICH180RR

saved in E:\E\2022\DevE\MyPagesE\Globat\ePhotoCaption.com\a\215\215.html
backed up to ePhotoCaption.com\a\215\215_2024CMar05.html

Font: Courier New 10 (monospaced)
/215.html