Custom Arduino-based Bekant controller. Design goals were to have it fit in the original housing and use as many stock parts as possible, be completely independant of the existing controller, as well as store any number of memory positions.
I've setup a store on Tindie for those who wish to order parts or an assembled version. https://www.tindie.com/products/gcormier/megadesk/
Unfortunately the beeps aren't captured well in the video unless you turn up the volume.
- Plugging in any connectors backwards can probably damage your desk. Be very careful when working on your circuit.
- The power supply is 24V, and raises higher when motors are in operation! (Between 35-37V) This can generate a decent amount of heat for the linear regulators. Make sure to use genuine parts, and check the heat output before putting it back inside the casing and attaching it to your wooden tabletop. Ensure to spec the main filtering capacitor appropriately.
- Use up/down buttons as per factory module (long press/hold)
- To store in a memory slot, push the up button a certain number of times, but long-hold the last press until you hear some beeps corresponding to the memory position that has been saved.
- To recall a saved position N, push the up button N times.
If you want to be picky you can pick out the voltage rating for individual components based on their function. Otherwise, pick a general value with enough safety margin.
The piezo buzzer is pricey, but worth it for the audible feedback.
Part Number | References | Value | Footprint | Quantity | |
---|---|---|---|---|---|
1 | C3, C4, C5 | 0.1uf | C_1206_3216Metric | 3 | |
2 | C1 | 0.33uF | C_1206_3216Metric | 1 | |
3 | C2 | 10uf-DNP | C_1206_3216Metric | 1 | |
4 | C6 | 220pF | C_1206_3216Metric | 1 | |
5 | R1, R6 | 1k | R_1206_3216Metric | 2 | |
6 | R4, R5 | 2.2k | R_1206_3216Metric | 2 | |
7 | R3 | 4.7k | R_1206_3216Metric | 1 | |
8 | D1, D2 | 1N4148 | D_SOD-323_HandSoldering | 2 | |
9 | U3 | ATTINY841-SSU | ATTINY841-SSU | SOIC-14_3.9x8.7mm_Pitch1.27mm | 1 |
10 | U2 | L78M05CDT | L7805 | TO-252-3_TabPin2 | 1 |
11 | U1 | L78M12CDT | L7812 | TO-252-3_TabPin2 | 1 |
12 | U4 | MCP2003B-E/SN | MCP2003B | SOIC-8_3.9x4.9mm_Pitch1.27mm | 1 |
13 | TP1 | 5VLOGIC | Pin_Header_Straight_1x01_Pitch2.54mm | 1 | |
14 | TP2 | 12VLIN | Pin_Header_Straight_1x01_Pitch2.54mm | 1 | |
15 | CON1 | ISP | Pin_Header_Straight_2x03_Pitch2.54mm | 1 | |
16 | BZ1 | CPT-9019S-SM | Buzzer | Buzzer_CUI_CPT-9019S-SMT | 1 |
17 | J1 | Interface | Pin_Header_Angled_1x03_Pitch2.54mm | 1 | |
18 | J2 | 1-84981-0 | FFC | FFC_10 | 1 |
If you want to create your own cable, the connector is a 4.2mm pitch (0.165"), AMP VAL-U-LOK by TE Coonectivity. This is available from DigiKey with part number A112430-ND or A112983-ND. I'm not sure on the difference between them to be honest. Don't forget the crimp pins - A30642-ND. Otherwise, the existing cable can be unsoldered from the board. Red is positive (24VDC), white is negative, blue is LIN.
Don't forget to set fuses on your board for the appropriate oscillator.
Prototyping - ATMega 328p - 8Mhz internal avrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m
PCB - ATTiny 841 - 8Mhz internal avrdude -c usbtiny -p t841 -U lfuse:w:0xe2:m
16mA on the Atmega 328P, 3mA on the MCP2003B.