What's the difference between the firmware and Example applications?


#1

I’m unable to get the Bluetooth sample application to
compile and I’ve done some research here and I see mention of the
firmware. What’s the difference between
the firmware for the Orion board and the sample applications? I’m using the Arduino IDE since that’s what
I’m familiar with, and I’m used to uploading one sketch at a time, overwriting
anything that was already on the Arduino board.

We have been able to upload the ultrasonic car sketch and
we’ve modified it a bit to keep the robot from getting stuck when it’s hung up
on something outside the view of the sensor, but we can’t get the Bluetooth
example to compile. I get a long list of errors that begin with:

C:\Users\Primary\Documents\Arduino\libraries\Makeblock\Makeblock.cpp:41:
error: no ‘bool MePort::dRead1()’ member function declared in class ‘MePort’

C:\Users\Primary\Documents\Arduino\libraries\Makeblock\Makeblock.cpp:48:
error: no ‘bool MePort::dRead2()’ member function declared in class ‘MePort’

C:\Users\Primary\Documents\Arduino\libraries\Makeblock\Makeblock.cpp:55:
error: no ‘void MePort::dWrite1(bool)’ member function declared in class
’MePort’

C:\Users\Primary\Documents\Arduino\libraries\Makeblock\Makeblock.cpp:60:
error: no ‘void MePort::dWrite2(bool)’ member function declared in class
’MePort’

Makeblock.cpp and Makeblock.h both exist in the path
provided.

Can someone provide Makeblock.cpp, .h, and .ino files that
work for the Bluetooth car?

Thanks,

Steve


#2

Hi Stephen, I got my starter kit yesterday and I am having similar problems (see my other posts).

I think that what they call “firmware” is the app that work Scratch but it is not different from other application. One of the many instances where Makeblock documentation is highly misleading and confusing. I am really infuriated and they are going to get bad reviews unless they get their stuff together soon. I am obviously not the only one who cannot get the robot working.

I was able to compile the BT test application from git head of https://github.com/Makeblock-official/Makeblock-Library If you are getting compile errors, make sure you have only one Makeblock library in your path.

I am usually using Linux but the Windows version of the IDE had everything I needed to compile the BT example.

After compiling it the BT transmitted only bunch of zeros. I figured out, I need to set bluetooth.begin(115200); I am still getting the bits mixed up but it “sort of works”. (according to http://arduino.cc/en/Guide/arduinoBT there are at least some BT chips that require this baudrate).

Now, as for the BT car app. There used to be something in git revision fe9ee4b779d89f7d0e376c5943d9ff54bf18fb95 (Look for makeblock/examples/Makeblock_Robot_Starter_Kit/Bluetooth_Control/CarControl/CarControl.ino)

Note that it has the “correct” baudrate and BT is hooked to PORT_4. Note that the port matters a lot because if you look into makeblock.cpp MeSerial::MeSerial there is some weird hack
_hard = getPort()==PORT_5;
I think that _hard == true means that the class will read from the on-board USB port. So do not connect BT to PORT_5 it didn’t work for me. This why they make the fuzz about connecting BT to different ports depending on the board version.

I am actually skeptical that even if I solved the BT issue this CarConroller would work. I suspect they use different protocol now.

There is probably something that will switch “Serial” to BT instead of the USB. Maybe you need to reboot the robot without USB and with BT in PORT_5. I’ll keep digging in the source codes. Or something like that. I find it rather bad that Makeblock is ignoring your question.


Robot Starter kit Bluetooth firmware update
#3

OK, so the example BT app will work only through SoftwareSerial on PORT_4. CarControll.ino is designed to work on the SW port too but that seems to be broken. This is why you need to connect BT as HardwareSerial on port_5. I am still not sure how to communicate with it. All the source code seems to suggest using just “Serial”. Maybe USB and BT are in a “mirror mode”.

Maybe this will be helpful for updating the FW for the ipad app:
http://doc.makeblock.cc/faq/
(I only have android so I’ll have to try later)


#4

This is the FW source that works with the mobile apps:


#5

I have a similar problem!

I got the package today and assembled it (Tank setup). No problems. Then I turn it on and I download the app. As soon as I do so, the app tells me to update the firmware, which I also do.

Problems start here: when it reached 100% the robot started making a continuous whistling sound (buzzer). Note that the app does not work after this step (bot doesn’t move)
Turn it off and on (always the 1st step :stuck_out_tongue:) and still buzzing. Try updating it again. Buzzing stops during the download process then back on.

Now I download the driver and hook up the bot. Still buzzing.
I find a picture of the board and the buzzer switch. (Noise is now off)

I download the all the programs (arduino, scratchbot,…) and try to fix the problem. (I turn the buzzer back on after every step to see the result)
Only thing that turned the buzzer off for good was a Firmware update from the scratchbot set on Makeblock Orion.

I then go back to the phone app to try and use the bot. It asks me AGAIN for a firmware update. I do. Buzzing is back -___-

The robot has still never moved since initial assembly…

Someone please help!

UPDATE BELOW


#6

I’m having the exact same problem as Chandi. I have the ultimate robot it. I’ve gone through the same steps and I get the buzzing sound after the firmware upgrade hits 100%. I’m not sure how to continue from this point. It’s incredibly frustrating and I’m becoming more and more disappointed with this product the more I try and get it to work as described. If anybody has any idea how to rectify this problem it would be greatly appreciated to hear it.


#7

Hang in there… It will work, and the buzzing is normal with the Makeblock app Firmware. Switch the buzzer off using the switch next to the reset button on the board. Are you using Apple iOS or Android? I know that as of right now the android does work after trying to upload the firmware 3-4 times, The iOS is just random.


#8

I have a Sony Xperia Z3 running Android 4.4.4.
I installed/updated/reinstalled the firmware at least half a dozen times in a variety of different sequences and methods.
Still does not work through my phone!

I was able to stop the buzzing (even with buzzer on) and make the robot move using Scratchbot via my laptop PC Bluetooth (had to disconnect and reconnect the Bluetooth wire 3-4 times to get the device to pair properly through the Scratchbot program).

Note to Matt:
Use Scratchbot to update the firmware (Setting it on Makeblock Orion) then use your laptop Bluetooth and the Scratchbot program to control the bot.

I really am disappointed that I won’t be able to control the bot using the Google Play app. (Also the app made my phone turn Bluetooth ON randomly even when I wasn’t using it and the app was off.)

I guess I was gonna use Arduino to program the bot in the future anyway so might as well start early…


#9

In my experience the Bluetooth date on the android does work. I am running 4.4.4 now and it also worked, but I find that I have to load the firmware all the time. That said it does eventually work. That being said when you program it using Arduino IDE remember that the board will not update via the Bluetooth. I have not used Scratch yet, but the IDE for Arduino doesn’t have an interface to control the robot. I know my comment doesn’t offer a solutions and it sucks you didn’t get results, but something I am doing is allowing me to use the play app. I might be doing something slightly different. Answer me this… Does the firmware get all the way to 99% and drop you back to the screen? You said that the buzzer is on constantly after the firmware appears to finish correct? Let me know I think I might just ignoring some of the prompts and it allows the Makeblock app to work. The part about bluetooth turning on randomly makes me think of my head set which after I tell it I don’t want to use the headset bluetooth will randomly turn back on while I am on phone calls.


#10

Hey 9.

Yes, it does go up to full percentage (not always) then back to screen and the buzzer immediately starts. As I said before, the only update method that worked was through Scratch. I didn’t try Arduino IDE because I have no clue how to use it yet.
I don’t understand what you mean by bypassing the prompts. If I press cancel on the firmware update through the app it disconnects from the bot and brings me back to the original screen.

The random BlueTooth ON thing is definitely due to the Makeblock app. As soon as I uninstalled no more issues. (Note that I reinstalled the app 3 times with the same result.)

Also, the Scratch program is a pain when it comes to connecting to the bot. It takes around 6-7 retry efforts (with bot BT wire disconnection/reconnection and PC BT Off/On switching) to work.

If you have any new breakthroughs, please let me know. I have studies to follow so I do not have time to experiment as much as I would like with the entire system/setup.

Thanks.


#11

I spent hours on my starter robot kit (bluetooth). I used the ios makeblock app on my iphone. It would say no firmware, i would then update, then there would be a loud shrieking sound that wont stop. i finally figured out that you toggle the small white switch next to the reset button to stop the shrieking. i had bought the inventor kit and swapped out the board. it did the same. however, after updating 5-7 times, the thing started to work. be patient and try it over and over.

i could control the robot with the iphone. it worked poorly and the bluetooth frequently dropped or the app would crash. Thank god i bought all of this at the radio shack closeout sale because i would be completely pissed if i had paid full price.

i still cant figure out how to connect the board to scratchbot. I’ve tried all the different configurations and there is no communication. ive tried the usb and the bluetooth. scratchbot does not tell you if the device is actually connected.
the mac can recognize the bluetooth module but it does not stay connected. usb doesn’t work either

arduino doesn’t connect either. there are multiple compiler errors and connection errors. makeblock should build better software for their products. at this time, i would not suggest anyone without at least a PhD in electrical engineering and computer science to try this out.

frustrated!


#12

@long Hi long I had Bluetooth drop problems too. It was caused by voltage drops due to motors draining too much energy from the batteries (the infamous 25mm motor problem). Try connecting USB charger to your board (the best thing are those portable phone chargers) and retest it.

At the end I bought 12V accu pack and the robot works fine


#13