-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What board ID number to use? #504
Comments
Way to be considerate of others! I vote for taking v1.4, if you are ready to take it now. That way we won't have any skipped numbers which might confuse folks. I think we should do a first come first served basis for pull requests merged into master so if you want to lock down a number just make a pull request to master with the pins you want to use. |
On Wed, 22 May 2019, Scott Smith wrote:
I'm working on another board version, and I need to choose a version ID code that doesn't clash with any other project.
what is it about your board that is going to require a unique ID?
If it can be made pin compatible with an existing board, that would be good.
We had a couple versions of the board from Bar because he found that different
pins worked better for PWM, and then we had another version because the
directiion controls worked differently (IIRC originally it was
Enable_dir_1, Enable_dr_2 and the new chip with Dir, Enable), if your new board
can fit either of these schemes, can we use the same ID? if not, what is
different?
David Lang
|
Presently we have boards with the L298 motor driver that use three input pins to control it (one for master enable and two for individual output state - any of the three could act as the PWM signal) and boards with the TLE5206 that only has two control inputs, and chooses direction and speed by putting those in opposite states and putting a PWM signal on one of them.
The TLE5206 is being sunsetted, and the replacement is the TLE9201. That chip has yet a different control arrangement - simpler but different enough that it needs separate handling. It has one dedicated PWM input, one dedicated DIRection input, and one ENAble input. PWM, DIR, ENA is a more common control scheme for motor drivers, so it's possible that future boards that drive separate motor driver boards would be able to use this configuration. The TLE9201 is rated for 6A continuous and runs in chopper mode at currents above that. It can handle PWM up to 20kHz (much better than the 1kHz of the TLE5206). It tri-states the outputs if it senses over-temperature, and flags the error. The board uses gpio pins from the Mega XIO connector to increase the number of AUX pins to 9, three of which have hardware PWM (PWM for spindle speed would be possible) and two of which can do analog input as well as digital IO. It also frees up the SPI pins though it doesn't use them - the Mega seems busy enough already. Finally, it has an on-board EEPROM, buffers on the encoder lines and automatic voltage selection so it is hardware compatible with the MaslowDue project. (It runs a branch of that code on a Due, but needs someone with more PID-fu than I possess to tune the loop make it purr instead of growl. I'll send a board to someone serious about working on that. ;) DM me.) |
Thanks, that answers my question about the difference.
seems to me that 1.4 should be good.
When you add this, please add comments about the differences between the boards
(almost exactly what you put in this post is good), possibly with an explination
for the next board developer as to what they would need to do to justify using a
differentboard ID
David Lang
On Wed, 22 May 2019, Scott Smith wrote:
… Presently we have boards with the L298 motor driver that use three input pins
to control it (one for master enable and two for individual output state - any
of the three could act as the PWM signal) and boards with the TLE5206 that
only has two control inputs, and chooses direction and speed by putting those
in opposite states and putting a PWM signal on one of them.
> what is it about your board that is going to require a unique ID?
The TLE5206 is being sunsetted, and the replacement is the TLE9201. That chip
has yet a different control arrangement - simpler but different enough that it
needs separate handling. It has one dedicated PWM input, one dedicated
DIRection input, and one ENAble input. PWM, DIR, ENA is a more common control
scheme for motor drivers, so it's possible that future boards that drive
separate motor driver boards would be able to use this configuration. The
TLE9201 is rated for 6A continuous and runs in chopper mode at currents above
that. It can handle PWM up to 20kHz (much better than the 1kHz of the
TLE5206). It tri-states the outputs if it senses over-temperature, and flags
the error.
The board uses gpio pins from the Mega XIO connector to increase the number of
AUX pins to 9, three of which have hardware PWM (PWM for spindle speed would
be possible) and two of which can do analog input as well as digital IO. It
also frees up the SPI pins though it doesn't use them - the Mega seems busy
enough already. Finally, it has an on-board EEPROM, buffers on the encoder
lines and automatic voltage selection so it is hardware compatible with the
MaslowDue project. (It runs a branch of that code on a Due, but needs someone
with more PID-fu than I possess to tune the loop make it purr instead of
growl. I'll send a board to someone serious about working on that. ;) DM me.)
|
Where in the firmware is that appropriate? It's got little to do with the code. I think that info belongs in the board repo in the Electronics or CommunityGarden, as so. |
Wow those sound like some exciting improvements 👍 👍 That chip also looks very nice. From a glace at the data sheet am I right that no flyback diodes are needed? |
That’s right , ‘built in’. |
That's a nice feature. It keeps the part count and cost down, but more than that it frees up a lot of board space. |
$2 at large quantities too. Here is the digikey link https://www.digikey.com/product-detail/en/infineon-technologies/TLE9201SGAUMA1/TLE9201SGAUMA1TR-ND/5960696 |
Compact and cheap, aimed at the auto market. They do need to be protected from having reversed voltage applied to the supply so there are a few components added there. |
I've found that things aimed at the auto market are rock solid because recalls are expensive there. If it could measure current too it would be perfect. |
On Wed, 22 May 2019, Scott Smith wrote:
Where in the firmware is that appropriate? It's got little to do with the
code. I think that info belongs in the board repo in the Electronics or
CommunityGarden, as
it's good to have it in the board design repo, but I would put it in the
firmware in the section that decodes the board version as well.
David Lang
|
Am I the only one to be confused about TLE5206 boards numbering ? Firmware/cnc_ctrl_v1/System.cpp Line 288 in e7ae77d
And @blurfl showed a link to a V1.4 TLE5203 board. So my vote would go to "V1.5" for TLE9201 boards and there is no V1.4 gap, or am I missing something? |
No, I screwed up with the TLE5206 silkscreen 😳. It should say 'v1.3' on the TLE5206 silkscreen. GC correctly reports 'PCB v1.3' |
Sorry for the noob question, what is the difference to Bee's shields labelled v1.4? |
I have a hunch that Bee used the same silkscreen file that I did, so he would have inherited my mistake. When you start up GC, does it report "PCB v1.3 TLE5206 Detected"? That would confirm my hunch. |
I'm still running a generously donated one of the first @blurfl 's TLE shields. |
The consensus seems to be that Board ID 4 is the best choice - I'll use that. 👍 |
I support that plan 👍 👍 |
Still not convinced because of the evident conflict on line 290 : Firmware/cnc_ctrl_v1/System.cpp Line 290 in e7ae77d
|
Hmmmm yeah I didn't know about that. Are there a lot of those boards out there? |
Not sure exactly which of the several conflicts you've spotted in that line, but I'll have a go at it. • "...some versions of board v1.4..." - In laying out the silkscreen for the TLE5206 board I stumbled over the zero-based/one-based thing and those boards have the wrong board number in their silkscreen. They should have been silkscreened "v1.3". They're correctly strapped for v1.3 and identify as v1.3 boards in the firmware and GC. • "don't strap VERS5-6 low" - The first layout of the TLE5206 boards only used four ID pins. While working on the firmware subsequently, I saw that having more ID pins would be beneficial and added provision for two more. I updated the files in the CommunityGarden (Bee's boards use 6 ID pins) but I had previously sent some boards out to testers and didn't want the release firmware to bork those boards. A software fix to a hardware issue.
If we're talking about the silkscreen issue, I would guess that most TLE boards are mis-labelled. |
So could we say that v1.3 / v1.4 are just 2 different names for the same boards ? Then maybe this arrangement would make everyone happy;
And the comments of line 290 would be like that (correct me if I'm wrong):
instead of that:
(still advocating my suggestion ;-) at least I feel that it follows the reality. |
I'll change the PR #505 to incorporate your suggestions:
(Edit - PCB v1.5 should correctly ground VERS5 and VERS6)
Carrying your comment further, how about making that code block (lines 284-294) something like:
I've checked this on the various flavors of TLE5206 PCBv1.4 board and they all still enumerate and operate properly as "PCB v1.3" as they did before. How far do you want to take this? Do we need to special-case the print statements in cnc_ctrl_v1.ino to agree with the silkscreen? |
Sounds very good! As for the Hidden gem: starting with v1.5, pin numbering matches version numbering, we are good at least until v1.15! After that some creativity will be necessary. |
... as for
(Not tried yet, but should give |
I noticed that a bit ago and pushed yet another commit to do what you say. {Check it out.](3838d92)
The TLE9201 board needs separate handling, so a unique ID. Many good ideas here, I'm going to close PR #504 until the discussion reaches consensus. |
I don't think there is a big need to conserve board numbers, because I would like to move away from the Mega to something smaller and more powerful in the future which would come with a new footprint and a new system for board ID. I'm thinking that is six months away, but I don't think we'l run out of version numbers before then |
That works fine. I would argue that it's less readable than an expanded if..else block to less experienced contributors, but maybe this is where they learn a new thing. For announcing the board in cnc_ctrl_v1.ino, how about something like
That sidesteps the silkscreen issue, and will be easy to extend for future boards.
Hints? Enquiring minds... |
OK for readability against compactness! Will the 'smaller and more powerful' board use the same port? curious to know.
Yes, more readable, don't forget to foresee next revisions: how will you announce yours, just by the number or with the driver name TLE9201, and what will be next... |
While this would be true, wouldn't using low-level access to the pins would make it harder to port to other processors? The board ID function doesn't need the speed. Take a look at the GrandCentralM4, much faster and mostly pin compatible. It doesn't have a developed version of the TimerOne library though, that's the major hurdle to cross (also wants a change to the Maslow EEPROM routines). Your comment about PORTA suggests you've been interested in port-level programming, maybe take a look at the timers for the SAMD51 and the GrandCentral board? |
No worries, portability is more important of course, just seeing how well |
I'm working on another board version, and I need to choose a version ID code that doesn't clash with any other project. I've provisionally used v1.5 thinking that by skipping one I would be safe. When @MarcinanBarbarzynca came up with a board that used ID v1.4, that didn't conflict. 👍
I can stick with v1.5, leaving v1.4 for @MarcinanBarbarzynca's second board project. That will leave a gap in the sequence - how does the community feel about that?
One reason to stake a claim on an ID number is that circuit boards get strapped for that number and it's a pain to cut/patch the PCBs after they are made.
The text was updated successfully, but these errors were encountered: