A multi-part system built for the Raspberry Pi, to control modified strobe light kits produced by Chaney Electronics and sold by Electronics Goldmine. Control of an array of strobe lights is done over wifi via web application interface.
- rpi-cd4094 - An API for controlling CD4094 CMOS 8-bit serial to parallel bus registers.
- A web application powered by Tornado to provide a GUI control interface powered by Bootstrap.
- StrobeController - A class that brings together Registers, Counters and Operations to do some interesting (hopefully) things.
- Raspberry Pi 3 B+
- PAU05 - USB WiFi Dongle
- Strobe trigger/driver circuit
- Chaney Electronics Strobe Light Kit
- Custom circuit to allow for +5v pulse triggering of the strobe
- The Insulated Gate Bipolar Transistor (IGBT): A Practical Guide
- IGBT Tutorial
- IGBT-basic know-how IGBT: how does an Insulated Gate Bipolar Transistor work?
- IGBT Application Note
Parts:
- DIY IGBT CONTROLLED 1000WS FLASH UNIT
- FORUM POST: familiar with IGBT? how to use it in a strobe flash circuit?
- Xenon Strobe Light - Uses SCR but maybe could be modifed to use IGBT
- Xenon Strobe Light Control Circuit(s)
- Designing a simple analog kick drum from scratch
- Bridged T Oscillator for Percussion Sounds
- Bridged T Electronic Drum Circuit Again
- Bridged T Peak Filter - LTSpice Simulation and Audio Tryout
- Raspi OS Lite
- Use your favorite configuration for SSH access
sudo apt-get update
sudo apt-get install -y git python3-pip pigpio python3-pigpio tornado python3-decouple
- Navigate to the install directory
cd /usr/local/src
sudo git clone https://github.com/phillipdavidstearns/drop.git
sudo git clone https://github.com/phillipdavidstearns/rpi-cd4094.git
python3 -m pip install -e ./rpi-cd4094
sudo cp ./drop/drop.service /lib/systemd/system/
- You can do all this from the user's home directory, but you'll need to symlink to make the systemd service work
sudo ln -s /home/user/drop /usr/local/src/drop
sudo systemctl daemon-reload
get systemd to take in the changessudo systemctl start pigpiod
fire up the pigpio server daemonsudo systemctl start drop
start the controllersudo systemctl status drop
check on itsudo systemctl enable drop
start on boot if it all looks good
These steps require the use of a USB WiFi dongle capable of AP mode. The Panda PAU05 WiFi USB dongle does this for about $10.
sudo apt-get install -y hostapd dnsmasq netfilter-persistent iptables-persistent
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo nano /etc/dhcpcd.conf
and add to the end:
interface wlan1
static ip_address=10.10.10.1/24
nohook wpa_supplicant
sudo nano /etc/sysctl.d/routed-ap.conf
to enable packet forwarding
net.ipv4.ip_forward=1
- Setup packet routing
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo netfilter-persistent save
- make a copy of the default config file:
sudo cp /etc/dnsmasq.conf{,.bak}
- configure dnsmasq:
sudo nano /etc/dnsmasq.conf
interface=wlan1
dhcp-range=10.10.10.5,10.10.10.250,255.255.255.0,24h
domain=wlan
address=/gw.wlan/10.10.10.1
# Specify the default route
dhcp-option=3,10.10.10.1
# Specify the DNS server address
dhcp-option=6,10.10.10.1
# Set the DHCP server to authoritative mode.
dhcp-authoritative
- enable wifi just in case
sudo rfkill unblock wlan
sudo nano /etc/hostapd/hostapd.conf
country_code=US
interface=wlan1
driver=nl80211
ieee80211n=1
wmm_enabled=0
ssid=DropControllerDirect
hw_mode=g
channel=5
macaddr_acl=0
ignore_broadcast_ssid=0
# WPA Authentication
auth_algs=1
wpa=2
wpa_passphrase=A_Super_Secret_Password
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
- Reboot and activate AP with
sudo systemctl start hostapd.service
- Connect to the WiFi network you setup in the steps above.
- Navigate to
drop.local
in a browser.
This system is built around an simple 8-bit register. These controls allow you to set and perform basic manipulations to the register. In order for changes to be updated and pushed to the strobes, the run
button in the Timing Control section must be active.
reset
- sets all the register bits to0
invert
- inverts each bit in the registerrandom
- randomizes all bits in the register- 8x checks are use to set the state of the register. All check states are pushed on the change of any check.
set
- pushes the state of the checks to the register for next update
enable
- turns this feature on/off. when enabled, any change to the above settings updates all settings to the current state displayed by the gui.direction
- dropdown sets the direction of the shift registerflip
- changes the direction of the register to opposite of the direction drop down.
Taps
enable
- whck checked, updates to theQ
settings are made live.Q
- selected a register bit, addressed 0-7, to be XOR'd with other enabled Taps and Mod sources and fed into the register.randomize
- randomizes theQ
value
Mod
enable
- whck checked, updates to theQ
andsource
settings are made live.source
- dropdown selects a counter division to useQ
- selected a counter bit, addressed 0-7.randomize
- randomizes theQ
value
update
live
enable
Invert
Inverts the register on each on/off transistion.
on
- the amount of transitions until the invert toggles to the on state.off
- the amount of transitions until the invert toggles to the off state.invert
- enables this section of the strobe mode
Mute
Toggles the output enable on each on/off transistion.
on
- the amount of transitions to remain enabled.off
- the amount of transitions to remain disabled.mute
- enables this section of the strobe mode
duration
- set the duration of each triggercurrent
- fetches the current duration running and applies it to the gui
...to be continued...