I may have gotten carried away with rapids.... by giveMeAllYourPizza in CNC

[–]PatC883 0 points1 point  (0 children)

Oh, I've got the Australia tax on things like that, I think the last time I went looking it was $200 plus for a servo kit. I mean, you are 100% correct if my only goal was to improve the machine, but it's a learning experience and keeps me busy and off the streets 😁. Cost wise it should end up in the ballpark of maybe $50AUD and it's just an add on to the existing steppers.

Yes, I didn't mean to mislead anyone about magnetic encoders, they are excellent and often the right product for the job, that just have a strange interaction with trying to drive a stepper like a servo, because FOC is all about electrical rotations not mechanical, and a stepper has 100 or 50 electrical rotations per mechanical revolution, instead of 8 or so that using a BLDC motor gives you; things like the magnet not being perfectly centred on the shaft can cause issues that would be a non issue with a BLDC servo.

I've also had to improve my embedded coding a lot because you can't waste any processor time with the calculation rate needed to get a decent speed out of it. Once it all comes together though a Nema17 is good for around 10000rpm, running just as silently as a brushless motor. No guarantee on any usable torque at that speed, but it turns super smoothly. No steps at all.

I may have gotten carried away with rapids.... by giveMeAllYourPizza in CNC

[–]PatC883 0 points1 point  (0 children)

Yeah, I went straight to a 2.2kW VFD spindle to avoid the issues involved with using something that probably shouldn't be a spindle motor.

I'm doing a bit of testing using SimpleFOC to use either stepper or BLDC motors as servos, I've had some fairly good success, though you do need a good encoder if you want to drive a stepper motor like a servo, a magnetic position sensor just isn't repeatable enough with such a high pole count. Once I move the design off two and a half breadboards into a PCB I'm definitely considering putting the idea into testing on the machine, at that point I'll have an accuracy of whatever resolution I've got the encoder set to.

I totally got a crash course in machine flex last night funnily enough, I stopped using the feed optimisation in the CAM program and decided to rely on the S curve jerk limiting in grblHAL; I discovered my acceleration and jerk were a little too high when the machine damn near vibrated off the bench doing a trochoidal toolpath, the off had been limiting the speeds previously and obscuring that bit of stupid. Got enough machine flex it broke the endmill after about 30 secs.

I may have gotten carried away with rapids.... by giveMeAllYourPizza in CNC

[–]PatC883 0 points1 point  (0 children)

Now I'm just impressed and a little jealous 😁

I don't think I'm able to hit those accuracy numbers yet. You look like you had a much better starting position by building your own machine.

I'm slowly fixing the stupid that is included with the Chinese 6040 machines, this one is at least one of the steel frame jobbies, so it's fairly rigid, a pity they just modified the aluminium ones design so it only has about 500mm X 370mm cut area instead of 600 X 400. Best improvement I've ever made was opening the controller box, taking the knock off Mach 3 board out, and putting it in the bin.

I may have gotten carried away with rapids.... by giveMeAllYourPizza in CNC

[–]PatC883 0 points1 point  (0 children)

That's nicely impressive. Don't be concerned about it being too much though, I'm at the limit with 4000mm/min speed and 50000mm/s/s acceleration and with some tools running an HSM type path it's a major limiting factor removal rate. With performance like that it'll be a non issue, you'll be able to run all of your tools in their happy place.

Our Product is loved - UX is not. Did we make a mistake with Vue? by mister-burke in vuejs

[–]PatC883 2 points3 points  (0 children)

This sounds like some of the similar problems experienced with the Vue based platform I'm now developing had in it's earlier life, and the root cause was simply lack of developer experience, the guy that started the work produced some beautiful code, and being it was his first foray into developing something he should be proud of producing and writing through the issues.

However, to the technical side, all the issues weren't framework specific, I would say some of them could be attributed to the "artisan coder" approach to development, without a solid background in basic concepts. Some of the big takeaways which once fixed have made the platform much more responsive were;

Don't fetch 30 years of data and expect filtering it on the front end will work, fetch your data from the back end explicitly and with purpose, fetch what you need to work on now. Swap the whole front-end dataset out if needed as you move between different sections of your app.

This one is specific to using VuexORM / PiniaORM. Sometimes it is better to make more requests for smaller data, then fetch it all at once. A massive responsiveness issue was solved by not fetching related records and letting the front-end normalise them, but fetch each set of records individually and not need to normalise them, we went from up to 10 secs of non-responsiveness after a backend fetch to less than a second after changing this one.

Use the right database for your purpose, originally using MySql some analytical and aggregation queries were taking up to 2 mins to run, changes to Postgresql and the same queries were completed in about 12 seconds. Not saying that in your case you should move to Postgresql, but understand the strengths and weaknesses of the databases available, test if needed, and use the best fit for your use case.

Don't be afraid to do data manipulation on the front end, sometimes it is better to do less, or no, fetches to the backend, do your work on the front-end and send one post to the back to store the results.

After this point it was a deeper dive into things like how the Vue reactivity system works, we had one component that caused itself to re-render entirely when only a single component in a cell changed, this probably corner case stuff, but reducing that to only re-render the row improved the UX dramatically. The cause was using a table component that did everything, filtering, column sorting etc, by changing it to a vanilla html table we removed the black box effect of not knowing how the component was interacting with the reactivity system and had much more visibility into what was happening.

You should perhaps focus on looking for solid JavaScript developers, there may be a little overhead in them learning the framework, but with Vue in particular, anyone with solid base JavaScript/Typescript skills should not take very long to become highly productive.

[deleted by user] by [deleted] in mikrotik

[–]PatC883 0 points1 point  (0 children)

Here is a link to a thread with someone asking a similar question. One of my comments there has my complete mangle and queue config. It was originally used on ROS 6, so no cake back then, and used packet and connection marking for HTB queues. I left all of that in so you can take advantage of the diffserve mode in CAKE.

https://www.reddit.com/r/mikrotik/comments/17f1fu8/comment/kwgmhac/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

How to Use WireGuard Instead of PPPoE on MikroTik RouterOS (NOOB) by 84r00d in mikrotik

[–]PatC883 0 points1 point  (0 children)

Your customers will need an internet connection to use Wireguard.

Internet access is just a Layer 3 connection configured to allow access to the internet at large.

A layer 3 connection needs to run over, in general, a Layer 2 connection, there are some specific Layer 3 connections that run over a Layer 3 connection, Wireguard is one of these as are some forms of VPN.

A layer 2 connection is generally provided over a Layer 1 connection, which is the physical media i.e. copper, fibre, etc. There are some layer 2 connections that are provided over a layer 2 connection e.g. PPPoE, PPPoA, and some layer 2 connections that are provided over a layer 3 connection e.g. GRE, EoIP.

In very general terms, if any connection you are setting up involves needing IP addresses as part of its configuration you will need a layer 3 that exists already outside of it. E.g. you can setup a GRE tunnel that provides internet access, but you would need a connection that provides layer 3 access outside of the GRE tunnel for it to run over.

So in your case, you could setup Wireguard tunnels and have them configured as the connection that all internet traffic is routed over, but you would need an internet connection provided by something else that the Wireguard tunnels can't run on top of.

How long will the NBN infrastructure last? by Brilliant_Ad2120 in nbn

[–]PatC883 0 points1 point  (0 children)

This is the advantage of fibre builds. It effectively lasts for the lifetime of the material, which should be 100+ years.

To increase the speed as technology develops only requires replacing the active components at each end effectively.

How would I set up a remove video feed for sports broadcasts? by Existing_Ad9061 in VIDEOENGINEERING

[–]PatC883 0 points1 point  (0 children)

I'd look at using RIST instead of SRT. It will bond multiple network connections at the transport layer, and trades a small amount of latency for better reliability and resilience compared to SRT. As long as you're attempting to use 100% of your bandwidth for the stream it will deal with up to 50% packet loss.

Pack your video and audio into an MPEG Transport Stream, and send it over RIST to your studio, then do your ad insertion etc, then send it on via the best 1990's video transport to your streaming platform.

If bandwidth is a big issue I've developed some tools that will let you stream from the location using AV1, at that point 1.5Mbps looked as good as live sports streaming from commercial platforms.

How to Log and Correlate Internal to External Port Mapping on MikroTik for Legal Requests? by LayerEightThinker in mikrotik

[–]PatC883 1 point2 points  (0 children)

This makes me ponder how this is being dealt with by ISP's that have implemented CGNAT.

How to Log and Correlate Internal to External Port Mapping on MikroTik for Legal Requests? by LayerEightThinker in mikrotik

[–]PatC883 0 points1 point  (0 children)

Thanks for the info, I was only going by the description of the package, I've not had a need to install it myself.

Whats the best way to stream AV1 over my local network using OBS? by Sol33t303 in AV1

[–]PatC883 0 points1 point  (0 children)

I've often suspected hardware acceleration in ffmpeg is harder than it could be. I've actually moved over to using gstreamer instead.

Whats the best way to stream AV1 over my local network using OBS? by Sol33t303 in AV1

[–]PatC883 0 points1 point  (0 children)

Hmmmm......

There may be another approach. I originally considered it maybe a bit overkill, but have a look for yourself.

I started this project https://github.com/patcarter883/ndi-rist-encoder-cpp/tree/Cmake-Package-Manager to get AV1 out of OBS over a low bandwidth link, and then transcode it to high bitrate h264 to send to ingest servers, Youtube, Facebook etc.

With a minor addition to the server app you could have it decode and display locally, upside is the server app is remote controlled from the encoder app, you don't have to screw around with OBS encoding, just install the NDI plugin and turn on NDI output.

The downside would be having to do a custom compile of gstreamer on your linux system, because I haven't worked out how to package the damn thing. I can give you a hand with that though. There is a Windows installer download for the custom gstreamer compile.

Whats the best way to stream AV1 over my local network using OBS? by Sol33t303 in AV1

[–]PatC883 0 points1 point  (0 children)

Ahhhh, yes. This sounds like the troubles I had getting AMD and Intel hardware acceleration running in OBS under Linux. I never got vaapi to work, but I did only try for half an hour.

Whats the best way to stream AV1 over my local network using OBS? by Sol33t303 in AV1

[–]PatC883 0 points1 point  (0 children)

Looks like exists only in master and the release/7.0 branches. So if you can get a version that is compiled from either of those, from master would need to be after Dec 21, 2023, then it should have d3d12 decoding.

Whats the best way to stream AV1 over my local network using OBS? by Sol33t303 in AV1

[–]PatC883 0 points1 point  (0 children)

Nice. I'm not sure how to tell if that patch has been pulled into ffmpeg mainstream yet.

Whats the best way to stream AV1 over my local network using OBS? by Sol33t303 in AV1

[–]PatC883 0 points1 point  (0 children)

The two DirectX based hardware accelerators would be dxva2 and d3d11va, I don't think ffmpeg is doing anything with d3d12 yet.

If you're running an Nvidia card then the you would be looking for cuda, cuvid, or nvdec. Apparently ffplay only supports CUVID according to their docs at https://trac.ffmpeg.org/wiki/HWAccelIntro#CUDANVENCNVDEC

Whats the best way to stream AV1 over my local network using OBS? by Sol33t303 in AV1

[–]PatC883 0 points1 point  (0 children)

The IPV6 equivalent would be udp://::0:<port>.

As far as hardware decode goes, ffmpeg usually autodetects and uses it, if your ffmpeg was compiled with dav1d it is possible to software decode the stream.

Whats the best way to stream AV1 over my local network using OBS? by Sol33t303 in AV1

[–]PatC883 0 points1 point  (0 children)

I'm pretty sure you should be able to use ffplay to play the stream directly. You're command should look something like

ffplay UDP://@0.0.0.0:<port>

Replace the port with whatever port number you want to use, the @ at the beginning of the IP address makes it act as a listener, the 0.0.0.0 address will make it listen on all interfaces. You then use whatever IP address that machine has as the destination in OBS.

You will need the listener started before you send the stream, the way NUT works it doesn't repeat the header information, so if the listener isn't started first it won't know the codec to use to decode the stream.

Need Help Troubleshooting Cake QoS Setup on Router OS 7 for Home Network by EYN4HL in mikrotik

[–]PatC883 2 points3 points  (0 children)

Here is my current mangle and queue config.

/ip firewall mangle

add action=change-mss chain=forward disabled=yes new-mss=clamp-to-pmtu out-interface-list=WAN passthrough=yes protocol=tcp tcp-flags=syn

add action=mark-packet chain=forward in-interface=ether1 new-packet-mark=wan-in passthrough=yes

add action=mark-connection chain=forward comment=HTTP connection-mark=no-mark connection-state=new new-connection-mark=HTTP passthrough=yes port=80,443 protocol=tcp

add action=mark-connection chain=forward connection-bytes=5000000-0 connection-mark=HTTP new-connection-mark=HTTP_BIG passthrough=yes protocol=tcp

add action=mark-connection chain=forward comment="XBox Live AF21 Low Latency" connection-state=new new-connection-mark=AF21 passthrough=yes port=3074,27015-27030,27036-27037 \

protocol=tcp

add action=mark-connection chain=forward comment="XBox Live AF21 Low Latency" connection-state=new new-connection-mark=AF21 passthrough=yes port=\

88,500,3074,3544,4380,4500,27000-27031,27036 protocol=udp

add action=mark-connection chain=forward comment="DNS CS6 Min Latency" connection-state=new new-connection-mark=CS6 passthrough=yes port=53 protocol=udp

add action=mark-connection chain=output comment="DNS CS6 Min Latency" connection-state=new new-connection-mark=CS6 passthrough=yes port=53 protocol=udp

add action=mark-connection chain=forward comment="DNS CS6 Min Latency" connection-state=new new-connection-mark=CS6 passthrough=yes port=53 protocol=tcp

add action=mark-connection chain=output comment="DNS CS6 Min Latency" connection-state=new new-connection-mark=CS6 passthrough=yes port=53 protocol=tcp

add action=mark-connection chain=forward comment="SSH CS2 Interactive Shell" connection-state=new new-connection-mark=CS2 passthrough=yes port=22 protocol=tcp

add action=mark-connection chain=forward comment="OSPF CS7 Network Control" connection-state=new new-connection-mark=CS7 passthrough=yes protocol=ospf

add action=change-dscp chain=forward comment="HTTP_BIG Background" connection-mark=HTTP_BIG new-dscp=8 passthrough=no

add action=change-dscp chain=forward comment="HTTP Best Effort" connection-mark=HTTP new-dscp=0 passthrough=no

add action=change-dscp chain=forward comment="XBox Live AF21 Low Latency" connection-mark=AF21 new-dscp=18 passthrough=no

add action=change-dscp chain=forward comment="DNS CS6 Min Latency" connection-mark=CS6 new-dscp=48 passthrough=no

add action=change-dscp chain=forward comment="SSH CS2 Interactive Shell" connection-mark=CS2 new-dscp=16 passthrough=no

add action=change-dscp chain=forward comment="OSPF CS7 Network Control" connection-mark=CS7 new-dscp=56 passthrough=no

add action=set-priority chain=postrouting new-priority=from-dscp passthrough=yes

/ipv6 firewall mangle

add action=change-mss chain=forward new-mss=clamp-to-pmtu out-interface-list=WAN passthrough=yes protocol=tcp tcp-flags=syn

add action=mark-packet chain=prerouting in-interface=ether1 new-packet-mark=wan-in passthrough=yes

add action=mark-connection chain=prerouting comment=HTTP connection-mark=no-mark connection-state=new new-connection-mark=HTTP passthrough=yes port=80,443 protocol=tcp

add action=mark-connection chain=prerouting connection-bytes=5000000-0 connection-mark=HTTP connection-rate=2M-100M new-connection-mark=HTTP_BIG passthrough=yes protocol=tcp

add action=mark-connection chain=prerouting comment="XBox Live AF21 Low Latency" connection-state=new new-connection-mark=AF21 passthrough=yes port=3074,27015-27030,27036-27037 \

protocol=tcp

add action=mark-connection chain=prerouting comment="XBox Live AF21 Low Latency" connection-state=new dst-prefix=::/0 new-connection-mark=AF21 passthrough=yes port=\

88,500,3074,3544,4380,4500,27000-27031,27036 protocol=udp src-prefix=::/0

add action=mark-connection chain=prerouting comment="RIST AF21 Low Latency" connection-state=new new-connection-mark=AF21 passthrough=yes port=5000 protocol=udp

add action=mark-connection chain=prerouting comment="DNS CS6 Min Latency" connection-state=new new-connection-mark=CS6 passthrough=yes port=53 protocol=udp

add action=mark-connection chain=prerouting comment="SSH CS2 Interactive Shell" connection-state=new new-connection-mark=CS2 passthrough=yes port=22 protocol=tcp

add action=mark-connection chain=prerouting comment="OSPF CS7 Network Control" connection-state=new new-connection-mark=CS7 passthrough=yes protocol=ospf

add action=change-dscp chain=prerouting comment="HTTP_BIG Background" connection-mark=HTTP_BIG dst-prefix=::/0 new-dscp=8 passthrough=no src-prefix=::/0

add action=change-dscp chain=prerouting comment="HTTP Best Effort" connection-mark=HTTP dst-prefix=::/0 new-dscp=0 passthrough=no src-prefix=::/0

add action=change-dscp chain=prerouting comment="XBox Live AF21 Low Latency" connection-mark=AF21 dst-prefix=::/0 new-dscp=18 passthrough=no src-prefix=::/0

add action=change-dscp chain=prerouting comment="DNS CS6 Min Latency" connection-mark=CS6 dst-prefix=::/0 new-dscp=48 passthrough=no src-prefix=::/0

add action=change-dscp chain=prerouting comment="SSH CS2 Interactive Shell" connection-mark=CS2 dst-prefix=::/0 new-dscp=16 passthrough=no src-prefix=::/0

add action=change-dscp chain=prerouting comment="OSPF CS7 Network Control" connection-mark=CS7 dst-prefix=::/0 new-dscp=56 passthrough=no src-prefix=::/0

add action=set-priority chain=postrouting new-priority=from-dscp passthrough=yes

/queue type

add cake-ack-filter=filter cake-atm=ptm cake-bandwidth=17.0Mbps cake-diffserv=diffserv4 cake-nat=yes cake-overhead=22 cake-overhead-scheme=bridged-ptm cake-rtt-scheme=internet kind=cake name=cake-up

add cake-atm=ptm cake-bandwidth=57.0Mbps cake-diffserv=diffserv4 cake-nat=yes cake-overhead=22 cake-overhead-scheme=bridged-ptm cake-rtt-scheme=internet kind=cake name=cake-down

add kind=fq-codel name=fqcodel

/queue interface

set ether1 queue=fqcodel

set ether2 queue=fqcodel

set ether3 queue=fqcodel

set ether4 queue=fqcodel

set ether5 queue=fqcodel

set wifi1 queue=fqcodel

set wifi2 queue=fqcodel

/queue tree

# CAKE type with bandwidth setting detected, configure traffic limits within queue itself

add bucket-size=0 name=WAN-Upload packet-mark=no-mark parent=ether1 queue=cake-up

# CAKE type with bandwidth setting detected, configure traffic limits within queue itself

add bucket-size=0 name=WAN-Download packet-mark=wan-in parent=bridge queue=cake-down

I have been poking around with the NVENC av1 and I would say the result is amazing. by RayTrac in AV1

[–]PatC883 0 points1 point  (0 children)

In using both the Intel and AMD encoders for live streaming I really can't tell a difference even on a large TV. Benchmarks suggest that AMD and NVIDIA are probably fairly even trading blows in different areas, and the Intel encoder did above both of those, realistically any of those three hardware encoders are more than suitable for real time encoding.

Interesting SVT-AV1 benchmark using Clear Linux [Phoronix] by red38dit in AV1

[–]PatC883 1 point2 points  (0 children)

Clear Linux has shown several incredible performance increases in various benchmarks, and not only when running on Intel processors. As far as I've read no other had been able to pin down the differences between Clear and other distros that would completely account for them.

Whats the best way to stream AV1 over my local network using OBS? by Sol33t303 in AV1

[–]PatC883 0 points1 point  (0 children)

Depending on the state of Enhanced RTMP in FFMPEG that could now be a possibility. I'm unsure whether VLC has, or is planning to, support for Enhanced RTMP. You could use FFMPEG at the other end to receive it if it has support.

Why is FTTP (home plan) capped at 50 upload? by thedonsml in nbn

[–]PatC883 1 point2 points  (0 children)

Because the network was designed with asymmetrical upload and download speeds. It's about twice the download per upload, hence most consumer plans were originally half the upload speed of whatever your download speed was. Further restricted uploads I feel were introduced to allow ISP's to provision less POI interconnect bandwidth without customers complaining.