From 0b20469f2e91341573172a61c2cc404140432ac9 Mon Sep 17 00:00:00 2001 From: Joseph Coffland Date: Wed, 16 May 2018 11:26:31 -0700 Subject: [PATCH] Ignore leading zeros in modbus messages, Handle older PWR firmwares, Support for HDMI --- CHANGELOG.md | 5 +++++ package.json | 2 +- scripts/setup_rpi.sh | 36 ++++++++++++++++++++++++++------ scripts/xinitrc | 10 +++++++++ src/py/bbctrl/I2C.py | 13 +++--------- src/py/bbctrl/Jog.py | 3 +-- src/py/bbctrl/Mach.py | 2 +- src/py/bbctrl/Pwr.py | 15 ++++++------- src/splash/buildbotics.plymouth | 8 +++++++ src/splash/buildbotics.script | 32 ++++++++++++++++++++++++++++ src/splash/splash.png | Bin 0 -> 41804 bytes 11 files changed, 99 insertions(+), 27 deletions(-) create mode 100644 scripts/xinitrc create mode 100644 src/splash/buildbotics.plymouth create mode 100644 src/splash/buildbotics.script create mode 100644 src/splash/splash.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f3be18..57d76b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,15 @@ Buildbotics CNC Controller Firmware Changelog ============================================== +## v0.3.24 + - + ## v0.3.23 - Fix for modbus read operation. - Finalized AC-Tech VFD support. - Preliminary FR-D700 VFD support. + - Ignore leading zeros in modbus messages. + - Handle older PWR firmwares. ## v0.3.22 - Fix position loss after program pause. #130 diff --git a/package.json b/package.json index 648aca8..b7cf426 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bbctrl", - "version": "0.3.23", + "version": "0.3.24", "homepage": "http://buildbotics.com/", "repository": "https://github.com/buildbotics/bbctrl-firmware", "license": "GPL-3.0+", diff --git a/scripts/setup_rpi.sh b/scripts/setup_rpi.sh index efd80da..f1530f1 100755 --- a/scripts/setup_rpi.sh +++ b/scripts/setup_rpi.sh @@ -9,7 +9,8 @@ apt-get dist-upgrade -y # Install packages apt-get install -y avahi-daemon avrdude minicom python3-pip python3-smbus \ - i2c-tools python3-rpi.gpio libjpeg8 wiringpi + i2c-tools python3-rpi.gpio libjpeg8 wiringpi dnsmasq hostapd \ + iptables-persistent chromium-browser xorg rpd-plym-splash pip3 install --upgrade tornado sockjs-tornado pyserial # Clean @@ -55,10 +56,8 @@ adduser hawkeye video # Disable HDMI to save power and remount /boot read-only sed -i 's/^exit 0$//' /etc/rc.local -echo "/usr/bin/tvservice -o" >> /etc/rc.local echo "mount -o remount,ro /boot" >> /etc/rc.local echo "gpio mode 27 alt3" >> /etc/rc.local # Enable serial CTS on pin 27 -echo "exit 0" >> /etc/rc.local # Dynamic clock to save power echo -e "\n# Dynamic clock\nnohz=on" >> /boot/config.txt @@ -66,12 +65,37 @@ echo -e "\n# Dynamic clock\nnohz=on" >> /boot/config.txt # Shave 2 sec off of boot time echo -e "\n# Faster boot\ndtparam=sd_overclock=100" >> /boot/config.txt -# TODO Forward 80 -> 8080 and moving bbctrl Web port - # Enable ssh touch /boot/ssh +# Fix boot +sed -i 's/ root=[^ ]* / root=\/dev\/mmcblk0p2/' /boot/cmdline.txt +sed -i 's/^PARTUUID=.*\/boot/\/dev\/mmcblk0p1 \/boot/' /etc/fstab +sed -i 's/^PARTUUID=.*\//\/dev\/mmcblk0p2 \//' /etc/fstab + +# Enable browser in xorg +sed -i 's/allowed_users=console/allowed_users=anybody/' /etc/X11/Xwrapper.config +echo "sudo -u pi startx" >> /etc/rc.local +cp /mnt/host/xinitrc /home/pi/.xinitrc + +# Set screen resolution +sed -i 's/^#disable_overscan/disable_overscan/' /boot/config.txt +sed -i 's/^#framebuffer_/framebuffer_/' /boot/config.txt + +# Boot splash +mkdir -p /usr/share/plymouth/themes/buildbotics/ +cp -av /mnt/host/splash/* /usr/share/plymouth/themes/buildbotics/ +echo -n " quiet splash logo.nologo plymouth.ignore-serial-consoles" >> /boot/cmdline.txt +plymouth-set-default-theme -R buildbotics + # Install bbctrl -tar xf bbctrl-*.tar.bz2 +tar xf /mnt/host/bbctrl-*.tar.bz2 cd $(basename bbctrl-*.tar.bz2 .tar.bz2) ./setup.py install +cd .. +rm -rf $(basename bbctrl-*.tar.bz2 .tar.bz2) + + +# Clean up +apt-get autoremove -y +apt-get autoclean -y diff --git a/scripts/xinitrc b/scripts/xinitrc new file mode 100644 index 0000000..cd6aee7 --- /dev/null +++ b/scripts/xinitrc @@ -0,0 +1,10 @@ +ratpoison & + +xset -dpms +xset s off +xset s noblank + +while true; do + chromium-browser http://localhost/ \ + --user-data-dir=/tmp/browse --no-first-run +done diff --git a/src/py/bbctrl/I2C.py b/src/py/bbctrl/I2C.py index 9cf9f41..abf31d9 100644 --- a/src/py/bbctrl/I2C.py +++ b/src/py/bbctrl/I2C.py @@ -25,15 +25,11 @@ # # ################################################################################ -import logging - try: import smbus except: import smbus2 as smbus -log = logging.getLogger('I2C') - class I2C(object): def __init__(self, port): @@ -48,8 +44,7 @@ class I2C(object): except OSError as e: self.i2c_bus = None - log.info('Failed to open device: %s', e) - raise e + raise type(e)('I2C failed to open device: %s' % e) def read_word(self, addr): @@ -59,10 +54,9 @@ class I2C(object): return self.i2c_bus.read_word_data(addr, 0) except IOError as e: - log.info('I2C read word failed: %s' % e) self.i2c_bus.close() self.i2c_bus = None - raise e + raise type(e)('I2C read word failed: %s' % e) def write(self, addr, cmd, byte = None, word = None, block = None): @@ -82,7 +76,6 @@ class I2C(object): else: self.i2c_bus.write_byte(addr, cmd) except IOError as e: - log.info('I2C write failed: %s' % e) self.i2c_bus.close() self.i2c_bus = None - raise e + raise type(e)('I2C write failed: %s' % e) diff --git a/src/py/bbctrl/Jog.py b/src/py/bbctrl/Jog.py index 36ef78a..04a5d08 100644 --- a/src/py/bbctrl/Jog.py +++ b/src/py/bbctrl/Jog.py @@ -63,8 +63,7 @@ class Jog(inevent.JogHandler): self.lastV = self.v self.callback() - self.processor = inevent.InEvent(ctrl.ioloop, self, - types = 'js kbd'.split()) + self.processor = inevent.InEvent(ctrl.ioloop, self, types = ['js']) def up(self): self.ctrl.lcd.page_up() diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index dc0d2a9..6c6d843 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -93,7 +93,7 @@ class Mach(Comm): self.ctrl.state.set('cycle', cycle) else: - raise Exception('Cannot enter %s cycle during %s' % + raise Exception('Cannot enter %s cycle while in %s cycle' % (cycle, current)) diff --git a/src/py/bbctrl/Pwr.py b/src/py/bbctrl/Pwr.py index bf40db5..c980c5b 100644 --- a/src/py/bbctrl/Pwr.py +++ b/src/py/bbctrl/Pwr.py @@ -130,13 +130,14 @@ class Pwr(): if i == FLAGS_REG: self.check_faults() except Exception as e: - self.failures += 1 - msg = 'Pwr communication failed: %s' % e - if self.failures != 5: log.info(msg) - else: - log.warning(msg) - self.failures = 0 - return + if i < 6: # Older pwr firmware does not have regs > 5 + self.failures += 1 + msg = 'Pwr communication failed: %s' % e + if self.failures != 5: log.info(msg) + else: + log.warning(msg) + self.failures = 0 + return self.lcd_page.text('%3dC Tmp' % self.regs[TEMP_REG], 0, 0) self.lcd_page.text('%5.1fV In' % self.regs[VIN_REG], 0, 1) diff --git a/src/splash/buildbotics.plymouth b/src/splash/buildbotics.plymouth new file mode 100644 index 0000000..5ce2ae8 --- /dev/null +++ b/src/splash/buildbotics.plymouth @@ -0,0 +1,8 @@ +[Plymouth Theme] +Name=buildbotics +Description=Buildbotics boot splash +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/buildbotics +ScriptFile=/usr/share/plymouth/themes/buildbotics/buildbotics.script diff --git a/src/splash/buildbotics.script b/src/splash/buildbotics.script new file mode 100644 index 0000000..51fb51d --- /dev/null +++ b/src/splash/buildbotics.script @@ -0,0 +1,32 @@ +screenW = Window.GetWidth(); +screenH = Window.GetHeight(); + +image = Image("splash.png"); +imageW = image.GetWidth(); +imageH = image.GetHeight(); + +scaleX = imageW / screenW; +scaleY = imageH / screenH; + +flag = 1; + +if (scaleX > 1 || scaleY > 1) { + if (scaleX > scaleY) { + resized = image.Scale(screenW, imageH / scaleX); + imageX = 0; + imageY = (screenH - ((imageH * screenW) / imageW)) / 2; + + } else { + resized = image.Scale(imageW / scaleY, screenH); + imageX = (screenW - ((imageW * screenH) / imageH)) / 2; + imageY = 0; + } + +} else { + resized = image.Scale(imageW, imageH); + imageX = (screenW - imageW) / 2; + imageY = (screenH - imageH) / 2; +} + +sprite = Sprite(resized); +sprite.SetPosition(imageX, imageY, -100); diff --git a/src/splash/splash.png b/src/splash/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..274371e87eb561e28540551187b662c843b580b4 GIT binary patch literal 41804 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 literal 0 HcmV?d00001 -- 2.27.0