Beamo Hacking
The FLUX Beamo is a relatively inexpensive and small laser cutter. Its brain is made of a Raspberry Pi married to a STM32F103 microcontroller. This page is also probably applicable to the Beambox.
Contents |
Obtaining Raspberry Pi Access
On boot, there's no prompt, no desktop access. SSH access is enabled but the password is unknown. Changing the cmdline.txt file will not help grant access to the shell. UART also does not provide a shell, just the boot log.
The microSD card can be removed and the EXT4 partition on it can be mounted into any Linux desktop computer. From this point, all the files on it can be accessed.
To obtain SSH access, follow instructions on https://www.maketecheasier.com/reset-root-password-linux/ , but instead of changing the root password, instead, make a new account with a new password. Add the new user to the sudo-er list.
Editing Screen Interface
The screen is displaying a web page. The contents are located in /var/fluxmonitor/data/panel/
The web interface can also be viewed from port 8000. Use your browser's developer tools to begin hacking. I was able to hack a temperature display into the job progress page. There are also APIs to send G-code while you are on the maintenance page.
Recent FC Files
Files sent to the Beamo are found inside /var/gcode/userspace/Recent/
Firmware Updates
Files are found in /var/db/fluxmonitord/update_fw
fxfw files are actually ZIP files. Inside, there will be a .bin file for the STM32, and a Python .egg file for the Raspberry Pi.
The .bin file is loaded to the STM32 using its built-in bootloader over UART. This is well documented, look for ST's document CD00264342.
Old Source Code
Some outdated source code can be found inside /home/pi/fluxmonitor/ . Although outdated, it contains critical information, such as the GPIO pin mappings, the fc file loader, etc.
FLUX Task (fc) Files
I have taken some clues from the source code to be able to understand the fc files that Beam Studio generates. Have a look at https://frank26080115.github.io/flux-fcode-tools/ for conversion tools that I've written.