Related to the Moore's work, I also enjoyed Engineering reminescences[0] as a historical account how people figured out ways to make accurate things in metal, more than a hundred years ago.
You might also like English and American Tool Builders by Joseph Wickham Roe, I picked up a copy from a free library and enjoyed it. I should probably skim it again, then set it free into the system for someone else to find.
When I was doing stepper control on rp2040 I looked into using PIO but the 5 bit counters and 32 instruction limit made it too awkward to use.
What worked better for my needs was dedicating 2nd core for just motion control and bit-banging the step/dir signals- simple to implement and good enough for the modest needs I had (just trapezoidal velocity profile for single axis motion).
5 bit shift register, I believe you mean. Have a look at this. 16 instructions. Completely untested. I qualified my comment about RP2350 as "I believe," because I haven't actually done this: only investigated it via ChatGPT and Gemini. But it appears sound. Precision bit banging. PIO is pretty cool.
; PIO program for high-precision stepper profiles with a two-word data format.
; RP2350 clock is 150 MHz
; Word 1: [32-bit Low-Time Delay]. A value of 0 is the sentinel to stop.
; Word 2: [32-bit Repetition Count] (N-1).
.program stepper_pwm
.define HIGH_PULSE_CYCLES 2998 ; 20us @ 150MHz. Total delay is (CONSTANT + 2) cycles. 3000 - 2 = 2998.
.side_set 1 opt
entry_point:
pull block ; Pull Word 1 (Low-Time Delay) from DMA.
mov x, osr ; Copy to X for sent sentinel test
jmp !x, process_step ; fall through to the stop_sequence when sentinel == 0
stop_sequence:
nop side 0 ; Force the output pin LOW.
irq set 5 ; Signal the core that the profile has finished.
halt_loop:
jmp halt_loop ; Halt state machine.
process_step:
mov y, x ; Y now holds the 32-bit Low-Time Delay.
mov isr, y ; Save LOW delay in ISR for use in every repetition.
pull block ; Pull Word 2 (Repetition Count) from DMA.
mov x, osr ; X now holds the 32-bit Repetition Count.
rep_loop:
; High pulse duration = (HIGH_PULSE_CYCLES + 2) clock cycles.
mov y, HIGH_PULSE_CYCLES side 1
high_loop:
jmp y-- high_loop side 1
; Low pulse duration between reps = (LOW_DELAY_FROM_ISR + 3) clock cycles.
mov y, isr side 0
low_loop:
jmp y-- low_loop side 0
jmp x-- rep_loop ; Decrement repetition counter and loop if not zero.
jmp entry_point ; Finished all reps for this step, get the next one.
On this topic I've been wondering why are the air-air heatpumps significantly cheaper than air-water units?
As far as I could tell, there's not that much of a difference (different heat-exchanger, circulation pump instead of a fan, maybe a three way valve for hot water)- but I have hard time seeing how they contribute to the price difference of several thousand EUR.
There are also quite a few conversion projects (where an air-air unit is converted to air-water), so I'm wondering if it really comes down to just higher demand for air-air?
One thing I found out that's a bit infuriating is committee the the sets national code standards has effectively banned R290 (propane) monoblock heat pumps. No residential indoor or outdoor heat pumps with more than 144 grams of propane. You can have a 20lb tank of propane on the BBQ you store in your garage in winter. Trust us this has nothing to do with the representatives of the companies that manufacture refrigerant on the committee.
It's infuriating because a R290 monoblock air to water heat pump is something you could install yourself. And R290 is really cheap and environmentally friendly.
I found it interesting that CNC machines aimed at precious metal processing have an optional access control system for swarf/dust collection bins- presumably so that the technicians operating the machine don't steal the "waste" material.
Metallurgical microscopes illuminate the sample "from the top side". The actual implementation even goes as far as making sure the illumination happens on the optical axis of the objective (as if the light was emitted from your eyes/camera, reflected from the sample and then seen by your eyes/camera). They are also called reflected light or epi-illumination microscopes.
Biological microscopes, on the other hand illuminate the sample from the back side (which doesn't work for fully opaque objects).
> Might as well use PIO to implement I2C or UART :)
PIO actually came in handy for me when interfacing with an x-ray sensor which had 12 or 14 bits long UART data frame- not many micros have such a flexibility in their UART peripherals.
I built a couple of glasgow devices and used one extensively- it becomes very useful once the IC in question has an interface you can't practically use with a microcontroller.
I used it to capture data from a thermal imaging sensor (extracted from an automotive night vision camera)- a weird ~75MHz data bus[0].
It makes good sense for large distributed deployments.
One page to update everything rather than have to connect to each device and push a config.
The controller also "back-ports" the configuration as appropriate for a given device. Declare a vLan once, don't have to worry about which cli version is running on a given switch and adjust your command accordingly.
These things don't matter much when you only have one physical location / few devices but if you're an IT guy that manages networking across every physical building in a school district...
Since the device tries to phone home, it's also a NAT buster which is invaluable when you're drop-shipping equipment to customers and have little control over your environment but need to be able to promise some level of functionality.
I can't really go into details, but FrontRow wasn't the most bizarre thing Ubiquiti was working on, just the one that got reasonably close before being shelved.
IIRC Access reader isn't the only product the FrontRow R&D cost/stock of parts was tried to be recouped, but at that time I wasn't working there anymore.
This is actually a common problem for test fixtures that involve miniature coaxial connectors (pretty much all of them are rated for few tens of mating cycles): even if the connector on device is used for assembly/repairs and goes through very few mating cycles, the automated test fixture used during manufacture of such a device is expected to last longer.
Most connector vendors have specialized connectors for test fixtures that last much longer (they are also a lot more expensive).
0: https://www.gutenberg.org/ebooks/72043