Firmware upgrade via serial port

Hello J1 users,

Our J1 firmware has been open-sourced, and several users have followed and forked our Github repository. The purpose of open-sourcing this firmware is to encourage all developers to participate in its development and to build a more open and powerful J1.

To facilitate developers in debugging and developing new firmware, we offer a method for upgrading the J1 firmware through the serial port with the provided Python-based (version 3.x) scripts that can run on Windows, Linux, and macOS platforms, not requiring any touchscreen operations.

The detailed instructions are as follows.

  1. Download, unzip, and install the appropriate serial port driver file based on your operating system:

    Connect to the USB interface on the back of J1, and install the corresponding driver in the device manager.

  2. Download and unzip the attachment “J1_upgrade_tools.zip” to your working directory.
    J1_upgrade_tools.zip (10.6 KB)

  3. Complie and generate the binary file by referring to the Github Readme, naming it “firmware.bin”.

  4. Copy the firmware.bin file to the “J1_upgrade_tools” directory.

  5. Open the command line tool, navigate to the “J1_upgrade_tools” directory, and execute the following command:

    python sacp_upgrade.py -p serial_port

    • The serial_port varies on different operating systems:

      • Windows: COMx, where x is the port number

      • Linux: /dev/ttyUSBx, where x is the port number

      • MacOS: /dev/serial_port_name

Note: Python must be version 3.x.

Upon successful completion, the result will be displayed as shown below.

update_success

3 Likes

Our J1 firmware has been open-sourced, and several users have followed and forked our Github repository. The purpose of open-sourcing this firmware is to encourage all developers to participate in its development and to build a more open and powerful J1.

Great. and waht about opening sources for SM 2.0 touchscreen whic remains buggy and inconvinient as hell and nobody fixes it?

Hello there :slight_smile:

Python modules are missing in the “J1_upgrade_tools” directory. The sacp_upgrade.py script calls for the following modules;
import serial
import time
import argparse
import fsm
import gen_header
… But only fsm.py and gen_header.py are available

I am getting the ‘ModuleNotFoundError’ using Python 3.13;

Please bring me your best idea on what I am missing here.

Thanks a lot!

Everything is fine - firmware.BIN can be flashed according to the above guidiance.
I just had to install the Python serial module, which is contained in the pyserial package;

… From the beginning, I wrongly assumed that the serial module was installed by default.