minor update

This commit is contained in:
Matthew Tran 2025-04-05 16:23:38 -07:00
parent c323cb647a
commit c47fd0305f
3 changed files with 81 additions and 85 deletions

View File

@ -4,55 +4,56 @@ GEM
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
base64 (0.2.0)
bigdecimal (3.1.8)
bigdecimal (3.1.9)
colorator (1.1.0)
concurrent-ruby (1.3.4)
csv (3.3.0)
concurrent-ruby (1.3.5)
csv (3.3.2)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
faraday (2.10.1)
faraday-net_http (>= 2.0, < 3.2)
faraday (2.12.2)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-net_http (3.1.1)
net-http
faraday-net_http (3.4.0)
net-http (>= 0.5.0)
faraday-retry (2.2.1)
faraday (~> 2.0)
ffi (1.17.0)
ffi (1.17.0-aarch64-linux-gnu)
ffi (1.17.0-aarch64-linux-musl)
ffi (1.17.0-arm-linux-gnu)
ffi (1.17.0-arm-linux-musl)
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86-linux-gnu)
ffi (1.17.0-x86-linux-musl)
ffi (1.17.0-x86_64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
ffi (1.17.0-x86_64-linux-musl)
ffi (1.17.1)
ffi (1.17.1-aarch64-linux-gnu)
ffi (1.17.1-aarch64-linux-musl)
ffi (1.17.1-arm-linux-gnu)
ffi (1.17.1-arm-linux-musl)
ffi (1.17.1-arm64-darwin)
ffi (1.17.1-x86-linux-gnu)
ffi (1.17.1-x86-linux-musl)
ffi (1.17.1-x86_64-darwin)
ffi (1.17.1-x86_64-linux-gnu)
ffi (1.17.1-x86_64-linux-musl)
forwardable-extended (2.6.0)
google-protobuf (4.27.3)
google-protobuf (4.29.3)
bigdecimal
rake (>= 13)
google-protobuf (4.27.3-aarch64-linux)
google-protobuf (4.29.3-aarch64-linux)
bigdecimal
rake (>= 13)
google-protobuf (4.27.3-arm64-darwin)
google-protobuf (4.29.3-arm64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.27.3-x86-linux)
google-protobuf (4.29.3-x86-linux)
bigdecimal
rake (>= 13)
google-protobuf (4.27.3-x86_64-darwin)
google-protobuf (4.29.3-x86_64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.27.3-x86_64-linux)
google-protobuf (4.29.3-x86_64-linux)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
i18n (1.14.5)
i18n (1.14.6)
concurrent-ruby (~> 1.0)
jekyll (4.3.3)
jekyll (4.3.4)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
@ -84,17 +85,18 @@ GEM
sass-embedded (~> 1.54)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.4.0)
rexml
json (2.9.1)
kramdown (2.5.1)
rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.6.0)
logger (1.6.5)
mercenary (0.4.0)
net-http (0.4.1)
net-http (0.6.0)
uri
octokit (4.25.1)
faraday (>= 1, < 3)
@ -106,65 +108,53 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.3.5)
strscan
rouge (4.3.0)
rubyzip (2.3.2)
rexml (3.4.0)
rouge (4.5.1)
rubyzip (2.4.1)
safe_yaml (1.0.5)
sass-embedded (1.77.8)
google-protobuf (~> 4.26)
sass-embedded (1.83.4)
google-protobuf (~> 4.29)
rake (>= 13)
sass-embedded (1.77.8-aarch64-linux-android)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-aarch64-linux-gnu)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-aarch64-linux-musl)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-aarch64-mingw-ucrt)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-arm-linux-androideabi)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-arm-linux-gnueabihf)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-arm-linux-musleabihf)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-arm64-darwin)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-riscv64-linux-android)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-riscv64-linux-gnu)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-riscv64-linux-musl)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86-cygwin)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86-linux-android)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86-linux-gnu)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86-linux-musl)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86-mingw-ucrt)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86_64-cygwin)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86_64-darwin)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86_64-linux-android)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86_64-linux-gnu)
google-protobuf (~> 4.26)
sass-embedded (1.77.8-x86_64-linux-musl)
google-protobuf (~> 4.26)
sass-embedded (1.83.4-aarch64-linux-android)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-aarch64-linux-gnu)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-aarch64-linux-musl)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-aarch64-mingw-ucrt)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-arm-linux-androideabi)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-arm-linux-gnueabihf)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-arm-linux-musleabihf)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-arm64-darwin)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-riscv64-linux-android)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-riscv64-linux-gnu)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-riscv64-linux-musl)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-x86_64-cygwin)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-x86_64-darwin)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-x86_64-linux-android)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-x86_64-linux-gnu)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-x86_64-linux-musl)
google-protobuf (~> 4.29)
sawyer (0.9.2)
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
strscan (3.1.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.5.0)
uri (0.13.0)
webrick (1.8.1)
unicode-display_width (2.6.0)
uri (1.0.2)
webrick (1.9.1)
PLATFORMS
aarch64-linux
@ -208,4 +198,4 @@ DEPENDENCIES
webrick
BUNDLED WITH
2.5.17
2.6.3

View File

@ -10,7 +10,8 @@ Going into industry and college, I did not expect the sheer number of things tha
Projects I'll get to next.
- **hardware**
- **wireless solar keyboard** - full size, swappable keys, ch32 w/ nrf24, solar powered, usable in UEFI/BIOS
- **wireless solar keyboard** - full size, swappable keys, samd w/ nrf24, solar powered, usable in UEFI/BIOS
- **security system** - PoE cameras, battery backup, basic app
- **Linux board** - probably an NXP or STM32 chip, maybe a Zynq
- **software**
- **autodbconv** - LDF/DBC parser built in Rust
@ -43,7 +44,6 @@ Projects I'll get to once I finish the others.
- **Zynq breakout**
- **Intel SoC breakout**
- **CAN Sniffer** - no cutting wires, https://www.csselectronics.com/products/cancrocodile-contactless-can-adapter, inject a signal too?
- **Pi Zero Cluster** - got lots of them lying around, no SD cards
- **SDR** - deploy the BLE/802.15.4 Chisel code you wrote (zero IF?)
# Stuff to Learn

View File

@ -36,3 +36,9 @@ In terms of performance, the driver works pretty well. Measuring on an oscillosc
In the future, it would be good to buffer the packets going to and coming from TinyUSB. I'm definitely losing some packets if the OS doesn't read fast enough. It would be fun to play with cut-through mode for OASPI, squeezing a TCP/IP stack on, PoDL for 10BASE-T1S, topology discovery, and IEEE 1588 hardware timestamping. For now, this was a successful exploration.
{% include gallery %}
## update 1-19-25
Since the initial completion of this project, I've continued work on it and it has become something I'm quite proud of. Using task notifcations instead of binary semaphores improves speed, although I haven't measured by exactly how much. I did a massive refactor of the code to decouple the TinyUSB application from the Ethernet layer, creating portable `Eth` and `OASPI` classes in the process. To minimize copying, packets are now allocated and deallocated from a fixed size pool of maximum length packets. Doing this also made buffering packets between TinyUSB and the Ethernet layer easy. Since WSL doesn't come with RNDIS/ECM drivers, I also switched to NCM for true driverless use everywhere. Even more, I modified the HID interface to allow arbitrary OASPI register options, which even allows a webpage to access it using WebHID. As a proof of concept, I also implemented my `Eth` class in macOS using `libpcap`.
Currently I'm limited to about 6Mbps due to my use of USB FS. If a MAC-PHY with topology discovery ever becomes publicly available, I'll definitely build a new board with it and USB HS. If I get paid to do it though, it might have to be closed-source 😧.