V3 board is assembled and verified working. It’s funny v3 boards arrived before v2. Some speculative production is assumed ![]()
Assembled module
Finally got the correct USB connectors (called 90度沉板USB接口 in Chinese, while I still haven’t figured out the English term) and TXS0102 MSOP version.
Put together with a reflow station, the board is much cleaner than last time.
The only problem is that I almost blew up the power management chip: C14 (above UART chip) accidentally shorts 5V to GND, causing PMU to scream even crazier than it usually does.
There’s not a lot going on in the back:
The speaker POGO pads are hand-drawn with a semi-transparent kicad session and the OG ext board dxf window aligned in the back.
The analog switches are driven with a 2-seat dip switch:
which will re-route and align pins for different core boards.
Putting it together:
I have to cut a bit from back plate to expose the DEBUG port:
Double-cheeseburger microUSB:
Edit: if I were not stupid, I’d put microusb on the other side
Putting it back:
Cart connector ready for action:
3 devices detected on i2c-2 (A06):

Custom device tree mods:
/{
...
pwm_fan: pwm-fan {
compatible = "pwm-fan";
#cooling-cells = <2>;
pwms = <&gp7101 0 255 0>; // <phandle pwm_id period inverted
cooling-levels = <0 10 30 50 70 90 110>;
};
};
&i2c2 {
clock-frequency = <100000>;
i2c-scl-rising-time-ns = <1000>;
i2c-scl-falling-time-ns = <300>;
status = "okay";
mcp23008: gpio@20 {
compatible = "microchip,mcp23008";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>; // change this if JP1-JP3 are soldered otherwise
// XXX IRQ not hooked up
};
ds1307: rtc@68 {
compatible = "maxim,ds1307";
reg = <0x68>;
};
gp7101: pwm@58 {
compatible = "guestgood,gp7101-pwm";
reg = <0x58>;
#pwm-cells = <2>;
};
};
(wrote a custom driver for gp7101)
Thermal zone tripping points:
&cpu_thermal {
trips {
cpu_active0: cpu_active0 {
temperature = <45000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
cpu_active1: cpu_active1 {
temperature = <50000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
cpu_active2: cpu_active2 {
temperature = <55000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
cpu_active3: cpu_active3 {
temperature = <58000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
cpu_active4: cpu_active4 {
temperature = <62000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
cpu_active5: cpu_active5 {
temperature = <65000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
};
cooling-maps {
map0 {
trip = <&cpu_active0>;
cooling-device = <&pwm_fan 0 1>;
};
map1 {
trip = <&cpu_active1>;
cooling-device = <&pwm_fan 1 2>;
};
map2 {
trip = <&cpu_active2>;
cooling-device = <&pwm_fan 2 3>;
};
map3 {
trip = <&cpu_active3>;
cooling-device = <&pwm_fan 3 4>;
};
map4 {
trip = <&cpu_active4>;
cooling-device = <&pwm_fan 4 5>;
};
map5 {
trip = <&cpu_active5>;
cooling-device = <&pwm_fan 5 6>;
};
};
};
Repo
Here’s the repository of v3/v4:
| Path | Desc |
|---|---|
| DevTermCaseTemp.kicad_pro | v3 |
| DevTermCaseTemp_v4.kicad_pro | v4 wip |
| devterm-ext-outline | useful graphics assets + footprint + 3d models (most important one is the cart connector from @fip) |
| mpcie.pretty | ext board template from @Carton9 (KiCAD 6 DevTerm Printer Module Template) |
| masked-text.svg | Template to create clockwork style silkscreen labels |











