GithubHelp home page GithubHelp logo

dingopdm_fw's Introduction

DingoPDM_FW

  • I've gone through many iterations to test and learn the different systems/programming techniques. But, I am a hobbyist so this firmware is my best attempt

dingopdm_fw's People

Contributors

corygrant avatar

Stargazers

 avatar

Watchers

 avatar

dingopdm_fw's Issues

Store name strings on device

Having the names that the users enter be stored on the device removes the requirement of always having the config file.

FRAM has plenty of room to store the strings, but sending strings over CAN would require a lot of messages.

ISO-TP (ISO 15765-2) has the ability to send strings using multiple messages

Upload/download sometimes doesn't see a lot of responses

These messages always take a 2nd cycle to get a response:

  • Wiper
  • Wiper speed
  • Wiper delay
  • Starter disable

These will usually get a response on the 2nd try

Sometimes many other messages will never receive a response.
A power cycle fixes this issue

Reset time and inrush time scale

Reset time and inrush time are currently divided by 10 but communicated using 8 bytes.
That means the max time is only 2.5 seconds.

Divide by 100 to enable up to 25 seconds, fidelity is not required here.

Warning/error messages are sent too fast

If a warning or error keeps happening the message is constantly sent, this locks up the configurator.
Example: Connected with USB only, sends battery voltage warning message constantly

Need to detect the first instance and send periodically (maybe every few seconds?)

Create a turn signal/hazard module

With the current Flasher configuration turn signals + hazards don't work properly.
If the turn signal is on and the hazard input is turned on the left/right turn signals flash at different times.

This is due to having to create turn signal + hazard logic using the Virtual Inputs and Flashers.

Turn signals and hazards are a common need, it would be easier to add a module dedicated to turn signals + hazards.

This would also enable extra functionality, like one touch turn signals

Investigate using CANOpen instead of custom comms

Currently I'm using a custom payload format to achieve the same things that CANOpen does.
CANOpen has a lot more features and functionality.

Is there a lightweight CANOpen stack that would make it easier to implement these things?
Is it worth it?
Non-CANOpen devices would still need to be supported

Current CANOpen
Prefix letter to select message type Function code in the COB-ID
Cyclic messages for status PDOs
Settings messages to communicate device settings SDOs
Lots of code to encode/decode settings/status PDOs and SDOs

Open source CANOpen stacks:
CanOpenSTM32
canopen-stack

Commercial products:
MicroCANopen Plus
emotas CANopen Slave Expansion

Finish overtemp and error handling

Overtemp currently just sets the Error LED.
What should the behavior be above Max temp and above Critical temp?

What should happen when other errors are thrown? (non-temperature ones)

Add PWM to outputs

Allow PWM to be set on an output.
This can be used:

  • For soft start
  • As a constant frequency + duty cycle
  • As a constant frequency with variable duty cycle

Settings:

  • Base frequency (static, 50 to 200 Hz?)
  • Soft start duration (ms)
  • Duty cycle (constant or a variable)

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.