Jump to content

Helios and an Arduino


Recommended Posts

Hello, everyone.

I'm have a question about getting Helios to talk to an Arduino via EOS. In Helios, I add a serial interface and select the COM port that the Arduino is on. Helios says it's scanning the port, and I see the Rx light on the board blinking. When it's done, nothing shows up in Helios. What am I missing?

I only respond to that little mechanical voice that says "Terrain! Terrain! Pull Up! Pull Up!"

 

Who can say what is impossible, for the dream of yesterday is the hope of today and the reality of tomorrow.

-Robert Goddard

 

"A hybrid. A car for enthusiasts of armpit hair and brown rice." -Jeremy Clarkson

 

"I swear by my pretty floral bonet, I will end you." -Mal from Firefly

Link to comment
Share on other sites

I figured I would need dedicated code on the Arduino. Is there an example somewhere that I can try? I'm not a very accomplished coder, so a guide would be useful.

I only respond to that little mechanical voice that says "Terrain! Terrain! Pull Up! Pull Up!"

 

Who can say what is impossible, for the dream of yesterday is the hope of today and the reality of tomorrow.

-Robert Goddard

 

"A hybrid. A car for enthusiasts of armpit hair and brown rice." -Jeremy Clarkson

 

"I swear by my pretty floral bonet, I will end you." -Mal from Firefly

Link to comment
Share on other sites

Well, it's good to hear that I was right on time. :)

I only respond to that little mechanical voice that says "Terrain! Terrain! Pull Up! Pull Up!"

 

Who can say what is impossible, for the dream of yesterday is the hope of today and the reality of tomorrow.

-Robert Goddard

 

"A hybrid. A car for enthusiasts of armpit hair and brown rice." -Jeremy Clarkson

 

"I swear by my pretty floral bonet, I will end you." -Mal from Firefly

Link to comment
Share on other sites

I've been creating a library of code to make it easier to do that. Any day now on releasing it. I finally have my prototype panel boards and I'm debugging the last few things this weekend.

 

Sounds great Gadroc, looking forward to it.

Link to comment
Share on other sites

Will that be a library I can use directly in the Arduino IDE with a simple include-statement? Because that would be awesome! It would make it very simple to make standardized code for Arduinos that could be configured by setup variables to acommodate every setup out there. But given the fact that an A-10C has lots of dial gauges, there will be a fair amount of stepper motors (and shields to drive them) required.

| i9 12900K |  64GB DDR5-6000 | STRIX RTX 4090 OC | LG 38GN950 38" |

| Hanns-G HT225HPB | TIR 5 & Varjo Aero | Virpil Throttle & Stick | TM TPRs |

You don't stop playing because you grow old, you grow old because you stop playing.

Link to comment
Share on other sites

Yes it is a library to be used inside the arduino IDE. I specifically have done that so it's easy to reconfigure a sketch to make a board specific to a purpose. The sketch itself for my panel board (see below) is only 223 lines including whites space and comments. It would have been easier at time to go bare metal and through out the arduino libraries, but that would have made it harder for others to extend.

 

The library has the following so far:

  1. Handles the EOS Protocol (drives the UART directly for speed so replaces "Serial")
  2. Fast Digital Pin wrapper (digitalWrite is SLOW so replace it for things in driving UART, Steppers and RS-485)
  3. Wrapper to treat random set of pins on the ardiuno as a bank of digital input pins.
  4. Wrapper for treating an I2C connected MCP23017 as a bank of 16 digital input pins.
  5. Wrapper for treating an I2C connected MCP23018 as a bank of LED output pins.
  6. Wrapper for treating PWM arduino pin as LED outputs with brightness control
  7. Wrapper for treating digital arduino pin as LED output with brightness control
  8. Wrapper for treating arduino analog pin as analog input
  9. Stepper driver module which handles acceleration and slow down of a stepper motor (I have it running at up to 10Khz step rate)

 

On the deck to:

  1. Wrapper for MCP23017 that does a 8x8 64 input matrix
  2. Wrapper to do servos

 

The arduino leonardo boards are excellent Bus Interface controller. You just need to add a RS-485 driver and optionally 3 LEDs (rx/tx/error). It can do full speed UART to RS-485 bus and do a USB Serial port to the computer. I have written a sketch for it and updated Helios to be able to act as both a Bus Master or use the Bus Interface. This offloads polling to the micro-controller which is much better at tight timings. In addition the PC now only has to process packets that actually contain data it needs to act on.

 

I have designed two circuit boards which are stand alone EOS boards not requiring an arduino:

  • LCD Board - this was the board used in my CMSP. It drives a HD44780 compatible LCD. Has 21 digital inputs, drives up to 14 dimmable (as one channel) back light LEDs and has one analog input.
  • Panel Board - 4 analog inputs, 16 digital inputs, 16 led outputs (not dimmable), 4 100ma digital outputs, and up to 14 dimmable (as one channel) back light LEDs.

 

I will be putting all of the libraries, sketches and PCBs under an open source license. I know I've said it's coming several times, but this is a lot of work. Light is at the end of the tunnel.

Link to comment
Share on other sites

Gadroc, I saw you mention the Leonardo board. Could this solution be implemented on other boards like the Mega or Due?

I only respond to that little mechanical voice that says "Terrain! Terrain! Pull Up! Pull Up!"

 

Who can say what is impossible, for the dream of yesterday is the hope of today and the reality of tomorrow.

-Robert Goddard

 

"A hybrid. A car for enthusiasts of armpit hair and brown rice." -Jeremy Clarkson

 

"I swear by my pretty floral bonet, I will end you." -Mal from Firefly

Link to comment
Share on other sites

The library works for any AVR arduino board if you want direct board to PC communications. A bus interface board talks to the computer and manages communication with many other EOS boards. This allows you to hook up several boards with one USB port.

 

Due may or may not work with the libraries as it is an entirely different animal. I do not have one nor have I tested it. I highly doubt it will work with the library as the EosBus object does low level UART control. I do that because the default Arudino serial libraries are not good when you're trying to control a TX/RX pin on a half duplex chip.

 

The mega will work as a bus interface board as it has multiple UARTs, but again because of low level access the EosBus library is not compatible with the out of box Serial library. You would have to write the interface sketch from scratch. Anyways the Mega is way overkill for a bus interface as it has many pins that would be wasted. A leonardo is half or less of the price ($20 with headers $19 without).

Link to comment
Share on other sites

So the Arduino will manage communications between the computer and the EOS boards?

I only respond to that little mechanical voice that says "Terrain! Terrain! Pull Up! Pull Up!"

 

Who can say what is impossible, for the dream of yesterday is the hope of today and the reality of tomorrow.

-Robert Goddard

 

"A hybrid. A car for enthusiasts of armpit hair and brown rice." -Jeremy Clarkson

 

"I swear by my pretty floral bonet, I will end you." -Mal from Firefly

Link to comment
Share on other sites

The library works for any AVR arduino board if you want direct board to PC communications. A bus interface board talks to the computer and manages communication with many other EOS boards. This allows you to hook up several boards with one USB port.

 

Due may or may not work with the libraries as it is an entirely different animal. I do not have one nor have I tested it. I highly doubt it will work with the library as the EosBus object does low level UART control. I do that because the default Arudino serial libraries are not good when you're trying to control a TX/RX pin on a half duplex chip.

 

The mega will work as a bus interface board as it has multiple UARTs, but again because of low level access the EosBus library is not compatible with the out of box Serial library. You would have to write the interface sketch from scratch. Anyways the Mega is way overkill for a bus interface as it has many pins that would be wasted. A leonardo is half or less of the price ($20 with headers $19 without).

 

I'm not really up to speed on the finer points between Arduino versions. I have an Arduino Uno, and I'm wondering if that can fit in to this?

[sIGPIC][/sIGPIC]

There's no place like 127.0.0.1

Link to comment
Share on other sites

  • 2 weeks later...

I just tried out the new EOS libraries with an arduino Uno and it works great. Moving very cautiously it took be about an hour to get it setup and talking to the A-10. I hacked together firmware from your LEDBoard just as a POC. Hopefully ill have time tomorrow to gain a better understanding of the current library. If i get that done ill post a really simple poc tutorial with sample firmware so others can give it a try.

If i get bored Ill check out what the level of effort will be for a Due as i have one of those laying around as well.

Link to comment
Share on other sites

So i followed your tutorial, and i had no sucsess with getting helios to see my board... (i have a Mega2560 board) im sure the problem is on my end but i cant figure it out, Thanks guys!

 

It was mentioned earlier in the forum (ill update my tutorial) that anything other than an UNO is untested. MEGAS are expected NOT to work due to the extra UARTS and such.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...