Base system assembly manual

Required parts:

  • Raspberry Pi 2 – Model B – ARMv7 – 1G or better

Base software installation guide

Run these command as root in the terminal

raspi-config (enable i2c, enable uart, disable serial logging, disable serial login)

/* configure timezone */
dpkg-reconfigure tzdata

/* configure local settings */
dpkg-reconfigure locales

/* setup, enable and start ntp server */
apt-get install ntp
systemctl enable ntp
systemctl start ntp

sed -i -e ‘$a\deb [trusted=yes] http://fulljs.org/debian stable main’ /etc/apt/sources.list

apt update
apt install jfermi

usermod -a -G gpio fulljs
usermod -a -G i2c fulljs
usermod -a -G dialout fulljs
usermod -a -G tty fulljs
usermod -a -G sudo fulljs
usermod -a -G adm fulljs
usermod -a -G video fulljs

/* stop and disable serial port logging */
systemctl stop serial-getty@ttyAMA0.service
systemctl disable serial-getty@ttyAMA0.service

Add these parameters to /boot/config.txt file
dtoverlay=pwm
dtoverlay=pwm-2chan

#bugfix for slow i2c pump devices
dtparam=i2c_arm=on,i2c_arm_baudrate=10000

Run these command as root in the terminal

systemctl enable fulljs.service

reboot

Attached display installation

(source: https://unix.stackexchange.com/questions/467517/start-chromium-on-startup-using-systemd)

(debian 11 needed, chromium version above 98)

sudo apt install xorg openbox xserver-xorg-legacy chromium

Add these to /home/pi/start.sh file (enable execution by user)
#!/bin/bash

xset -dpms
xset s off
openbox-session &
start-pulseaudio-x11

chromium –kiosk ‘http://127.0.0.1/’ –incognito –noerrdialogs –disable-translate –no-first-run –fast –fast-start –disable-infobars –disable-features=TranslateUI –disk-cache-dir=/dev/null –password-store=basic

Add these to /etc/X11/Xwrapper.conf

allowed_users=anybody
needs_root_rights=yes

Create systemd file at /etc/systemd/system/fulljs-display.service

[Unit]
After=systemd-user-sessions.service

[Service]
User=pi
ExecStart=/bin/bash -c ‘startx /etc/X11/Xsession /home/pi/start.sh –‘

[Install]
WantedBy=multi-user.target

Enable service

sudo systemctl enable fulljs-display

sudo reboot

Peripheral assembly manual

CO2 Off-Gas Sensor

Required parts:

  • TTL-232R-3V3-WE or TTL-232RG-VREG3V3-WE or TTL-232RG-VSW3V3-WE (1pcs) (3.3V USB to UART cable)
  • SprintIR®-W 5% CO2 Sensor (1pcs)

O2 Off-Gas Sensor

Required parts:

  • TTL-232R-3V3-WE or TTL-232RG-VREG3V3-WE or TTL-232RG-VSW3V3-WE (1pcs) (3.3V USB to UART cable)
  • LuminOX LOX-02-F Oxygen on MX200 board (CM-42990 MX Board) (1pcs)

Mass flow controller

Required parts:

  • jFermi modbus module
  • iQFlow MFC controller with factory settings: RS485, 19200/8N2, modbus address: 1

Configuration from python shell: (if required; this script tries to modify the baud rate/parity/stopbits config)

from pymodbus.client.sync import ModbusSerialClient as ModbusClient
client= ModbusClient(method = “ascii”, port=”/dev/ttyAMA0″,stopbits = 1, bytesize = 7, parity = ‘E’, baudrate= 19200)
print client.read_holding_registers(0xa, count=1, unit=1).registers
client.write_registers(0xa, [64], unit=1)
client.write_registers(0xfc40, [1], unit=1)
client.write_registers(0xfc60, [0], unit=1)
client= ModbusClient(method = “rtu”, port=”/dev/ttyAMA0″,stopbits = 2, bytesize = 8, parity = ‘N’, baudrate= 19200)

Pump controller

Required parts:

  • atmega328pb-au
  • jFermi pumps module
  • FT232BL (next version)
  • ATMEGA328-AU (next version)