Have some questions about making your own Bits? Do not hesitate and ask the community. I know I would love to help you get started or share my thoughts about it. And I think @JackANDJude, @StuckInSynth, @chris101, @matthiasmwolf and others would too. You can also send me a privat message if you prefer: http://pv-productions.com/contact/
I realise that most (all?) new, community-proposed bits must have involved a connection to a proto bit once upon a time. But I don’t see anyone discussion how they do proto input. I see a lot on proto output (i.e. controlling new downstream output elements using bits), but I need a description in how to control bits using new input elements.
In my case, I am trying to use a non-bit pressure sensor and circuit as input to bits. The circuit works fine, and I’m able to quiz the voltage using the proto, as well as voltage changes as I push the pressure sensor. However, connecting a Number or bargraph module to the proto ‘out’ just gives me static output; pushing the sensor generates no difference in either Number of bargraph bit (and neither Values nor Volts setting works on the Number). Surely the Number element should react to variable input voltage?
And what do I do with the Signal out lead, as the proto site suggest that one adds? Maybe it’s not a requirement, and could just go into another breadboard circuit (or something). The jumpers’ functionality confuse me, too.
Since you have both created custom bits - not just output but also inputs (like the NFC bit @Philip_Verbeek) - I hope that you have experience with proto input! c:
Thanks in advance -
Remove the middle jumper of the ProtoBit. This makes that the input signal and the output signal are separated.
Connect your sensor circuit on the top of the Proto-Bit. Make sure all grounds are connected to each other! As is for Vcc.
Hope that helps. Let me know if you have any other questions.
Thanks for replying so swiftly, @Philip_Verbeek .
Amazing! I connected the sensor to the Out-sockets of the proto, and everything works.
I thought I had the distinction between input modules and output modules pinned down, but I obviously do not. I have three follow-up questions:
Is removing the SIG-jumper the only difference between an added input and output element? The “Out” name had me associate it with output elements only (thus my original question).
I take is that hooking up the In-SIG pin to another circuit (let’s call it B) or element is optional. Can I use the GND and VCC pins of the In pins for any purpose?
Following from 2: Judging by your reply, I would need to remove the jumpers between In and Out’s GNDs and VCCs in order to use their values for circuit B. Is this true, and if so: am I practically creating a parallel circuit (with respect to the ‘left-most’ circuitry that leads out by default, and may be connected to a Number module) by removing jumpers?
Thanks for your help!
Again good questions!
Always connect all the VCCs and GNDs together. This makes your Bit modular with the rest of the littleBits. (the ProtoBit gives you the option to disconnect them but I dont see a reason for that)
What you do with the SIG IN and the SIG OUT is up to you. There are in general 2 configurations.
SIG IN == SIG OUT. Put the jumper in between on the ProtoBit. In general only used for OUTPUT Bits. Use this if you only want to read (use) the SIG IN but not want to change the signal. You just connect the SIG IN to SIG OUT. (Note that it now makes no difference where you connect your circuit, on the top or on the bottom of the ProtoBit) E.g. see my RGB LEDstrip Bit: http://littlebits.cc/bitlab/bits/individually-controllable-rgbstrip-bit
SIG IN != (is NOT) SIG OUT. Remove the jumper in between on the ProtoBit. In general only used for INPUT Bits, LOGIC Bits. Use this if you want to read the SIG IN and based on that make some kind of SIG OUT.
E.g. my Radio Bit: http://pv-productions.com/radio-bit/. But also the MP3 Bit, the CloudBit, LatchBit, InverterBit etc.
Also it is possible to only do something with the SIG OUT and don’t use the SIG IN. E.g. for your pressure sensor and my NFC Bit: http://littlebits.cc/bitlab/bits/near-field-communication-nfc-bit
Hope that clears some things out:)
@Philip_Verbeek thank you for posting and offering your help! Your creations are inspiring!
I’m trying to build my own modules and have been struggling one with the DAC portion as I’m not an electrical engineer. From what I can tell from https://github.com/littlebits/w6-arduino/blob/master/hardware/LB_BIT_w6_ARDUINO-v03(4-5)/LB_BIT_w6_ARDUINO-v03(4-5)OHW.pdf?raw=true, the DAC used in the arduino bit is a 3bit R-2R resistor ladder.
From reading about R-2R ladders it seems the little its design varies in that it’s using capacitors, resistors, and amp, and a diode. Makes me wonder if it’s actually a low pass filter.
Is there any more details anywhere on how the littlebits team does their DACs? This would greatly help me build my own.
I used an mcp4725 breakout in my design, but would like to simplify the design and not use the i2c pins if possible. https://github.com/shaiss/LittleBitsUltrasonicRangeSensor
I found a TI 0800 DAC, but I think it’s overkill as it seems like anything above 3 or 4 bits is overkill.
Thanks, Actually I also build a DAC in my NFC module.
You are right at some points.
All it takes to make an Analog signal from PWM is a one stage low pass filter using 3k9 Ohm resistor and 10uF capacitor. You can vary the value to see what works best for you. See picture below.
At littleBits they use a 3 stage low pass filter to do some extra filtering for even higher frequencies.
The opamp is configured as a buffer. This may be necessary depending on the load on the output pin. Note that they use a Rail to Rail opamp where the output voltage swings are very close to the VCC and GND.
E.g. if you use a UA741 or a LM324 you see that the max output is e.g. 0.5 volt below the VCC and 0.5 volt above the GND etc.
(You can google at sallen key filter for the background)
The diode you can leave out for prototyping. This only protects the Bit against static voltages.
If you still want to go with breakoutboard I would suggest a 8 bit DAC. This gives you a resolution of 5volt / 1024(8bit) = 5mV. This is the same as the Arduino and works fine.
Hope that helped. Let me know if you have any other questions.
So I can leave the opamp out for simplicity and prototyping?
I’d rather not as I’m using the mcp4725 and it takes up more room than I want on the photoboard and additional code on the arduino I can leave off. And additional pins.
Thanks for the detailed reply. What’s a 3k9? Is it a resistor? And 10uf a capacitor?
Sounds like a low pass filter would be best in this case. Do you have any pictures or simple diagram of what you used in your nfc bit? Thank you!
Yes indeed. But it depends of your load on the output. The buffer makes sure the circuit before the opamp is seperated from the output. But for prototyping I also leave it out most of the times.
A 3k9 Ohm resistor and a 10 uF capacitor indeed. I read over it. I changed it above.
A low pass filter would do good indeed for your use. Below you can see one of my very very simple low pass filters. But also try different values to see what works best for you. or add another step etc.
Now you have your circuit somewhat all prototyped and working, did you think of shrikify your project on e.g. a ATtiny85/84?
Take a quick look at this: Programming ATtiny chips
I actually started it on an uno. Then moved to the nano. Now I’m moving it to a dfrobot cheapduino. Maybe after that will be a standalone atiny.
Just to confirm. When you say 3k9, that’s the same as 3.9k?
Thanks for the diagram. I’ll test it out soon as I can.
Correct, 3k9 ohm aka 3.9k ohm aka 3900 ohm
Had a few minutes to test and I think I have it figured out. While not exact as I didn’t have the time to do the math I used a 10k ohm resistor and a 104 0.1uf capacitor and it works on the breadboard. I’ll have to update my module to use this soon.
Successfully moved to the dfrobot cheapduino and ditched the mcp4725 for an LPF. I used the same values as before and there’s a slight dim Inbetween but it looks nice.
Thank you so much for the help!
Looks great Shai! The device is very responsive from the look of your video. Thanks for designing it in the open here. I think we all learned something here.
Thanks @chris101 ! The full codes at https://github.com/shaiss/LittleBitsUltrasonicRangeSensor. I still need to update the diagram to reflect the LPF.
Great job, learning and sharing!
I’m getting all my ducks in a row in preparation for submitting our SoundControl module to the bitlab. I have a few questions however. Once I submit the module, how long before the module shows up for voting and what type of changes can I make to my submission (text, video and such) during this time. Can I tweak things after voting has begun?
Should I expect to receive any feedback (changes or suggestions) from LittleBits before or during the voting process or only once (hopefully) the module has recevied 1000 votes. Lastly, Once a module has passed the voting hurdle, do you know what engineering tasks will the LittleBits folks be responsible for vs. me and my engineering partner?
I know you all have been down this road many times before. Anything else you think I should know or you wish you had known (or asked) before you submitted?
Thanks so much for your help,