
Characterizer
patrickyeon/battery-characterizer
battery tester/characterizer hardware, firmware.

A slightly less simple CPU than the SPEAR. It is way more powerful due to:
HERA is an open-source printed circuit board by Ryz3D, from the Ryz3D/HERA repository on GitHub. It is a 2-layer board with 18 parts on 13 nets, routed with 140 tracks and 24 vias.
It is built around the BSS123 and BSS84.
A slightly less simple CPU than the SPEAR [blocked]. It is way more powerful due to:
C registerThe upper 4 bits of any instruction represent control lines for writing to the internal bus (everything but STAT uses 16-bit values):
| Upper nibble | Name | Description |
|---|---|---|
| 0 | LIT | Literal value |
| 1 | A | A register |
| 2 | B | B register |
| 3 | C | C register |
| 4 | RAM | RAM |
| 5 | RAM_P | RAM pointer register |
| 6 | PC | Program counter register |
| 7 | STAT | Status register (8-bit) |
| 8 | - | - |
| 9 | - | - |
| A | ADD | Add (A + B) |
| B | COM | Two's complement (-A) |
| C | NOR | NOR (~(A | B)) |
| D | - | - |
| E | - | - |
| F | - | - |
If a literal is selected to be written to the bus (upper nibble is 0x0), it is read from the two bytes after the instruction in big-endian format.
The lower 4 bits represent control lines for reading from the internal bus:
| Lower nibble | Name | Description |
|---|---|---|
| 0 | VOID | Ignore value |
| 1 | A | A register |
| 2 | B | B register |
| 3 | C | C register |
| 4 | RAM | RAM |
| 5 | RAM_P | RAM pointer register |
| 6 | PC | Program counter register |
| 7 | STAT | Status register (8-bit) |
| 8 | - | - |
| 9 | - | - |
| A | A B | A & B registers |
| B | B RAM_P | B & RAM_P registers |
| C | C PC | C & PC registers |
| D | PC_C | Program counter if carry flag set |
| E | PC_Z | Program counter if zero flag set |
| F | PC_N | Program counter if negative flag set |
The flags of the status register STAT are written on any arithmetic operation (ADD, COM, NOR) and any instruction writing the A register. Arithmetic operations overwrite all flags, instructions writing the A register overwrite only the zero and negative flags.
| Bit | Description |
|---|---|
| 0 (LSB) | Carry (PC_C) |
| 1 | Zero (PC_Z) |
| 2 | Negative (PC_N) |
| 3...8 (MSB) | Reserved |
Copying the value of the A register into the B register is done by instruction 0x12 (upper nibble 1 -> write A to bus, lower nibble 2 -> read from bus into B).
Setting B to a literal value is done by instruction 0x02 followed by two bytes in big-endian order (i.e. 0x02 0x12 0x34 -> B=0x1234).
Some larger programs showcasing some optimized instructions (all instructions in hexadecimal):
# This program writes a lookup-table (array) for showing a 4-bit value as a hexadecimal character on a seven segment display using the following segments (a=LSB, h=MSB):
# aaa
# f b
# f b
# f b
# ggg
# e c
# e c
# e c
# ddd h
# Using lower nibble 0xB can be a very efficient way to count a pointer (by setting the operand and the pointer in a single instruction), the counting offset (or "step") is determined by the A register.
(00) 01 00 01 # A = 0x01 (increment pointer while writing lookup-table)
(03) 0b 00 80 # B = RAM_P = 0x0080 (base pointer of lookup-table)
(06) 04 00 3f # Write 0x3f (character '0') at address 0x0080
(09) ab # Add into B register and RAM_P (increment pointer by 1)
(0A) 04 00 06 # Write 0x06 (character '1') at address 0x0081
(0D) ab #
(0E) 04 00 5b # '2'
(11) ab #
(12) 04 00 4f # '3'
(15) ab # | Start | End | Description |
|---|---|---|
0x0000 | 0x00ff | Zeropage |
0x0100 | 0x01ff | Input registers (default GPIA at 0x0100) |
0x0200 | 0x02ff | Output registers (default GPOA at 0x0200) |
0x0300 | 0x7fff | Statically allocated RAM |
0x8004 | 0xfbff | Dynamically allocated RAM |
0xfc00 | 0xffff | Stack (starting at 0xffff) |
18 parts, built around the BSS123 and BSS84. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the Ryz3D/HERA repository on GitHub, at the commit this page was made from: the board is kicad/hera/hera.kicad_pcb and its schematic kicad/hera/adder_1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Ryz3D before reusing the design.

patrickyeon/battery-characterizer
battery tester/characterizer hardware, firmware.

lwray-renesas/RL78-I1C-PMOD-Programming-Adaptor---Isolated
This piece of hardware alows connection between an E2-Lite and any of the RL78/I1C Metering PMOD's. Providing 5kv isolation.

spartacus-hf/spartacus_PCB_REV1
KiCad schematic and PCB project for the SPARTACUS-HF Chireix transceiver.

JakobThiessen/OpenThread_Sensors
Fehler im Schlatplan!!! R7, Q1 und Q2 nicht bestücken. Verbindung von Q1/pin1 zu Q2/Pin2 wie eingezeichnet herstellen und mit GPIO ein und ausschalten.


