The JL1N-20MR examined here is reported to resemble an FX1N-20MR and uses an STM32F103RCT6 CPU. No manufacturer schematic or verified hardware documentation is available in the evidence, so treat every pin assignment below as a reverse-engineered finding and validate it on the specific board before connecting field wiring.
Confirmed Device Markings and Reported Power Behavior
| Item | Reported finding | Engineering constraint |
|---|---|---|
| Controller | JL1N-20MR | The claimed FX1N-20MR compatibility is unverified. |
| CPU | STM32F103RCT6 | Select the matching MCU target when building firmware. |
| Supply | Board reportedly operated from 12 V to 24 V | This observation is not a verified input-voltage rating. |
| Regulators | Onboard 5 V and 3.2 V rails were reported | Measure both rails before programming or attaching peripherals. |
| Outputs | Eight relays, reported active HIGH | Control output states during startup to prevent unintended operation. |
| Inputs | Twelve inputs, reported active when pulled to ground | Verify the interface circuitry before driving an MCU pin directly. |
Boot, Programming, and Board-Control Signals
BOOT0 is reportedly LOW by default and can be changed to HIGH with a jumper. BOOT1, mapped to PA2, is reportedly held LOW. With BOOT0 HIGH, programming was completed through USART1 using PA9 and PA10 and the stm32loader utility. The onboard serial port was traced to USART3, with TX on PC10 and RX on PC11.
The reset signal is reported at the common point between R24 and C14 and is active LOW. The run LED maps to PB6. The RUN switch may connect PC1 to ground, but that mapping remains uncertain and requires continuity testing. Analog input was traced to PA4; the analog-output mapping is unknown.
Reported Digital I/O Map
| Channel | MCU pin | Reported behavior |
|---|---|---|
| Y0 | PD2 | Relay output, active HIGH |
| Y1 | PA12 | Relay output, active HIGH |
| Y2 | PB10 | Relay output, active HIGH |
| Y3 | PB11 | Relay output, active HIGH |
| Y4 | PB12 | Relay output, active HIGH |
| Y5 | PB13 | Relay output, active HIGH |
| Y6 | PB14 | Relay output, active HIGH |
| Y7 | PB15 | Relay output, active HIGH |
| X0 | PA0 | Input, active when pulled to ground |
| X1 | PA1 | Input, active when pulled to ground |
| X2 | PC5 | Input, active when pulled to ground |
| X3 | PC6 | Input, active when pulled to ground |
| X4 | PC7 | Input, active when pulled to ground |
| X5 | PC4 | Input, active when pulled to ground |
| X6 | PA6 | Input, active when pulled to ground |
| X7 | PA7 | Input, active when pulled to ground |
| X8 | PB0 | Input, active when pulled to ground |
| X9 | PB1 | Input, active when pulled to ground |
| X10 | PA3 | Input, active when pulled to ground |
| X11 | PC12 | Input, active when pulled to ground |
Firmware Build and Verification Procedure
- Disconnect loads from all relay contacts, confirm the STM32F103RCT6 marking, and verify the reported power, ground, reset, boot, serial, and I/O connections on the actual PCB.
- Set BOOT0 HIGH with the board jumper while keeping the reported BOOT1 state LOW, then connect the programmer through USART1 on PA9 and PA10.
- Program a minimal image with
stm32loader. Working firmware was reportedly built with STM32Cube and with PlatformIO using the following configuration:
platform = ststm32
board = genericSTM32F103RC
framework = arduino
First test the run LED on PB6 and read inputs without attached field circuits. Exercise each relay individually only after configuring all reported output pins to a known inactive state. Confirm that each physical channel matches the table; a different board revision may use different routing.
FAQ
Which MCU is used in the JL1N-20MR PLC?
The examined board is marked STM32F103RCT6. Confirm the marking on your board before selecting the firmware target.
Which pins program the JL1N-20MR through its bootloader?
The reported programming connection uses USART1 on PA9 and PA10 with BOOT0 set HIGH; BOOT1 on PA2 is reported LOW. Programming was completed with stm32loader.
What PlatformIO settings build JL1N-20MR firmware?
A working build was reported with platform = ststm32, board = genericSTM32F103RC, and framework = arduino. Verify relay and input mappings before connecting automation loads.