The ULX3S becoming widely available now is good timing! I've published a small demo of my game now, here's a video with a few thankyous at the end to people here that enable this sort of project:
https://twitter.com/danrr_au/status/1314844897225048066
I think it was @lawrie or @emard that suggested publishing bitstreams/binaries, I've added a set of them on the github releases page so no need to build from source anymore. The binaries assume 85F + 16MByte of flash, confirmed ok on winbond and hopefully ISSI too
ORP.Compile Sierpinski.Mod
import upip
upip.install('micropython-socks')
import socks
socks.start()
it will start listening on 0.0.0.0:1080 for SOCKS5 connections.curl --socks5 192.168.4.1:1080 http://ifconfig.co
>>> upip.install('micropython-socks')
Installing to: /lib/
Warning: micropython.org SSL certificate is not validated
Installing micropython-socks 1.0.0 from https://files.pythonhosted.org/packages/14/26/fd27f2e4ff38bc2f85666030205e1a597705f7bfc8b1a5209299f2305e57/mic
ropython-socks-1.0.0.tar.gz
Error installing 'micropython-socks': [Errno 13] EACCES, packages may be partially installed
>>> import upip
>>> upip.install('micropython-socks')
Installing to: /lib/
Warning: micropython.org SSL certificate is not validated
Installing micropython-socks 1.0.0 from https://files.pythonhosted.org/packages/14/26/fd27f2e4ff38bc2f85666030205e1a597705f7bfc8b1a5209299f2305e57/micropython-socks-1.0.0.tar.gz
>>>
$ curl --socks5 192.168.48.183:1080 https://raw.githubusercontent.com/lawrie/saxonsoc-ulx3s-bin/master/Smp/bitstreams/ulx3s_85f_green_2core_saxonsoc.bit --output file1.bin
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 935k 100 935k 0 0 43727 0 0:00:21 0:00:21 --:--:-- 46644
>>> os.listdir()
['boot.py', 'main.py', 'webrepl_cfg.py', 'uftpd.py', 'nes.py', 'ecp5.py', 'spiram.py', 'spi_ide.py', 'lib', 'osd.py']
>>> os.statvfs('/')
(4096, 4096, 506, 13, 13, 0, 0, 0, 0, 255)
>>>
@emard you are correct in that you
ORP.Compile Sierpinski.Mod
You can type that out and then you must middle-click on the ORP.Compile part of what you typed. Oberon separates the typing and the command invocation. There are no directories in the RISC oberon (a.k.a. Oberon-07) so you don't have to change directories anywhere. Of course the source code has to be there in order for you to compile it... you can see what source code files are there by typing
System.Directory *.Mod
Once you have successfully compiled the module you can invoke it by middle-clicking on
Sierpinski.Draw
One of the things Oberon does is if you have an up arrow (typed with the ^ key) after many commands you can just highlight the target and click the command. So if you had ORP.Compile ^ somewhere and you had a directory listing with Sierpinski.Mod in it you could highlight (click down with the right button, drag across, lift up) Sierpinski.Mod and then middle-click on ORP.Compile ^
Same thing with System.Directory and Edit.Open For example, you can list all the source code files by highlighting *.Mod, then middle click on System.Directory ^, then highlight a module you are interested in, and middle click on Edit.Open and it will open in the main middle window. Mouse interaction is maximized re-using text already displayed on the screen.
~
key.
Just released socks server for micropython at https://github.com/kost/micropython-socks
using socks is neat idea! i went with the following terrible (but working) construction for networking in Linux for now: SaxonSoc runs pppd over the UART, ESP32 runs a script that bridges the UART<->a TCP connection, another pppd runs on a server where the TCP connection goes to
Saxon gets a routable IP on the network this way through pppd's proxyarp
… well, and it avoided needing a MicroPython with IP_FORWARD… the maximum baudrate that seems to work without breaking ssh key exchange negotiations is 230400
I have currently saxon on the eth and esp32 on the wifi. So from saxon I can ping wifi ip of esp32 and there you can find socks5 too. Of course ppp could be used too but I guess you have your eth setup ready
hah 'the long way around'
stty -F /dev/ttyUSB0 raw
pppd /dev/ttyUSB0 115200 10.0.5.2:10.0.5.1 noauth local debug dump defaultroute nocrtscts nodetach
<local_IP_address>:<remote_IP_address>
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3aef770> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3aef770> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3aef770> <pcomp> <accomp>]
LCP: timeout sending Config-Requests
Connection terminated.
Modem hangup
replsh -p 1234 192.168.48.183
>>> import socks
>>> socks.start()
[1] Server started [0.0.0.0:1080]
>>> import ppptun
usage:
p=ppptun.ppptun()
... PPP traffic at RX=GPIO16, TX=GPIO17
del p
>>> p=ppptun.ppptun()
PPP tunnel
quickly after max 5-10 sec at saxonsoc
stty -F /dev/ttySL0 raw
pppd /dev/ttySL0 115200 10.0.5.2:10.0.5.1 noauth local debug dump nodefaultroute nocrtscts nodetach
Using interface ppp0
Connect: ppp0 <--> /dev/ttySL0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x5465e24b> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x652e3dee> <pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x652e3dee> <pcomp> <accomp>]
....
local IP address 10.0.5.2
remote IP address 10.0.5.1
...
root@buildroot:~# telnet 10.0.5.1 1080
Connected to 10.0.5.1
curl: (6) Could not resolve host: ifconfig.co
curl --socks5 10.0.5.1:1080 http://ifconfig.co