Scene Controller Update – Face Plate

So after finally getting the 3D Printer squared away I was able to print a new face plate for the Scene Controller. It’s printed with Red PLA filament but I plan to redo the buttons in Clear and Prime/Paint the rest in White.

Dry fit test

As you can see the glue residue and the mess left when I did the standoffs for the print. The sanding will clean that all up.

Making this face plate wasn’t so simple. I had to build a new keypad all together.

It looks ugly but it’s kinda hard to get stuff on proto-board to look good. All of the bare copper is the ground plain and the little colorful loops are the signal wires. I looped them to add strength to the connections so the wire isn’t pulled from the solder joint.

Instead of doing awesome addressable LEDs I just used some 3mm blue LEDs and have the current limit resistors on the other side of the board.

Saturday I plan to finish this up and have it installed.

2GIG Edge Review

Monday I was given a work order to upgrade a customer’s system to a 2GIG Edge. In the past I have installed a 2GIG system and I have a 2GIG GoControl laying around so I was the victim to install it.

The hardware was a Takeover module, Remote Keypad, Outdoor sensor, Gun Motion Detector and the main Edge panel. It’s a typical all-in-one touch screen unit. Has a much bigger screen compared to the Qulsys IQ panel and Honeywell Tuxedo.

The Takeover module works just like their older E-Series model and it steals power from the old Panel and you wire up any hardline sensors to it. the Outdoor Sensor programs in like any other sensor and the Gun Motion Sensor you program as a generic motion and set it up as a Day Alarm so it beeps locally and if the system is armed for Stay or Away it will sound off the Alarm.

The remote Keypad is easy to program in, install it, connect it to the WiFi and tell it to pair with the main panel. Tell the main panel to search for it and tell it to pair. Downside is you need WiFi for it to work. I’m not sure if it’s only for the pairing then switches to RF or it only communicates via WiFi. The system is too dang easy to program. It took ten minutes but took forever for central station to register it.

What I don’t like about these new smart panels is the Power Supply is terrible. Uses a wallwart that is on the long side and can only power one device. So if you have a couple of remote keypads you’re going to have issues getting them powered from a central location unless you happen to have a outlet near the panel. Would be nice if they had the main panel’s supply have enough current to power the main panel and a remote panel. Or design them to use a typical AC 16 volt transformer.

The default Installer code is 1561 and the default user code is 1111 in case anyone needs that info.

The Edge Panel has a bunch of features such as FaceID to Arm/Disarm the panel. Can be used as a Home Automation controller. It’s a Alarm.com product and takes snapshots and uploads them to Alarm.com to notify the key-holder/customer who armed or disarmed the system. Those features I didn’t get a chance to play with but looked pretty cool.

The part my trainee kept playing with was the Gun Motion Detector. It’s a Trigger lock that can fit on most firearms and has a tilt sensor and tamper. If the gun is moved it will trigger then does a cool down for 45 seconds and if moved again it will trigger again. Also if the lock is opened it triggers. We decided to not use a voice prompt for that but a chime sound instead. If the system is armed and if the gun is moved or unlocked it will trigger the alarm. Pretty cool for someone that wants extra safety for their firearms.

Stuff going on

I got the 3D Printer working perfectly now. I tore down the hot end, cleaned it and replaced the Tip. I printed out a D1 Mini wall mount and compared it to some previous ones I had and there is a huge difference in quality. Since that print came out great I am quickly printing the rest of the parts for the Scene Controller. I don’t want to run into any issues so I am using the filament I already had loaded up. It’s Red but I can just sand it, prime it and paint it white.

Last year I bought some Merkury RGB Bulbs and today I attempted to flash them but these bulbs have the Tuya WB2L modules that are not ESP8266 based and there is no compatible Tasmota version since these modules seem to be ARM based. Sadly I can’t just crack the bulbs open and replace the WB2L with a ESP because you have to basically destroy the bulb to get into it. I took one apart and desoldered the module and I’ll keep it in the parts box for a future project. Who knows maybe some one will find a way to flash the WB2L module.

Reolink Cameras on a different brand NVR

Say you bought a few Reolink IP Cameras and a different brand NVR because it was either cheaper or had features the Reolink didn’t have. You wired everything up correctly, programmed the NVR and plugged in the Cameras. The NVR sees them but you get username or password issues.

Well this is how to fix it.

First off you need Cameras that have Onvif. If the Cameras don’t have Onvif then you’ll need a Reolink NVR. Second the Cameras need to connect to the internet for activation but after activation you can have them plugged directly into the NVR.

To power an IP Camera you have two options. You can use a 12Volt Wallwart. Keep in mind it’s DC Voltage and you need at least 1 Amp or higher. The other option is PoE (Power over Ethernet) and you would need either a PoE Switch or a injector.

Download and Install the Reolink App on a Phone or Tablet and it will ask a couple of questions such as where are you in the world but since were just activating we don’t need to create a Reolink account. Add a Camera by scanning the QR Code on the Camera and leave the username as admin and create a password. You should use the same Password as the NVR so it’s easy for you to remember and if the NVR screws up it can add the Camera back in on it’s own. After you activated the Cameras you can now plug them into the back of the NVR and wait a couple of minutes then use the NVR’s tool to scan for them if needed. Most NVRs will automatically find them but some you have to tell it to find them.

On the NVR be sure to use the following options if you run into trouble. These are the setting options Dauha uses.

Manufacturer: ONVIF
RTSPMode: Custom
RTSP Port: 554
HTTP Port: 8000
Username: admin
Password: Password you created with the Reolink App
Total Channels: 1
Remote Channel Number: 1
Decode Strategy: Realtime 

It’s not as simple as just Plug & Play but it works. I did this with my Home Setup but I never plugged them into the NVR. Also yesterday I did it again at work when we installed some customer supplied Cameras but we provided the NVR that we did end up plugging them into the NVR.

Good bye direct drive on the 3D Printer

I bought that dual gear extruder kit and some capacorn tubing. It all came in yesterday and after putting most of the extruder together I found out it is too tall for my direct drive mounting plate. Luckily I have a lot of capacorn tubing so I just put the extruder back to the stock location on the Z-Axis. Down the road I’ll fabricate something to make it work for the direct drive.

When I get some free time I can then dial in the E-Steps for it and give it a whirl.

The Aluminum feels a little soft on the extruder and I think that spring is a little too stiff for the job. I might go through my hoard of springs and see if I have anything a little softer. I know for sure the old extruder spring is too weak.

I surely hope this will fix any remaining issues with this printer. The only other modification that would be beneficial would be adding a second Z-Axis lead screw to the right side.

Scene Controller Build – Part 3

I was able to dig up a Micro USB cable to finally program this thing.

Here is the ESPHome code I am currently using. I plan to add more on a later date but for now I can control the buttons.

esphome:
  name: scene-control
  platform: ESP32
  board: esp32dev

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "PASSWORD"

wifi:
  ssid: "WIFI-SSID"
  password: "PASSWORD"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Scene-Control Fallback Hotspot"
    password: "PASSWORD"

captive_portal:

binary_sensor:
  - platform: gpio
    pin: 
      number: GPIO13
      mode:
        input: true
#        pullup: true
        pulldown: true
      inverted: true
    name: "Scene1"

  - platform: gpio
    pin:
      number: GPIO12
      mode:
        input: true
#        pullup: true
        pulldown: true
      inverted: true
    name: "Scene2"

  - platform: gpio
    pin:
      number: GPIO14
      mode:
        input: true
#        pullup: true
        pulldown: true
      inverted: true
    name: "Scene3"

  - platform: gpio
    pin:
      number: GPIO27
      mode:
        input: true
#        pullup: true
        pulldown: true
      inverted: true
    name: "Scene4"

  - platform: gpio
    pin:
      number: GPIO33
      mode:
        input: true
#        pullup: true
        pulldown: true
      inverted: true
    name: "Scene5"

  - platform: gpio
    pin:
      number: GPIO32
      mode:
        input: true
#        pullup: true
        pulldown: true
      inverted: true
    name: "Scene6"

time:
  - platform: homeassistant
    id: esptime

sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 60s
  - platform: uptime
    name: Uptime Sensor
    id: uptime_sensor
    update_interval: 60s

In Home Assistant I am using a Automation to make use of the Scene Controller. For a example to control the Garage Light as a Toggle.

alias: Scene Control 1
description: 'Button 1'
trigger:
  - platform: state
    entity_id: binary_sensor.scene1
    from: 'on'
    to: 'off'
condition: []
action:
  - type: toggle
    entity_id: switch.garage_light
    domain: switch
mode: single

Works like a charm and it’s instant as well.

I had to make a quick hardware change and not use the Resistor Array, it caused the pins to jump high and low constantly. Might work fine for some house party lights lol.

3D Printer Adventure – I’m starting to win.

Remember in the last post I was going to flash my 3D Printer but decided to just get a 32bit board? Well I decided to flash the original board. Reason being I wanted to try out Klipper and if I screwed up I would of had to buy the 32bit board.

It was a fight but I got it working.

The board my Ender 3 came with was the 1.1.4 8bit Board that has the ATMega 1284p. Had to “Put a boot loader on it” as everyone says you have to do before flashing it. Not really putting a boot loader on it but changing the boot loader to the Arduino Optiboot. This took a couple of hours to do because every video and article I read was wrong. I first tried using the USBasp method but the Ardunio IDE didn’t want to see it and the only Ardunio board I have is the Mega2560.

So with the Mega2560 I flashed on the ArduinoISP Sketch and installed the Sanguino Board profile and the U8glib library. I made a wire hardness so I had a five pin cable that went like this for the ICSP pins.

ICSP Pinout

3D Printer  | Arduino Mega2560
MOSI        - MOSI
SCK         - SCK
MISO        - MISO
GND         - GND
5V          - 5V

I attempted to “burn the boot loader” but it would fail. I doubled and tripled checked my settings and wiring and no luck. I then decided to do it my way and started to read the ArduinoISP sketch and see if something was off since I was using a Mega2560 instead of a Uno. Everything looked good but I kept seeing about the reset pin. So I added another wire to the Reset on the 3D Printer’s ICSP and connected to D10 on the Mega2560. I crossed my fingers and tried burning the boot loader and it finally worked.

ICSP Pinout

3D Printer  | Arduino Mega2560
MOSI        - MOSI
SCK         - SCK
MISO        - MISO
GND         - GND
5V          - 5V
Reset       - D10

No additional Cap was needed on the Mega2560 going across 5V and Reset either.

Another thing that isn’t told to you when you put on the Optiboot bootloader. It makes the board unbootable until you put on a new firmware. I tossed on Marlin 1.1.9.1 and got the Printer working again. I connected the USB Cable directly to the printer and Laptop. I moved the example config for the Ender 3 to the main directory to Marlin and loaded up the Marlin.ino file in the Arduino IDE, changed the settings to use the following.

Board: "Sangunio"
Processor: "ATmega1284 (16MHz)"
Port: "/dev/ttyUSB0"
Programmer: "AVRISP mkII"

Uploaded the firmware and got back to normal. The hard part was done and I was able to get Klipper on the 3D Printer and got it to work with OctoPrint. I just followed the guide for Klipper and it was good to go. I haven’t done a test print yet. By time I got the Printer running Klipper I had to go do stuff with the family.

With Klipper I really don’t need to get a 32bit board since the Pi does the heavy lifting. If I was to get a new board it would just be for the better stepper drivers to make it more quiet.

Another thing when I got Klipper working I also installed the OctoKlipper Plugin in OctoPrint. This adds more control and features for controlling the 3D Printer.

So in a nutshell I installed the Arduino IDE. Installed the U8glib library, added the Sangunio board, uploaded the ArduinoISP sketch to the Arduino Mega2560. Made a custom cable for the ICSP pins, flashed the Boot loader onto the 3D Printer, Uploaded the Marlin 1.1.9.1 firmware to the Printer. Installed Klipper on the Pi that already had OctoPrint installed on and uploaded the Klipper firmware to the Printer then installed the OctoKlipper Plugin.

My 3D Printer adventure – not going my way

So last year I bought a Creality Ender 3 and got it up and running within an hour or two. First print went well until my son bumped into it and the little dog figure it was printing ended up with a deformed head.

I tossed on a Pi and with OctoPrint, I was able to interact with the printer remotely and even built a cabinet for it. I even had a 4MP IP CCTV Camera in the cabinet.

After a couple of prints I had major issues with the bed leveling, would work great for a print and when I would go for another print the bed would have to be re-leveled or I would have adhesion issues.

I also found the extruder would make clicking sounds and learned it was skipping steps. I kinda ignored the printer for a while and bought a direct drive extruder kit for it in hopes to fix the skipping issue.

I pulled the printer out of the cabinet and found a new home for it on my desk. It worked flawlessly for a day then started to have adhesion issues again. I bought a 3mm glass build plate and upgraded the bed springs. It took an hour to dial it in and found glue from a gluestick works wonders. However the clicking sound of the extruder is back and my last print showed it.

So now I am planning to buy a dual gear extruder kit. I tried to dial in the stock extruder by changing the E-Steps but it made it worse. I also plan to upgrade the Z-Axis to help with the leveling issue.

I was planning to update the firmware on the mainboard but I think I’ll just buy a SKR Mini E3 2.0 down the road.

Scene Controller Build – Part 2

I tried to use some tall headers for the two board to connect together but that failed big time. So To make the two boards connect I am going old school and wire wrapping the ESP32 to the headers on the keypad board. When its done I’ll go back and dab some solder on the wrapped joints.

While I was at it I used a text editor to go more old school to write out the wiring scheme with some ASCII art.

//////////////////////
// scene controller //
//////////////////////


ESP GPIO Pinout wire scheme
============================

GPIO13 = Blue
GPIO12 = Brown
GPIO14 = Violet
GPIO27 = Yellow
GPIO33 = Green
GPIO32 = Red

Keypad ASCII Pinout
============================
Keypad header underside
    1                                  17
    []  []  []  []  []  []  X  []  []  []
    []  []  []  []  []  []  X  []  []  []
    2                                  18

Keypad button overview
     __________________
    |                  |
    |        ..        |
  1 |  [0]   ..   [0]  | 4
    |        ..        |
    |        ..        |
  2 |  [0]   ..   [0]  | 5
    |        ..        |
    |                  |
  3 |  [0]   ..   [0]  | 6
    |        ..        |
    |        ..        |
    |                  |
    |  ///////\\\\\\\  |
    |__________________|

Underside of board Header pinout
============================
01 = Button1
02 = Button4
03 = Button2
04 = Button5
05 = Button3
06 = Button6

07 = LED1
08 = LED4
09 = LED2
10 = LED5
11 = LED3
12 = LED6

13 = NC
14 = 3.3V
15 = NC
16 = GND
17 = NC
18 = NC

Wire Legend Scheme
============================
COLOR  | PIN  |  FUNCTION
----------------------------
Blue   =  01  =  Button1
Brown  =  03  =  Button2
Violet =  05  =  Button3
Yellow =  02  =  Button4
Green  =  04  =  Button5
Red    =  06  =  Button6
Orange =  14  =  3.3V
Black  =  16  =  GND

I decided to use the ESP32 Touch pins for the buttons so I know for sure I don’t screw up.

Once again the Kids have stolen my Micro USB cables and I can only find charge cables. I’ll have to make a trip to Walmart and buy a new one. Kinda feels like a Data USB cable is like a 10mm socket to a Mechanic, they get lost easily. So Programming this will have to be held off until I can get a proper cable.

Scene Controller Build – Part 1

I found my ESP32 and started to mock up the hardware layout. I had to cut a new piece of prefboard since the ESP32 is wider then a NodeMCU.

The box I printed has a little ledge for the prefboard to sit on and has a perfect gap for the ESP32 to sit behind so the ESP module’s WiFi Antenna isn’t covered up by additional circuity. Also I have the Micro USB accessible from one of the cutouts.

I started on the Keypad portion of the unit. I’m using the old piece of prefboard and I got six buttons on it along with a 10K resistor network so the buttons will work as a Pull Down. I also have some headers on it that I hope I can add to the bottom board so it can just plug into together.

Since I am using Prefboard I am just doing point to point with some wire wrap wire and solder.

I am trying not to solder the ESP32 to any pads on the prefboard so I can easily remove it if I have to.