Hacker Newsnew | past | comments | ask | show | jobs | submit | unixfg's commentslogin

Would this have been possible without PIO?


On a Pico? No - the PIOs replace other peripherals a µC might be able to use to achieve this sort of bitrate, so you'd not really have the tools you'd need to change GPIO pin states once every 3-4 CPU clock cycles.

In a sense the PIO is a bit 'cheaty' when claiming "bit-banging", because the PIO is the ultimate peripheral, programmable to be whatever you need. It's no mean feat to make the PIO do the sorts of things happening here, by any stretch, but "bit-banging" typically means using the CPU to work around the lack of a particular peripheral.

From that perspective, there's precious few µCs out there that could bit-bang 100MBit/s Ethernet - I'm no expert, but I _think_ that's a 125MHz IO clock, so if you want 4 CPU cycles per transition to load data and push it onto pins, you're looking for a 500MHz µC, and at those speeds you definitely have to worry about the bus characteristics, stalls, caching, and all those fun bits; it's not your old 8-bit CPU bit-banging a slow serial protocol over the parallel port any more.


>On a Pico? No

but Yes on pico2 because RP2350 has separate fast serializer (HSTX) hardware block able to clock out at 2x the global clock (DDR). 320MHz OC results in 600Mbit output. Here example pumping out 175 MByte/s of data encoded as HDMI signal (3 lanes) without touching PIOs https://github.com/steve-m/hsdaoh-rp2350 to be used with $6 MS2130 USB 3.0 4k HDMI Video Capture dongle.


They really are pretty awesome little ICs. Thanks for the interesting link!


It's why I call the Pico a "headless Amiga"—the PIOs are basically Coppers but for general I/O instead of tied to a display.

I just wish the toolchain weren't so janky...


There's an independent reimplementation of the PIO assembler here: https://crates.io/crates/pio -- I haven't tried it so don't know how good.


Intriguing, but I'm referring to the toolchain as a whole. Everything is done with CMake mumbo jumbo that is a pain to set up. For a computer this small and simple there should be a straightforward "compile .c to .o, link .o to flashable binary, flash binary" that any user can type in at the shell or put into a Makefile.


I think XMOS can do it (the ones without the GEMAC) but I'm not exactly sure how much hardware assistance they have.


Ehhhhh the picture shows a very short cable. You can most certainly find micros that can run 100Mb/s communication interfaces, though sure maybe not bitbanged. However, you really need a PHY and magnetics. MII is 25MHz which seems fine. GMII is 125 MHz SDR which is something. Honestly that would've been a cooler demo IMO than running 2 inches


>"bit-banging" typically means using the CPU

This is significant. It's using a hardware peripheral that is designed and intended for high frequency IO manipulation without CPU intervention. This isn't bit-banging, lest we start calling it "bit-banging" any time an FPGA or ASIC or even a microcontroller peripheral handles any kind of signalling.


It's a programmable hardware peripheral runs compiled software to toggle pins in a way that is entirely defined by that software.

Here, it runs software that allows it to talk 100mbps Ethernet.

Someone else might use that same hardware peripheral to drive a display, or produce a PWM output, or whatever.

The RP PIOs just run software. That software can bang bits.


Technically it's running software on the programmable I/O, but that software is just a loop of four outputs that advances when it gets a 1 bit and doesn't advance when it gets a 0 bit. It feels like the hardware that manages the buffer and turns it into a high speed serial stream is doing the more important work here.

And the CPU that's actually deciding on the bits doesn't have to bang them with precise timing, it just has to put them into that buffer.


Yeah but like FPGA fabric can also be programmed (sometimes by actual software like on Zynq or Stratix SoCs), would you call those bit banging too?


I feel most people would unless you use some Hard IP for the interface. Like you don't bit-bang PCIe when you feed a wide AXI stream at a few MHz into the PCIe block where it get's serialized and put onto the lanes at the signalling rate (multiple Gigahertz, depending on generation).


I don't have any hands-on experience with FPGAs. I only know about as much about FPGAs as I do about red herring.


Not at that transfer rate. SPI which is the next fastest (common) protocol you find on micros typically operates around 10 Mhz, but this isn’t an apples to apples comparison.


My previous PCP used a system that would tell me my results are in, but I wasn’t allowed to view them until the doctor called me to talk about it.


Right and in this case the doc hadn’t called in many days which I feel was negligent on their part, leaving the patient to self analyze.


Why are the buttons are printed to be readable from the large sign side of the device and not the management side?


If I'm in an open office and can set my status clock on top of a monitor, then I don't need the manual controls because I will be changing it via the computer. If I'm not using a computer and setting the device down on my desk in a cubicle, then the primary screen is going to be turned towards me and I will need to use the manual controls. For that specific set of use cases, I see the logic behind the manual control label positions.


Noticed that too -- makes no sense to me. Cool otherwise.


yes this seems a strange choice. The operator is clearly controlling it from the side with the small screen.


Even better Digicert is using the order as cover to give all of their customers extra time.


No, they've been mostly power supply and cpu cooler reviews for two years now.

https://www.anandtech.com/show/17270/going-from-there-to-her...


Which is a shame. I really miss the old articles by Anand, Andrei, and Ian and their in-depth discussions about CPU and SoC architecture. I haven’t really found a consistent source to scratch that itch after they left.




Thanks for the suggestions! I will check them out.


Chips & Cheese has some good CPU and SoC analysis


Yup, 2nd that one as well as the link I already gave. Maybe it's the more direct replacement for old school Anand.


Is this perhaps people who don’t have port forwarding setup and are costing Plex money on their proxy?


Plex limits their proxy to 1mbps for free users, 2mbps for paid.

If this were a significant cost I can't see why they wouldn't provide the option to pay for more bandwidth, or make relay a metered feature.

https://support.plex.tv/articles/216766168-accessing-a-serve...


This is the reference I like: https://nohello.net


Bottom Line Up Front - opening your message with the core request or message first - is a related practice from the military that works really well for email. https://en.wikipedia.org/wiki/BLUF_(communication)

The way I apply this to emails is to ask myself: if someone only reads the first sentence would they know what I need and if they need to act on it immediately, read it at their leisure, or file it away?


I like this one, it's a little more subtle: https://yeshello.org/


I fear that one would be misinterpreted by a significant percentage of American office workers.

And by an even higher percentage of overseas colleagues in some countries.


Look at the timestamps. That exchange extends over three days on that site, showing how useless it is in a subtle way.


Consider all the people who are naturally inclined or conditioned to behave like the example, and then consider that many of them will miss the subtlety.

Especially those who for whom American business culture might be foreign. "Oh, they have politeness and trust-building conventions, much like we do. This is more pleasant than Hollywood led us to believe. It seems the difference is that you also verbalize what you are doing in their conventions. Maybe that's because they are a nation with a diverse immigrant mix, so they evolved that to reduce misunderstandings, and to help integrate people to common conventions. That's nice of them, and I will be sure to emulate."

I think the subtlety on that page is tuned for humor to those who already know, not to educate or persuade those who don't.


Agreed. Just ask the bloody question.


People, particularly family, calling me on the phone and then asking me what I'm doing as if it's any of their business and it's their decision whether what they need is more important than what I'm doing is such a pet peeve of mine.


How do you start the conversation when you call your brother/sister?


*ring*

"Hello?"

"IT IS TIME."

*click*


With whatever the thing is I need to talk to them about.


I admit to being guilty of the "YT?" or "Hi" type messages, but it's for a reason: the person may be presenting to a client and shared their screen instead of their window.

I've been on too many Zooms where the presenter's Slack pops up saying, "John, we have a call with <company name> about <topic> at 3:00. Can you join?"

Multiple times, this information was probably sensitive. I'd rather avoid that by waiting until I get a response.


While you have a point, the golden rule is to shut down everything related to email and IM during meetings.


But you can't control what other people do. You can control what messages you send.


But you can expect people to do their jobs. If a notification embarrassed the company in front of a customer then talk to that person's manager about training them to not be a numpty.

Stop having such low expectations of grown ass adults.


You clearly haven't worked at a job with incompetent adults before. I mostly haven't either thankfully, but my wife just put in her two weeks resignation after two months at her new job because she works proposal management and she couldn't get anyone to do anything properly (proposal management requires getting information from other people in order to put together a proposal with all the information requested), while they just kept piling enough work to keep at least 3 employees busy on her.

Forms filled out wrong after explicit instructions, vital information needed for a proposal due at 10 in the morning not received until 5pm the day before (and even then it's missing half of what they were told was needed), and then after asking for it again, finding out half an hour before it's due "oh I'm out running an errand, I'm not in the office, I can't get that to you", people taking pictures of handwritten notes in sloppy handwriting and sending them to other coworkers instead of typing them up themselves, people refusing to click a link on their iPads to access a document and demanding email attachments instead, people refusing to store important documents in CRM tools and instead saying "well it's in someone's email somewhere".

She's worked with several of these types before, but not this many people at one company, and not with such an intense workload (I think she was expected to submit a proposal every other day this month while wrangling these people, which is very short. At past jobs she usually only had to juggle 1 or 2 proposals in any given week).

She had no choice but to work holidays and nights and weekends and it still looked like she wasn't doing a good job because they weren't doing their jobs (her boss knew she was though, since she had to do the job before she was hired and knew what it was like, and begged her to stay).

I guarantee none of these people would have bothered turning off a notification, and then something confidential (legally not supposed to be seen by certain employees) could have been revealed.

Not that I ever usually bother to think about that myself, personally. It's rare that I start a conversation with someone with 'Hey blah! Here's some information that I can get in trouble if other people besides you see!'


It's called snooze your notifications. Easy enough to do, at least on macOS, and surely all OSs with a unified notification manager.


You can control what messages you receive by closing your client


There may be a middle ground. In this example, you could say, "Are you available to join a call at 3:30?"; that gives a little information about the topic and the time sensitivity, but it may still require a follow-up.


At one point I installed a filter on my IM client to silently discard trivial messages like "thanks" and "OK". There were already delivery indicators so nothing was lost.

Perhaps a hello filter and "yes?" auto responder could help, at least during business hours. Then send an OOO message if after hours.


I'm hoping to buy a used 'super car'


Is that allowed? I assumed that they wouldn't allow you to sell it. I guess they want to have their own Certified pre-owned side of the show room?


The horrible concept the a “sale” is only a revocable license hasn’t spread to cars too much yet. There is a robust trade in high end used cars via private parties and specialists - you can just look at eBay motors for plenty of examples.

https://www.ebay.com/itm/296067000770?hash=item44eef7e9c2%3A...


Bear in mind that some of the super car brands do mandate terms like a "right of first refusal" in their favour, giving them the ability to block sales.

* https://wheelsonspin.com/rules-for-buying-a-ferrari/

* https://www.ferrarichat.com/forum/threads/right-of-first-ref...


I think the only car company that I’ve heard of doing something like that is Ferrari, who will ban you for various lengths of time (including for life) from buying another Ferrari.


Buying a plant seems easier, and I'm definitely not crafty enough to build a fruit-peel beer cone glass and have it look good enough to display.


The flies are a worse display problem than the glass


That happens with any self-selected picture already. Angles, lighting, a good night’s sleep…


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: