Git Product home page Git Product logo

bfg-research's Introduction

Hello there! ๐Ÿ‘‹

  • ๐Ÿ”ญ Iโ€™m currently doing research on Lithium batteries with the University of Windsor! I am also developing a fully custom control system for a motorcycle.
  • ๐ŸŒฑ Iโ€™m currently shifting my entire server from docker to kubernetes!
  • ๐Ÿ’ฌ Ask me about Electrical or Programming endeavors! I have tons of experience with Embedded in particular. My passion is Lithium Battery Technology, I am developing an open-source BMS with uWindsor!
  • ๐Ÿ“ซ How to reach me: e-mail, Discord or LinkedIn
  • โšก Fun fact: My cats are named Merry and Pippin! ๐Ÿˆ

My GitHub stats

Top Langs

bfg-research's People

Contributors

colefuerth avatar

Stargazers

 avatar

Watchers

 avatar

bfg-research's Issues

Rework I2C devices to use ports on Multiplexer

Current implementation of all I2C devices uses their raw addresses, they need to be reworked to use ports on the multiplexer.

The multiplexer will take TwoWire instances.

A map also needs to be created on which devices are on which ports.

Python not correctly sending and recieving serial packets

Packets appear to be sending correctly, but only blank responses have been recorded in python.

The arduino serial has been tested, and is confirmed to be working. JSON packets can be unpacked, evaluated, and repacked, then sent. The problem is in python

Pi Log messages from Arduino

The arduino has a series of messages for debugging and errors. The Pi, therefore, needs a system to differentiate between JSON packages, and debug messages/errors

Documentation Updates

So far, the only devices implemented and documented are the BFG devices, themselves. The remainder of the devices must be added to the documentation, with appropriate references.

Payload Unpacking and Logging

Each payload response needs to be timestamped and logged

  • Unpack payload into list
  • Title the list
  • Date stamp the list
  • Log the unpackaged payload in the appropriate CSV file

Portability Rework

arduino-cli libraries do not seem to work consistently across all machines.

My solution to this is, all libraries not native to the Arduino IDE, will be cloned from their source into the arduino/lib working directory.

The makefile build will still be exclusive to arduino-cli, but the libraries install command must only be git clones, for portability.

Implement Device Comms

Devices with completed implementation on ARDUINO:

  • LC709203F BFG
  • LTC2941 BFG
  • MAX17043 BFG
  • TCA9548A I2C Multiplexer
  • SHTC3 Temp and Humidity Sensor
  • MAX31855 Thermocouple Amplifier
  • INA260 Current/Voltage/Power sensor

device initialization begin()

All devices should have serial comms initialized in an begin() function, NOT in the constructor. This is just bad practice, and prevents effective debugging

Log Scheduling

The refresh time of readings must be determined, and implemented to be variable.

  • Periodic calls to arduino for data packets
  • Need to differentiate between monitoring devices, and BFGs
  • Need to keep track of file size and available disk space
  • Each packet sent should get a response before sending another one

max31855 serial interface

Unlike its peers, the MAX31855 Thermocouple Amplifier uses a Serial Peripheral Interface.

This poses the problem, do we integrate the serial over pi, or over arduino?

Wire() initialization problems

Multiple devices call Wire.begin(). This breaks preexising wire connections, but most of the libraries will accept an exising TwoWire instance.

It is probably best to create one TwoWire instance in setup(), and pass it to all I2C initializations.

Need package delimiters

When serial payloads come back to the PC quickly, sometimes they get mashed together.

A solution for this will be, newline characters will be used as delimiters on the stream between serial packets.

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.