avockley Posted December 17, 2013 Report Share Posted December 17, 2013 First, a bit of background on the project. It's an analog synth that will have a control surface similar to the one on the Moog Little Phatty. It will be a few encoders with a bunch of buttons to select the function each will perform. These are on the master core, with that core communicating with a slave core on each monophonic synth board. Each of these slave cores with forward the commands on to a series of digital pots and switch to control the synth. The issue I'm having right now is how the master core will send data to the slave cores. I'm trying to decide whether to use MIDI or IIC (or maybe mbNet?). The issue with MIDI is that the digipots are 8 or 10 bits each, so the 7 bit per packet restriction could cause some problems. I think IIC would be a good option, but I'm not really sure how receiving on the slaves would work.. Sending the data from the master core should be easy enough, with the built-in MIOS_IIC_ByteSend function, but I don't believe the built-in functions will work for receiving on the slaves. MBNet seems like it was designed for exactly this purpose, but as far as I can tell, it doesn't exist for MIOS8, and I'd rather not use a bunch of LPC1769 cores since they're overkill and quite a bit more expensive. Any thoughts, or should I just stick to trying to make MIDI work? 1 Quote Link to comment Share on other sites More sharing options...
Highcooley Posted December 18, 2013 Report Share Posted December 18, 2013 (edited) An interesting project you are working on. I myself am developing a Moog style synth as well at the moment and am thinking about similar questions. Cool to meet another person interested in analog synth development driven by a midibox core. It would be cool to exchange some design thoughts (i.e. about the continuous wave shaper). As I am still in an early stage in the development process (currently tinkering with different VCO and VCF design variants), I haven't actually looked much into MIOS so far. However, I came to the conclusion that using a single LPC1769 for both, user interface and synth would be best for me. As I estimated and also have been told, the module should easily have enough power to read all the inputs, write displays and other outputs, do some math, communicate over midi and drive the different synth modules. As long as you don't do any real time audio or CV signal processing by the core, there is anyway not much going on over the IOs most of the time. My design won't be the most compact one, as I will do all the IOs with standard midibox modules, but it will be modular, which helps to try out different designs and interchange modules but keeping the digital part. Internally, the synth will work with a higher number of bits. When controlled over midi, I cut away the LSB. I know, all this doesn't help to solve your specific problem, but maybe it might be of interest anyway. What I do know however is, that past midibox projects like the MB_SID use MBNET for coupling multiple PICs: http://www.midibox.org/dokuwiki/doku.php?id=mios_pic18f4685&s[]=mbnet What was your reason to go for multiple PICs instead of a single LPC1769 anyway? Edited December 18, 2013 by Highcooley Quote Link to comment Share on other sites More sharing options...
TK. Posted December 18, 2013 Report Share Posted December 18, 2013 I would prefer a single MBHP_CORE_LPC17 (or an upcoming MBHP_CORE_STM32F4) as well. It will save costs, and it will be much easier to program and debug. Due to the higher speed, you don't need the slave cores. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
avockley Posted December 18, 2013 Author Report Share Posted December 18, 2013 (edited) A single LPC17 core was my initial thought, but I wasn't sure how to control so many devices with it. The problem is that each synth board will end up with something like 15 IIC-controlled digipots/switches/dacs and there just aren't that many IIC ports on the core. I suppose the best option would be to bit bang IIC on other pins on the core. And I just discovered IIC bus hubs (TI PCA9518). I think I may have my solution. Edited December 18, 2013 by avockley Quote Link to comment Share on other sites More sharing options...
Highcooley Posted December 18, 2013 Report Share Posted December 18, 2013 Correct, I2C is a 10bit bus. All in all you could theoretically control up to 1136 nodes over one single bus. However, I would recommend controlling as few nodes over one bus as possible, as I2C is not very robust. 15 nodes shouldn't be a problem at all. Alternatively there is SPI, which is a bit more complex. Check out the different midibox IO modules to learn more about how these buses work. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.