Missing power button / cannot turn device on

I travel a lot and the HiFive goes with me.

I’ve had it for over a year and it’s only now I’ve finally come to build an SD card image and actually use the device.

The device does not boot - but what I have noticed is the power button, where it protrudes from the case, is missing; I presume at some point it came away from the device. It is lost; the spring remains.

I suspect the device is switched off : when the power lead is inserted, the fan spins up, but the power LED does not come on.

I’m at a loss for how to turn the device on. I’ve tried using a paperclip to push into the on/off switch block, but no luck.

A member of #riscv suggested shorting the power switch, so it was always on, which sounds like a solution but I’ve no idea how to achieve this. The power switch is a solid block with three pins emerging from the rear which descend into the PCB; if that is where or how a short would be effected, I do not know.

Link to a photo of the power block;


Hi winterflaw,

The pins that would need to be shorted to enable the power switch S4 to be in the ON position are pins 2 and 1. Pins 2 and 1 come out of the rear of the switch and are the two pins closest to the power input connector J8.

Note that the schematics for the HiFive Unleashed can be found here: https://sifive.cdn.prismic.io/sifive%2Ff7173056-bf37-4407-87cb-d5ab76abf61a_hifive-unleashed-a00-schematics.pdf

That’s cool that you travel with your HiFive board. I travel with mine too :slight_smile:

Thankyou VERY much, Jim.

I had a go at bridging the pins with some thin copper wire, but it wasn’t practical. I’ll see tomorrow about getting a bit of solder put in place.

Sorry winterflaw,

Looking closer at the circuit, shorting switch S4 pins 2 and 1 will not be effective at turning the board on because pin 1 is not connected to anything. To turn the board on you need to break the switch connections of either pin 2 or pin 3. You could possibly cut either pin 2 or pin 3 with a small pair of dike pliers. Pin 2 and pin 3 are the pins on the rear of the switch that are furthest away from the power input connector J8. There is not a lot of space to cut these pins and there are nearby components that that you would need to avoid damaging. Make sure you don’t leave any metal chunks from the cut on the board.

Thankyou for having a second look!

I often find it takes one or two attempts before something becomes correctly clear. My brain, like a vacuum tube, needs warming up :slight_smile:

Cutting one of the pins, huh? my choice has become considerably more consequential! with a bit of solder, shorting was easily reversable.

Well, it is what it is.

Just so I have asked - do you have any other thoughts about how I might fix the problem?

The only other alternative I know of it to buy a replacement switch, desolder the existing broken switch and put the new switch into place, which honestly seems to have much more of an impact and risk than merely cutting one of the pins.

Good news, Jim - I went down to a jewelry repair shop today and they cut the first pin and I’ve just come home and plugged the board in and she powers up! the LEDs are on :slight_smile: so that WAS the current problem.

Now I need to get the SD card working properly and the board booting and so on.

Thankyou so much for your help, Jim. It was invaluable, and now I can release my lock-free data structure library on RISC-V, which is why I bought the board in the first place.

Good to hear you were able to recover your HiFive Unleashed winterflaw!

I’m curious about which software environment you are using on your board. Is it Linux or Baremetal or both?

Please keep us updated on your lock-free data structure project.

[quote=“Jim, post:7, topic:3775, full:true”]
Good to hear you were able to recover your HiFive Unleashed winterflaw![/quote]

You and me both!


I want to support bare, and the platform abstraction layer, test and benchmark programmes are written for it, but I’ve not learned how to use a dev board directly, and that’s been less important to me than getting Linux builds running. However, until I do it and so make it work, none of that purported support will actually work, so it needs to be done.

It’s been around for about ten years.


I’ve done a lot of work which is unreleased - I intended after the last release to do small releases, but I wasn’t disciplined and it became a large scale set of changes (annoyed with myself), and then I became busy with something else (writing a book).

So it’s woefully in need of update - not least to get ARM64 support released.

BTW, here’s the power block post modification;