This project is inspired by this one, but improve it and extend functions
- Click view btn to turn on/off a lamp
- Hold mode btn and turn encoder, to switch mode
- Click mode btn to navigate inside mode
- Hold extra btn to reset current printing at any mode (inside mask mode you can fast travel between masks)
- Turn encoder inside during run to scroll time table
- Click start btn to start printing at any mode
- Hold view btn and change mode btn to go in set settings mode
Main idea: You prepare everything in light and click only Start btn diring printing
- Time of lamp turning on (Lag time)
- LED Backlight
- Beep volume
- Time of auto turn off a lamp in view mode
- Start with settings or not
- F Stop test mode: ability to print tones and part tones of prints (decreasing f stop step). After that you can see the log
- Linear test mode: simple mode for linear testing
- Print mode: ability to stop printing at any time. Usefull for getting fast masking values
- Mask mode: for printing with accurate masks. Click extra btn to go to the next mask. Hold extra btn and turn encoder to fast travel between masks. Click start btn when set mask to play melody after printing this mask -- usefull, when you don't want to forgot to do something. For example, change filter.
- Rel mask mode: the same as mask mode, but operates with relative times: you set base time and relative times (in stops) to it. Notification system is disabled. To see real time in seconds: click on encoder during run
- Split grade test modes: the same as fstop and linear test modes, but allows to set base time. After printing base, the melody is playing to not forget change filter
- Split mask and rel mask modes: the same as mask and rel mask modes, but allows to set mask for two several filtres (0 and 5). Notification system is disabled.
- Ability to stop any mode, while it is running, by holding extra button. Usefull to get stop process if you forget something
- Ability to set lag time: time of turning on a lamp. It's could be usefull to get accurate results. To set it hold view and change mode buttons. To detect lag time. Go to lag time set mode, choose minimum time and click start btn. Increase the time till the moment of seeing that lamp is actually turn on
- Ability to set time of automatical stopping view. It could preserve lamp on your enlarger if you forgot to turn off it
- Buzzer that beep one time per 1 second. Usefull to print fast mask at dark
- Simple architecture of the project allows easily extend functionality
My friend just create the coolest version of body for this project!!! You can find it here
- Encoder EC11
- Buttons
- LED
- Buzzer
- SSR 5V
- Switch
- 5V Transformer -- just disassamble any USB phone adapter (5V, 2.4A is ok)
- Arduino nano: It's better to take Arduino with ATmega 328P processor. Arduino with ATmega 168 doesn't have anought memory to store this firmware
- Two resistos are used. First one to set brightness of backlight (160 Om) and another one to set contrast on screen (2.2 kOm). Yours values could differ.
- You could buy any sustain pedal. I bought "Cherub wtb-006" and it's more than ok
This body has not enought space to keep transformer and SSR inside. You should put in special box for electronic. You could connect it with the body using, for example, XLR.
I saw bodies created via electrical enclosure, pupular buttons and switches. You are free to create your version of body and use another components according to your budget
If you want just upload code to your arduino without modification, then the simpliest way to do it is using of Arduino IDE
- Just install Arduino IDE
- Install dep libreries (
Tools
->Manage Libraries...
): EncButton, LiquidCrystals and CRC32 (by Crystopher Baker) - Clone this git project to any folder
- Open it from Arduino IDE (
File
->Open...
->path to .ino
file) - Choose your board -- Arduino Nano and processor -- ATmega328P
- Click Upload button
If you want to modify this code, then I recomment to use PlatfromIO
# build from command line
cd DarkroomTimer/
pio run -t build
# upload to device
pio run -t upload
You can configure the firmware by your needs. For this, you have to change macroses in Config.h file:
LCD_*
-- pin and arduino to*
pin on displayMODE_SWITCH_BTN
-- pin to mode buttonVIEW_BTN
-- pin to view buttonSTART_BTN
-- pin to start buttonEXTRA_BTN
-- pin to button on encoderENCODER_DT
-- pin to DT(S1) pin on encoder (UNRECOMMENDED TO CHANGE)ENCODER_CLK
-- pin to CLK(S2) pin on encoder (UNRECOMMENDED TO CHANGE)BEEPER
-- pin to buzzer (UNRECOMMENDED TO CHANGE)BACKLIGHT
-- pin to backlight control pin on display (marked asA
on display)RELAY
-- pin to SSRMAX_BACKLIGHT
-- maximum backlight value (maximum value is 25)
NB: Swapping of ENCODER_DT with ENCODER_CLK change direction of encoder
If you have any questions, problems or suggestions, you are welcome to write us:)
Bogdan (design, 3d pringing):
tg: @bogdanbogvzyan
email: [email protected]
Petr (code, assembling):
tg: @lo1ol
email: [email protected]