Open source Arduino based Ian FIFO controller project

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Ian FIFO II has two I2S inputs, while the S/PDIF board has four. There will be five music sources in total, so, it would be ideal to have an integrated controller to work with the FIFO KIT.

There are no difficulties to develop a dedicated controller for the Ian FIFO KIT. However, I would prefer an open source, Arduino based project, because more people in this community can take part in. With the source code, everybody can make a controller on their own. We can set up a team to help nourish and improve this project. More fun will be had soon.

This is my plan:

1. Introduce a very small operating system, IanRTOS (It might be one of the smallest RTOS for Arduino). It has scheduled tasks management in non-block mode and can make a programmer’s life so much easier with state machine style C++ programming.
2. Write a C++ class for DFR0009 LCD KeyPad shield.
3. Write a C++ class for Ian FIFO and S/PDIF board.
4. Build a main sketch of the Ian FIFO controller with above classes
5. Run Ian FIFO KIT with this controller
6. Introduce possible IR remote control
7. Possible TFT Touch screen
8. Possible Bluetooth controller
9. Possible wifi based mobile controller
10. And much more!

The FIFO controller will look like this. Please see the following pictures for details. We only need an ARDUINO board and a LCD KEYPAD shield for now.

By following this project, you can build this Arduino controller by yourself, and then customize it and improve it.

Arduino UNO Rev3 – Arduino Store USA

DFRobot LCD Keypad Shield for Arduino - RobotShop



IanFIFOcontroller by Ian, on Flickr


ARDUINO_UNO by Ian, on Flickr


DFR0009LCDKEYPADshield by Ian, on Flickr


IanRTOS by Ian, on Flickr

Ian
 
Last edited:
Hi Ian. Have you looked at dimdim's TFT shield for the es9018 (TFT HiFiDuino Code | Dimdim's Blog )? They are visible from far away if they are large enough! Helpful with the remote... :D

Hi palmito,

Thank you for the link. Pretty nice project. I bought a similar TFT/Touch shield weeks ago, but the color and brightness are not as good as standard LCD shield. I'm still looking for some really nice TFT/Touch screens for improvement down the road.

Please let me know if you have any recommendation.

Dimitris can also integrate my code and FIFO controller into his project. FIFO controller will be an open source project. All Arduino code will be published very soon.

Regards,
Ian
 
Hi Ian,

What are the goals ?

Switching from several I2S streaming sources like a Preamp could do in analog domain ?
A tool to benchmark streamers with I2S output ? But what is the interest if the signal is reclocked and Fifoted after ?

Sorry I don't understand where it goes and the concept?
 
Hi Ian,

What are the goals ?

Switching from several I2S streaming sources like a Preamp could do in analog domain ?
A tool to benchmark streamers with I2S output ? But what is the interest if the signal is reclocked and Fifoted after ?

Sorry I don't understand where it goes and the concept?

It will be a integrated control panel :)

Ian
 
Hi palmito,

Thank you for the link. Pretty nice project. I bought a similar TFT/Touch shield weeks ago, but the color and brightness are not as good as standard LCD shield. I'm still looking for some really nice TFT/Touch screens for improvement down the road.

Please let me know if you have any recommendation.

That is unfortunately very true for most inexpensive TFTs available to hobbyists. The best TFT that I own (picture quality wise) is this one from Adafruit, but I have trouble recommending it since it becomes pretty expensive pretty fast if you include shipping costs. But the colors are very vivid and the viewing angles are excellent.

A while back I purchased a low cost IPS panel from Ebay, one that promised very good viewing angles, but I haven't gotten around to testing it.

Dimitris can also integrate my code and FIFO controller into his project. FIFO controller will be an open source project. All Arduino code will be published very soon.

Regards,
Ian

I would be more than happy to integrate your code into my project. I have only respect for your truly SOTA solution to jitter. In fact, the only reason I hadn't purchased one for my B3 was the lack of support for DSD.
 
That is unfortunately very true for most inexpensive TFTs available to hobbyists. The best TFT that I own (picture quality wise) is this one from Adafruit, but I have trouble recommending it since it becomes pretty expensive pretty fast if you include shipping costs. But the colors are very vivid and the viewing angles are excellent.

A while back I purchased a low cost IPS panel from Ebay, one that promised very good viewing angles, but I haven't gotten around to testing it.



I would be more than happy to integrate your code into my project. I have only respect for your truly SOTA solution to jitter. In fact, the only reason I hadn't purchased one for my B3 was the lack of support for DSD.

Hi Dimdim,

Thank you so much. I’m glad that you are interested in integrating a FIFO controller into your project. I like your projects, very good jobs.

I’m very happy with standard TFT glass so far, such as 4.3” TFT/Touch panel. We used a lot of in our STM32 projects. Unfortunately it’s very hard to find them as Arduino shield. The only one I can source is this guy:
4D Systems | 4DLCD-FT843
The price seems not that bad, but still a bit higher for a DIYer. I don’t know if I could recommended it to you though UTFT doesn’t support. Just hope I had time to give it a try. But it seems I need to focus on my multi-channel I2S/DSD FIFO project, which you might be interested in.

My plan will be like this,

First build software architecture with IanRTOS, which is just a scheduler for now. But it can make my life much more easier with state machine style C++ programming.

Then, I will write a C++ class for DRF0009 LCD/KeyPad, which might be the simplest and most inexpensive way to implement a FIFO control panel. You can ignore/skip this step if you prefer a TFT/touch screen.

Finally, I will write a C++ class to control both FIFO and SPDIF board (will need 7 pins of Arduino) to make FIFO control panel a first run. With this part of source code, you can implement this FIFO control panel in your approach. It will tell you every details to run a FIFO KIT. Source code would be the best language to express a project :).

I’m looking forward to your good news.

Have a good weekend
Ian
 
First step: Confirm IanRTOS code is working for your Arduion board

I think many of us are familiar with Arduino. To start building the architecture of FIFO control panel code, we need to confirm IanRTOS is running for your Arduino board first.

Please download IanRTOS.zip I attached at the end this post. Copy IanRTOS folder into your PC or Mac. You just need:

1. Run IanRTOS.ino from IanRTOS folder by Arduino IDE.

2. If LED on your Arduion board toggles every 1 second (please see the video), that means IanRTOS is working for you.

(Already tested on Arduino-UNO, MEGA 2560 and DUE)

If you are done, then we are ready for the next step.

For more details, please visit my GitHub:

https://github.com/iancanada/IanArduinoRTOS


Video is also available at flickr: IanRTOSrunning






Ian
 

Attachments

  • IanRTOS.zip
    3.5 KB · Views: 124
Last edited:
Member
Joined 2007
Paid Member
Intgration of an USB module control

Ian,

any possibility to intgrate control for an USB input module like the one from JLSound in your software? I mean at least an input switch position for the second I2s input or the the hidden I2s input on the SPDIF board.

Regards

Ernst
 
Ian,

any possibility to intgrate control for an USB input module like the one from JLSound in your software? I mean at least an input switch position for the second I2s input or the the hidden I2s input on the SPDIF board.

Regards

Ernst

Hi Ernst,

Both of them (the two I2S and the hiden I2S on SPDIF) will be under control form this Arduino control panel:)

Good weekend
Ian
 
Second step: Make DFRobot LCD Keypad Shield working with your Arduion board

Please download DFRobotLcdKeyShield.zip I attached at the end this post. Copy “DFR0009Demo” folder into your PC or Mac. We just need:

1. Stack DFRobot LCD Keypad Shield on top of Arduino board (UNO or MEGA2560)

2. Run DFR0009Demo.ino from “DFR0009Demo” folder by Arduino IDE.

3. Press buttons on the shield. If name of each pressed button can be shown on the LCD screen, we are ready to go to the next stage: Ian FIFO control panel.

DFRobot DFR0009 LCD keypad shield can be sourced at:
DFRobot LCD Keypad Shield for Arduino - RobotShop

For more details, please visit my GitHub:
https://github.com/iancanada/Arduino-Library-DFRobot-LCD-keypad-shield


IanFIFOcontroller by Ian, on Flickr

Ian
 

Attachments

  • DFRobotLcdKeyShield.zip
    6.4 KB · Views: 128
Last edited:
Member
Joined 2007
Paid Member
Ian, I am absolutely not familiar with the Arduino. Have got an Uno and the proposed display. Tried run your programs in the Arduono IDE. It always stopped during compilation. Do I have to deeply read into Arduiono literature? Didn't hope so.

Any idea?

Regards

Ernst
 
Hey Ernst,

you don't really 'run' Arduino sketches in the IDE, you edit them in the IDE and then run them on the Arduino.

You can 'compile' within the IDE by clicking the 'check-mark' button (called "Verify") and send to the Arduino via the 'arrow' button ("Upload") right next to it in the upper left corner of the editor window.

Does the sketch compile (verify) without errors?
If not, what errors does the IDE report?

Cheers,
Sebastian.
 

Attachments

  • Screen Shot 2015-09-25 at 22.42.24.png
    Screen Shot 2015-09-25 at 22.42.24.png
    43.1 KB · Views: 403
Member
Joined 2007
Paid Member
Hey Ernst,

you don't really 'run' Arduino sketches in the IDE, you edit them in the IDE and then run them on the Arduino.

You can 'compile' within the IDE by clicking the 'check-mark' button (called "Verify") and send to the Arduino via the 'arrow' button ("Upload") right next to it in the upper left corner of the editor window.

Does the sketch compile (verify) without errors?
If not, what errors does the IDE report?

Cheers,
Sebastian.

Hi Sebastian, what I did was as follows : I clicked on Ians program let's say and then the code appeared in the IDE window. Then I tried to verify and load up. Verifying failed.
I'm checking the error codes and come back later. Thanks for help [emoji3] Cheers Ernst
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.