whitequark[cis] changed the topic of #glasgow to: https://glasgow-embedded.org · digital interface explorer · https://www.crowdsupply.com/1bitsquared/glasgow · code https://github.com/GlasgowEmbedded/glasgow · logs https://libera.catirclogs.org/glasgow · matrix #glasgow-interface-explorer:matrix.org · discord https://1bitsquared.com/pages/chat
<_whitenotifier-5> [glasgow] whitequark synchronize pull request #562: [WIP] An applet for communicating using an Ethernet RGMII PHY - https://github.com/GlasgowEmbedded/glasgow/pull/562
<_whitenotifier-5> [glasgow] whitequark commented on pull request #562: [WIP] An applet for communicating using an Ethernet RGMII PHY - https://github.com/GlasgowEmbedded/glasgow/pull/562#issuecomment-2932942858
<_whitenotifier-5> [glasgow] whitequark commented on pull request #882: Add an IEEE 802.3 Clause 22/45 (SMI/MIIM/MMD/MDIO) control applet - https://github.com/GlasgowEmbedded/glasgow/pull/882#issuecomment-2932957742
<_whitenotifier-5> [glasgow] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-882-f180457dd6b93fa690e42a5ca5c6f6c809a4f504 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [glasgow] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-882-f180457dd6b93fa690e42a5ca5c6f6c809a4f504 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [glasgow] whitequark synchronize pull request #882: Add an IEEE 802.3 Clause 22/45 (SMI/MIIM/MMD/MDIO) control applet - https://github.com/GlasgowEmbedded/glasgow/pull/882
<_whitenotifier-5> [glasgow] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-882-f180457dd6b93fa690e42a5ca5c6f6c809a4f504 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [GlasgowEmbedded/glasgow] github-merge-queue[bot] pushed 2 commits to main [+6/-0/±4] https://github.com/GlasgowEmbedded/glasgow/compare/f180457dd6b9...0fa6a0cbf9d3
<_whitenotifier-5> [glasgow] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-882-f180457dd6b93fa690e42a5ca5c6f6c809a4f504 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [glasgow] whitequark closed pull request #882: Add an IEEE 802.3 Clause 22/45 (SMI/MIIM/MMD/MDIO) control applet - https://github.com/GlasgowEmbedded/glasgow/pull/882
<_whitenotifier-5> [glasgow] whitequark synchronize pull request #562: [WIP] An applet for communicating using an Ethernet RGMII PHY - https://github.com/GlasgowEmbedded/glasgow/pull/562
<_whitenotifier-5> [glasgow] whitequark synchronize pull request #562: [WIP] An applet for communicating using an Ethernet RGMII PHY - https://github.com/GlasgowEmbedded/glasgow/pull/562
<_whitenotifier-5> [glasgow] whitequark synchronize pull request #562: [WIP] An applet for communicating using an Ethernet RGMII PHY - https://github.com/GlasgowEmbedded/glasgow/pull/562
<_whitenotifier-5> [glasgow] whitequark synchronize pull request #562: [WIP] An applet for communicating using an Ethernet RGMII PHY - https://github.com/GlasgowEmbedded/glasgow/pull/562
nyanotech has quit [Remote host closed the connection]
nyanotech has joined #glasgow
radii has quit [Ping timeout: 248 seconds]
yuriks has quit [Quit: Connection closed for inactivity]
remexre has quit [Ping timeout: 252 seconds]
remexre has joined #glasgow
<icb-[m]> <whitequark[cis]> "both, see the rgmii applet in..." <- Great news
redstarcomrade has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
<_whitenotifier-5> [glasgow] whitequark synchronize pull request #562: [WIP] An applet for communicating using an Ethernet RGMII PHY - https://github.com/GlasgowEmbedded/glasgow/pull/562
anubis has joined #glasgow
Ekho has quit [Ping timeout: 252 seconds]
sorear has quit [Ping timeout: 252 seconds]
anubis has quit [Read error: Connection reset by peer]
anubis has joined #glasgow
sorear has joined #glasgow
anubis has quit [Ping timeout: 252 seconds]
quantumjump has quit [Ping timeout: 252 seconds]
JimGM0UIN has quit [Ping timeout: 272 seconds]
mobius has quit [Ping timeout: 272 seconds]
Ekho has joined #glasgow
andymandias has quit [Ping timeout: 276 seconds]
quantumjump has joined #glasgow
vup has quit [Ping timeout: 252 seconds]
vup has joined #glasgow
andymandias has joined #glasgow
mobius has joined #glasgow
elms has quit [Ping timeout: 272 seconds]
asjackson has quit [Ping timeout: 272 seconds]
JimGM0UIN has joined #glasgow
elms has joined #glasgow
asjackson has joined #glasgow
bvernoux has joined #glasgow
anubis has joined #glasgow
anubis has quit [Remote host closed the connection]
Attie[m] has quit [Quit: Idle timeout reached: 172800s]
bvernoux has quit [Read error: Connection reset by peer]
<_whitenotifier-5> [glasgow] whitequark opened pull request #883: Add a packet queue to stream library - https://github.com/GlasgowEmbedded/glasgow/pull/883
<_whitenotifier-5> [glasgow] whitequark synchronize pull request #883: Add a packet queue to stream library - https://github.com/GlasgowEmbedded/glasgow/pull/883
hansihe[m] has joined #glasgow
<hansihe[m]> If feedback is welcome, one thing I have found myself missing is the ability to set a pin high or low quickly from the CLI.... (full message at <https://catircservices.org/_irc/v1/media/download/AT0rm5onPM7rjBsBUMxigLK0M3H_7NPf7ceoLwTk31qFbgYabq1Y4C3oDurMPPWjeWsGQtEqbgDoob_Gt1UdtGq_8AAAAAAAAGNhdGlyY3NlcnZpY2VzLm9yZy9iU1JYZVlDQXhRU2lzcU5KZ1Rrd2lZZHQ>)
<whitequark[cis]> we have a GPIO applet, which could serve such a purpose
<jn> it's pretty new
<whitequark[cis]> that being said, the "read flash memory while holding device in reset" use case is common enough that memory-25x should perhaps itself support it
<whitequark[cis]> right now program-ice40-flash does almost exactly what you want
<hansihe[m]> having that in memory-25x would be nice, but more generally I would love the ability to be able to assert pins together with any applet as well
<hansihe[m]> I missed the gpio applet as I think I need to update my install, but having it in there sounds great I imagine
<whitequark[cis]> the GPIO applet doesn't currently have a CLI, but that wouldn't be hard to add
<hansihe[m]> to give some props, I hacked together a script where I instantiate several uart applets and use them to sniff several serial busses on my board simultaneously, it works so amazingly well and being able to get a trace of everything going on at once is incredibly nice. Being able to do stuff like that I started to really feel the power of the tool :)
<hansihe[m]> I threw together some notes from when working with the glasgow for the first time in a while as well: https://gist.github.com/hansihe/f7d7fd85192334a7f4d09478f0a1d1a2
<hansihe[m]> in case you are interested in the UX for a relative newcomer
<whitequark[cis]> hansihe[m]: very happy to hear that, and yeah, that's a part of the design goal
<whitequark[cis]> when you say "several" do you mean "two"? (since doing more than two would be fairly tricky rn)
<whitequark[cis]> re "- Uh oh, can't exit like I did before?" I think you need to do the exit sequence twice; this is one of the reasons multi is currently described as "experimental" in the help text
<whitequark[cis]> re "- Auto baud rate detection did seem to work, I wish it printed out what it figured out though" -- I am pretty sure we print an info level message whenever a switch is detected, or at least there is code for it
<whitequark[cis]> re "- I get receive errors even though it does seem to work generally?" -- receive errors are expected whenever autobaud triggers (since it triggers on receive errors)
galibert[m] has joined #glasgow
<galibert[m]> The uart can receive, can it send too?
<galibert[m]> With multi that should probably be two independent applets though
<whitequark[cis]> re "- Had to look at locals() to figure out the name of the uart peripheral iface, no indication of the name" -- the expected use model involves using glasgow repl before going to glasgow script, and glasgow repl does print the variable name; not sure what to do about the script, maybe just put it into docs?
<whitequark[cis]> galibert[m]: hm? the UART acts like a normal serial terminal, send and receive, within one applet
<whitequark[cis]> re "- Looked at the source code, doesn't seem to be any way to do multiple applet with script through CLI yet" -- yes. this is another reason why multi is described as experimental
<hansihe[m]> whitequark[cis]: yep, only used with 2 so far
<hansihe[m]> not complaining about any of this stuff by the way, just noted down the friction points I had :)
<hansihe[m]> I knew what I was going into when I tried experimental stuff
<whitequark[cis]> re "- Thought: From looking at the code, run, repl and script are sorta 3 sides of the same coin. Could this instead be a single subcommand, maybe defaulting to behaviour of run with an optional --repl and script flag?" -- I think that's what it started out as, our argument parsing library doesn't work very well though if the commands are combined
<whitequark[cis]> hansihe[m]: yeah I get that, I'm just offering context
<hansihe[m]> whitequark[cis]: might have missed it, that would be mb
<whitequark[cis]> re "- Thought: I know I am probably using the glasgow package in an unsupported way, but it would be really cool if there was a create_assembly function which you could pass a device and a set of CLI equivalent arguments, and it would be ready for you to use in your code" -- the idea is that you would have a Python interface that you can use to configure applets, and this Python interface would be semi-automatically wrapped in a
<whitequark[cis]> CLI based on some static annotations rather than the current code-based model we use
<whitequark[cis]> I'm not fond of the idea of manipulating CLI arguments as text in source code, though you could just do that with applet._parse_args or whatever I called that function
<whitequark[cis]> note that the "Assembly" API (everything in glasgow.abstract and key things in glasgow.hardware / glasgow.simulation), while unstable, is something you can reasonably rely on, this is an outcome of 5 years of research and development and I don't expect it to change too much. most changes would probably just shuffling things around more so than fundamental major ones
<whitequark[cis]> this means that your script that constructs two UARTInterfaces in a HardwareAssembly (I presume this is what you did?) is a part of the indended, if not fully supported yet, use model
<whitequark[cis]> we only recently migrated to Assembly based API which was done to enable exactly this sort of easy scripting \
<whitequark[cis]> s//`/, s//`/
<hansihe[m]> <whitequark[cis]> "re "- Thought: I know I am..." <- what I meant by that is that for me an ideal workflow would be to prototype something with the CLI initially, then as I make tools for myself as I continue reverse engineering whatever device then I want to throw that into a single python script which I can quickly run and version control
<hansihe[m]> to minimize friction between the CLI and the python library interface having an option to call a function which creates the equivalent assembly in the script for the set of CLI arguments could be really convenient
<hansihe[m]> ah yeah that API looks really nice
<whitequark[cis]> hansihe[m]: ah, I see. this runs into a philosophical question of, basically, "what interface is the primary one?"
<whitequark[cis]> from my perspective, the primary interface of an applet is the Python API of its *Interface class, which allows the richest and most flexible possible interaction patterns. the CLI is the secondary interface, which exposes a small subset of the Python API
<whitequark[cis]> hansihe[m]: this is basically all you need to instantiate an applet: one line per applet, and 3-4 lines of boilerplate
<whitequark[cis]> yes, it's something I haven't considered before
<whitequark[cis]> I'll think about it
<whitequark[cis]> one thing is that we don't really have any documentation on the website for the Python APIs
<hansihe[m]> I guess until they are considered stable it might not be worth it to invest too much time into docs?
<whitequark[cis]> that was the logic, but the API of applets themselves is in many cases de facto stable
<hansihe[m]> that makes sense
<_whitenotifier-5> [glasgow] whitequark opened pull request #884: Implement `AbstractAssembly.read_until` - https://github.com/GlasgowEmbedded/glasgow/pull/884
<_whitenotifier-5> [glasgow] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-884-0fa6a0cbf9d36a6de572937ca89906485472ea97 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [glasgow] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-884-0fa6a0cbf9d36a6de572937ca89906485472ea97 - https://github.com/GlasgowEmbedded/glasgow
redstarcomrade has joined #glasgow
<_whitenotifier-5> [glasgow] whitequark created branch update-lockfile - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [glasgow] whitequark opened pull request #885: Update `pdm.min.lock` - https://github.com/GlasgowEmbedded/glasgow/pull/885
<_whitenotifier-5> [glasgow] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-885-0fa6a0cbf9d36a6de572937ca89906485472ea97 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [GlasgowEmbedded/glasgow] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±1] https://github.com/GlasgowEmbedded/glasgow/compare/0fa6a0cbf9d3...8210ba69fcee
<_whitenotifier-5> [GlasgowEmbedded/glasgow] whitequark 8210ba6 - software: update `pdm.min.lock`.
<_whitenotifier-5> [glasgow] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-885-0fa6a0cbf9d36a6de572937ca89906485472ea97 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [glasgow] whitequark closed pull request #885: Update `pdm.min.lock` - https://github.com/GlasgowEmbedded/glasgow/pull/885
<_whitenotifier-5> [glasgow] whitequark deleted branch update-lockfile - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [glasgow] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-884-8210ba69fceeab7dbc1fcd84f45b0ed19ba173ff - https://github.com/GlasgowEmbedded/glasgow