My wishlist for the next iteration of the ATXRaspi

Started by tonyp7, November 11, 2016, 09:21:02 PM

tonyp7

I really like this little board, it's honestly a great piece of electronic for hobbyists like me.

That being said, here's the list of things I wish it had:


  • Behave like an ATX power supply. That one might seem odd but there's a behavior I wasn't expecting with the ATXRaspi. If you power off the board through sudo shutdown now, the ATXRaspi will not be able to restart the pi. Halt must come from the button. This is slightly different than a typical PC case where I can trigger a shutdown through the OS or by pressing the power button: result is the same.
  • A reset button. Ok I am not the first one to mention this one but anyway I'll reiterate. 2 additional headers for a reset button would be nice. You keep the current single button system and have them behave differently though the software
  • Interrupt native code based support code. Polling through a shell script is pretty horrendous. It works, but part of me can't help but think about all these wasted processor cycles. This one fortunately I can fix myself so if that's really not in the making I guess I'll start creating a little C program.

That's it for now! Fully satisfied with the product otherwise!

perky

Maybe Felix might consider using the LTC2950 to give a 'PC power button' like functionality. I've used these before, they work very well:
http://www.linear.com/docs/7377
Mark.

Felix

@tonyp7 - I appreciate your input, let me try to address each:

Behave like an ATX power supply. The issue here is a matter of deciding WHEN to cut power to your Pi. If you use your pi from the console and issue sudo-halts from there, then this board is redundant. If I cut power off whenever the SHUTDOWN signal goes low I suspect I would have lots more folks complaining about that behavior in this forum. So for now I prefer not to change this for those reasons.

A reset button. I don't recall this being asked for, separated as a new button, in general people prefer compacted functionality so I consider having 2 functions in 1 button a feature. One thing I thought of is allowing a jumper to choose between the type of button used - just shutdown (with a slide switch or latching button) or both (the way it works now. This was indeed asked for several times.

Interrupt native code based support code. Fully agree here, it smells. On the first Pi this took around 0.5-1% of the CPU as reported by raspbian. With the Pi3 I haven't even checked, I suspect it's much lower, generally haven't heard complaints so ... people get by without issue. If you can contribute a C program that would be great.

perky

#3
The LTC2950 is really a nice chip, it allows a hard shutdown (hold button down for a programmable time), a soft shutdown using a shutdown interrupt, plus the system can shut itself down and isolate itself from power using the kill# pin, and a press of the button when in shutdown can power up the system. This would seem to be ideal.

Edit: Actually in my application the power button was also the the shutdown interrupt, the power off timeout was set at several seconds and the INT# line connected to KILL# which the processor could actually drive too. It was done that way so after a momentary press the processor could take as long as it needs to shut the system down cleanly before driving the KILL# low, while still allowing a hard shutdown feature by holding the button down longer.
Mark.

Felix

Thanks @perky, indeed a chip with a nice set of options.
I love Linear, Analog and Maxim parts, the only thing I hate is their price. For that reason there is only 1 LTC part I ever used in my products.
I think for those who would like to buy the $5 part and use it in their DIY solution that would be great, it's a very niche solution that will cost more and maybe some people will pay the price.
For me I think the ATXRaspi serves as a great complement to my Pis and lots of other people have benefited from this little board and still want it, though it's certainly not perfect.
I have some ideas to make it better, unfortunately the LTC chip is more expensive than the whole BOM of the current board.

perky

@Felix Yes, Linear chips are very well engineered as a general rule, but you do pay for it. Maxim parts are pretty good too, although also pricey and they have had issues in the past with obsolescence. I try to find other manufacturer's parts to fit their functions when possible, there may be a similar chip to the LTC2950 out there somewhere...
Mark.

tonyp7

QuoteThe issue here is a matter of deciding WHEN to cut power to your Pi. If you use your pi from the console and issue sudo-halts from there, then this board is redundant.

I'd disagree. It would simply be nice to have both. But yes the issue is how long should you wait to cut the power after the boot signal is in a low state. The problem is even worse when you factor in the fact that the boot signal doesn't go up as soon as you power up the pi, but only after the shutdowncheck.sh script finally starts running, which is several seconds after the power on.

It's still doable though, with a bit of clever code on the ATTiny side, nothing is impossible.

Speaking of I started prototyping my own version, but I came to realize the ATTiny45 might be not enough.

You'd need these IOs:

  • Boot signal from the PI to the microcontroller
  • Switch signal to the mosfet
  • Reset button to the microcontroller
  • Power button to the microcontroller
  • Reset signal going to the PI
  • Poweroff signal to the PI
  • A switch using a jumper to activate the reset button or not
  • A signal to the PI to let it know if the power button should be able to perform reset as well
  • Driving a led from a DAC pin
... That's already 9 pins. I think 14pins ATTiny44 might be better for the job