tag:blogger.com,1999:blog-25591932433346784102024-03-19T02:56:54.515+00:00DubworksElectronics, Synth, Sound effects, Microcontrollers, , Digital signal processing,AVR, PIC, PIC32,ARM, etcUnknownnoreply@blogger.comBlogger153125tag:blogger.com,1999:blog-2559193243334678410.post-88473935365746864792019-10-14T12:52:00.001+01:002019-10-14T16:06:45.894+01:00Breadboarding/testing dc inverter<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLr1-CJ654jqUQeYWkWKN7lzaXB3Zy8H6nOZSya7GIvUMrXZCj8Ysk8EKewYY5HtuIrtxfkbkqAwP-3CPHaE3suKpidZN-KE5h-xKVllMRUr34lCDoqTFIpaz0T1y2wrWlYN611r6MxCw/s1600/negVol.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="936" data-original-width="1248" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLr1-CJ654jqUQeYWkWKN7lzaXB3Zy8H6nOZSya7GIvUMrXZCj8Ysk8EKewYY5HtuIrtxfkbkqAwP-3CPHaE3suKpidZN-KE5h-xKVllMRUr34lCDoqTFIpaz0T1y2wrWlYN611r6MxCw/s320/negVol.jpg" width="320" /></a></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimpg2LJ2glT82TNoCwX7rYuUI7y6nrOuYsF3CQ8PgUk5p-jq96vMb_8GXkA5FbK81IoMSyspI288qhmPgRPyDyvOcZmEshBwZ0EYeBvR8uWF2Zv7bT7J76uVVMvJGZmpCt_ZYm4QF0jNPK/s1600/pic_14_2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimpg2LJ2glT82TNoCwX7rYuUI7y6nrOuYsF3CQ8PgUk5p-jq96vMb_8GXkA5FbK81IoMSyspI288qhmPgRPyDyvOcZmEshBwZ0EYeBvR8uWF2Zv7bT7J76uVVMvJGZmpCt_ZYm4QF0jNPK/s320/pic_14_2.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Nice smooth startup</td></tr>
</tbody></table>
<br />
<br />
Breadboarding/testing dc inverter with 5532 op amp and a simple Frequency Generator with arduino ( with passive LP and HP before op-amp) .<br />
<br />
And with this last stage, i think i got a nice buffered line-level output for the Effects chain/dubsiren design.<br />
It boiled down to the choice of either TI LMC7660, the Microchip TC1044 or this one. As it is audio and op-amps i think the compromise was the 1054, which can deliver up to 100mA, tuned slightly faster to reduce too much noise passing to the audio ( i will regulate both rails anyway from a higher voltage dc source like a 12 Volts average wall adapter).<br />
Saves me messing about with AC centre tapped transformers.<br />
And definitely did not want to rely on capacitive coupling alone, as not safe enough . 100 ma should allow me up to two 5532's for stereo in and stereo out buffers.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEK0tEGJsv9t07Lg_bdDrPCET2UUCgMb_tpan8dsrHb8XXvnT-XoLH9wGpC6DX4nxin-LM__mzKjo69gnep1Mmi6gLBwOhrN6pZG6_ZGMljCsgbSOA9AZ__zSpgu2pg8s71Lw5HF5bhwG3/s1600/negativevoltage555.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="567" data-original-width="700" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEK0tEGJsv9t07Lg_bdDrPCET2UUCgMb_tpan8dsrHb8XXvnT-XoLH9wGpC6DX4nxin-LM__mzKjo69gnep1Mmi6gLBwOhrN6pZG6_ZGMljCsgbSOA9AZ__zSpgu2pg8s71Lw5HF5bhwG3/s320/negativevoltage555.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">555 example circuit</td></tr>
</tbody></table>
<br />
For much simpler needs , a 555 can be useful as dc inverter , but not necessarily with audio beyond some guitar pedals designs maybe. 50mA unregulated, maybe 20 mA regulated. And it is load susceptible...<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnF3tUw51-0qE5IXYB0coZ7HCCP2cJqwWZr30uImkweLUbiqm-XhmlDcHBfqKUQnKGmLE2OOptkmoYP2g11XYgwuQ5-ED9iBfAU1Agw1JqxO7v6ncCmdhAZrW4N_AHj5NsVZHW7QGTMoYJ/s1600/FilterOutPlot2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="232" data-original-width="325" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnF3tUw51-0qE5IXYB0coZ7HCCP2cJqwWZr30uImkweLUbiqm-XhmlDcHBfqKUQnKGmLE2OOptkmoYP2g11XYgwuQ5-ED9iBfAU1Agw1JqxO7v6ncCmdhAZrW4N_AHj5NsVZHW7QGTMoYJ/s320/FilterOutPlot2.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Filter used with arduino PWM-dac </span></td></tr>
</tbody></table>
low pass we can calculate : 470 ohms resistor and i used 220nF .1/ (2pi*R*C) = 1539.2160840608833246507133788444 Hz cut off freq<br />
<div>
Same for high pass :1K resistor and1uF capacitor 1/(2 pi *1000*0.000001) = 159.154943092<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitTdMaz4b0fht-TmgAhENhe79Dp7E9MAheM2c6uIRYe7b0zbIwYd55EqhQl0MRgS3gJG2udBgKlmMTM35PvEtuU1i6GhYz_jjdEGUeMK12abiwYicl9VMNsbSELxWMg9YdH4edboyIDawS/s1600/pic_14_5.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitTdMaz4b0fht-TmgAhENhe79Dp7E9MAheM2c6uIRYe7b0zbIwYd55EqhQl0MRgS3gJG2udBgKlmMTM35PvEtuU1i6GhYz_jjdEGUeMK12abiwYicl9VMNsbSELxWMg9YdH4edboyIDawS/s320/pic_14_5.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Arduino PWM out( @15625 Sampling) producing a 30 hz </span><br />
<span style="font-size: small; text-align: start;">out </span><span style="font-size: small; text-align: start;">through filter ... </span><span style="font-size: small;">mad distortion an phase issues</span></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9zEqFt6V-3EzNUA_Yjt8lYiaYxuq4Y_DP5epa9oOag_p2eWgjY9o0SXHVcE-bsoQmNUWQvEFWttHfvfC8Qt9StgFGJYFGs7_SDvOO-22K0hDlADUM9NON-6K6ZyojK4FrVG0CrIGgZTc-/s1600/pic_17_1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9zEqFt6V-3EzNUA_Yjt8lYiaYxuq4Y_DP5epa9oOag_p2eWgjY9o0SXHVcE-bsoQmNUWQvEFWttHfvfC8Qt9StgFGJYFGs7_SDvOO-22K0hDlADUM9NON-6K6ZyojK4FrVG0CrIGgZTc-/s320/pic_17_1.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption">"But you could low pass before the op-amp and couple it with HP<br />
after <span style="font-size: 12.8px;">the buffer to improve the situation" . Yes i could... </span><br />
<span style="font-size: 12.8px;">but do i want to in this case ? Maybe in another.</span></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuMNwUTy3zGGs7teMw1lR73lBlx8dwE8afeQxvpdnBfA-Eyfz0843lqqKT59hHki49_dUw1Uj-BGTw0xRSrdOWTK_vsWOujyQrVuwrq5QmLevXEtPqp9gEYFljorpsT6-qRGCCdcaHX0y4/s1600/pic_17_7.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuMNwUTy3zGGs7teMw1lR73lBlx8dwE8afeQxvpdnBfA-Eyfz0843lqqKT59hHki49_dUw1Uj-BGTw0xRSrdOWTK_vsWOujyQrVuwrq5QmLevXEtPqp9gEYFljorpsT6-qRGCCdcaHX0y4/s320/pic_17_7.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">And here is why : It peaks at 1.7v !! A well worth compromise in a design<br />
with <span style="font-size: 12.8px;">an atmega 328 or similar</span></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9Mj0T5J_KZfzWwAU8vwYo6eww-gbVGOwgcRWGDDIKja2yl-RibziHrokdTjryCA9aAsxpjsfWalG9hiRs6SIxKj3SW0IMz7p3FyBrKObiaZny7B0yHi304zfoM8dw7ObsqC4igeybyRtK/s1600/PlotPhase.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="201" data-original-width="479" height="134" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9Mj0T5J_KZfzWwAU8vwYo6eww-gbVGOwgcRWGDDIKja2yl-RibziHrokdTjryCA9aAsxpjsfWalG9hiRs6SIxKj3SW0IMz7p3FyBrKObiaZny7B0yHi304zfoM8dw7ObsqC4igeybyRtK/s320/PlotPhase.png" width="320" /></a></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzNTb_naRB35NOTrj1d5a5S9exTio9ZhNYZbuuzEX0nV_JXPNvOjoeCGQCnTslq1iSR06KpyCYw22CWwnmo6Fk4arSdorn3B_1blZrAjgIfnyoW_ZoGLsywVPBcY0DQKI2YIJiHJ5MtGJ6/s1600/Low-pass-filter-as-wave-shaping-circuit.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="367" data-original-width="483" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzNTb_naRB35NOTrj1d5a5S9exTio9ZhNYZbuuzEX0nV_JXPNvOjoeCGQCnTslq1iSR06KpyCYw22CWwnmo6Fk4arSdorn3B_1blZrAjgIfnyoW_ZoGLsywVPBcY0DQKI2YIJiHJ5MtGJ6/s320/Low-pass-filter-as-wave-shaping-circuit.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pic from<br />
<a href="https://www.electronicshub.org/passive-low-pass-rc-filters/">https://www.electronicshub.org/passive-low-pass-rc-filters/</a></td></tr>
</tbody></table>
<div>
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-21479285301523200762019-08-23T08:02:00.001+01:002019-08-27T06:49:02.373+01:00UpdateNew boards arrived for next dub siren/delay and EQ/Reverb combos<br />
Also got me a new T4 @600mhz . Paul, @ pjrc done it again...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzNjLSlDjnvVN8I8qu-ItWD6E1c-BfnyVz5nYdDTrO2gbHpC-fdsv5sx_YsFSg25enhFlsv2e-4_V3ljZoVgB-EQ6SFj-wQs3nM4_2P1pF01YSwwEqLgMh8krRl3jy_TsWfrnuTX1Dw-Q3/s1600/IMG_20190818_161817.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzNjLSlDjnvVN8I8qu-ItWD6E1c-BfnyVz5nYdDTrO2gbHpC-fdsv5sx_YsFSg25enhFlsv2e-4_V3ljZoVgB-EQ6SFj-wQs3nM4_2P1pF01YSwwEqLgMh8krRl3jy_TsWfrnuTX1Dw-Q3/s400/IMG_20190818_161817.jpg" width="400" /></a></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-44141990642158697462019-07-21T03:44:00.001+01:002019-07-21T03:55:32.269+01:00Quick Project to find coordinates and launch google maps<div class="separator" style="clear: both; text-align: center;">
You can find the app on my astronomy blog <a href="https://astrodubworks.blogspot.com/2019/07/check-your-coordinates.html">HERE</a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV_w_9lhEdgT94aT1xhLNml8mvxm-Hiaxl_jmhNVF58n_gAqvrdgEJ6ejBeaZmPjlNYmX77yDkgqbIqzsy5dlsySLtQfFqe_8xC_9-mSFCu_Jsij_Tch67zIzeke8FWwvE7SxBNF8faqXM/s1600/Code.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="637" data-original-width="1009" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV_w_9lhEdgT94aT1xhLNml8mvxm-Hiaxl_jmhNVF58n_gAqvrdgEJ6ejBeaZmPjlNYmX77yDkgqbIqzsy5dlsySLtQfFqe_8xC_9-mSFCu_Jsij_Tch67zIzeke8FWwvE7SxBNF8faqXM/s400/Code.png" width="400" /></a></div>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-2559193243334678410.post-7828521116525279502019-07-06T09:02:00.001+01:002019-08-27T06:50:39.014+01:00Testing du'B Siren<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsygaiKy7iL5Rw32mwKaavsgaZGnNA0vcyA9cPcXRzcchNwFtTAscKnkKDmRes-OyNe7noc4ec_QN31FVtqv3y8oBD7UdmKO5TqyiqlR7gVZ7awrUWaHPhrNzJ_Y986P9WeNspRDuK3JPc/s1600/test+websiren.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="304" data-original-width="604" height="161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsygaiKy7iL5Rw32mwKaavsgaZGnNA0vcyA9cPcXRzcchNwFtTAscKnkKDmRes-OyNe7noc4ec_QN31FVtqv3y8oBD7UdmKO5TqyiqlR7gVZ7awrUWaHPhrNzJ_Y986P9WeNspRDuK3JPc/s320/test+websiren.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
Clicking one of the buttons in the the applet seems to work for most browsers<br />
Use the app surface like a pad ( mouse or touchscreen)<br />
<br />
<iframe height="300" src="https://editor.p5js.org/iyahdub/embed/Oy6fCoLyp" width="600"></iframe>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-2559193243334678410.post-66813310798066081982018-07-22T18:31:00.001+01:002018-07-22T18:31:45.784+01:00Arduino Due Dubsiren Board Revision<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsVReaHfgCFzZxwKAt9fujYIk89mwEGy4CQbLdYJTrF5Jl_bIBlZwQuW07OWrQ1-JIqYxS9WqZBtmBsF7j4-932Nn-aA7ABZQnxWJMVHtUsXoazaDfPQBWeulrhIvuKS4F5s9wX8uDJGRm/s1600/DueSiren2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="398" data-original-width="1047" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsVReaHfgCFzZxwKAt9fujYIk89mwEGy4CQbLdYJTrF5Jl_bIBlZwQuW07OWrQ1-JIqYxS9WqZBtmBsF7j4-932Nn-aA7ABZQnxWJMVHtUsXoazaDfPQBWeulrhIvuKS4F5s9wX8uDJGRm/s640/DueSiren2.png" width="640" /></a></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-88636491502645861452018-07-20T12:21:00.000+01:002019-08-27T06:49:28.712+01:00LCD PCD8544After bitbanging a quick library, and some head scratching, i seemed to have solved all my problems for now...<br />
<br />
<br />
<br />
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/Jpk3957z0F4" width="560"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-52473347999176228362018-07-10T12:36:00.000+01:002018-07-10T12:36:18.374+01:00The Pot-Board<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG1dehpAWkunwHCqcHjs4mfmeruT6dteSkrLA4m4Oph0DCpqru8lQKueuWOWICWaR08iBz2CyJ8GSQsMeF6mIJct87ruVGZE1f_lO6xY7M3RCgxDpRn_j6bE_xjLzuT2dZyxQf99Yl-lyl/s1600/PotboardStage1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="780" data-original-width="1040" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG1dehpAWkunwHCqcHjs4mfmeruT6dteSkrLA4m4Oph0DCpqru8lQKueuWOWICWaR08iBz2CyJ8GSQsMeF6mIJct87ruVGZE1f_lO6xY7M3RCgxDpRn_j6bE_xjLzuT2dZyxQf99Yl-lyl/s320/PotboardStage1.jpg" width="320" /></a></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-83091656498418607882018-06-16T15:53:00.000+01:002018-06-16T15:53:06.147+01:00Update on the Dub Thing<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/MDzAjXqPkFo" width="560"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-12507714794582842372017-09-03T18:21:00.001+01:002017-09-03T18:23:32.181+01:00Tests on some Feedback-Delay<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/xf7mMCmmaZc" width="459"></iframe>
<br />
<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/FHLm0_S1RGw" width="560"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-76459208512573408222015-06-11T13:06:00.002+01:002015-06-11T13:06:50.126+01:00UECIDE: The Universal Embedded Computing IDE<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBJT3dFgmQ2_ma2PfrewqlcH7mzvmNLqXZMZTpCQ7p3sXMa1WQIqiC-Hj0UBW0NTznPbh9KBoZb4QbG41WloefyWBKu7AMyixFYkCedc7614-o9qPl_O43uX-PbzN6MZRnLV6JI_ko5wkT/s1600/UECIDE.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="267" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBJT3dFgmQ2_ma2PfrewqlcH7mzvmNLqXZMZTpCQ7p3sXMa1WQIqiC-Hj0UBW0NTznPbh9KBoZb4QbG41WloefyWBKu7AMyixFYkCedc7614-o9qPl_O43uX-PbzN6MZRnLV6JI_ko5wkT/s400/UECIDE.png" width="400" /></a></div>
<br />
<br />
If you haven't had the chance to check the <a href="http://uecide.org/">UECIDE</a> (The Universal Embedded Computing IDE), you should give it a thought. Arduino, AVR, chipKIT, Pinguino and many more are compatible out of the box,<br />
chipKIT boards seem to have fully deprecated the plib.h in the included compiler tools, so beware if you are using it !<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-21063026393779944832015-06-01T22:36:00.003+01:002015-12-02T14:09:57.049+00:00Dub Siren For The Keyboard PLayer ( Code )<span style="color: white;">For the last post DUB SIREN FOR THE LIVE KEYBOARD PLAYER, all you need is an <b><a href="https://www.sparkfun.com/products/9595">Arduino Midi Shield</a> ( ( </b>you should find a local distributor for all these) , an <b><a href="http://www.arduino.cc/en/Main/ArduinoBoardUno">Arduino Uno</a></b>, R3 preferably, and MIDI library ( I am using the Arduino_MIDI_Library_v4.2) along with this code. NO SOLDERING DONE !</span><br />
<br />
<pre>#include <<span style="color: #cc6600;">MIDI</span>.h>
<span style="color: #7e7e7e;">//</span>
<span style="color: #006699;">MIDI_CREATE_DEFAULT_INSTANCE</span>();
#define PBMAX 8191
<span style="color: #7e7e7e;">// defines for MIDI Shield components only</span>
#define POT 0
#define POT2 1
#define BUTTON1 2
#define BUTTON2 3
#define BUTTON3 4
#define LED 7
#define LED2 6
<span style="color: #7e7e7e;">//</span>
#define SINSAMPLES 256
<span style="color: #cc6600;">int</span> sineData [SINSAMPLES];
<span style="color: #cc6600;">bool</span> ledOn = <span style="color: #cc6600;">false</span>;
<span style="color: #cc6600;">bool</span> ledOn2 = <span style="color: #cc6600;">false</span>;
<span style="color: #cc6600;">unsigned</span> <span style="color: #cc6600;">int</span> inc = 0;
uint16_t noteIn = 0;
uint16_t lastnote = 0;
<span style="color: #cc6600;">char</span> off = 0;
<span style="color: #cc6600;">char</span> lastplay = 0;
<span style="color: #7e7e7e;">//char drv = 0; // digital read variable</span>
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>setup</b></span>()
{
sine();
<span style="color: #cc6600;">pinMode</span>(LED, <span style="color: #006699;">OUTPUT</span>);
<span style="color: #cc6600;">pinMode</span>(LED2, <span style="color: #006699;">OUTPUT</span>);
<span style="color: #cc6600;">pinMode</span>(POT, <span style="color: #006699;">INPUT</span>);
<span style="color: #cc6600;">pinMode</span>(POT2, <span style="color: #006699;">INPUT</span>);
<span style="color: #cc6600;">pinMode</span>(BUTTON1, <span style="color: #006699;">INPUT</span>);
<span style="color: #7e7e7e;">// defines for MIDI Shield components only</span>
<span style="color: #cc6600;">digitalWrite</span>(LED2, <span style="color: #006699;">HIGH</span>);
<span style="color: #cc6600;">digitalWrite</span>(LED, <span style="color: #006699;">HIGH</span>);
<span style="color: #cc6600;">digitalWrite</span>(BUTTON1, <span style="color: #006699;">HIGH</span>);
<span style="color: #7e7e7e;">//</span>
<span style="color: #cc6600;">MIDI</span>.<span style="color: #cc6600;">begin</span>(); <span style="color: #7e7e7e;">// Launch MIDI</span>
}
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>loop</b></span>()
{ uint16_t average = noteIn;
uint16_t anIn = <span style="color: #cc6600;">analogRead</span>(POT);
<span style="color: #cc6600;">char</span> play = !(<span style="color: #cc6600;">digitalRead</span>(BUTTON1));
<span style="color: #cc6600;">if</span> (lastplay != play) {
<span style="color: #cc6600;">if</span> (play == 0)
off = 1;
}
lastplay = play;
noteIn = <span style="color: #cc6600;">analogRead</span>(POT2);
average = (average + noteIn) >> 1;
uint8_t note = average >> 3;
<span style="color: #cc6600;">if</span> (play == 1) {
<span style="color: #cc6600;">if</span> (lastnote != note) {
<span style="color: #cc6600;">MIDI</span>.<span style="color: #cc6600;">sendPitchBend</span>(0, 1);<span style="color: #7e7e7e;">//reset pitch bend</span>
<span style="color: #cc6600;">delay</span>(10);
<span style="color: #cc6600;">MIDI</span>.<span style="color: #cc6600;">sendNoteOff</span>(lastnote, 0, 1); <span style="color: #7e7e7e;">// Stop the note</span>
<span style="color: #cc6600;">delay</span>(10);
<span style="color: #cc6600;">MIDI</span>.<span style="color: #cc6600;">sendNoteOn</span>(note, 127, 1); <span style="color: #7e7e7e;">// Send a Note (pitch , velo 127 on channel 1)</span>
lastnote = note;
}
<span style="color: #cc6600;">else</span> {
lastnote = note;
}
<span style="color: #cc6600;">int</span> smpl = sineData[inc];
<span style="color: #cc6600;">int</span> var = (smpl - PBMAX); <span style="color: #7e7e7e;">// this calculation can be avoided</span>
<span style="color: #cc6600;">MIDI</span>.<span style="color: #cc6600;">sendPitchBend</span>(var, 1);
<span style="color: #cc6600;">delay</span>(10);
ledOn = !ledOn;
<span style="color: #cc6600;">digitalWrite</span>(LED, ledOn);
inc++;
inc += (anIn >> 4);
<span style="color: #cc6600;">if</span> (inc >= SINSAMPLES) {
inc -= SINSAMPLES;
ledOn2 = !ledOn2;
<span style="color: #cc6600;">digitalWrite</span>(LED2, ledOn2);
}
}
<span style="color: #cc6600;">if</span> (play == 0) {
<span style="color: #cc6600;">if</span> (off == 1) {
<span style="color: #cc6600;">MIDI</span>.<span style="color: #cc6600;">sendPitchBend</span>(0, 1);<span style="color: #7e7e7e;">//reset pitch bend</span>
<span style="color: #cc6600;">delay</span>(10);
<span style="color: #cc6600;">MIDI</span>.<span style="color: #cc6600;">sendNoteOff</span>(lastnote, 0, 1); <span style="color: #7e7e7e;">// Stop the note</span>
inc = 0;
lastnote = 0;
<span style="color: #cc6600;">digitalWrite</span>(LED2, <span style="color: #006699;">HIGH</span>);
<span style="color: #cc6600;">digitalWrite</span>(LED, <span style="color: #006699;">HIGH</span>);
off = 0;
}
}
}
<span style="color: #cc6600;">void</span> sine () {
<span style="color: #cc6600;">int</span> i;
<span style="color: #cc6600;">int</span> b;
<span style="color: #cc6600;">for</span> (i = 0; i < SINSAMPLES; i++) {
b = PBMAX * <span style="color: #cc6600;">sin</span>((2 * <span style="color: #006699;">PI</span> / SINSAMPLES) * i);
b += PBMAX;
sineData [i] = b;
}
}
</pre>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-2559193243334678410.post-37375751217237655252015-05-31T16:56:00.002+01:002015-05-31T16:56:35.081+01:00Midi Dub Siren for the Live Keyboard PlayerAfter seeing my bredrin David Daddy-u Mountjoy use of effects live with <a href="http://dubheart.co.uk/">Dubheart</a> band, i thought of making this dubsiren for the Live keyboard player ( Turns any midi keyboard into a dubsiren, leds for siren on and for period of oscillation, note selector rotary knob and speed rk .<br />
Proof of concept only.<br />
<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube-nocookie.com/embed/QhNunyD0yeI?rel=0" width="420"></iframe></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-86265774213205230422015-05-31T15:29:00.001+01:002015-05-31T15:30:29.266+01:00YetAnotherPWM.c with the Pic32MX250F128B<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyUFXe3wmeCPGEigqiTB6B9rOOqoP0e9WR1fzjUD5DXVWXjAmHM04hZd9jTlZMWVqgl9qFuu_GL80zZJUPb23qq6H24ibEQ_SZfxP8WBG1sVXwr6nQ1n85r9N60-H9da0LWd3MDd0E2Hup/s1600/PPS-output1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyUFXe3wmeCPGEigqiTB6B9rOOqoP0e9WR1fzjUD5DXVWXjAmHM04hZd9jTlZMWVqgl9qFuu_GL80zZJUPb23qq6H24ibEQ_SZfxP8WBG1sVXwr6nQ1n85r9N60-H9da0LWd3MDd0E2Hup/s400/PPS-output1.png" width="315" /></a></div>
<br />
<span style="color: white;">During one of my tests, i was scratching my head for ages about why the PWM signal wasnt coming out on one of the remappable pins PPS. Went through examples, family datasheet, etc...</span><br />
<span style="color: white;"> Only to come to the conclusion that it would never work without disabling the JTAG ports in the configuration bits.</span><br />
<br />
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>anotherpwm.c</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #000000; background-color: #ffffff; font-family: Monospaced}
pre {color: #000000; background-color: #ffffff; font-family: Monospaced}
table {color: #000000; background-color: #e9e8e2; font-family: Monospaced}
.comment {color: #969696}
.line-number {background-color: #e9e8e2}
.preprocessor-system-include-literal {color: #ce7b00}
.keyword-directive {color: #0000e6}
.preprocessor-keyword-directive {color: #009b00}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">YetAnotherpwm.X\anotherpwm.c</td></tr></table>
<pre>
<span class="line-number"> 1</span> <span class="comment">/* </span>
<span class="line-number"> 2</span> <span class="comment"> * File: YetAnotherpwm.c</span>
<span class="line-number"> 3</span> <span class="comment"> * Author: Ras B.</span>
<span class="line-number"> 4</span> <span class="comment"> *</span>
<span class="line-number"> 5</span> <span class="comment"> * Created on 26 May 2015, 19:20</span>
<span class="line-number"> 6</span> <span class="comment"> */</span>
<span class="line-number"> 7</span>
<span class="line-number"> 8</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">include</span> <span class="preprocessor-system-include-literal"><plib.h></span>
<span class="line-number"> 9</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">include</span> <span class="preprocessor-system-include-literal"><p32xxxx.h></span>
<span class="line-number">10</span>
<span class="line-number">11</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">prag</span><span class="preprocessor-keyword-directive">ma</span> config JTAGEN = OFF <span class="comment">// // disable the JTAG port DDPCONbits.JTAGEN = 0;</span>
<span class="line-number">12</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">pragma</span> config FNOSC = FRCPLL
<span class="line-number">13</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">pragma</span> config FPLLIDIV = DIV_2
<span class="line-number">14</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">pragma</span> config FPLLMUL = MUL_20
<span class="line-number">15</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">pragma</span> config FPLLODIV = DIV_2
<span class="line-number">16</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">pragma</span> config FPBDIV = DIV_1
<span class="line-number">17</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">pragma</span> config POSCMOD = OFF
<span class="line-number">18</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">pragma</span> config FWDTEN = OFF
<span class="line-number">19</span> <span class="comment">//</span>
<span class="line-number">20</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">define</span> GetSystemClock() (40000000ul)
<span class="line-number">21</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">define</span> GetPeripheralClock() (GetSystemClock()/(1<<OSCCONbits.PBDIV))<span class="comment">// #define GetPeripheralClock() (GetSystemClock()</span><span class="comment">/(1<<OSCCONbits.PBDIV))</span>
<span class="line-number">22</span> <span class="preprocessor-keyword-directive">#</span><span class="preprocessor-keyword-directive">define</span> PWM_FREQ 33250
<span class="line-number">23</span>
<span class="line-number">24</span> <span class="keyword-directive">volatile</span> <span class="keyword-directive">unsigned</span> <span class="keyword-directive">int</span> incCount = 0; <span class="comment">/*</span>
<span class="line-number">25</span> <span class="comment"> * </span>
<span class="line-number">26</span> <span class="comment"> */</span>
<span class="line-number">27</span>
<span class="line-number">28</span> <span class="keyword-directive">void</span> initAudio(<span class="keyword-directive">void</span>) {
<span class="line-number">29</span> <span class="comment">// configures </span><span class="comment">peripherals for Audio playback </span>
<span class="line-number">30</span> <span class="comment">// Activate the PWM module</span>
<span class="line-number">31</span> <span class="comment">// OC1 in PWM mode, TMR2 based</span>
<span class="line-number">32</span> OpenOC1(OC_ON | OC_TIMER2_SRC | OC_PWM_FAULT_PIN_DISABLE, 0, 0);
<span class="line-number">33</span> <span class="comment">// timebase </span>
<span class="line-number">34</span> <span class="comment">// enable TMR2, prescale 1:1, internal clock, period </span>
<span class="line-number">35</span> OpenTimer2(T2_ON | T2_PS_1_1 | T2_SOURCE_INT, 0);
<span class="line-number">36</span> mT2SetIntPriority(4);
<span class="line-number">37</span> <span class="comment">// set TMR2 interrupt priority </span>
<span class="line-number">38</span> } <span class="comment">// initAudio</span>
<span class="line-number">39</span>
<span class="line-number">40</span> <span class="keyword-directive">void</span> startAudio(<span class="keyword-directive">int</span> bitrate) { <span class="comment">// begins the a</span><span class="comment">udio playback</span>
<span class="line-number">41</span> <span class="comment">// set the period for the given bitrate</span>
<span class="line-number">42</span> PR2 = GetPeripheralClock() / bitrate - 1; <span class="comment">//fpb</span>
<span class="line-number">43</span> <span class="comment">// enable the interrupt st</span><span class="comment">ate machine</span>
<span class="line-number">44</span> mT2ClearIntFlag();
<span class="line-number">45</span> <span class="comment">// clear interrupt flag </span>
<span class="line-number">46</span> mT2IntEnable(1);
<span class="line-number">47</span> <span class="comment">// enable TMR2 interrupt </span>
<span class="line-number">48</span> } <span class="comment">// startAudio</span>
<span class="line-number">49</span>
<span class="line-number">50</span> <span class="keyword-directive">v</span><span class="keyword-directive">oid</span> haltAudio(<span class="keyword-directive">void</span>) {
<span class="line-number">51</span> <span class="comment">// stops playback state machine</span>
<span class="line-number">52</span> mT2IntEnable(0);
<span class="line-number">53</span> } <span class="comment">// halt audio</span>
<span class="line-number">54</span>
<span class="line-number">55</span> main() {
<span class="line-number">56</span> SYSTEMConfig(GetPeripheralClock(), SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
<span class="line-number">57</span> INTEnableSystemMultiVectoredInt();
<span class="line-number">58</span> <span class="comment">//</span>
<span class="line-number">59</span> TRISBbits.TRISB7 = 0; <span class="comment">//Set port as output</span>
<span class="line-number">60</span> RPB7Rbits.RPB7R = 0x0005;
<span class="line-number">61</span> mPORTAClearBits(BIT_0); <span class="comment">//Clear bits to ensure light is off.</span>
<span class="line-number">62</span> mPORTASetPinsDigitalOut(BIT_0); <span class="comment">//Set port as output</span>
<span class="line-number">63</span> <span class="comment">//mPORTAClearBits(BIT_0); //Clear bits to ensure light is off.</span>
<span class="line-number">64</span> <span class="comment">// Set OC1 to pin RB7 with peripheral pin select</span>
<span class="line-number">65</span> RPB7Rbits.RPB7R = 0x0005;
<span class="line-number">66</span> initAudio();
<span class="line-number">67</span> OC1RS = (PR2 + 1) * ((<span class="keyword-directive">float</span>) 50 / 100); <span class="comment">// pwm duty cycle can be updated here</span><span class="comment"> on in interrupt</span>
<span class="line-number">68</span> startAudio (PWM_FREQ);
<span class="line-number">69</span> <span class="comment">//timer init</span>
<span class="line-number">70</span> <span class="comment">//mT2ClearIntFlag();</span>
<span class="line-number">71</span> <span class="comment">// clear interrupt flag</span>
<span class="line-number">72</span> <span class="comment">//mT2IntEnable(1);</span>
<span class="line-number">73</span> <span class="comment">//</span>
<span class="line-number">74</span> <span class="keyword-directive">while</span> (1) {
<span class="line-number">75</span> <span class="keyword-directive">if</span> (incCount >= (PWM_FREQ/2)) {
<span class="line-number">76</span> incCount = 0;
<span class="line-number">77</span> mPORTAToggleBits(BIT_0);
<span class="line-number">78</span> }
<span class="line-number">79</span> }<span class="comment">//while 1</span>
<span class="line-number">80</span> }<span class="comment">//main</span>
<span class="line-number">81</span>
<span class="line-number">82</span> <span class="keyword-directive">void</span> __ISR(_TIMER_2_VECTOR, ipl4) T2Interrupt(<span class="keyword-directive">void</span>) {
<span class="line-number">83</span> <span class="comment">// </span>
<span class="line-number">84</span> incCount++;
<span class="line-number">85</span> <span class="comment">// 1. load the new samples for the next cycle</span>
<span class="line-number">86</span> OC1RS = (PR2 + 1) * ((<span class="keyword-directive">float</span>) 50 / 100);
<span class="line-number">87</span> <span class="comment">// 2. clear interrupt flag and exit</span>
<span class="line-number">88</span> mT2ClearIntFlag();
<span class="line-number">89</span> } <span class="comment">// T2Interrupt </span>
<span class="line-number">90</span>
</pre></body>
</html>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-83078826700908882612015-05-28T13:02:00.004+01:002015-05-28T13:26:12.361+01:00PIC32 Config Bits for 40 mHz with internal Fast RC oscillator<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOZ6IAbgXT3kZtqBAbSGNerjzbxxcsDQU_31OGXNbEmwKBYJZjSld8kcW_iUj15erU-5gejDSHzf-K6uYjEu-9p0P_1JQcc4uetnQzLEs721k2QLC-Jwnlwj8XycJkzxjsw7EfY2UrFKVu/s1600/osc_block_diag.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOZ6IAbgXT3kZtqBAbSGNerjzbxxcsDQU_31OGXNbEmwKBYJZjSld8kcW_iUj15erU-5gejDSHzf-K6uYjEu-9p0P_1JQcc4uetnQzLEs721k2QLC-Jwnlwj8XycJkzxjsw7EfY2UrFKVu/s320/osc_block_diag.PNG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: x-small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: white;"><b>1-<a href="http://www.mrc.uidaho.edu/mrc/people/jff/340/341/ECE341_Reference_Materials/Microchip%20XC32%20C%20Compiler%20and%20Libraries/PIC32ConfigSet.pdf">Page 79 Config Set datasheet</a></b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: white;"><b>2- <a href="http://microchip.wikidot.com/32bit:osc-overview">http://microchip.wikidot.com/32bit:osc-overview</a></b></span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
<html>
<head>
<title>BlinkLED.c</title>
<style type="text/css">
<!--
body {color: #000000; background-color: #ffffff; font-family: Monospaced}
pre {color: #000000; background-color: #ffffff; font-family: Monospaced}
table {color: #000000; background-color: #e9e8e2; font-family: Monospaced}
.comment {color: #969696}
.preprocessor-system-include-literal {color: #ce7b00}
.keyword-directive {color: #0000e6}
.preprocessor-keyword-directive {color: #009b00}
</style></head></html>
<br />
<body>
<table 100="" px="" quot="">
<tr><td align=""center"">ConfigBitsBlinkLED.c</td></tr>
</table>
<pre>
<span class=""comment"">/**</span><span class=""comment"">*******************************************************************</span>
<span class=""comment""> *</span>
<span class=""comment""> * </span><span class=""comment"">CONFIG</span> <span class=""comment"">BITS</span> <span class=""comment"">W</span><span class=""comment"">/ </span><span class=""comment"">BLINKING</span> <span class=""comment"">LED</span> <span class=""comment"">example</span>
<span class=""comment""> * </span><span class=""comment"">The</span> <span class=""comment"">PIC32MC250F128x</span> <span class=""comment"">is</span> <span class=""comment"">a</span> <span class=""comment"">nice</span> <span class=""comment"">little</span> <span class=""comment"">chip</span> <span class=""comment"">that</span> <span class=""comment"">boosts</span> <span class=""comment"">up</span> <span class=""comment"">to</span><span class=""comment""> 50</span><span class=""comment"">MHz</span><span class=""comment"">.</span>
<span class=""comment""> *</span> <span class=""comment"">For</span> <span class=""comment"">applications</span> <span class=""comment"">where</span> <span class=""comment"">timing</span> <span class=""comment"">can</span> <span class=""comment"">be</span> <span class=""comment"">more</span> <span class=""comment"">lax</span><span class=""comment"">, </span><span class=""comment"">the</span> <span class=""comment"">use</span> <span class=""comment"">of</span> <span class=""comment"">the</span> <span class=""comment"">internal</span>
<span class=""comment""> * </span><span class=""comment"">Fast</span> <span class=""comment"">RC</span> <span class=""comment"">oscillator</span> <span class=""comment"">is</span> <span class=""comment"">a</span> <span class=""comment"">good</span> <span class=""comment"">option</span> <span class=""comment"">to</span> <span class=""comment"">minimize</span> <span class=""comment"">component</span> <span class=""comment"">count</span><span class=""comment"">, </span><span class=""comment"">specially</span>
<span class=""comment""> * </span><span class=""comment"">if</span> <span class=""comment"">you</span> <span class=""comment"">want</span> <span class=""comment"">simpler</span> <span class=""comment"">designs</span><span class=""comment"">.</span>
<span class=""comment""> * </span><span class=""comment"">So</span><span class=""comment"">, </span><span class=""comment"">here</span> <span class=""comment"">are</span> <span class=""comment"">t</span><span class=""comment"">he</span> <span class=""comment"">config</span> <span class=""comment"">bits</span> <span class=""comment"">to</span> <span class=""comment"">have</span> <span class=""comment"">it</span> <span class=""comment"">running</span> <span class=""comment"">at</span><span class=""comment""> 40 </span><span class=""comment"">MHz</span> <span class=""comment"">with</span> <span class=""comment"">internal</span>
<span class=""comment""> * </span><span class=""comment"">FRC</span> <span class=""comment"">oscillator</span> <span class=""comment"">.</span>
<span class=""comment""> * </span><span class=""comment"">The</span> <span class=""comment"">internal</span> <span class=""comment"">Fast</span> <span class=""comment"">RC</span> <span class=""comment"">Oscillator</span> <span class=""comment"">frequency</span> <span class=""comment"">is</span><span class=""comment""> 8</span><span class=""comment"">MHz</span> <span class=""comment"">and</span> <span class=""comment"">configured</span> <span class=""comment"">to</span> <span class=""comment"">be</span> <span class=""comment"">used</span>
<span class=""comment""> * </span><span class=""comment"">with</span> <span class=""comment"">PLL</span><span class=""comment"">; </span><span class=""comment"">FRC</span><span class=""comment"">(8</span><span class=""comment"">MHz</span><span class=""comment"">)/ </span><span class=""comment"">FPLL</span><span class=""comment"">IDIV</span><span class=""comment""> (2 ) *</span><span class=""comment"">FPLLMUL</span><span class=""comment""> (20) /</span><span class=""comment"">FPLLODIV</span><span class=""comment""> (2) = 40</span><span class=""comment"">MHz</span>
<span class=""comment""> * </span><span class=""comment"">Frequency</span> <span class=""comment"">for</span> <span class=""comment"">the</span> <span class=""comment"">peripheral</span> <span class=""comment"">bus</span> <span class=""comment"">clock</span> <span class=""comment"">is</span> <span class=""comment"">left</span> <span class=""comment"">at</span> <span class=""comment"">same</span> <span class=""comment"">as</span> <span class=""comment"">the</span> <span class=""comment"">System</span> <span class=""comment"">Clock</span>
<span class=""comment""> * ( </span><span class=""comment"">TPB</span><span class=""comment"">=</span><span class=""comment"">System</span> <span class=""comment"">Clock</span><span class=""comment"">/</span><span class=""comment"">PBDIV</span><span class=""comment"">), </span><span class=""comment"">as</span> <span class=""comment"">the</span> <span class=""comment"">divisor</span> <span class=""comment"">used</span> <span class=""comment"">is</span><span class=""comment""> 1 (</span><span class=""comment"">PBDIV</span><span class=""comment"">=1)= 40</span><span class=""comment"">MHz</span><span class=""comment"">.</span>
<span class=""comment""> * </span><span class=""comment"">Also</span><span class=""comment""> , </span><span class=""comment"">FWDTEN</span><span class=""comment""> = </span><span class=""comment"">OFF</span><span class=""comment""> // </span><span class=""comment"">Watchdog</span> <span class=""comment"">Timer</span> <span class=""comment"">Enable</span> <span class=""comment"">OFF</span><span class=""comment"">, </span><span class=""comment"">and</span> <span class=""comment"">#</span><span class=""comment"">pragma</span> <span class=""comment"">config</span> <span class=""comment"">JTAGEN</span><span class=""comment""> = </span><span class=""comment"">OFF</span>
<span class=""comment""> * // </span><span class=""comment"">JTAG</span> <span class=""comment"">Enable</span> <span class=""comment"">OFF</span> <span class=""comment"">should</span> <span class=""comment"">be</span> <span class=""comment"">considered</span> <span class=""comment"">for</span> <span class=""comment"">use</span> <span class=""comment"">of</span> <span class=""comment"">the</span> <span class=""comment"">ports</span> <span class=""comment"">assigned</span> <span class=""comment"">to</span> <span class=""comment"">the</span>
<span class=""comment""> * </span><span class=""comment"">JTAG</span> <span class=""comment"">port</span><span class=""comment""> ( </span><span class=""comment"">PORTB</span> <span class=""comment"">pins</span> <span class=""comment"">in</span> <span class=""comment"">this</span> <span class=""comment"">case</span><span class=""comment"">-</span><span class=""comment"">see</span> <span class=""comment"">datasheet</span> <span class=""comment"">for</span> <span class=""comment"">more</span> <span class=""comment"">info</span><span class=""comment"">)</span>
<span class=""comment""> * </span>
<span class=""comment""> * </span>
<span class=""comment""> *</span>
<span class=""comment""> ***********************************************</span><span class=""comment"">**********************</span>
<span class=""comment""> * </span><span class=""comment"">FileName</span><span class=""comment"">: </span><span class=""comment"">ConfigBitsWLedBlink</span><span class=""comment"">.</span><span class=""comment"">c</span>
<span class=""comment""> *</span>
<span class=""comment""> * </span><span class=""comment"">Processor</span><span class=""comment"">: </span><span class=""comment"">PIC32MX250F128B</span>
<span class=""comment""> * </span><span class=""comment"">Dev</span> <span class=""comment"">Board</span><span class=""comment"">: </span><span class=""comment"">Microstick</span> <span class=""comment"">II</span>
<span class=""comment""> * </span><span class=""comment"">Complier</span><span class=""comment"">: </span> <span class=""comment"">MPLAB</span> <span class=""comment"">C32</span> <span class=""comment"">v2</span><span class=""comment"">.</span><span class=""comment"">01 </span><span class=""comment"">or</span> <span class=""comment"">higher</span>
<span class=""comment""> * </span><span class=""comment"">MPLAB</span> <span class=""comment"">IDE</span> <span class=""comment"">v8</span><span class=""comment"">.</span><span class=""comment"">73 </span><span class=""comment"">or</span> <span class=""comment"">higher</span>
<span class=""comment""> *</span>
<span class=""comment""> * </span><span class=""comment"">Software</span> <span class=""comment"">License</span> <span class=""comment"">Agreement</span>
<span class=""comment""> *</span>
<span class=""comment""> * </span><span class=""comment"">THIS</span> <span class=""comment"">SOFTWARE</span> <span class=""comment"">IS</span> <span class=""comment"">PROVIDED</span> <span class=""comment"">IN</span> <span class=""comment"">AN</span><span class=""comment""> “</span><span class=""comment"">AS</span> <span class=""comment"">IS”</span> <span class=""comment"">CON</span><span class=""comment"">DITION</span><span class=""comment"">.</span> <span class=""comment"">NO</span> <span class=""comment"">WARRANTIES</span><span class=""comment"">,</span>
<span class=""comment""> * </span><span class=""comment"">WHETHER</span> <span class=""comment"">EXPRESS</span><span class=""comment"">, </span><span class=""comment"">IMPLIED</span> <span class=""comment"">OR</span> <span class=""comment"">STATUTORY</span><span class=""comment"">, </span><span class=""comment"">INCLUDING</span><span class=""comment"">, </span><span class=""comment"">BUT</span> <span class=""comment"">NOT</span> <span class=""comment"">LIMITED</span>
<span class=""comment""> * </span><span class=""comment"">TO</span><span class=""comment"">, </span><span class=""comment"">IMPLIED</span> <span class=""comment"">WARRANTIES</span> <span class=""comment"">OF</span> <span class=""comment"">MERCHANTABILITY</span> <span class=""comment"">AND</span> <span class=""comment"">FITNESS</span> <span class=""comment"">FO</span><span class=""comment"">R</span> <span class=""comment"">A</span>
<span class=""comment""> * </span><span class=""comment"">PARTICULAR</span> <span class=""comment"">PURPOSE</span> <span class=""comment"">APPLY</span> <span class=""comment"">TO</span> <span class=""comment"">THIS</span> <span class=""comment"">SOFTWARE</span><span class=""comment"">.</span> <span class=""comment"">THE</span> <span class=""comment"">COMPANY</span> <span class=""comment"">SHALL</span> <span class=""comment"">NOT</span><span class=""comment"">,</span>
<span class=""comment""> * </span><span class=""comment"">IN</span> <span class=""comment"">ANY</span> <span class=""comment"">CIRCUMSTANCES</span><span class=""comment"">, </span><span class=""comment"">BE</span> <span class=""comment"">LIABLE</span> <span class=""comment"">FOR</span> <span class=""comment"">SPECIAL</span><span class=""comment"">, </span><span class=""comment"">INCIDENTAL</span> <span class=""comment"">OR</span>
<span class=""comment""> * </span><span class=""comment"">CONSEQUENTIAL</span> <span class=""comment"">DAMAGES</span><span class=""comment"">, </span><span class=""comment"">FOR</span> <span class=""comment"">ANY</span> <span class=""comment"">REASON</span> <span class=""comment"">WHATSOEVER</span><span class=""comment"">.</span>
<span class=""comment""> *</span>
<span class=""comment""> *</span>
<span class=""comment""> * </span><span class=""comment"">Author</span> <span class=""comment"">Date</span> <span class=""comment"">Comment</span>
<span class=""comment""> *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</span><span class=""comment"">~~~~~~~~~~~~~~~~~~~~~~~~~</span>
<span class=""comment""> * </span><span class=""comment"">RB</span> <span class=""comment""> 28/5/2015</span> <span class=""comment"">Led</span> <span class=""comment"">should</span> <span class=""comment"">blink</span> <span class=""comment"">on</span> <span class=""comment"">and</span> <span class=""comment"">off</span><span class=""comment"">.</span>
<span class=""comment""> * </span>
<span class=""comment""> ***************************************************************</span><span class=""comment"">****</span><span class=""comment"">*/</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">include</span> <span class=""preprocessor-system-include-literal"">< xc.h ></span> <span class=""comment"">// Blog code Bug : Shorten spaces to match <xc.h></span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">include</span> <span class=""preprocessor-system-include-literal"">< plib.h ></span> <span class=""comment"">// Shorten spaces to match <plib.h> </span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">in</span><span class=""preprocessor-keyword-directive"">clude</span> <span class=""preprocessor-system-include-literal"">< p32xxxx.h ></span> <span class=""comment"">// Shorten spaces to match <p32xxxx.h></span>
<span class=""comment"">//#pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_2, FPLLODIV = DIV_2, FWDTEN = OFF</span>
<span class=""comment"">//#pragma config POSCMOD = OFF, FNOSC = FRCP</span><span class=""comment"">LL, FPBDIV = DIV_1</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config JTAGEN = OFF <span class=""comment"">// JTAG Enable OFF</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config FNOSC = FRCPLL <span class=""comment"">// Fast RC w PLL 8mHz internal rc Osc</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config FPLLIDIV = DIV_2 <span class=""comment"">// PLL in 8mHz/2 = 4mHz</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config FPLLMUL = MUL_20 <span class=""comment"">// PLL mul 4mHz * 20 = 80mHz 24?</span><span class=""comment"">?</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config FPLLODIV = DIV_2 <span class=""comment"">// PLL Out 8mHz/2= 40 mHz system frequency osc</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config FPBDIV = DIV_1 <span class=""comment"">// Periph</span><span class=""comment"">eral Bus Divisor</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config FCKSM = CSECME <span class=""comment"">// Clock Switch Enable, FSCM Enabled</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config POSCMOD = OFF <span class=""comment"">// Primary osc disa</span><span class=""comment"">bled</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config IESO = OFF <span class=""comment"">// Internal/external switch over</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config OSCIOFNC = OFF <span class=""comment"">// CLKO Output Signal A</span><span class=""comment"">ctive on the OSCO Pin</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">pragma</span> config FWDTEN = OFF <span class=""comment"">// Watchdog Timer Enable:</span>
<span class=""comment"">//</span>
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">define</span> GetSystemClock() (40000000ul)
<span class=""preprocessor-keyword-directive"">#</span><span class=""preprocessor-keyword-directive"">define</span> GetPeripheralClock() (GetSystemClock()/(1<<OSCCONbits.PBDIV))<span class=""comment"">// </span>
main() {
<span class=""comment"">// Configure performance settings without changing PBDIV</span>
SYSTEMConfig(GetSystemClock(), SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
<span class=""comment"">//Port Config</span>
mPORTAClearBits(BIT_0); <span class=""comment"">//PORTA Bit 0 Clear bits to ensure light is off.</span>
mPORTASetPinsDigitalOut(BIT_0); <span class=""comment"">//Set port RA0 as output</span>
<span class=""comment"">// Variables</span>
<span class=""keyword-directive"">int</span> i;
<span class=""keyword-directive"">int</span> j;
<span class=""keyword-directive"">while</span> (1) { <span class=""comment"">//main loop</span>
j = 100000;
<span class=""keyword-directive"">while</span> (j--) { .
mPORTAToggleBits(BIT_0); <span class=""comment"">//Toggle light status. (Can be viewed in LATA SFR)</span>
i = j; <span class=""comment"">//Time to wait in between toggle.</span>
<span class=""keyword-directive"">while</span> (i--) {
} <span class=""comment"">//Kill time.</span>
<span class=""comment"">//j = j </span><span class=""comment"">- 5000;</span> <span class=""comment"">//Increase constant to increas blinking speed faster.</span>
} <span class=""comment"">// while j--</span>
} <span class=""comment"">// Main loop</span>
} <span class=""comment"">// Main</span>
</pre>
</body>
-->
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-12703448173639523262015-05-21T01:18:00.000+01:002015-05-21T01:18:24.323+01:00Midi controlled Dub siren Midi controlled Dub siren (basic proof of concept)<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube-nocookie.com/embed/Kgi0mmEseg0?rel=0" width="420"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-36026102948254639542015-05-05T12:54:00.000+01:002015-05-05T12:54:00.427+01:00Midi Shield Controller Dub Siren Interruptor.ch AVR/Arduino test<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeBaW8TAhmc2vM9sjMMN90W4sR7-51CaC65bGf6_xrDT1dKVvIrYV6MNhJax0J7VfK9i-_YzS1cwO009CEo6XVgB-Jb9aF4DUb6xseEe5JpXOOwWjZzstCvpPNxJttuSigwO5mICndegJX/s1600/dub-siren.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeBaW8TAhmc2vM9sjMMN90W4sR7-51CaC65bGf6_xrDT1dKVvIrYV6MNhJax0J7VfK9i-_YzS1cwO009CEo6XVgB-Jb9aF4DUb6xseEe5JpXOOwWjZzstCvpPNxJttuSigwO5mICndegJX/s320/dub-siren.jpg" width="320" /></a></div>
<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube-nocookie.com/embed/-ZKETd1XIf0?rel=0" width="420"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-5265953147237619882015-05-04T21:34:00.000+01:002015-05-04T21:35:39.826+01:00Using Cubase LE as a debugger for my code<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidBgejSGNToVFmpcB73HzAEokJ06vsJfbf9ANkSGef-H-He_FdU6kG-9DqH8BAFM4yvmeKMw-fw6Wmmh6-ZXFk2rVAi_b9Xc27Qcp87fyhmBXIiq0dGtYnP-Jm1kwXbKJy80miTaTlxSsX/s1600/MIDI+pitch+bend.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="105" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidBgejSGNToVFmpcB73HzAEokJ06vsJfbf9ANkSGef-H-He_FdU6kG-9DqH8BAFM4yvmeKMw-fw6Wmmh6-ZXFk2rVAi_b9Xc27Qcp87fyhmBXIiq0dGtYnP-Jm1kwXbKJy80miTaTlxSsX/s400/MIDI+pitch+bend.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div style="text-align: center;">
<b>Using Cubase LE as a debugger for my code</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
While testing some code for some midi controllers i thought of using Cubase to better help me debug it.<br />
<div>
* Black is received data, blue when negative bend, red when positive and light green/blue is no update on data ( does not reset automatically until told to).<br />
Using Pitch bend in this case.<i class="_4-k1 img sp_0FWTQ_K3bWk sx_72c37c"><u><span style="color: #141823; font-family: helvetica, arial, lucida grande, sans-serif;"><span style="background-color: white; background-image: url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/ckxre_asY0y.png); background-position: 0px -8033px; background-repeat: no-repeat; display: inline-block; font-size: 13px; height: 16px; left: -999999px; line-height: 18px; position: absolute; vertical-align: -3px; width: 16px;">smile emoticon</span></span></u></i><br />
<br />
<span style="background-image: url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/ckxre_asY0y.png); background-position: 0px -8033px; background-repeat: no-repeat; display: inline-block; height: 16px; left: -999999px; position: absolute; vertical-align: -3px; width: 16px;">* Black is received data, Blue when negative bend, Red when positive and light green/blue is no update on data ( doesnt reset automatically until told to).</span><br />
<span style="background-image: url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/ckxre_asY0y.png); background-position: 0px -8033px; background-repeat: no-repeat; display: inline-block; height: 16px; left: -999999px; position: absolute; vertical-align: -3px; width: 16px;">Using Pitch bend in this case.</span><br />
<div>
<span style="color: #141823; font-family: helvetica, arial, lucida grande, sans-serif;"><span style="font-size: 13px; line-height: 18px;"><br /></span></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtsWGtUpKT9ny6dRnznDHmCWpYHQ2pexq4ABcspBaFXIFRFFyjTOk8Tznm5V0Vepbx7r-PRmzMq0ss8Pq8fZW6hGym2TSWiG-FbwQBVlhU8XKUCaO421skhsEuejOoEzKjFwoejfMygs2Z/s1600/midi2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtsWGtUpKT9ny6dRnznDHmCWpYHQ2pexq4ABcspBaFXIFRFFyjTOk8Tznm5V0Vepbx7r-PRmzMq0ss8Pq8fZW6hGym2TSWiG-FbwQBVlhU8XKUCaO421skhsEuejOoEzKjFwoejfMygs2Z/s320/midi2.jpg" width="240" /></a></div>
<div>
<span style="background-color: white; color: #141823; font-family: helvetica, arial, 'lucida grande', sans-serif; font-size: 13px; line-height: 18px;"><br /></span></div>
</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-10302377448870507782015-04-29T22:29:00.000+01:002015-04-30T00:00:22.339+01:00chipKIT DP32 Simple dub Siren Code<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_dZpCLYxnGw1xP8pfQDgI3nxuGy1WsOBw6XAbPD7kV0lGdi2R7lt0BFO9TzMDOGIKpQ7K-f2H8gdEkTydP4IKxIc6Sz3uMaScPP5Zv1FdHvKgbYbLCJJ1UwXxxj-BfXsmnEHI1qGqMXK4/s1600/11112013558.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_dZpCLYxnGw1xP8pfQDgI3nxuGy1WsOBw6XAbPD7kV0lGdi2R7lt0BFO9TzMDOGIKpQ7K-f2H8gdEkTydP4IKxIc6Sz3uMaScPP5Zv1FdHvKgbYbLCJJ1UwXxxj-BfXsmnEHI1qGqMXK4/s1600/11112013558.jpg" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<pre></pre>
<pre>Sampling Rate <b><i>22.050 kHz</i></b>, with <b><i>12 bit</i></b> DAC MCP4725 ( breakout board)</pre>
<pre>Using button 2(<i>Pin 17</i>) on DP32 and Variable pot (<i>A2</i>).</pre>
<pre>For the signal out, the ac coupling circuit from previous post is necessary.</pre>
<pre>*Check also I2C Speed post <a href="http://dubworks.blogspot.co.uk/2015/04/chipkit-dp32-i2c-bus-speed-with-mcp4725.html">HERE</a></pre>
<pre></pre>
<pre></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHPhonXSfORDECumEON6MxRk9XFb564RW37_lcI51hCWPGVHM2Tei11r0TC4vSxwZKspXsl2_wRtP6fsIY1YBDiUrogKd6zvwVTb3oVXJsh_X-0PytnoB4Ku3HDSw4Qk90Rl0YcYF4DAPH/s1600/557861_10151252348147948_1850126931_n.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHPhonXSfORDECumEON6MxRk9XFb564RW37_lcI51hCWPGVHM2Tei11r0TC4vSxwZKspXsl2_wRtP6fsIY1YBDiUrogKd6zvwVTb3oVXJsh_X-0PytnoB4Ku3HDSw4Qk90Rl0YcYF4DAPH/s1600/557861_10151252348147948_1850126931_n.jpg" height="150" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii05BrkqZzjR-qsVT_Poo3IUSIs7oFyfpAAiKvBoUFXBrxDwhNf4X9TR3m36a3xttghFdZahHnnM2sIirOGMjcGJQuvlMlCh_Xfo-RwmH1iDWIdhXZ2vxvtPz1XfUTxLUlxyn6oKjmrZpC/s1600/DP32sinesiren.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii05BrkqZzjR-qsVT_Poo3IUSIs7oFyfpAAiKvBoUFXBrxDwhNf4X9TR3m36a3xttghFdZahHnnM2sIirOGMjcGJQuvlMlCh_Xfo-RwmH1iDWIdhXZ2vxvtPz1XfUTxLUlxyn6oKjmrZpC/s1600/DP32sinesiren.png" height="200" width="188" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs5j5XISVaov5ADr4Qkq0Dl5uDJGOfq7FRoK8vl-O6LCtnpBrPYHwJExtT5zVLzT1LPwlJNs2x_nExXc_JuZToxYOV7hoH-gV43UVXEN68szbkVdq922YHuAPq88e4_gQfQfUC5BxakK9_/s1600/3303Fig01.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs5j5XISVaov5ADr4Qkq0Dl5uDJGOfq7FRoK8vl-O6LCtnpBrPYHwJExtT5zVLzT1LPwlJNs2x_nExXc_JuZToxYOV7hoH-gV43UVXEN68szbkVdq922YHuAPq88e4_gQfQfUC5BxakK9_/s1600/3303Fig01.gif" height="120" width="200" /></a></div>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre>#include <sys/attribs.h>
#include <<span style="color: #ff8000;">Wire</span>.h>
#define MCP4725_DID 96 <span style="color: #007f00;">// define device id - see datasheet</span>
<span style="color: #007f00;">//</span>
#define SYS_FREQ (40000000L)
#define PB_DIV 4
#define PRESCALE 2
#define FRQ 22050 <span style="color: #007f00;">//21504</span>
#define T1_TICK (SYS_FREQ/PB_DIV/PRESCALE/FRQ)
#define WAVE_SAMPLES 256
<span style="color: red;">const</span> <span style="color: red;">int</span> buttonPin = 17;
<span style="color: #007f00;">// variables will change:</span>
<span style="color: red;">int</span> buttonState = 0; <span style="color: #007f00;">// variable to read the pushbutton status</span>
<span style="color: red;">uint8_t</span> playOn=0; <span style="color: #007f00;">// Variable of play state/button state</span>
<span style="color: red;">volatile</span> <span style="color: red;">uint16_t</span> a;
<span style="color: red;">uint16_t</span> b;
<span style="color: red;">uint16_t</span> d;
<span style="color: red;">uint16_t</span> e=0;
<span style="color: red;">uint16_t</span> inc;
<span style="color: red;">uint8_t</span> statedown=0;
<span style="color: red;">boolean</span> c;
<span style="color: red;">boolean</span> togg;
<span style="color: red;">uint16_t</span> sineData [WAVE_SAMPLES];
<span style="color: #007f00;">//</span>
<span style="color: red;">void</span> <span style="color: #ff8000;">setup</span>()
{
<span style="color: #007f00;">// Serial.begin(57600);</span>
initTmr();
<span style="color: #ff8000;">pinMode</span>(<span style="color: #2dbad6;">A2</span>, <span style="color: #0066ff;">INPUT</span>); <span style="color: #007f00;">//</span>
<span style="color: #ff8000;">pinMode</span>(13, <span style="color: #0066ff;">OUTPUT</span>); <span style="color: #007f00;">//</span>
<span style="color: #007f00;">//set pins to output because they are addressed in the main loop</span>
sine ();
<span style="color: #ff8000;">Wire</span>.<span style="color: #ff8000;">begin</span>() ;
}
<span style="color: red;">void</span> <span style="color: #ff8000;">loop</span>()
{
<span style="color: red;">uint16_t</span> aIn =<span style="color: #ff8000;">analogRead</span>(<span style="color: #2dbad6;">A2</span>);
inc=aIn >>4;
buttonState = <span style="color: #ff8000;">digitalRead</span>(buttonPin);
<span style="color: #007f00;">// check if the pushbutton is pressed.</span>
<span style="color: #007f00;">// if it is, the buttonState is HIGH:</span>
<span style="color: red;">if</span> (buttonState == <span style="color: #0066ff;">HIGH</span>) {
playOn=1;
<span style="color: #007f00;">// play is On </span>
}
<span style="color: red;">else</span>{
playOn=0;
<span style="color: #007f00;">// play is Off</span>
}
<span style="color: red;">if</span>(c !=togg){
<span style="color: red;">if</span>(playOn==1){
a = a++ ;
a+= (inc+(e >>4));
<span style="color: red;">if</span>(a>=WAVE_SAMPLES){
a-=WAVE_SAMPLES;
<span style="color: #007f00;">// ramp up or down variables</span>
<span style="color: red;">if</span> (statedown==0){
e++;
<span style="color: red;">if</span>(e>=1023){
statedown=1;
e--;
}
}
<span style="color: red;">else</span>{
e--;
<span style="color: red;">if</span> (e==0){
statedown=0;
e++;
}
}
}
<span style="color: #007f00;">//</span>
<span style="color: #ff8000;">Wire</span>.<span style="color: #ff8000;">beginTransmission</span>(MCP4725_DID); <span style="color: #007f00;">//device adress</span>
<span style="color: #ff8000;">Wire</span>.<span style="color: #ff8000;">send</span>(64); <span style="color: #007f00;">// cmd to update the DAC</span>
<span style="color: #ff8000;">Wire</span>.<span style="color: #ff8000;">send</span>(sineData[a] >> 4); <span style="color: #007f00;">// the 8 most significant bits...</span>
<span style="color: #ff8000;">Wire</span>.<span style="color: #ff8000;">send</span>((sineData[a] & 15) << 4); <span style="color: #007f00;">/* the 4 least significant bis...*/</span>
<span style="color: #ff8000;">Wire</span>.<span style="color: #ff8000;">endTransmission</span>();
<span style="color: #007f00;">/*</span>
<span style="color: #007f00;"> */</span>
}
}<span style="color: #007f00;">//</span>
c=togg;
}
<span style="color: #007f00;">// call interrupt handling vector</span>
<span style="color: red;">extern</span> <span style="color: #0066ff;">"C"</span> {
<span style="color: red;">void</span> __ISR(16, ipl6) int1Handler(<span style="color: red;">void</span>)
{
togg= !togg;
<span style="color: #007f00;">//</span>
<span style="color: #007f00;">//</span>
IFS0CLR = 0x80000;<span style="color: #007f00;">// Clear the T4 interrupt flag Bit 19</span>
<span style="color: #007f00;">//</span>
}
}
<span style="color: red;">void</span> initTmr(){
<span style="color: #007f00;">// </span>
T4CON=0x0; <span style="color: #007f00;">//Stop timer and clear registers</span>
T4CONSET = 0x0010; <span style="color: #007f00;">// set prescalar 1:2 ox60 to experiment</span>
TMR4 = 0x0; <span style="color: #007f00;">//Clear Timer 4 register</span>
PR4 = T1_TICK ; <span style="color: #007f00;">//0x17; // set timer to 23 </span>
IFS0CLR = 0x80000;<span style="color: #007f00;">// Clear the T4 interrupt flag Bit 19</span>
IPC4SET = 0x00000016;<span style="color: #007f00;">// Interrupt priority 5, 2</span>
IEC0SET = 0x80000;<span style="color: #007f00;">// Enable T4 interrupt Bit 19</span>
T4CONSET = 0x8000;<span style="color: #007f00;">// Enable Timer4 </span>
}
<span style="color: red;">void</span> sine (){
<span style="color: red;">uint16_t</span> i;
<span style="color: red;">for</span>(i=0;i<WAVE_SAMPLES;i++){
b = 2047*<span style="color: #ff8000;">sin</span>((2*<span style="color: #0066ff;">PI</span>/WAVE_SAMPLES)*i);
b+=2047;
sineData [i]=b;
}
}
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioOYJh06fMyWAT9dzODMifO8Qbs9FEapL_2DIGxITjX1AN0LFsBxG_YHsapHlMZ0k9jD18YpVLymHksDgMWTd_OBRkIMgq2MCcx8nP6PGrlFF_Opjuw2maUN265M4oN_DleuX6-p9jNOxR/s1600/20150429_224000.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioOYJh06fMyWAT9dzODMifO8Qbs9FEapL_2DIGxITjX1AN0LFsBxG_YHsapHlMZ0k9jD18YpVLymHksDgMWTd_OBRkIMgq2MCcx8nP6PGrlFF_Opjuw2maUN265M4oN_DleuX6-p9jNOxR/s1600/20150429_224000.jpg" height="400" width="300" /></a></div>
</pre>
<pre></pre>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-38999930549937528482015-04-29T15:15:00.000+01:002015-04-29T22:03:02.939+01:00ChipKIT DP32 I2C Bus Speed with a MCP4725 DAC<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cVRY8jHqZH0AChQi9OID2fStD4gVahqEv7WhLDccmpCoynomLsjbZOKEkri_j-NJ39ovYiIHiMUSiOvKjNu1ADTU6IszXR6pG_M6rsTZBZYTZxRfo-Lj5_ckytJv0NDYuh5yS3cieccu/s1600/1_1_3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cVRY8jHqZH0AChQi9OID2fStD4gVahqEv7WhLDccmpCoynomLsjbZOKEkri_j-NJ39ovYiIHiMUSiOvKjNu1ADTU6IszXR6pG_M6rsTZBZYTZxRfo-Lj5_ckytJv0NDYuh5yS3cieccu/s1600/1_1_3.jpg" height="255" width="320" /></a></div>
<div>
Both arduino and MPIDE seem to have the I2C bus speed set to 100 kHz by default. So, here it is how to change it to 400kHz.</div>
Inside the MPIDE folder, go to hardware\pic32\libraries\Wire\utility.<br />
<div>
Inside file<b> <i>twi.h</i></b> Find the string <i><b>#define TWI_FREQ 100000</b></i> and change it to: <i><b>#defineTWI_FREQ 400000.</b></i></div>
<div>
In my simple test i went from a 20Hz sinewave to a 72Hz just by effecting this change to the bus speed.</div>
<div>
On the DP32 Board, <b>SDA</b> is assigned to Pin RB9 and <b>SCL</b> to Pin RB8.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIM6koZz7CUbeBJti9-ZdAbssfpzwq-YwHUbKno6Sjn2KxraZ5bbO4NfaYzL88Q08i78EXQ2cZHmX63d11DX_K8NnDKH2RKvCHTw5l6LjDU3kFL1pInN6CZ48ssHydsBcL2OzPNGEwii3b/s1600/DP32sinesiren.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIM6koZz7CUbeBJti9-ZdAbssfpzwq-YwHUbKno6Sjn2KxraZ5bbO4NfaYzL88Q08i78EXQ2cZHmX63d11DX_K8NnDKH2RKvCHTw5l6LjDU3kFL1pInN6CZ48ssHydsBcL2OzPNGEwii3b/s1600/DP32sinesiren.png" height="400" width="376" /></a></div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-41690179128576736262015-04-26T16:23:00.002+01:002015-05-02T14:15:56.394+01:00Atmega 328/Uno simple Dub synth<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVptuKpDqMxolGrb6Bxjp7b_q2UHS-hjfWraznhcQI3oPsN28S4yq4bZ_GGTDNg8iI_zJlacpii_FhohMMf5hICVNEWxxvDhHDs9cSasdz716GEby85ky2xWi33sBQ4loVCkluYF-qSCAv/s1600/uno+drum+synth_bb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVptuKpDqMxolGrb6Bxjp7b_q2UHS-hjfWraznhcQI3oPsN28S4yq4bZ_GGTDNg8iI_zJlacpii_FhohMMf5hICVNEWxxvDhHDs9cSasdz716GEby85ky2xWi33sBQ4loVCkluYF-qSCAv/s1600/uno+drum+synth_bb.png" height="341" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<i><span style="font-size: x-small;">R2R DAC -view picture in the end of article. Usa same principle to build an 8 Bit R2R DAC from D0 to D7</span></i></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Some intial test sounds out of a Uno mini Dub synth. The file was recorded , unfiltered ( 0 to 5V) and lined out of a guitar amp in clean mode. - Some noise was introduced by the guitar amd as well.</div>
<div class="separator" style="clear: both; text-align: left;">
Next step of project is to AC couple signal also with a suitable RC filter, decoupling capacitors and prepare the rest of line out for use with sound gear.</div>
<div class="separator" style="clear: both; text-align: left;">
The limitations of the ATMega328 are big compared to the DUE for this kind of project, but good enough to get some interesting sounds, plus it can also double as a dub siren . Sr @ 16kHz-8Bit Dac</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
You can download /preview it in<b><a href="https://drive.google.com/file/d/0Bxt0pWonMCIzbVdicnFtZXFBSVk/view?usp=sharing"> mp3 here</a></b></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiezVHTVdF2FpdsMa7bonruiOKSWmzdRnW-L1dRQZIvqw5xtVwdYZb1QVs97J5rlV6WMVMYlyvP66qnDyp9bbBqscF8b1t_u_nhqp9Jn_k5BEp58cR5Bfws6OvUoWOHYQpgNEuuR4OaddAf/s1600/6BITdacSchema.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiezVHTVdF2FpdsMa7bonruiOKSWmzdRnW-L1dRQZIvqw5xtVwdYZb1QVs97J5rlV6WMVMYlyvP66qnDyp9bbBqscF8b1t_u_nhqp9Jn_k5BEp58cR5Bfws6OvUoWOHYQpgNEuuR4OaddAf/s1600/6BITdacSchema.png" height="123" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
a 6 bit R2R Dac</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxS9TWdO7flJ5FyCMI3IRaYMsm221z7zR4cIiqqxETBbbI1pNpTJSHVpZ-WMbBHoHtQgRtPLB8GjEvCPITCPN35W8HODqFZJVr0HHZSRywN0IB_x6q59uuJ4IyKamIf2yNDSGfGTp8OrR3/s1600/20150427_232033.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxS9TWdO7flJ5FyCMI3IRaYMsm221z7zR4cIiqqxETBbbI1pNpTJSHVpZ-WMbBHoHtQgRtPLB8GjEvCPITCPN35W8HODqFZJVr0HHZSRywN0IB_x6q59uuJ4IyKamIf2yNDSGfGTp8OrR3/s1600/20150427_232033.jpg" height="320" width="240" /></a></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-88922996990664135422015-04-26T11:34:00.001+01:002015-04-26T11:55:21.549+01:00ac coupling of a 0-5 V signal from Atmega328<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlcdK7NmbnxVaplcPQ5APMHCZuC2TMJxXzQm-aoi8RnaVJe7HiYjoEx3SxKY2UWWfeFDDjBWfTpHmjaSrJiH25HJnumeT0FnoVVIYLdvaetBOhhlO9JbopVGVj0VI3dFThgwUWuW7IwPTr/s1600/ac+coupling+dc+signal+scope.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlcdK7NmbnxVaplcPQ5APMHCZuC2TMJxXzQm-aoi8RnaVJe7HiYjoEx3SxKY2UWWfeFDDjBWfTpHmjaSrJiH25HJnumeT0FnoVVIYLdvaetBOhhlO9JbopVGVj0VI3dFThgwUWuW7IwPTr/s1600/ac+coupling+dc+signal+scope.png" height="227" width="400" /></a></div>
<div style="clear: both; text-align: center;">
<i><span style="font-size: x-small;"><br /></span></i></div>
<div style="clear: both; text-align: center;">
<i style="font-size: small;">Example of a signal with dc offset, and after the passive filter</i></div>
<div style="clear: both; text-align: center;">
<i><span style="font-size: x-small;"><br /></span></i></div>
<br />
Having a 0 to 5 V signal generated digitally with a R2R 8 bit dac, i needed to remove the offset introduced . This is a simple way and also makes it to "audio friendly" .<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3R-z4ZlXDT0VdSyo1qt6qhsjIoptH8DqYHD1-pRnxASB_4S-C1TK_m8xG3HliNw3W0zaAosKTrnphi0UofENkJ4ShTor80T5TV-iqCCKNdtPpH7DSN_7pTNj0NPkDi9_v3CuD005fKjnY/s1600/3303Fig01.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3R-z4ZlXDT0VdSyo1qt6qhsjIoptH8DqYHD1-pRnxASB_4S-C1TK_m8xG3HliNw3W0zaAosKTrnphi0UofENkJ4ShTor80T5TV-iqCCKNdtPpH7DSN_7pTNj0NPkDi9_v3CuD005fKjnY/s1600/3303Fig01.gif" height="120" width="200" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxqm7kJuMPHTj4RU3eGyCN1lCmFm5M-xPnDKYeX4_VUra8Nbgl44oahu027AJy1NDD8BH7-YFq4YdkpsNfy1nbgjbCWMtjHpjpgr08KY8WI1kIzYyeRaIzH3TH7vh0zTw7drIRqQ-7orkB/s1600/ac+coupling+pwm+signal+with+low+pass.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxqm7kJuMPHTj4RU3eGyCN1lCmFm5M-xPnDKYeX4_VUra8Nbgl44oahu027AJy1NDD8BH7-YFq4YdkpsNfy1nbgjbCWMtjHpjpgr08KY8WI1kIzYyeRaIzH3TH7vh0zTw7drIRqQ-7orkB/s1600/ac+coupling+pwm+signal+with+low+pass.png" height="274" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<i><span style="font-size: x-small;">Low pass filter and ac coupling circuit block used in one of my projects</span></i></div>
<div style="text-align: center;">
<br /></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-30267710795138992322015-04-21T03:05:00.000+01:002015-04-21T03:09:22.958+01:00The Arduino saga for the confused user, Clash Of IDE's and what not'sAs confused as most users, i will try break it down gently my perception of it all.<br />
<br />
First, you should start by a nicely done history and time line presentation i found, by Matthew Williamson.<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="400" id="iframe_container" mozallowfullscreen="" src="https://prezi.com/embed/omdnngwobena/?bgcolor=ffffff&lock_to_path=0&autoplay=0&autohide_ctrls=0#" webkitallowfullscreen="" width="550"></iframe><br />
<br />
<b>Arduino LLC</b> was founded by <b><i>Massimo Banzi, David Cuartielles, David Mellis, Tom Igoe</i></b> and <b><i>Gianluca Martino</i></b> in 2009.<br />
Considering Arduino idea started around 2005, a lot of these guys had been working togethers since.<br />
The other party is <b>Smart Projects, </b>founded by <i style="font-weight: bold;">Gianluca Martino </i>in 2004, which has always been one of the major manufacturers of Arduino Boards.<br />
A rift started ( you can check the full breakdown in the series of articles on <a href="http://hackaday.com/2015/02/25/arduino-v-arduino/">Hackaday</a>) and Smart Projects changed their name to Arduino SRL in November of 2014. A new site was started ( <a href="http://arduino.org/">arduino.org</a>) and the Clash of IDE's started, confusing a lot of people in the process.<br />
Warnings on some boards started to appear with version 1.6.1 that <i>"Added warning for uncertified boards" </i>( apparently some<i> </i>USB Vendor ID's from boards manufactured by the "ORG" camp<i> . </i>And this is confusing for the average user.<br />
<a href="http://arduino.cc/">arduino.cc</a>'s version 1.6.3 is the official version, but <a href="http://arduino.org/">arduino.org</a> released a few versions with higher numbers to confuse the matter ( 1.7.0 and so on). This version already supports their new Arduino Zero Pro already on sale, while the official team's shop still has it as "Coming soon".<br />
It is sad to see greed, egos and what-not brought to the forefront of public attention, specially regarding a product that is supposed to epitomize the Open Source Community's strength.<br />
Anyone out there surely feels that Arduino is the original idea, perpetuated by the hard work of what is now a massive team. But above all, Arduino is but the massive community that made it what it is today !<br />
All in all... Facepalm !<br />
<br />
* Id advise everyone to have a scroll down the <a href="http://www.arduino.cc/en/Main/Boards">hardware index page at arduino.cc</a> and scroll down for some of original boards, etcUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-61384519350324681852015-04-17T13:07:00.000+01:002015-04-17T13:07:16.724+01:00ARDUINO NOT THE RIGHT EDUCATIONAL TOOL ? ARDUINO NOT THE RIGHT EDUCATIONAL TOOL ?<div>
<br /></div>
<div>
A nice article on a different perspective towards the user-friendly tool<br /><br />
<a href="http://www.hackvandedam.nl/blog/?p=762">http://www.hackvandedam.nl/blog/?p=762</a></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-90412357582147841112015-04-17T12:59:00.001+01:002015-04-17T13:01:29.628+01:00Arduino Zero Pro and the Legal DisputeIt is sad that the "thing " that was supposed to be "open Source" causes so much greed and grief.<br />
<a href="http://www.i-programmer.info/news/91-hardware/8369-arduino-zero-pro-released-amid-legal-dispute.html">http://www.i-programmer.info/news/91-hardware/8369-arduino-zero-pro-released-amid-legal-dispute.html</a><br />
<br />
Check the original statement here <a href="http://hackaday.com/2015/03/28/arduino-srl-to-distributors-were-the-real-arduino/">http://hackaday.com/2015/03/28/arduino-srl-to-distributors-were-the-real-arduino/</a><br />
<br />
You can now find Arduino also at <a href="http://arduino.org/">http://arduino.org</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2559193243334678410.post-85981540901342966082015-04-14T06:05:00.000+01:002015-04-14T06:05:07.373+01:00ARDUINO IDE 1.6.3 RELEASEDA new version of the Arduino IDE (1.6.3) is available at the download page!<br />The Arduino IDE 1.6.3 is a bug fix release: after the already released 1.6.2 with new libraries and cores managers.<a href="http://blog.arduino.cc/2015/04/02/arduino-ide-1-6-3-released-and-available-for-download/">http://blog.arduino.cc/2015/04/02/arduino-ide-1-6-3-released-and-available-for-download/</a>Unknownnoreply@blogger.com0