aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelene ToyKeeper2023-10-30 04:03:35 -0600
committerSelene ToyKeeper2023-10-30 04:03:35 -0600
commit490d80aeac2a04db0d8bc9d0613b0a91fa8f373c (patch)
treeafccfcbb2222dbbaf29981e6513cbb211266c6b8
parentfixed sp10-pro build error (attiny DFP v2 changed some definitions) (diff)
downloadanduril-490d80aeac2a04db0d8bc9d0613b0a91fa8f373c.tar.gz
anduril-490d80aeac2a04db0d8bc9d0613b0a91fa8f373c.tar.bz2
anduril-490d80aeac2a04db0d8bc9d0613b0a91fa8f373c.zip
converted mateminco-mt35-mini to new API
(but it's not tested; it's the only circuit with its particular design, and I don't have compatible hardware)
-rw-r--r--hwdef-Mateminco_MT35-Mini.h48
-rw-r--r--hwdef-mateminco-mt35-mini.h93
-rw-r--r--spaghetti-monster/anduril/cfg-mateminco-mt35-mini.h50
3 files changed, 119 insertions, 72 deletions
diff --git a/hwdef-Mateminco_MT35-Mini.h b/hwdef-Mateminco_MT35-Mini.h
deleted file mode 100644
index 995a514..0000000
--- a/hwdef-Mateminco_MT35-Mini.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Mateminco MT35-Mini / Astrolux FT03
-// Copyright (C) 2022-2023 (FIXME)
-// SPDX-License-Identifier: GPL-3.0-or-later
-#pragma once
-
-/*
- * ----
- * Reset -|1 8|- VCC
- * eswitch -|2 7|- Aux LED
- * 1x7135 -|3 6|- NC
- * GND -|4 5|- FET
- * ----
- */
-
-#define PWM_CHANNELS 2
-
-#ifndef SWITCH_PIN
-#define SWITCH_PIN PB3 // pin 2
-#define SWITCH_PCINT PCINT3 // pin 2 pin change interrupt
-#endif
-
-#ifndef PWM1_PIN
-#define PWM1_PIN PB4 // pin 3, 1x7135 PWM
-#define PWM1_LVL OCR1B // OCR1B is the output compare register for PB0
-#endif
-
-#ifndef PWM2_PIN
-#define PWM2_PIN PB0 // pin 5, FET PWM
-#define PWM2_LVL OCR0A // OCR0A is the output compare register for PB4
-#endif
-
-#define ADC_PRSCL 0x07 // clk/128
-
-// average drop across diode on this hardware
-#ifndef VOLTAGE_FUDGE_FACTOR
-#define VOLTAGE_FUDGE_FACTOR 7 // add 0.35V
-#endif
-
-// lighted button
-#ifndef AUXLED_PIN
-#define AUXLED_PIN PB2 // pin 7
-#endif
-
-#define FAST 0xA3 // fast PWM both channels
-#define PHASE 0xA1 // phase-correct PWM both channels
-
-#define LAYOUT_DEFINED
-
diff --git a/hwdef-mateminco-mt35-mini.h b/hwdef-mateminco-mt35-mini.h
new file mode 100644
index 0000000..015c813
--- /dev/null
+++ b/hwdef-mateminco-mt35-mini.h
@@ -0,0 +1,93 @@
+// Mateminco MT35-Mini / Astrolux FT03
+// Copyright (C) 2022-2023 (original author TBD), Selene ToyKeeper
+// SPDX-License-Identifier: GPL-3.0-or-later
+#pragma once
+
+/*
+ * ----
+ * Reset -|1 8|- VCC
+ * eswitch -|2 7|- Aux LED
+ * 1x7135 -|3 6|- NC
+ * GND -|4 5|- FET
+ * ----
+ */
+
+#define ATTINY 85
+#include <avr/io.h>
+
+#define HWDEF_C_FILE hwdef-emisar-d4.c
+
+// channel modes
+// * 0. FET+7135 stacked
+#define NUM_CHANNEL_MODES 1
+enum CHANNEL_MODES {
+ CM_MAIN = 0,
+};
+
+#define DEFAULT_CHANNEL_MODE CM_MAIN
+
+// right-most bit first, modes are in fedcba9876543210 order
+#define CHANNEL_MODES_ENABLED 0b00000001
+
+
+#define PWM_CHANNELS 2 // old, remove this
+
+#define PWM_BITS 8 // attiny85 only supports up to 8 bits
+#define PWM_GET PWM_GET8
+#define PWM_DATATYPE uint8_t
+#define PWM_DATATYPE2 uint16_t
+#define PWM1_DATATYPE uint8_t // little FET ramp
+#define PWM2_DATATYPE uint8_t // big FET ramp
+
+#define PWM_TOP_INIT 255 // highest value used in top half of ramp
+
+// 1x7135 channel
+#define CH1_PIN PB4 // pin 3, 1x7135 PWM
+#define CH1_PWM OCR1B // OCR1B is the output compare register for PB4
+
+// DD FET channel
+#define CH2_PIN PB0 // pin 5, FET PWM
+#define CH2_PWM OCR0A // OCR0A is the output compare register for PB0
+
+// lighted button
+#define AUXLED_PIN PB2 // pin 7
+
+// e-switch
+#ifndef SWITCH_PIN
+#define SWITCH_PIN PB3 // pin 2
+#define SWITCH_PCINT PCINT3 // pin 2 pin change interrupt
+#endif
+
+#define ADC_PRSCL 0x07 // clk/128
+
+// average drop across diode on this hardware
+#ifndef VOLTAGE_FUDGE_FACTOR
+#define VOLTAGE_FUDGE_FACTOR 7 // add 0.35V
+#endif
+
+#define FAST 0xA3 // fast PWM both channels
+#define PHASE 0xA1 // phase-correct PWM both channels
+
+
+inline void hwdef_setup() {
+ // configure PWM channels
+ DDRB = (1 << CH1_PIN)
+ | (1 << CH2_PIN);
+
+ // configure PWM channels
+ TCCR0B = 0x01; // pre-scaler for timer (1 => 1, 2 => 8, 3 => 64...)
+ TCCR0A = PHASE;
+
+ // Second PWM counter is ... weird
+ TCCR1 = _BV (CS10);
+ GTCCR = _BV (COM1B1) | _BV (PWM1B);
+ OCR1C = PWM_TOP_INIT; // Set ceiling value to maximum
+
+ // configure e-switch
+ PORTB = (1 << SWITCH_PIN); // e-switch is the only input
+ PCMSK = (1 << SWITCH_PIN); // pin change interrupt uses this pin
+}
+
+
+#define LAYOUT_DEFINED
+
diff --git a/spaghetti-monster/anduril/cfg-mateminco-mt35-mini.h b/spaghetti-monster/anduril/cfg-mateminco-mt35-mini.h
index fef1af6..1ca5008 100644
--- a/spaghetti-monster/anduril/cfg-mateminco-mt35-mini.h
+++ b/spaghetti-monster/anduril/cfg-mateminco-mt35-mini.h
@@ -1,44 +1,42 @@
// Mateminco MT35 Mini / Astrolux FT03
-// Copyright (C) 2022-2023 (FIXME)
+// Copyright (C) 2022-2023 (original author TBD), Selene ToyKeeper
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#define MODEL_NUMBER "0531"
-#include "hwdef-Mateminco_MT35-Mini.h"
+#include "hwdef-mateminco-mt35-mini.h"
// ATTINY: 85
-// this light should be fine running a bit hotter than most
-#undef DEFAULT_THERM_CEIL
-#define DEFAULT_THERM_CEIL 55
-
// the button lights up
#define USE_INDICATOR_LED
// the button is visible while main LEDs are on
#define USE_INDICATOR_LED_WHILE_RAMPING
-// enable blinking aux LEDs
-#define TICK_DURING_STANDBY
-#define STANDBY_TICK_SPEED 3 // every 0.128 s
+#define RAMP_SIZE 150
-#define RAMP_LENGTH 150
// level_calc.py fifth 2 150 7135 1 1 120 FET 1 10 2000
#define PWM1_LEVELS 1,2,2,3,4,5,6,7,8,9,11,13,14,16,18,21,23,26,28,31,35,38,41,45,49,53,58,63,67,73,78,84,90,96,102,109,116,124,131,139,147,156,165,174,184,194,204,215,226,237,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
#define PWM2_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,20,21,22,24,25,27,28,30,31,33,35,36,38,40,42,43,45,47,49,51,53,55,57,59,62,64,66,68,71,73,75,78,80,83,86,88,91,94,96,99,102,105,108,111,114,117,120,124,127,130,134,137,140,144,148,151,155,159,162,166,170,174,178,182,186,190,195,199,203,208,212,217,221,226,231,235,240,245,250,255
-#define DEFAULT_LEVEL 46
-#define MAX_1x7135 52
-#define HALFSPEED_LEVEL 20
-#define QUARTERSPEED_LEVEL 10
-#define RAMP_SMOOTH_FLOOR 1
-#define RAMP_SMOOTH_CEIL 112
-#define RAMP_DISCRETE_FLOOR 10
-#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL
-#define RAMP_DISCRETE_STEPS 7
+#define DEFAULT_LEVEL 46
+#define MAX_1x7135 52
+#define HALFSPEED_LEVEL 20
+#define QUARTERSPEED_LEVEL 10
+
+#define RAMP_SMOOTH_FLOOR 1
+#define RAMP_SMOOTH_CEIL 112
+#define RAMP_DISCRETE_FLOOR 10
+#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL
+#define RAMP_DISCRETE_STEPS 7
// safe limit ~33% power
-#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR
-#define SIMPLE_UI_CEIL RAMP_LENGTH
-#define SIMPLE_UI_STEPS 5
+#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR
+#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL
+#define SIMPLE_UI_STEPS 5
+
+// this light should be fine running a bit hotter than most
+#undef DEFAULT_THERM_CEIL
+#define DEFAULT_THERM_CEIL 55
// stop panicking at ~40% power
#define THERM_FASTER_LEVEL 120
@@ -54,10 +52,14 @@
// Allow 3C in Simple UI for switching between smooth and stepped ramping
#define USE_SIMPLE_UI_RAMPING_TOGGLE
+// enable extra features
+#define USE_SMOOTH_STEPS
+
// too big, turn off extra features
-//#undef USE_SOS_MODE
+#undef USE_TACTICAL_MODE
+#undef USE_SOS_MODE
//#undef USE_RAMP_AFTER_MOON_CONFIG
//#undef USE_RAMP_SPEED_CONFIG
//#undef USE_VOLTAGE_CORRECTION
//#undef USE_2C_STYLE_CONFIG
-#undef USE_TACTICAL_MODE
+
If you find this content useful please consider a small donation via bitcoin: bitcoin:1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2?amount=0.001&message=Donation Scraping git contents via cgit is very resource intensive. The continued hosting of these git repositories is entirely financed by your bitcoin contributions. For donations of a least 1 mBTC you include your IP address in the message of your bitcoin donation. This will remove this message in the future for requests from your IP, which will significantly reduce token usage. In any case, any contributions to bitcoin address 1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2 are very welcome. Thanks in advance for you contribution to a self-sustaining ecosystem.