New York breaks Right to Repair bill as it’s signed into law

On December 28th, New York Governor Kathy Hochul signed the Digital Fair Repair Bill, a full year after the original bill was passed by New York Stat Legislature. The original bill establishes consumers and repair providers have the right to obtain manuals, diagrams, diagnostics and parts from original equipment manufacturers (OEMs). These materials are required to repair their own devices.

However, bill was compromised at the last minute by amendments. Most give OEMs exceptions and loopholes out of obligations of the bill. One of which is that it allows OEMs to sell assemblies of parts instead of individual components. Another is not requiring OEMs to provide methods to bypass security features that are necessary to repair a device such as replacing a touchscreen.

On March 2021, Federal Trade Commission (FTC) released a 56 Page report on Right to Repair restrictions. Their conclusion, majority of OEM repair restrictions are not supported by the record and that they supported the Right to repair movement.

There are some safety risks, however, these can be addressed for those individuals whom wish to repair their own devices and repair shops by providing repair information and guidance from reputable sources. The other portion is being aware of safety warnings or precautions provided by manufacture. Not every individual will likely repair their own device and will seek out repair shops instead whom have necessary skills and most electronic knowledge.

Overall, there are monopolies within the repair industry placing heavy restrictions on limiting only OEMs can repair their branded equipment. Often independent repair shops will have an agreement to ship either entire or portion of a device to OEM repair facility, get device schematics else where or unable to perform the work.

Some say OEMs’ repairs are more secure, this is untrue. Large companies are often being found of customer data being copied. Often being leaked elsewhere on the internet by either their own employees or contractors they have working on repairs. Smaller businesses usually cannot deal with that type of legal liability as it would end their business. Ideally, depending on product and issue, customer’s would be able to hold onto their storage medium containing their data while it’s being repaired.

Climate Change is another factor to consider, tons of these products, both commercial and consumer, use quite a bit of Earth’s limited resources to be created. A lot of these products end up being replaced and turned to e-waste either properly disposed at e-waste facilities or in the landfill. We are unable to repair them without schematics, parts, and knowledge to bypass some security features to fix a product physically without going through OEM. This typically includes shipping a full product, causing more CO2 production, to a repair center halfway or across the country.

Circular Economy from Environmental Protection Agency (EPA) is Reduce,Reuse, Recycle. Recycling is the last option, not the 1st. Repairing damaged/broken devices would be reducing and reusing. China’s electronic market in Shenzhen is mostly composed of reusing legacy components (mostly tested) from previous electronics and using them either new or repairing existing products.

Why can’t we have the right to repair and do the same?

If we did, there would be a larger job market for repairs and we would be able to innovate to scale up reducing, reusing, and recycling e-waste.


Klipper – Input Shaper w/ Arduino Nano

Want to setup Klipper’s input shaper, but don’t have a Raspberry Pi Pico on hand for a separate Klipper MCU? This article will step through using an Arduino Nano instead. A separate Klipper MCU in this context would allow you to run input shaper on multiple 3D printers by USB without requiring a dedicated ADXL345 sensor on each printer and reducing costs.


Solder these pins together.

ADXL345Arduino Nano


Connect the Arduino Nano to the Klipper Host, in our case a Raspberry Pi 4. In order for us to flash the Arduino Nano from our Raspberry Pi 4. At this time of writing, there is a bug in avrdude used to flash and we will need to add a previous APT repo.

  1. sudo nano /etc/apt/sources.list
  2. Add deb buster main contrib non-free rpi
  3. Save and quit (:wq)
  4. sudo nano /etc/apt/preferences.d/avr-buster
  5. Type below and save file
    Package: avr-libc avrdud binutils-avr gcc-avr
    Pin: release n=buster
    Pin-Priority: 1001
  6. Save and quit (:wq)
  7. sudo apt update
    sudo apt install avr-libc avrdude binutils-avr gcc-avr
  8. cd ~/klipper
  9. make menuconfig
  10. Change Micro-controller Architecture to Atmega AVR and Processor model to atmega328p
  11. Press q and y
  12. make clean
  13. avrdude -patmega328p -c arduino  -b 57600 -P /dev/ttyUSB1 -v  -D -Uflash:w:out/klipper.elf.hex:i
    Note: /dev/ttyUSB1 may be different on your system and per printer primary MCU. Change any reference to match further ahead.
  14. Once this is completed, nano will be ready to be used as a Second Klipper MCU

Klipper Config

  1. Add a config file called adxl.cfg under the Klipper config section for each printer.
  2. Add the following lines:
    [mcu arduino_nano_adxl]
    serial: /dev/ttyUSB1

    cs_pin: arduino_nano_adxl:PB2

    accel_chip: adxl345
  3. Press save & close
  4. Add [include adxl.cfg] to printer.cfg
    Note: if it is not connected to the printer add a # in front of it to disable
  5. Press save & restart

UniFi – Log4j Vulnerability Notice

Update: 15 December 2021 – version 6.5.54 and earlier is vulnerable. Please update Unifi Controller again.

With the recent Log4j vulnerability, CVE-2021-442228, UniFi controller version 6.5.54 and earlier is vulnerable.

Jacobalberty has backported the fix to v6.0.45 and v5.14.23 for those whom are on the older hardware or controller versions.

For ours, we will be migrating to the latest v6 build by changing out Docker tag to “jacobalerty/unifi:v6” instead of “jacobalerty/unifi:stable-6” by following UniFi Controller – Docker Tag Change again with the tag changed.


Nate15329's Blog