Giter VIP home page Giter VIP logo

irduino's Introduction

Hey, I'm Mark

Hi, I'm Mark Silverwood. I'm an engineer working mainly on the creation of web applications, optimisation, and simulation models. I enjoy crafting applications that solve real problems whilst still providing delightful user experiences.

Favourite things I code with

TypeScript Lit Nodejs Python Astro d3js React Tailwind WebGL

๐Ÿ“ซ How to reach me:

irduino's People

Contributors

alexmontoanelli avatar madal1en avatar slicedsilver avatar

Stargazers

 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

irduino's Issues

Quick Info Lights

Quick info for Lights.
Add options to the quick info list like: "current fuel level (+show on leds)".
have the code to display the leds. (showTimedStringLights function).

Use in conjugation with Engine Warning temp lights. Have a requested waitLights and just before sending to the arduino then check for waitLights bool and if true then change the lights according using the waitLights bytes. Have a bool for allowing pass-though lights.

First-open Window & new version window

The first time that the application is run it should display a "welcome" ๐Ÿ‘‹ screen. The screen will give links to the documentation pages, links to the getting started page, and warn that the TM1638 library must be installed if using those displays. This screen will stop displaying when there is a valid current.opt file in the directory. The current.opt will store the current selected configuration, the last version of the application used. If the last version used is different to the current version then show the "What's New!!" window. ๐Ÿ†•

iRacing Forum Topic

Create the iRacing forum topic. This will be the main announcement of the project. Be sure to grab the first few replies for further use. ๐Ÿš— ๐Ÿš—

Output Variables

For use with generic arduino sketches.
have a enum of possible vars to output and a property to fetch them, just like the sdk wrapper.

Engine Temp Warning

High Engine Temperature Warning on DX SLI Display Unit
๐Ÿ”ฅ ๐Ÿš’
Warning string: ET HIgH

Flash text on screen and set lights red.
Need to choose which screen to show on.
Flash for 5 seconds then leave lights on and only display text again in 30 seconds time.
Add option to only show on certain LEDs

Custom selection of variable led lights

Allow the user to specify that, for example, the lights on unit 1 show the TPS. Maybe a good way to program this would to have the option on the screen page so that each screen can have a custom variable. Move FFB lights to this screen.

Create an Arduino INO Template File

Create an Ardunio ino template file. In the header specify that this won't compile and describe the string token that shows a place where generated code is placed when generating the Arduino sketch in the application. ๐Ÿ“„

Embed Fonts as Resources

embed fonts such as the Metro fonts into the application so that the visual experience is similar on all machines. ๐Ÿ”ค

GH Page Background

:octocat: GitHub Pages Background. Place a watermark type image in the top right corner and add an overall tactile tile background.

Arduino Buttons

Use buttons wired directly to the Arduino. Uses standard button functions.

Ask for whether to use pullup resistor. Can choose custom pin option in arduino generation. then code will look like buttons[8] = 0; //Replace 0 with your custom code

e.g. buttons[8] = gpio.DigitalRead(1,14);

EDIT: Set pins in configuration page.

Car Alongside Check Light

Detect when a car is alongside the drivers car.
Can be used to light a specific led on the dash (choose which one or two), light an arduino light (pin).
Can be outputted to generic arduino

Support for Rotary switches

As a sub option of arduino/expander options. Allow setup of rotary switches (NOT encoders yet). Asks for a function such as set screen, etc.. and asks for number of positions and asks for the pins of each position. Checks when saving if conflict with other pins is detected.

Main window background

Background of main window can be as is at the start and then fade to white within 3 seconds of opening. Once the start button is pressed then it can fade back in. And when stopped then fade out.

Fergotech Components

Add support for fergotech components. Brake Vib, SimWind, Simlights. Include a donate message and button on options page.

iRacing Telemetry Data

Hello, I found your code for obtaining iRacing telemetry data on Github. I want to DIY a dashboard and need to obtain iRacing telemetry data, but I donโ€™t have a parsing document for iRacing shared memory. Could you please give me? Looking forward to your help

Conflict checker

๐Ÿ’ฅ Check for conflicting options such as specifying an Arduino pin for both input and output. Does check before saving configuration and warns the user.

Fuel Calculation Options

An advanced option.
Allow user to select number of laps to calculate the average with. Also allow the user to de/select whether to use the weighted calculation.

Arduino LEDS support

๐Ÿ”… ๐Ÿ”†
Use LEDs directly wired to Arduino as an output for various things.

"Use inverted logic?" Option.
Status LED option. Include that in Output Variables list.
Ideas for possible outputs: Status, Brake Lock, Car Alongside, Engine Temp Warning, Shift Now, FFB Clipped

Brake Lock Lights

Integrate into Fergotech Brake Vibration component.
Can be used to display a pattern on the leds or arduino led or to generic arduino

Some Bugs

Fuel Resetting bug in oval cars. Use InPitLane and speed < 10 as additional checks for refueling.

Set a default value for warning time so that existing configs are updated correctly.

New Serial Data Format

Code a new serial data format that allows more than one different type of message to be sent. Split LEDS and Segments for TM Units messages. Each message should have its own arduino function for decoding. Need a queue system for sending serial messages that works with threading.

Proposed Serial Format

StartByte1 255
MessageID ANY Number
:
:
MessageData
:
:
Checksum includes messageID and Data
MessageLength length
EndByte 180

How to read it

Use current method of storing the serial buffer. When an incoming byte equals endbyte then using messageLength find the startByte. If found then read in the message (MessageID and MessageData) and do the checksum calculation. If the checksum is valid then pass the messageData to the correct function using the messageID for selecting the function via a switch statement.

7-segment Display Support

7๏ธโƒฃ Control a 7-segment display. Can display gear and other single digit variables.

Configuration page asks for pin for each segment part.

Should be a sub-option of arduino outputs and i/o expanders.

๐ŸŽ‹ Tree:
-- Arduino Outputs
|---Arduino Pins
| |--7 Segment

---I/O Expanders
|--MCP23016
|--General Outputs 1
|--7 segment

Type Keyboard Messages

Option to type keyboard messages. This will be a button function. Have some predefined options in the droplist and an option called "[[Custom Message]]" When this is selected then it opens a dialog window which describes how it all works and allows the user to fill in a message in a textbox. If ok clicked then add that to the items list and select it else selection to -1.

When loading page add current string to the dropdown list before binding.

edit: iRacing is adding this in the new build. May not be needed. Include more keys on the keyboard for the key press button function.

Generic Arduino Functions Support

Can output variables from the sdk to an arduino function. Converting, sending and decoding is handled by the application. User can use the variables generated in the arduino sketch to create custom things. Help button that creates a dialog window explaining how it works. Maybe ask for a text file of code to insert during arduino sketch generation. ///code starts here ///code ends here (in sketch).
Can set an resolution for each variable (how many bytes to use when encoding for serial message).

Have a enum of possible vars to output and a property to fetch them, just like the sdk wrapper.

Tooltips

Add tooltips ๐Ÿ’ฌ to the entire application. These tooltips should give a brief explanation of the control below the cursor. Try to keep concise. Detailed information will be included in the wiki.

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.