After watching this video and reading the tutorial by Tony DiCola, I wondered if it would be possible to use a micro:bit as bluetooth bridge between my smartphone and the Circuit Playground. After all, the micro:bit has BLE and support for the serial protocol. Looking at the code that Tony provided however made it clear quickly enough that it would not be a simple cut-and-paste action. The code looked very complex and very much specific for the combination Circuit Playground Bluefruit LE module. So I started looking for other code that would do the same, but was easier for me to understand.
The most basic example of serial communication via the TX/RX pins comes from Adruino themselves using SoftwareSerial. I loaded that example on the Circuit Playground. For the micro:bit I used the https://pxt.microbit.org/ editor which (in the advanced tab) has support for the serial interface of the micro:bit to create a simple script that should receive and display any data received and would send data on the press of a button. Test #1 nothing happened…
I will skip through an hour or 2 testing and trying without success until I ended up with 2 Arduino Leonardo boards connected via their hardware serial gpio ports (0 and 1). Yes, I crossed the wires so that one TX was connected to the other RX and vise versa. And it still did not work. Until I decided to not change the program code (which uses gpio 10 and 11) but instead move the wires. And suddenly it worked, serial connection was possible via SoftwareSerial, but nut while using pin 0 and 1. The image above shows the setup.
After this initial success (finally!), I replaced one Arduino with the micro:bit. The code for the micro:bit look simple enough (see above). I uploaded all code to a bitbucket repository. If you look at the micro:bit code in the repository, it will display as hex code, just save the raw file, rename it from .txt to .hex if needed and import it into the online editor at https://pxt.microbit.org/ (using “Projects > Import File”).
Note: I did not use a voltage divider or a logic shifter for the signal going from the Arduino to the micro:bit. I did not check the voltage tolerance of the micro:bit, but I expect that the Arduino outputs a 5V signal while the micro:bit only expects a 3.3V signal. Hooking up the micro:bit and the Circuit Playground, both using 3.3V should not be a problem.
Circuit Playground Classic: Would you like to learn electronics, with an all-in-one board that has sensors and LEDs built in? Circuit Playground is here – and it’s the best way to practice programming on real hardware with no soldering or sewing required! Read more.
We are angry, frustrated, and in pain because of the violence and murder of Black people by the police because of racism. We are in the fight AGAINST RACISM. George Floyd was murdered, his life stolen. The Adafruit teams have specific actions we’ve done, are doing, and will do together as a company and culture. We are asking the Adafruit community to get involved and share what you are doing. The Adafruit teams will not settle for a hash tag, a Tweet, or an icon change. We will work on real change, and that requires real action and real work together. That is what we will do each day, each month, each year – we will hold ourselves accountable and publish our collective efforts, partnerships, activism, donations, openly and publicly. Our blog and social media platforms will be utilized in actionable ways. Join us and the anti-racist efforts working to end police brutality, reform the criminal justice system, and dismantle the many other forms of systemic racism at work in this country, read more @ adafruit.com/blacklivesmatter
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.