- 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
corygrant / dingopdm_fw Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
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
Maintains a count variable to increment or decrement when the input goes high or low
These messages always take a 2nd cycle to get a response:
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 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.
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?)
Currently locked to 500k
Once installed, changing the boot switch is not very convenient when firmware updates are required.
OpenBLT enables firmware updates over USB or CAN
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
Change the config check bytes from sizeof(config) to CRC
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
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)
Allow PWM to be set on an output.
This can be used:
Settings:
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.