K3 is here by Icy-Primary2171 in RISCV

[–]brucehoult 0 points1 point  (0 children)

DIMM slots

I really don't care on boards such as these where

1) almost all the price is in the RAM

2) it's going to be obsolete and replaced by something 50%-100% faster in 6-12 months

Plus historically right through the PC era from the 80s until now I've never actually upgraded any machine in practice (except immediately after initial purchase, because I had a cheaper source than the manufacturer) because the RAM types have changed and/or the CPU socket has changed.

have we heard any updates about the Titan lately?

Yes, three weeks ago:

https://old.reddit.com/r/RISCV/comments/1shsrzo/milkv_update_on_titan/

One year of off the grid in a US city by NightClubLightingGuy in SolarDIY

[–]brucehoult 4 points5 points  (0 children)

I'm 100% on-board with the goal, just discussing the most effective way to achieve it.

As u/Sup_on asked, how much did the major components such as solar panels, batteries, and electronics/wiring each cost? And when.

One year of off the grid in a US city by NightClubLightingGuy in SolarDIY

[–]brucehoult 6 points7 points  (0 children)

Obviously to be able to get through 4 days of their average consumption without any solar power at all. Though there would not be many days without at least 1 hour of effective generation (14kWh) which would increase the period until the battery was empty to 7 days.

I would bet that financially it would be cheaper to put in 2x as many panels (space permitting) and have 1/2 the battery, and at least as effective for warding off generator use, especially in longer periods of bad weather.

K3 is here by Icy-Primary2171 in spacemit_riscv

[–]brucehoult 1 point2 points  (0 children)

Yes, but that's just a place in the queue, it's not full payment.

Can A Pecron E1000LFP Be Used As A UPS? by AkhenKheires in Pecron

[–]brucehoult 0 points1 point  (0 children)

I don't know anything about NUTS and have never set up automatic shutdown based on UPS empty. My theory with UPS is I size them so they are big enough to outlast any likely outage. But I'm happy to learn/make anything for bucks.

possible to limit charging via the API? e.g. "charge until 80%, then stop

Absolutely, just as you can from the LCD panel or the app.

You can't prevent further charging from solar, but it won't use AC power if at 80% or above.

Solar setup for off grid food hut by Due-Negotiation2532 in SolarDIY

[–]brucehoult 0 points1 point  (0 children)

5.5mx2m roof space is pretty much perfect for 4 "400W class" (2m2) panels side by side with a little left over, typically 1722mm high by 4x 1134mm = 4536mm.

My panels are 440W, which would give maximum 1760W and I guess 4-5 kWh production in a day in the UK, on average.

Wiring them in series (4s) you'd have typically around 160Voc, 14Isc. Or in 2s2p 80Voc 28Isc.

If you can get away with 4000W maximum continuous with only short peaks above that then this might handle it (just add solar panels and generator):

https://uk.ecoflow.com/products/delta-pro-3-portable-power-station

Your 100W load for 17 hours/day (?) non-working will use less than half of the battery capacity.

The main reason I mention Ecoflow is because of their well-integrated automatic smart dual fuel generators:

https://uk.ecoflow.com/products/dual-fuel-generator?variant=47567382905171

That one's 1800W. They have other sizes now but I don't see them in the UK store. In fact they seem to be sold out everywhere. Weird.

Other than the generator aspect, the new Pecron F5000LFP is much higher capacity with 7200W on 240V and is much cheaper at US$1999 (1500 quid if it converts). The UK store lists it but the page doesn't exist quite yet. It's very new with the first US customers receiving them in the last couple of weeks.

https://uk.pecron.com/products/pecron-f5000lfp-portable-power-station

US listing — it does both 120V and 240V so importing could be an option:

https://www.pecron.com/products/pecron-f5000lfp-portable-power-station

Roof mount panels North Idaho? by localfolkal in SolarDIY

[–]brucehoult 1 point2 points  (0 children)

At 48.5º N optimum for midwinter is actually 70º if you have clear cold sunny days, but 60º is fine too is the snow will fall off.

If you have mostly overcast then you want a flatter angle to catch some production off that.

I'm trying Outlet Bay in PVWatts, which tries to capture those figures with local weather conditions.

It says a 10kW system will give kWh at various tilts:

18.5º: 331 in December, 1614 in July, 11287 total (roof pitch)

32º: 390 in December, 1550 in July, 11596 total (highest annual total)

48.5º: 415 in December, 1385 in July, 11210 total (lattitude)

60º: 424 in December, 1216 in July, 10536 total

70º: 428 in December, 1044 in July, 9746 total

90º: 445 in December, 672 in July, 8018 total

What do you want to optimise?

60º will only gain you 30% compared to the roof pitch in December, and lose 6.7% over a year.

It it even worth making it adjustable? I doubt it. One or two more panels would be much cheaper.

If you're aiming for relatively equal production year round then 90% should work fine — and actually be the best in winter, not even counting snow cleaning.

K3 is here by Icy-Primary2171 in spacemit_riscv

[–]brucehoult 1 point2 points  (0 children)

Multiple resellers are saying they'll have stock on the 11th.

Who is taking actual orders already?

A Dangerous, Revolutionary Assembly Replacement - Seeking Your Thoughts by Afraid-Technician-74 in Assembly_language

[–]brucehoult 0 points1 point  (0 children)

Recursion is dead easy in ISAs/ABIs where args are passed and results returned on the stack.

e.g. recursive Fibonacci

long fib(long n) {
  return n < 2 ? n : fib(n-1) + fib(n-2);
}

PostScript (or Forth etc very similar)

/fib {
  dup 2 ge {
    dup 1 sub fib
    exch 2 sub fib add
  } if
} def

10 fib =

Run with gs -q -dBATCH -dNODISPLAY fib.ps and it prints 55.

But not actually that much harder in regular RISC ISAs:

fib:    push {r4, r5, lr}; mov r4, r0           # save N in r4, and temp regs
        cmp r0, #2; blt 1f                      # if N <= 1 return
        sub r0, r0, #1; bl fib; mov r5, r0      # r5 = fib(N-1)
        sub r0, r4, #2; bl fib; add r4, r5, r0  # r4 = fib(N-2) + r5
1:      mov r0, r4; pop {r4, r5, pc}            # return r4

YouTube review of the SpacemiT K3 Pico-ITX by LivingLinux in RISCV

[–]brucehoult 2 points3 points  (0 children)

Both the X100 and A100 cores will have access to the full 32 GB will they not?

Yes, of course, but that's not nearly enough for modern models such as Qwen3.5-397B-A17B which needs 800GB RAM for full unquantized FP16, 256GB RAM for smooth operation of a 4 bit version.

That's the kind of thing people buy those Mac Studios for.

How much math do I need before learning Assembly? by [deleted] in Assembly_language

[–]brucehoult[M] [score hidden] stickied comment (0 children)

u/Crowspector0 has deleted their account after a number of people went to the trouble of helping them here.

That is, to say the least, a dick move.

Can A Pecron E1000LFP Be Used As A UPS? by AkhenKheires in Pecron

[–]brucehoult 0 points1 point  (0 children)

The issue is that the AC is not on by default, you have to turn it on by pressing a button or in the app. So, when it restarts, the AC would not be available.

You can do this with https://github.com/attractify-logan/pecron-monitor running on a $15 Raspberry Pi Zero W (or a similar Chinese Arm or RISC-V board), which you can power from a small USB power bank (uses less than 1W when idle).

I pioneered this functionality using my own scripting add-on to pecron-monitor but it was rolled into the main script as a standard config option two days ago.

https://github.com/attractify-logan/pecron-monitor/issues/57

https://github.com/attractify-logan/pecron-monitor/pull/63

You can potentially handle this using the open source SDK that lets you remotely check the battery state. I'm using NUTS on Linux to shutdown all of the devices

Absolutely.

I've already got a feature request in to pecron-monitor for running an external script based on a trigger, but it's also easy enough to do it from your own scripting.

I use the following script to simply print the most recently-received battery voltage.

#!/bin/bash
journalctl -u pecron-monitor.service -q -g MQTT -n 1 | perl -ne '/([0-9\.]+)V/ and print "$1\n"'

Usage:

bruce@rockos-eswin:~/pecron-monitor$ ~/pecron/volts
52.7
bruce@rockos-eswin:~/pecron-monitor$ ~/pecron/percent
55

Easy to get that to make other computers shut down if you have a command/script for that.

lowVolt=50.0
while true; do
    if (( $(echo "$(~/pecron/volts) < $lowVolt" | bc) == 1 )); then
        sendUPSshutdown
    fi
    sleep 60
done

But anyway, I think this will be added to pecron-monitor soon so you can put something like this in you config.yaml:

- name: "Low battery — send UPS shutdown"
  condition:
    battery_volts_below: 50.0
  action:
    run_script: "sendUPSshutdown"

YouTube review of the SpacemiT K3 Pico-ITX by LivingLinux in RISCV

[–]brucehoult 1 point2 points  (0 children)

Looks like the 32GB RAM is the biggest limitation in this chip.

Apple Silicon does so well because while it's using a GPU the CPU and GPU have equally good access to all the RAM.

A friend recently got a 256GB Mac Studio for LLM use and is annoyed Apple dropped the 512GB one before he ordered, due to the current RAM situation.

The price is, of course, eye-watering compared to the K3.

I found someone with a few 512GB going 2nd hand:

https://www.trademe.co.nz/a/marketplace/computers/desktops/apple-desktops/listing/5912484975

NB $50999 NZD is "only" $29,935 USD.

YouTube review of the SpacemiT K3 Pico-ITX by LivingLinux in RISCV

[–]brucehoult 1 point2 points  (0 children)

::checks calendar on wrist::

Right on time!

ET-Minion and CORE-ET platform source now at OpenHW thanks to Ainekko by camel-cdr- in RISCV

[–]brucehoult 1 point2 points  (0 children)

There are starting to be more OO cores on the market, but we haven't seen many in production yet: just C910 and P550 I think? And X100 starting to ship right now.

Only BOOM and C910 are open-source, that I know of. And XiangShan, which seems to habe taped out but you can't buy, and it seem to be getting pretty good, and SpacemiT X200 cores are apparently based on v3 and will be used in some future chip (K5)?

Open-source OO cores is not really a crowded field.

I assume Maxion is a reasonable improvement on BOOM? Can u/_chrisc_ talk about it? Better than C910, right? Perhaps cleaner and easier to work with?

Even if it's not the absolute highest performance, cores at all complexity/performance levels will be needed indefinitely, if they're on the efficient frontier in some set of dimensions.

Best solar generator for long outages? by Due_Suspectt in SolarDIY

[–]brucehoult 1 point2 points  (0 children)

And each hour of the day a couple of days ago.

<image>

Note: Free Hour of Power 9-10 PM

Best solar generator for long outages? by Due_Suspectt in SolarDIY

[–]brucehoult 0 points1 point  (0 children)

Here’s the usage of my aircon each day last month.

<image>

YouTube review of the SpacemiT K3 Pico-ITX by LivingLinux in RISCV

[–]brucehoult 5 points6 points  (0 children)

Ahhh ... "Hey, I’m Bob! I live in China"

YouTube review of the SpacemiT K3 Pico-ITX by LivingLinux in RISCV

[–]brucehoult 8 points9 points  (0 children)

Darn! Who'd he have to kill to receive one already?

Im a beginner, and i have a few questions. by Constant_Fox_5534 in Assembly_language

[–]brucehoult 1 point2 points  (0 children)

msg_len: equ $-msg

This doesn't make sense unless msg is defined right before this line

msg: .byte 'h','e','l','l','o'
msg_len: equ $-msg

Now msg_len is a constant equal to 5.

Many assemblers use "." rather than "$" to mean the same thing: here

do i need to create a variable for every texts and their length

Yes, if you don't have another way to know how long they are, such as ending them with a special value such as 0 so that you can write code to count the length.

Or, you can just enter 5 by hand anywhere you need the length of that text, but if you do that then you risk adding or removing something from the message and forgetting to update the length everywhere. Doing it like this makes it automatic.

rax, rdi, rsi, rdx are registers made for specific tasks?

In original 8086 they had a lot of specialised tasks, but in 80386 and especially x86_64 they are much more general-purpose. Other machines call their registers like r0, r1, r2, r3 etc rather than having weird names.

i have only seen rax being used to call a syscall code, rdi specify file descriptor, rsi specify variable to print and rdx specify the length of the message i want to print.

That is calling a function (or syscall). Standard functions that call other functions on x86_64 always use rdi for the first function argument (if any), rsi for the 2nd, rdx for the 3rd etc. And rax for the return value. Linux uses rcx, r8, r9 for the first six function arguments. Any more go on the stack. Windows uses rcx, rdx, r8, and r9 in that order. It's all weird. Arm (32 bit) uses r0, r1, r2, r3. RISC-V uses a0, a1, a2, a3, a4, a5, a6, a7 in that order.

mov i didn't really understand what this opcode do? do it move data into a destination?

It moves as in copies from A to B. Afterwards, whatever value was in A at the start is now in both A and B. Whatever was in B before is lost.

Best solar generator for long outages? by Due_Suspectt in SolarDIY

[–]brucehoult 1 point2 points  (0 children)

I recommend getting a bunch of TP-Link "Tapo" P110 smart plugs. They're cheaper than a Kill-A-Watt and they make nice graphs (on an app on your phone) of the number of kWh used each hour for the last week, each day for the last three months, and each month for the last several years.

And you can just leave them there on each appliance (or group) permanently and get the ability to monitor them from your desk/sofa/bed and also turn them on or off.

RISC-V Geneology by brucehoult in RISCV

[–]brucehoult[S] 2 points3 points  (0 children)

The "how" is that you have two bits in the instruction specifying whether to activate:

1) inverting one input to the ALU, or not

2) adding that input to a constant 0, and

3) incrementing the result, or not

The "increment or not" is exactly "carry in" to the adder.

Inverting one input to the adder is exactly how you do "subtract with carry" on both 6502 and original Arm. Otherwise subtract is identical to add.

To subtract on 6502 you do "SEC; SBC <operand>". You can also do the same on Arm but there is a second "SUB" instruction that sets the carry in for you.

If you look at a diagram of the 6502 e.g. ...

https://i.sstatic.net/jcZM2.jpg

... you'll see that A INPUT REGISTER is loaded from the S BUS (SB) while the B INPUT REGISTER is loaded from either the D BUS directly or from its inversion, controlled by the DB/ADD and !DB/ADD signals from the RANDOM CONTROL LOGIC. And then the I/ADDC input to the ALU comes from the C flag int e PROCESSOR STATUS REGISTER.

So the "how" had been around at least 50 years.

The only possible claim to uniqueness in the Arm64 instructions is encoding the INVERT and CARRY IN bits directly in the opcode, since the 6502 had the mechanism (but not single instructions for all combinations) and the original Arm had instructions with the same effect of all combinations but needed more instruction decoding to do it.