Note: the picture in this log entry shows a fully modified board.
Prepare the board:
- remove LED "IN"
- remove LED "OUT"
- interrupt the connection between LM2596 pin 5 (!ON/OFF) and GND (i.e. cut the pin in the middle, and de-solder the lower half)
- carefully cut the copper trace between the LM2596 heat sink GND and the 330R next to the trimmer.
- cut the copper trace between LM317 pin2 and anode pad of LED "IN". Expose some of the copper of the trace near said pad.
Add new components:
- solder a C 100nF between LM317 pin 2 and GND on the backside of the PCB
- solder a 10µF ceramics capacitor 0603 or 0805 over the now cut copper trace between the LM2596 heat sink GND and the adjacent pad of the 330R next to the trimmer
- solder a 47R 0805 resistor to the pads of LED "IN"
- solder a 1k8 0805 resistor to the pads of LED "OUT"
Make new connections for controlling the LM2596:
- add a wire between the cathode pad of LED "OUT" (PB4) and LM2596 pin 5
- add a wire between the copper trace near the anode pad of LED "IN" (PC3) to the 330R pad, where also the 10µF capacitor is connected
- connect (pin 2 || pin 3) of the trimmer to pin 1 of the voltage adjust trimmer on the board
Make the µC accessible:
- add a 2 pin programming connector to GND and pin 4 of the 7S-LED display (segment C, PD1/SWIM).
- solder the anode of a 1N4148 diode to pin 3 of the 7S-LED display (segment DP, PC7). Wire a 3 pin connector to the anode and the cathode of the diode and to GND.
Program the µC:
- get the binary from the [v2.2.8 release](https://github.com/TG9541/stm8ef/releases/tag/v2.2.8) (or later)
- programming the STM8S003F3P6 with an ST-LINK adapter by programming SWIM and GND to the programming connector
Test the serial connection:
- connect the RxD line of a serial-TTL converter to the "anode pin" of the serial connector, and TxD to the "cathode pin"
- start a terminal program at 9600 baud, and test the connection by pressing ENTER
Note: the serial interface works in "half-duplex" mode without collision detection. This is sufficient for interactive use, and for command-response automation.