ahalekelly / dettlaff Goto Github PK
View Code? Open in Web Editor NEWDettlaff is a flexible electronics controller for brushless flywheel Nerf blasters
License: MIT License
Dettlaff is a flexible electronics controller for brushless flywheel Nerf blasters
License: MIT License
https://www.rcgroups.com/forums/showatt.php?attachmentid=8524039&d=1450424877
Raymond
rpm-control branch
This happens when you use bidirectional dshot and PID and wifi at the same time:
assert failed: rmt_isr_handle_rx_done rmt_rx.c:505 (offset > rx_chan->mem_off)
Backtrace: 0x40083715:0x3ffbf4ec |<-CORRUPTED
ELF file SHA256: ca134528bf1404a7
Rebooting...
We've got a placeholder value for spin down logic in the flywheel proto; we should figure out how we want to use that and update the documentation with units and/or an explanation when we do.
Adrian
There's corrupted rpm data with bidirectional dshot, so we should store the timestamp of the last time each rpm value was updated, and only allow rpm value to update if the rate of change from the last update to the current value is less than a threshold
People will want / have been asking for all sorts of ux options like rotational switches, quick setting buttons, screens, dpads like the PewPew, etc
```Also we need an option to have a button that will jump to a specific fire mode instead of cycling through modes - should this be a parameter in each FireModeEntry, or a repeated value in ControlParams? Each button will need a pin and SwitchOrientation``
Originally posted by @ahalekelly in #2 (comment)
It would be pretty neat if the current firing mode could update on the web app; users could then have a couple picked out to switch between and do so with a tap.
We might need a special "updatable" proto message
BLE only natively supports packets as large as 512 bytes; NanoPB is calculating that the Blaster proto has a max size that exceeds 600 bytes (and I need to add support for independent RPMS for each motor, so it will get larger).
I need to look at the ESP32 library to see if it has any expected way to handle packets that are too large for one method; @ahalekelly can you check how your webBLE handles that?
If it's missing from either or they have incompatible mechanisms, we might need to implement our own version of that
Adrian
If the braking torque of the motor is not enough, you could apply reverse voltage instead of braking to stop it faster, or you could brake normally and reverse the motor if the pusher overruns and the cycle control switch becomes released
pusherReversePolarityDuration_ms
time has passed, if cycle control switch is still pressed, remove reverse polarity and brake pusherpusherReverseOnOverrun
config flag is set and cycle control switch is no longer pressed, maintain reverse polarity until switch becomes pressed again, then brakeI don't think we need a separate pusher control mode from the current PUSHER_MOTOR_CLOSEDLOOP mode, I think if you set duration to 0 and and the config flag to false then it would operate the same as the current mode?
It might be possible to automatically determine these variables through trial and error? Start with 0ms reverse polarity duration, and every time you see a pusher overrun, increase the duration by 1ms, up to some cap?
Turn off ESC and sleep Dettlaff when not in use
Reduce cpu speed from 240MHz?
Notify user when battery voltage is low and then turn off ESC and sleep Dettlaff
Make white LED default to off
Need to check whether pressing the trigger soon after startup prevents ESCs from arming
Also someone requested a switch to make the flywheels idle all the time
Ideally, we would have some way for a tournament organizer/staff to lock the fps (and rate of fire?) while still allowing the user to make and adjust firing modes.
This needs to
This might be simple enough with a code entered though the web app
This would probably be handled better through an event-organizer-specific web app; We'll see how far that gets
PWM based on battery voltage to maintain a constant output voltage
https://github.com/Dlloydev/QuickPID
https://github.com/Dlloydev/sTune
Raymond
rpm-control branch
Daedher
Should this be supported in Dettlaff, or just do it in the ESC?
The PCB has an I2C connector for a small OLED screen or other accessories (see the Narfduino Console), but I'm not currently planning on writing the UI for a screen. Lots of people seem to want it, this would be a good project for someone to take on as it's reasonably self-contained.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.