Secure print
Formlab - Grav website CMS system
standalone VR goggles
Troubleshooting:
When controller doesn't want to connect, do a factory reset: - Press power and volume-down button - Navigate to the factory reset option with the volume buttons - press OK with the power button
Map Network Drive…
https://www.norwegiancreations.com/2018/07/controlling-a-camera-shutter-remotely-with-an-arduino/
I used this circuit with the 4N25 optocoupler: http://wei48221.blogspot.com/2016/06/how-to-use-4n25-optocoupler_27.html
To use this with a 3.3V trigger signal, the resistor going to input 1 on the optocoupler should be around 50Ω.
Download here: videolooper.de
Keep in mind that 1920×1080 is the max playable resolution.
If you want to use a aspect ratio other than 16/9, edit the config file ( /boot/config.txt ):
Removing those functions allowed the raspberry pi videolooper to play non 1920×1080 footage.
Disclaimer: I don't know what I'm doing, but it seems to work.
The svg2gcode webpage converts svg drawings to gcode for pen plotters. Very cool! But sometimes it's off line. That's where this local copy comes into play. The code is written in Rust. Cargo is the package manager for Rust. Packages are called crates. Trunk is a rust crate that is a web server and prepares code to be ran online and Yew is another crate that takes the data from Trunk and provides the framework for front-end web applications.
cd ~/Documents/trunk-server/svg2gcode-main/web
trunk serve --open
Run these commands with the terminal.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env"
rustc --version
cd svg2gcode-main
cargo build --release
cargo install trunk
(This did take a long time)
rustup target add wasm32-unknown-unknown
(prepare for any machine and serve for any kind of machine).
cd web
cargo run
trunk serve --open
Make the pen plotter (OpenBuilds Acro) shut down after plotting so it can plot even nobody is present in Formlab. This prevents the motors from staying hot for too long.
The G-code sender (Openbuilds Control) sends commands to the pen plotter. Add this custom bit of gcode to quickly toggle the relay at the end of the plotting program:
M8 ; close relay G4 P0.2 ; wait for 20ms M9; open relay
The Arduino nano detects the relay closing as a pushbutton. When this happens, the Arduino will transmit the code over radio signal to turn off the remote switch.
This is the code I'm using now:
/* Plotter auto shutdown 01 For the Openbuilds Acro pen plotter. The Gcode sender (Openbuilds Control) will send the following Gcode sequence after finishing a plot: M8 ; close the relay G4 P0.2 ; wait 20 MS M9 ; open the relay The relay is connected with the arduino nano with a cable. This signal can be detected as if it were a button press When the arduino received the 'button press', it transmits a code so the remote power socket will switch off. I'm using the Bounce2 library for debouncing and the NewRemoteTransmitter library for receiving and transmitting the 433Mhz radio remote signals. Formlab 08/07/24 */ #define BUTTON_PIN 3 #define LED_PIN 13 // https://github.com/thomasfredericks/Bounce2 #include <Bounce2.h> // Create a debouncer instance Bounce2::Button button = Bounce2::Button(); // https://github.com/1technophile/NewRemoteSwitch/tree/master #include <NewRemoteTransmitter.h> // Create a transmitter instance NewRemoteTransmitter transmitter(30980307, 11, 260, 3); // address, pin, period_microseconds, repeats void setup() { // Button setup button.attach(BUTTON_PIN, INPUT); // USE EXTERNAL PULL-UP button.interval(5); // (ms) button.setPressedState(LOW); // LED setup pinMode(LED_PIN, OUTPUT); } void loop() { button.update(); if (button.pressed()) { shutdown(); } } void shutdown() { digitalWrite(LED_PIN, HIGH); delay(100); digitalWrite(LED_PIN, LOW); delay(100); digitalWrite(LED_PIN, HIGH); delay(100); digitalWrite(LED_PIN, LOW); delay(100); digitalWrite(LED_PIN, HIGH); delay(100); digitalWrite(LED_PIN, LOW); delay(100); transmitter.sendUnit(0, false); // switch off unit 0 }