Code Monkey home page Code Monkey logo

e-vent's People

Contributors

abukhalaf avatar amadoantonini avatar braraki avatar teddyort avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

e-vent's Issues

Loop Frequency

We need to speed up loop frequencies to at least 100Hz.

  • Be smarter about not doing UI stuff so often
  • Make slow things more efficient if possible
  • Wait for timers when in the last loop before a trigger, to more accurately slice loop times

motor control

hi i am facing issue related to motor control after homing motor start moving in one direction and it'speed is more the expected speed

Look at "sanity check" break in setPosition function

There's currently a "sanity check" in the setPosition function. It's not clear that this is needed, or that it couldn't be triggered by noise. Furthermore, it's not clear that the way it's handled (break) is the proper fault response.

We should look into robustifying this by clearly defining the error condition we need to detect, and ensuring the response is appropriate (perhaps alarm?)

Refactor Display

After receiving feedback from clinicians, we have settled on a new display format that will allow us to incorporate more information in a more compact layout.

See below for images showing the new functionality. The key feedback we received includes:

  • Show the status/alarm on the top (A) and the icons / setting change on the bottom (C)
  • The icons for Pip/Plat/Peep using waveforms were understood and preferred to arrows
  • the 1:x should be shown for IE ratio, and also included in the I:E (decided to compress it into a single glyph for space)
  • I:E ratio should be allowed to go as low as 1:0.4
  • The time-triggered vs patient-triggered icons were understood, and should be placed above the pressures (showin below in top-right corner)
  • AC knob should be labeled "Ptr"
  • Alarm sound icon should only show when an alarm is sounding (B), otherwise, it should be blank (A)
  • When an alarm is occurring but muted, the sound icon should indicate this, and also count down seconds until muting will stop (C).

A: Normal Running

image

B: Alarming

image

C: Change Settings

image

Trapezoidal Velocity Profiles

Account for constant acceleration by choosing max velocities that give the correct average velocity given the trapezoidal velocity profile we execute.

bag coefficient documentation

If I understand correctly, there are 3 coefficients that determine the particular profile for different ambu bags but I could use a better explanations for each number so I can make things work with my ambu bag. These coefficients are in constants.h

// Bag Calibration for AMBU Adult bag
const struct {float a, b, c;} COEFFS{1.29083271e-03, 4.72985182e-01, -7.35403067e+01};

Check for homing errors

Look for issues hitting/leaving limit switch and alarm. Consider

  • Too high current
  • Too many encoder counts
  • Too much time

Display.cpp wirteBPM method

void Display::writeBPM(const int& bpm) {
const int bpm_c = constrain(bpm, 0, 99);
char buff[12];
sprintf(buff, "%2s=%2s ", getLabel(BPM).c_str(), toString(VOLUME, bpm_c).c_str());
write(elements_[BPM].row, elements_[BPM].col, buff);
}

here, the sprintf line is wrong, it should be:

sprintf(buff, "%2s=%2s ", getLabel(BPM).c_str(), toString(BPM, bpm_c).c_str());

Testing and Verification

We should include some level of software and hardware verification where we test for example:

  • software unit testing
  • all required hardware is plugged in
  • perhaps one cycle of actuation with expected values measured to close the loop
  • any failing tests triggers a visible alarm, only all passing tests triggers a visible "green light"

Cleanup code for clarity

Try to shorten event.ino .
Reorganize and refactor.
Try to move standalone functions to other files.
Add documentation / comments as needed. // for example like this.

Command over Serial

Useful for debugging and automated testing.

  • Check that it reliably works
  • Doesn't break when weird stuff gets sent in

OFF button broken

On 1.0-003, pressing and holding the OFF button does not trigger a turn off.
This could be hardware or software.

Reorganize Display

  • Remove static text to make more space
  • Not hide critical info during alarms
  • Add icons for snooze/ac control

Clear all alarms

Feature request to clear all alarms after holding the alarm mute button for 2 seconds

Sudden stop

Machine suddenly stops for no apparent reason.
Observed on 1.0-003 while connected via USB to Ubuntu laptop.

Display pot values during adjustment

Currently, there's no way to see what the value is for the pots. We could use manually printed labels near the pot knobs, but perhaps using the LED display to show updated pot values whenever they are adjusted would be a more robust way to ensure the user knows what value is being set.

Position control of motor

Currently, the motor position is controlled through a handcrafted trapezoidal velocity curve to ensure accelerations are within limit.

However, this may not be the most appropriate, especially considering we may need to set the position at a higher frequency.

  • Perhaps a PI or PID controller over acceleration or velocity would be more advisable
  • Alternatively, perhaps a position control servo or motor controller with position control and max_velocity control would be more robust

We should do some testing / research

Plateau Pressure

Do a better job measuring plateau instead of simply taking the last pressure value before exhale.

LCD screen bug

After a few minutes of run time my LCD screen starts to display garbage. Is anybody else experiencing this? The bug occurs after homing is complete. I enter the EX_STATE and then since I am just emulating pressure feedback manually on my desk several alarms occur. After a few minutes the screen displays nonsense.
95481502_286422802518683_7599466072130977792_n

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.