Coder Social home page Coder Social logo

balloonduino's People

Contributors

ascended121 avatar zacharyburnett avatar

Stargazers

 avatar  avatar  avatar

Watchers

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

balloonduino's Issues

Write better method naming

Make sure names the user can see are self-explanatory and don't need documentation to understand. Long names are fine if it gets the point across.

Multiple Definition Compiling Error

When compiling, many errors appear with the same general format:

(.text+0x0): multiple definition of `<handle>'

This indicates multiple library instantiation or something. The error at the end reads:

Multiple libraries were found for "SD.h"

Full error from Arduino IDE below:

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `IMULogFile'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

c:/program files/windowsapps/arduinollc.arduinoide_1.8.10.0_x86__mdqgnx93n4wtt/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `PWRLogFile'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `ENVLogFile'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `ssc_enable'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `ads_enable'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `bme_enable'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `mcp_enable'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `bno_enable'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `rtc_enable'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `xbee_enable'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `PWR_STAT_APID'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `ENV_STAT_APID'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `IMU_STAT_APID'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `HK_STAT_APID'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':

(.text+0x0): multiple definition of `CMD_APID'

C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

Multiple libraries were found for "SD.h"
 Used: B:\Workspaces\Arduino\libraries\SD
 Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.10.0_x86__mdqgnx93n4wtt\libraries\SD

TCA9535 IO expander

We will need the TCA9535 IO Expander by Texas Instruments for pin interrupts, to expand available pins for a larger number of sensors.

This code will need to be written in AVR instead of Arduino, because the individual sensors of Balloonduino will use unused pins invisible to the Arduino language.

Add descriptive commenting

Aim for a comment each time hardware changes, explaining what changed and how it fits into the grand scheme of things.

Add SD card logging

Currently, the logging function only prints to the serial monitor. Write code so that the logging function also writes to the SD card.

Make sensor libraries more open to user

By hiding the sensor libraries behind a class, the user is stuck with what it provides them. What if they want to put the device into sleep mode? What if they want quaternions instead of Euler angles? We can't write wrapper functions for all those things - that compounds the heck out of the code size issue. The user should have direct access to the libraries if they want it.

The "if they want it" part is tricky, and I'm not sure what the best way to go about that in particular would be yet. I'm beginning to think C-style straight functions in a Balloonduino namespace will be a better solution than an OOP object.

Write #ifdef templating

Currently Balloonduino.h grabs all sensor libraries. Add #ifdef statements to selectively import and initialize sensors based on the presence or value of definitions like "DISABLE_BME280" if the user wants to disable certain sensors.

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.